KOMA-Script · VorwortzuKOMA-Script3.25 7 VorwortzuKOMA-Script3.25 Die Anleitung zu KOMA-Script...

601
KOMA-Script ein wandelbares L A T E X2 ε -Paket

Transcript of KOMA-Script · VorwortzuKOMA-Script3.25 7 VorwortzuKOMA-Script3.25 Die Anleitung zu KOMA-Script...

KOMA-Scriptein wandelbares LATEX2ε-Paket

Die Anleitung

KOMA-Script

Markus Kohm

2019-10-10

Autoren des KOMA-Script-Pakets: Frank Neukam, Markus Kohm, Axel Kielhorn

Rechtliche Hinweise:

Der Autor dieser Anleitung ist in dieser Eigenschaft nicht verantwortlich für die Funktionoder Fehler der in dieser Anleitung beschriebenen Software. Bei der Erstellung von Textenund Abbildungen wurde mit großer Sorgfalt vorgegangen. Trotzdem können Fehler nichtvollständig ausgeschlossen werden.Der Autor kann jedoch für fehlerhafte Angaben und deren Folgen weder eine juristische Ver-antwortung noch irgendeine Haftung übernehmen. Für Verbesserungsvorschläge und Hinwei-se auf Fehler ist der Autor dankbar.In dieser Anleitung werden Warennamen ohne der Gewährleistung der freien Verwendbarkeitund ohne besondere Kennzeichnung benutzt. Es ist jedoch davon auszugehen, dass viele derWarennamen gleichzeitig eingetragene Warenzeichnen oder als solche zu betrachten sind.

Freie Bildschirm-Version ohne Optimierung des UmbruchsDiese Anleitung ist als Bestandteil von KOMA-Script frei im Sinne der LATEX Project PublicLicense Version 1.3c. Eine für KOMA-Script gültige deutsche Übersetzung liegt KOMA-Script in der Datei »lppl-de.txt« bei. Diese Anleitung – auch in gedruckter Form –darf nur zusammen mit den übrigen Bestandteilen von KOMA-Script weitergegeben undverteilt werden. Eine Verteilung der Anleitung unabhängig von den übrigen Bestandteilenvon KOMA-Script bedarf der ausdrücklichen Genehmigung des Autors.Eine umbruchoptimierte und erweiterte Ausgabe der KOMA-Script-Anleitung ist in derdante-Edition von Lehmanns Media erschienen (siehe [Koh18a]).

Für meine Frau ohne deren tagtägliche Arbeit ich mir meine ehrenamtlichenTaten nicht leisten könnte!

Vorwort zu KOMA-Script 3.25 7

Vorwort zu KOMA-Script 3.25

Die Anleitung zu KOMA-Script 3.25 profitiert wieder einmal davon, dass nahezu zeitgleichmit dieser Version auch eine überarbeitete Neuauflage der Print-Ausgabe [Koh18a] und dereBook-Ausgabe [Koh18b] erscheinen wird. Das führte zu vielen Verbesserungen, die sich auchauf die freie Anleitung auswirken.Eine dieser Verbesserungen ist die Verlinkung von Befehlen, Umgebungen, Optionen etc. je-

weils auf die entsprechende Erklärung innerhalb dieser Anleitung. Um innerhalb der Erklärungselbst nicht dazu verleitet zu werden, erneut an den Anfang der Erklärung zu springen, und soquasi Leserekursionen zu vermeiden, wurde die Verlinkung allerdings nur dann durchgeführt,wenn sie tatsächlich von der aktuellen Stelle weg führt.Viele der Verbesserungen gehen auch auf die fleißigen, freiwilligen Korrekturleser zurück.

Ihnen sei an dieser Stelle ausdrücklich gedankt.Leser dieser freien Bildschirm-Version müssen allerdings weiterhin mit gewissen Einschrän-

kungen leben. So sind einige Informationen – hauptsächliche solche für fortgeschrittene An-wender oder die dazu geeignet sind, aus einem Anwender einen fortgeschrittenen Anwenderzu machen – der Buchfassung vorbehalten. Das führt auch dazu, dass weiterhin einige Linksin dieser Anleitung lediglich zu einer Seite führen, auf der genau diese Tatsache erwähnt ist.Darüber hinaus ist die freie Version nur eingeschränkt zum Ausdruck geeignet. Der Fokusliegt vielmehr auf der Verwendung am Bildschirm parallel zur Arbeit an einem Dokument.Sie hat auch weiterhin keinen optimierten Umbruch, sondern ist quasi ein erster Entwurf, beidem sowohl der Absatz- als auch der Seitenumbruch in einigen Fällen durchaus dürftig ist.Entsprechende Optimierungen sind den Buchausgaben vorbehalten.Nicht nur zur Anleitung erfahre ich inzwischen eher wenig Kritik. Auch zu den Klassen und

Paketen gibt es kaum noch Nachfragen nach neuen Möglichkeiten. Für mich selbst bedeutetdas, dass das Wissen um die Wünsche der Anwender stagniert. Schon seit einigen Jahren habeich daher hauptsächlich Dinge implementiert, von denen ich annahm, dass sie nützlich seinkönnten. Die Rückmeldungen, die ich zu diesen neuen Möglichkeiten erhalten habe, beschrän-ken sich aber überwiegend auf Kritik daran, dass uralte Hacks, die sich auf undokumentierteEigenschaften von KOMA-Script stützen, in einigen Fällen nicht mehr funktionieren. Freudedarüber, dass derart unsaubere Notlösungen nicht mehr notwendig sind, wurde hingegen kaumgeäußert. Daher habe ich beschlossen, Erweiterungen und Verbesserungen an KOMA-Scriptmehr und mehr auf solche Dinge zu beschränken, die von Anwendern explizit nachgefragtwerden. Oder sollte es gar sein, dass KOMA-Script nach bald 25 Jahren schlicht einen Standerreicht hat, in dem es alle Wünsche erfüllt?Die rückläufige Entwicklung bei Fehlermeldungen ist leider ebenfalls nicht nur erfreulich.

Inzwischen ist häufig zu beobachten, dass diejenigen, die ein Problem entdecken, dieses nichtmehr unmittelbar an mich melden, sondern sich lediglich in irgendwelchen Internet-Forendarüber auslassen. Oftmals finden sich in diesen Foren dann mehr oder weniger geschickte

Vorwort zu KOMA-Script 3.25 8

Notlösungen. Das ist zwar grundsätzlich erfreulich, führt aber leider in der Regel dazu, dassdas Problem nie gemeldet und daher auch nie wirklich beseitigt wird. Dass solche Notlösungenirgendwann selbst zu einem Problem werden können, versteht sich von selbst und wurde bereitsim vorherigen Absatz erwähnt.Vereinzelt finden sich dankenswerter Weise Dritte, die mich auf solche Themen hinweisen.

Dies betrifft aber nur einzelne Beiträge in sehr wenigen Foren. Ein direkter Kontakt zu demje-nigen, bei dem das Problem aufgetreten ist, ist dann meist nicht möglich, obwohl er teilweisewünschenswert wäre.Daher sei noch einmal ausdrücklich darum gebeten, mir vermeintliche Bugs wahlweise in

Deutsch oder Englisch unmittelbar zu melden. Dabei ist sprachliche Perfektion weniger wich-tig. Die Meldung sollte halbwegs verständlich und das Problem nachvollziehbar sein. Ein mög-lichst kurzes Code-Beispiel ist in der Regel unabhängig von der darin verwendeten Sprache zuverstehen. Im direkten Kontakt sind mir bei Bedarf auch Rückfragen möglich. Bitte verlassenSie sich nicht darauf, dass irgendwer das Problem schon irgendwann melden wird. Gehen Siedavon aus, dass es nur behoben wird, wenn Sie es selbst melden. Näheres zu Fehlermeldungenist im ersten Kapitel der Anleitung zu finden.

Markus Kohm, Neckarhausen bei Regen im März 2018

Inhaltsverzeichnis 9

Inhaltsverzeichnis

Vorwort zu KOMA-Script 3.25 7

1. Einleitung 201.1. Vorwort . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201.2. Dokumentaufbau . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201.3. Die Geschichte von KOMA-Script . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221.4. Danksagung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231.5. Rechtliches . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231.6. Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231.7. Fehlermeldungen, Fragen, Probleme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241.8. Weitere Informationen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

Teil I:KOMA-Script für Autoren 26

2. Satzspiegelberechnung mit typearea.sty 272.1. Grundlagen der Satzspiegelkonstruktion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 272.2. Satzspiegelkonstruktion durch Teilung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 302.3. Satzspiegelkonstruktion durch Kreisschlagen . . . . . . . . . . . . . . . . . . . . . . . . . . 312.4. Frühe oder späte Optionenwahl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 312.5. Kompatibilität zu früheren Versionen von KOMA-Script . . . . . . . . . . . . . . . . 332.6. Einstellung des Satzspiegels und der Seitenaufteilung . . . . . . . . . . . . . . . . . . . 342.7. Einstellung des Papierformats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 492.8. Tipps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53

3. Die Hauptklassen scrbook, scrreprt, scrartcl 563.1. Frühe oder späte Optionenwahl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 563.2. Kompatibilität zu früheren Versionen von KOMA-Script . . . . . . . . . . . . . . . . 583.3. Entwurfsmodus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 593.4. Seitenaufteilung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 593.5. Wahl der Schriftgröße für das Dokument . . . . . . . . . . . . . . . . . . . . . . . . . . . . 603.6. Textauszeichnungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 613.7. Dokumenttitel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 683.8. Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 753.9. Inhaltsverzeichnis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 763.10. Absatzauszeichnung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82

Inhaltsverzeichnis 10

3.11. Erkennung von rechten und linken Seiten . . . . . . . . . . . . . . . . . . . . . . . . . . . . 843.12. Kopf und Fuß bei vordefinierten Seitenstilen . . . . . . . . . . . . . . . . . . . . . . . . . . 853.13. Vakatseiten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 923.14. Fußnoten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 943.15. Abgrenzung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1003.16. Gliederung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1003.17. Schlauer Spruch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1243.18. Listen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1263.19. Mathematik . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1353.20. Gleitumgebungen für Tabellen und Abbildungen . . . . . . . . . . . . . . . . . . . . . . 1363.21. Randnotizen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1573.22. Anhang . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1583.23. Literaturverzeichnis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1583.24. Stichwortverzeichnis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161

4. Briefe mit Klasse scrlttr2 oder Paket scrletter 1644.1. Variablen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1644.2. Pseudolängen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1694.3. Frühe oder späte Optionenwahl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1704.4. Kompatibilität zu früheren Versionen von KOMA-Script . . . . . . . . . . . . . . . . 1724.5. Entwurfsmodus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1734.6. Seitenaufteilung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1744.7. Genereller Aufbau eines Briefdokuments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1744.8. Wahl der Schriftgröße für das Dokument . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1844.9. Textauszeichnungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1874.10. Briefbogen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1914.11. Absatzauszeichnung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2224.12. Erkennung von rechten und linken Seiten . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2234.13. Kopf und Fuß bei vordefinierten Seitenstilen . . . . . . . . . . . . . . . . . . . . . . . . . . 2244.14. Vakatseiten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2284.15. Fußnoten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2304.16. Listen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2334.17. Mathematik . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2374.18. Gleitumgebungen für Tabellen und Abbildungen . . . . . . . . . . . . . . . . . . . . . . 2374.19. Randnotizen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2374.20. Schlussgruß . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2384.21. Letter-Class-Option-Dateien . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2414.22. Adressdateien und Serienbriefe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247

Inhaltsverzeichnis 11

5. Kopf- und Fußzeilen mit scrlayer-scrpage 2525.1. Frühe oder späte Optionenwahl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2525.2. Höhe von Kopf und Fuß . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2545.3. Textauszeichnungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2555.4. Verwendung vordefinierter Seitenstile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2585.5. Beeinflussung von Seitenstilen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 268

6. Der Wochentag mit scrdate 280

7. Die aktuelle Zeit mit scrtime 285

8. Adressdateien mit scraddr erschließen 2878.1. Befehle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2878.2. Anwendung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2888.3. Paketoptionen für Warnungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 289

9. Adressdateien aus Adressdatenbanken 291

10. Grundlegende Fähigkeiten der KOMA-Script-Klassenmit Hilfe des Pakets scrextend anderen Klassen erschließen 29210.1. Frühe oder späte Optionenwahl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29210.2. Kompatibilität zu früheren Versionen von KOMA-Script . . . . . . . . . . . . . . . . 29410.3. Optionale, erweiterte Möglichkeiten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29510.4. Entwurfsmodus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29510.5. Wahl der Schriftgröße für das Dokument . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29610.6. Textauszeichnungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29610.7. Dokumenttitel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29810.8. Erkennung von rechten und linken Seiten . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30310.9. Wahl eines vordefinierten Seitenstils . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30410.10. Vakatseiten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30510.11. Fußnoten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30710.12. Schlauer Spruch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31010.13. Listen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31110.14. Randnotizen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 312

11. Unterstützung für die Anwaltspraxis durch scrjura 31411.1. Frühe oder späte Optionenwahl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31411.2. Textauszeichnungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31511.3. Verzeichnisse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31711.4. Umgebung für Verträge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 318

11.4.1. Juristische Paragraphen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 319

Inhaltsverzeichnis 12

11.4.2. Absätze . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32211.4.3. Sätze . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 324

11.5. Querverweise . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32511.6. Zusätzliche Vertragsumgebungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32711.7. Unterstützung verschiedener Sprachen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33011.8. Ein ausführliches Beispiel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33111.9. Entwicklungsstand . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 336

Teil II:KOMA-Script für fortgeschrittene Anwender und Experten 338

12. Grundlegende Funktionen im Paket scrbase 33912.1. Laden des Pakets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33912.2. Schlüssel als Eigenschaften von Familien und deren Mitgliedern . . . . . . . . . . 33912.3. Verzweigungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35512.4. Definition sprachabhängiger Bezeichner . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36112.5. Identifikation von KOMA-Script . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36512.6. Erweiterungen des LATEX-Kerns . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36612.7. Erweiterungen der mathematischen Fähigkeiten von ε-TEX . . . . . . . . . . . . . . 36612.8. Allgemeiner Mechanismus für mehrstufige Haken . . . . . . . . . . . . . . . . . . . . . . 367

13. Paketabhängigkeiten mit scrlfile beherrschen 37213.1. Die Sache mit den Paketabhängigkeiten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37213.2. Aktionen vor und nach dem Laden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37313.3. Dateien beim Einlesen ersetzen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37813.4. Dateien gar nicht erst einlesen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 381

14. Dateien mit scrwfile sparen und ersetzen 38414.1. Grundsätzliche Änderungen am LATEX-Kern . . . . . . . . . . . . . . . . . . . . . . . . . . 38414.2. Das Eindateiensystem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38514.3. Das Klonen von Dateieinträgen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38514.4. Hinweis zum Entwicklungsstand . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38714.5. Bekannte Paketunverträglichkeiten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 387

15. Verzeichnisse verwalten mit Hilfe von tocbasic 38815.1. Grundlegende Anweisungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38815.2. Erzeugen eines Verzeichnisses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39215.3. Konfiguration von Verzeichniseinträgen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40015.4. Interne Anweisungen für Klassen- und Paketautoren . . . . . . . . . . . . . . . . . . . 41515.5. Ein komplettes Beispiel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 418

Inhaltsverzeichnis 13

15.6. Alles mit einer Anweisung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 421

16. Fremdpakete verbessern mit scrhack 42816.1. Entwicklungsstand . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42816.2. Frühe oder späte Optionenwahl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42816.3. Verwendung von tocbasic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42916.4. Falsche Erwartungen an \@ptsize . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43016.5. Sonderfall hyperref . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43116.6. Inkonsistente Behandlung von \textwidth und \textheight . . . . . . . . . . . . 43116.7. Sonderfall nomencl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43216.8. Sonderfall Überschriften . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 432

17. Definition von Ebenen und Seitenstilen mit scrlayer 43417.1. Frühe oder späte Optionenwahl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43417.2. Einige grundlegende Informationen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43517.3. Deklaration von Ebenen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43717.4. Deklaration und Verwaltung von Seitenstilen . . . . . . . . . . . . . . . . . . . . . . . . . 45017.5. Höhe von Kopf und Fuß . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46117.6. Beeinflussung von Seitenstilen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46117.7. Definition und Verwaltung von Schnittstellen für Endanwender . . . . . . . . . . . 468

18. Zusätzliche Möglichkeiten von scrlayer-scrpage 47118.1. Beeinflussung von Seitenstilen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47118.2. Definition eigener Seitenstil-Paare . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47518.3. Definition komplexer Seitenstile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47618.4. Definition einfacher Seitenstile mit dreigeteiltem Kopf und Fuß . . . . . . . . . . . 47918.5. Das obsolete Erbe von scrpage2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 479

19. Notizspalten mit scrlayer-notecolumn 48119.1. Hinweise zum Entwicklungsstand . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48119.2. Frühe oder späte Optionenwahl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48219.3. Textauszeichnungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48319.4. Deklaration neuer Notizspalten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48519.5. Erstellen einer Notiz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48919.6. Erzwungene Ausgabe von Notizspalten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 493

20. Zusätzliche Informationen zum Paket typearea.sty 49720.1. Experimentelle Möglichkeiten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49720.2. Anweisungen für Experten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49820.3. Lokale Einstellungen durch die Datei typearea.cfg . . . . . . . . . . . . . . . . . . . 50020.4. Mehr oder weniger obsolete Optionen und Anweisungen . . . . . . . . . . . . . . . . 500

Inhaltsverzeichnis 14

21. Zusätzliche Informationen zu den Hauptklassen und scrextend 50121.1. Ergänzungen zu Benutzeranweisungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50121.2. Zusammenspiel von KOMA-Script und anderen Paketen . . . . . . . . . . . . . . . . 50121.3. Erkennung von KOMA-Script-Klassen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50121.4. Einträge ins Inhaltsverzeichnis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50221.5. Schrifteinstellungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50421.6. Absatzmarkierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50621.7. Zähler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50721.8. Gliederung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50721.9. Literaturverzeichnis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52921.10. Mehr oder weniger obsolete Optionen und Anweisungen . . . . . . . . . . . . . . . . 531

22. Zusätzliche Informationen zur Klasse scrlttr2 und Paket scrletter 53222.1. Pseudolängen für fortgeschrittene Anwender . . . . . . . . . . . . . . . . . . . . . . . . . . 532

22.1.1. Faltmarken . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53922.1.2. Briefkopf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54122.1.3. Anschrift . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54222.1.4. Absenderergänzungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54422.1.5. Geschäftszeile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54522.1.6. Betreff . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54622.1.7. Schlussgruß . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54722.1.8. Briefbogenfuß . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 547

22.2. Variablen für fortgeschrittene Anwender . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54822.3. Ergänzende Informationen zu den Seitenstilen . . . . . . . . . . . . . . . . . . . . . . . . 55022.4. lco-Dateien für fortgeschrittene Anwender . . . . . . . . . . . . . . . . . . . . . . . . . . . 55022.5. Unterstützung verschiedener Sprachen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55522.6. Obsolete Anweisungen von scrlttr2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 559

Änderungsliste 560

Literaturverzeichnis 572

Index 577Allgemeiner Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 577Befehle, Umgebungen und Variablen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 581Längen und Zähler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 593Elemente mit der Möglichkeit zur Schriftumschaltung . . . . . . . . . . . . . . . . . . . . . . . . 594Dateien, Klassen und Pakete . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 595Klassen- und Paketoptionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 597Haken (do-hooks) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 601

Abbildungsverzeichnis 15

Abbildungsverzeichnis

2.1. Doppelseite mit der Rasterkonstruktion für die klassische Neunerteilung nachAbzug einer Bindekorrektur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

3.1. Parameter für die Darstellung der Fußnoten . . . . . . . . . . . . . . . . . . . . . . . . . . . . 983.3. Beispiel: Verwendung von \captionaboveof innerhalb einer fremden

Gleitumgebung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1433.2. Beispiel: Ein Rechteck . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1433.4. Beispiel: Bildbeschreibung daneben, unten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1453.5. Beispiel: Bildbeschreibung daneben, mittig . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1463.6. Beispiel: Bildbeschreibung daneben, oben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1473.7. Beispiel: Bildunterschrift mit Voreinstellung . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1503.8. Beispiel: Bildunterschrift mit teilweise hängendem Einzug . . . . . . . . . . . . . . . . . 1503.9. Beispiel: Bildunterschrift mit hängendem Einzug und Umbruch . . . . . . . . . . . . 1503.10. Beispiel: Bildunterschrift mit Einzug in der zweiten Zeile . . . . . . . . . . . . . . . . . 150

4.1. Genereller Aufbau eines Briefdokuments mit beliebig vielen einzelnen Briefen . 1754.2. Genereller Aufbau eines einzelnen Briefes innerhalb eines Briefdokuments . . . . 1764.3. Beispiel: Brief mit Anschrift und Anrede . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1794.4. Beispiel: Brief mit Anschrift, Anrede, Text und Grußfloskel . . . . . . . . . . . . . . . . 1814.5. Beispiel: Brief mit Anschrift, Anrede, Text, Grußfloskel und Postskriptum . . . . 1824.6. Beispiel: Brief mit Anschrift, Anrede, Text, Grußfloskel, Postskriptum und

Verteiler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1834.7. Beispiel: Brief mit Anschrift, Anrede, Text, Grußfloskel, Postskriptum,

Anlagen und Verteiler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1854.8. Beispiel: Brief mit Anschrift, Anrede, Text, Grußfloskel, Postskriptum,

Anlagen, Verteiler und ungesund großer Schrift . . . . . . . . . . . . . . . . . . . . . . . . . 1874.9. Schematische Darstellung des Briefbogens mit den wichtigsten Anweisungen

und Variablen für die skizzierten Elemente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1934.10. Beispiel: Brief mit Anschrift, Anrede, Text, Grußfloskel, Postskriptum,

Anlagen, Verteiler und Lochermarke . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1954.11. Beispiel: Brief mit Absender, Anschrift, Anrede, Text, Grußfloskel, Signatur,

Postskriptum, Anlagen und Verteiler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1984.12. Beispiel: Brief mit Absender, Trennlinie, Anschrift, Anrede, Text,

Grußfloskel, Signatur, Postskriptum, Anlagen, Verteiler und Lochermarke . . . . 2004.13. Beispiel: Brief mit erweitertem Absender, Trennlinie, Anschrift, Anrede,

Text, Grußfloskel, Signatur, Postskriptum, Anlagen, Verteiler undLochermarke; Standard- vs. erweiterter Briefkopf . . . . . . . . . . . . . . . . . . . . . . . . 203

Abbildungsverzeichnis 16

4.14. Beispiel: Brief mit erweitertem Absender, Trennlinie, Anschrift, Anrede,Text, Grußfloskel, Signatur, Postskriptum, Anlagen, Verteiler undLochermarke; links- vs. rechtsbündiger Briefkopf . . . . . . . . . . . . . . . . . . . . . . . . 205

4.15. Beispiel: Brief mit erweitertem Absender, Logo, Trennlinie, Anschrift,Anrede, Text, Grußfloskel, Signatur, Postskriptum, Anlagen, Verteiler undLochermarke; Absender links vs. rechts vs. zentriert . . . . . . . . . . . . . . . . . . . . . 207

4.16. Beispiel: Brief mit erweitertem Absender, Logo, Anschrift,Absenderergänzung, Anrede, Text, Grußfloskel, Signatur, Postskriptum,Anlagen, Verteiler und Lochermarke . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213

4.17. Beispiel: Brief mit erweitertem Absender, Logo, Anschrift,Absenderergänzung, Ort, Datum, Anrede, Text, Grußfloskel, Signatur,Postskriptum, Anlagen, Verteiler und Lochermarke . . . . . . . . . . . . . . . . . . . . . . 217

4.18. Beispiel: Brief mit erweitertem Absender, Logo, Anschrift,Absenderergänzung, Ort, Datum, Betreff, Anrede, Text, Grußfloskel,Signatur, Postskriptum, Anlagen, Verteiler und Lochermarke . . . . . . . . . . . . . . 220

4.19. Beispiel: Brief mit erweitertem Absender, Logo, Anschrift,Absenderergänzung, Ort, Datum, Betreff, Anrede, Text, Grußfloskel,geänderter Signatur, Postskriptum, Anlagen, Verteiler und Lochermarke . . . . . 240

4.20. Beispiel: Brief mit erweitertem Absender, Logo, Anschrift,Absenderergänzung, Ort, Datum, Betreff, Anrede, Text, Grußfloskel,geänderter Signatur, Postskriptum, Anlagen, Verteiler und Lochermarke mitlco-Datei . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244

5.1. Befehle zum Setzen des Seitenkopfes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2595.2. Befehle zum Setzen des Seitenfußes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263

11.1. Beispiel: Die ersten drei Seiten der Beispielsatzung ausAbschnitt 11.8 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 337

15.1. Illustration einiger Attribute des Verzeichniseintragsstils dottedtocline . . . . . 40215.2. Illustration einiger Attribute des Verzeichniseintragsstils largetocline . . . . . . 40315.3. Illustration einiger Attribute des Verzeichniseintragsstils tocline . . . . . . . . . . . 40415.4. Illustration einiger Attribute des Verzeichniseintragsstils undottedtocline

am Beispiel einer Kapitelüberschrift . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 404

19.1. Eine Ergebnisseite zu dem Beispiel in Kapitel 19 . . . . . . . . . . . . . . . . . . . . . . . . 496

22.1. Schematische Darstellung der wichtigsten Pseudolängen für den Briefbogen . . . 538

Tabellenverzeichnis 17

Tabellenverzeichnis

2.1. Satzspiegelmaße in Abhängigkeit von DIV bei A4 . . . . . . . . . . . . . . . . . . . . . . . 362.2. DIV -Voreinstellungen für A4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 372.3. Symbolische Werte für Option DIV und das DIV -Argument von \typearea . . . 392.4. Symbolische BCOR -Argumente für \typearea . . . . . . . . . . . . . . . . . . . . . . . . . . . 412.5. Standardwerte für einfache Schalter in KOMA-Script . . . . . . . . . . . . . . . . . . . . 422.6. Ausgabetreiber für Option pagesize=Ausgabetreiber . . . . . . . . . . . . . . . . . . . 52

3.1. Klassengegenüberstellung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 563.2. Elemente, deren Schrift bei scrbook, scrreprt oder scrartcl mit \setkomafont

und \addtokomafont verändert werden kann . . . . . . . . . . . . . . . . . . . . . . . . . . . 633.3. Schriftvoreinstellungen für die Elemente des Titels . . . . . . . . . . . . . . . . . . . . . . 723.4. Der Haupttitel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 733.5. Mögliche Werte für Option toc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 773.6. Schriftvoreinstellungen für die Elemente des Inhaltsverzeichnisses . . . . . . . . . . . 803.7. Mögliche Werte für Option parskip . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 833.8. Schriftvoreinstellungen für die Elemente des Seitenstils . . . . . . . . . . . . . . . . . . . 873.9. Makros zur Festlegung des Seitenstils besonderer Seiten . . . . . . . . . . . . . . . . . . 893.10. Verfügbare Nummerierungsstile für Seitenzahlen . . . . . . . . . . . . . . . . . . . . . . . . 913.11. Mögliche Werte für Option footnotes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 953.12. Mögliche Werte für Option open . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1013.13. Mögliche Werte für Option headings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1033.14. Mögliche Werte für Option numbers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1063.15. Schriftvoreinstellungen für die Elemente der Gliederung bei

scrbook und scrreprt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1113.16. Schriftvoreinstellungen für die Elemente des Spruchs . . . . . . . . . . . . . . . . . . . . . 1243.17. Mögliche Werte für Option captions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1383.18. Schriftvoreinstellungen für die Elemente der Tabellen- oder

Abbildungsunterschrift bzw. -überschrift . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1413.19. Beispiel: Maße des Rechtecks aus Abbildung 3.2 . . . . . . . . . . . . . . . . . . . . . . . . 1433.20. Ausrichtungen für mehrzeilige Beschreibungen von Gleitumgebungen . . . . . . . . 1513.21. Mögliche Werte für Option listof . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1553.22. Mögliche Werte für Option bibliography . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1603.23. Mögliche Werte für Option index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162

4.1. Von scrlttr2 und scrletter unterstützte Variablen . . . . . . . . . . . . . . . . . . . . . . . . . 1654.2. Elemente, deren Schrift bei der Klasse scrlttr2 oder dem Paket scrletter mit

\setkomafont und \addtokomafont verändert werden kann . . . . . . . . . . . . . . . 188

Tabellenverzeichnis 18

4.3. Kombinierbare Werte für die Konfiguration der Faltmarken mit der Optionfoldmarks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192

4.4. Mögliche Werte für Option fromalign zur Platzierung des Absenders aufdem Briefbogen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196

4.5. Mögliche Werte für Option fromrule bei scrlttr2 und scrletter . . . . . . . . . . . . . . 1974.6. Vordefinierte Bezeichnungen der Variablen für die

Absenderangaben im Briefkopf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2014.7. Vordefinierte Bezeichnungen und Inhalte der Trennzeichen für die

Absenderangaben im Briefkopf ohne Option symbolicnumbers . . . . . . . . . . . . . 2024.8. Mögliche Werte für Option addrfield bei scrlttr2 und scrletter . . . . . . . . . . . . . 2084.9. Schriftvoreinstellungen für die Elemente des Anschriftfensters . . . . . . . . . . . . . . 2094.10. Mögliche Werte für Option priority bei scrlttr2 und scrletter . . . . . . . . . . . . . . 2104.11. Mögliche Werte für Option locfield bei scrlttr2 . . . . . . . . . . . . . . . . . . . . . . . . 2114.12. Mögliche Werte für Option refline bei scrlttr2 und scrletter . . . . . . . . . . . . . . . 2144.13. Vordefinierte Bezeichnungen der Variablen der Geschäftszeile . . . . . . . . . . . . . . 2144.14. Schriftvoreinstellungen für die Elemente der Geschäftszeile . . . . . . . . . . . . . . . . 2154.15. Vordefinierte Bezeichnungen der Variablen für den Betreff . . . . . . . . . . . . . . . . . 2174.16. Mögliche Werte für Option subject bei scrlttr2 . . . . . . . . . . . . . . . . . . . . . . . . . 2184.17. Mögliche Werte für Option pagenumber bei scrlttr2 und scrletter . . . . . . . . . . . . 2264.18. Vordefinierte lco-Dateien . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245

5.1. Elemente, deren Schrift bei scrlayer-scrpage mit \setkomafont und\addtokomafont verändert werden kann, einschließlich der jeweiligenVoreinstellung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 256

5.2. Mögliche Werte für Option markcase . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2735.3. Symbolische Werte für Option headwidth und footwidth . . . . . . . . . . . . . . . . . 278

10.1. Optional verfügbare, erweiterte Möglichkeiten von scrextend . . . . . . . . . . . . . . . 295

11.1. Elemente, deren Schrift bei scrjura mit \setkomafont und \addtokomafontverändert werden kann, einschließlich der jeweiligen Voreinstellung . . . . . . . . . . 317

11.2. Mögliche Eigenschaften für die optionalen Argumente der Anweisungen\Clause und \SubClause . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 320

11.3. Mögliche Werte für Option clausemark zur Erzeugung von Kolumnentitelndurch Paragraphen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 322

11.4. Mögliche Werte für Option ref zur Einstellung der Referenzierungsformate . . . 32711.5. Beispielausgaben der von Option ref unabhängigen Anweisungen für

Querverweise . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32811.6. Von \DeclareNewJuraEnvironment unterstützte Optionen zur

Konfigurierung neuer Vertragsumgebungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . 329

Tabellenverzeichnis 19

11.7. Bedeutungen und Voreinstellungen sprachabhängiger Begriffe . . . . . . . . . . . . . . 331

12.1. Überblick über übliche sprachabhängige Begriffe . . . . . . . . . . . . . . . . . . . . . . . . 363

15.1. Attribute für die vordefinierten Verzeichniseintragsstile von tocbasic . . . . . . . . . 40515.2. Optionen für die Anweisung \DeclareNewTOC . . . . . . . . . . . . . . . . . . . . . . . . . . 42215.3. Gegenüberstellung von Beispielumgebung remarkbox und Umgebung figure . 427

17.1. Optionen für die Definition von Seiten-Ebenen mit ihrer jeweiligenBedeutung als Ebenen-Eigenschaft . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 440

17.2. Optionen und gleichnamige Haken für Ebenen-Seitenstile (in der Reihenfolgeihrer Abarbeitung) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 454

18.1. Von scrlayer-scrpage zu einem Seitenstil definierte Ebenen . . . . . . . . . . . . . . . . . 478

19.1. Mögliche Einstellungen für die Deklaration von Notizspalten . . . . . . . . . . . . . . . 488

21.1. Stil unabhängige Eigenschaften bei der Deklaration von Gliederungsbefehlen . . 50921.2. Eigenschaften des Stils section bei der Deklaration von Gliederungsbefehlen . 51021.3. Eigenschaften des Stils chapter bei der Konfiguration von Gliederungsbefehlen 51121.4. Eigenschaften des Stils part bei der Konfiguration von Gliederungsbefehlen . . . 51221.6. Voreinstellungen für die Formatierung der Überschriften von scrbook und

scrreprt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51421.5. Voreinstellungen für die Kapitelüberschriften von scrbook und scrreprt in

Abhängigkeit von Option headings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 518

22.1. Von scrlttr2 und scrletter verwendete Pseudolängen . . . . . . . . . . . . . . . . . . . . . . 53322.2. Voreinstellungen für die sprachabhängigen Begriffe . . . . . . . . . . . . . . . . . . . . . . 55822.3. Sprachabhängige Ausgabeformate für das Datum . . . . . . . . . . . . . . . . . . . . . . . 559

Kapitel 1: Einleitung 20

Einleitung

Dieses Kapitel enthält unter anderem wichtige Informationen über den Aufbau der Anleitungund die Geschichte von KOMA-Script, die Jahre vor der ersten Version beginnt. Darüberhinaus finden Sie Informationen für den Fall, dass Sie auf Fehler stoßen.

1.1. Vorwort

KOMA-Script ist ein sehr komplexes Paket (engl. bundle). Dies ist schon allein darin begrün-det, dass es nicht nur aus einer einzigen Klasse (engl. class) oder einem einzigen Paket (engl.package), sondern einer Vielzahl derer besteht. Zwar sind die Klassen als Gegenstücke zu denStandardklassen konzipiert (siehe Kapitel 3), das heißt jedoch insbesondere nicht, dass sie nurüber die Befehle, Umgebungen und Einstellmöglichkeiten der Standardklassen verfügen oderderen Aussehen als Standardeinstellung übernehmen. Die Fähigkeiten von KOMA-Script rei-chen teilweise weit über die Fähigkeiten der Standardklassen hinaus. Manche davon sind auchals Ergänzung zu den Grundfähigkeiten des LATEX-Kerns zu betrachten.Allein aus dem Vorgenannten ergibt sich schon zwangsläufig, dass die Dokumentation zu

KOMA-Script sehr umfangreich ausfällt. Hinzu kommt, dass KOMA-Script in der Regel nichtgelehrt wird. Das heißt, es gibt keinen Lehrer, der seine Schüler kennt und damit den Un-terricht und das Unterrichtsmaterial entsprechend wählen und anpassen kann. Es wäre einLeichtes, die Dokumentation für irgendeine Zielgruppe zu verfassen. Die Schwierigkeit, dersich der Autor gegenüber sieht, besteht jedoch darin, dass eine Anleitung für alle möglichenZielgruppen benötigt wird. Ich habe mich bemüht, eine Anleitung zu erstellen, die für den In-formatiker gleichermaßen geeignet ist wie für die Sekretärin des Fischhändlers. Ich habe michbemüht, obwohl es sich dabei eigentlich um ein unmögliches Unterfangen handelt. Ergebnissind zahlreiche Kompromisse. Ich bitte jedoch, die Problematik bei eventuellen Beschwerdenzu berücksichtigen und bei der Verbesserung der derzeitigen Lösung zu helfen.Trotz des Umfangs der Anleitung bitte ich außerdem darum, im Falle von Problemen zu-

nächst die Dokumentation zu konsultieren. Als erste Anlaufstelle sei auf den mehrteiligenIndex am Ende des Dokuments hingewiesen. Zur Dokumentation gehören neben dieser Anlei-tung auch alle Text-Dokumente, die Bestandteil des Pakets sind. Sie sind in manifest.txtvollständig aufgeführt

1.2. Dokumentaufbau

Diese Anleitung ist in mehrere Teile untergliedert. Es gibt einen Teil für Anwender, einen fürfortgeschrittene Anwender und Experten und einen Anhang mit weiterführenden Informatio-nen und Beispielen für diejenigen, die es ganz genau wissen wollen.

Kapitel 1: Einleitung 21

Teil I richtet sich dabei an alle KOMA-Script-Anwender. Das bedeutet, dass hier auch ei-nige Informationen für LATEX-Neulinge zu finden sind. Insbesondere ist dieser Teil mit vielenBeispielen angereichert, die dem reinen Anwender zur Verdeutlichung der Erklärungen dienensollen. Scheuen Sie sich nicht, diese Beispiele selbst auszuprobieren und durch Abwandlungherauszufinden, wie KOMA-Script funktioniert. Trotz allem ist diese Anleitung jedoch kei-ne Einführung in LATEX. LATEX-Neulingen seien daher Dokumente wie [DGS+12] nahegelegt.Wiedereinsteigern aus der Zeit von LATEX 2.09 sei zumindest [Tea05b] empfohlen. Auch dasStudium des einen oder anderen Buches zu LATEX wird empfohlen. Literaturempfehlungen fin-den sich beispielsweise in [Wik]. Der Umfang von [Wik] ist ebenfalls erheblich. Dennoch wirddarum gebeten, sich einen groben Überblick darüber zu verschaffen und es bei Problemenebenso wie diese Anleitung zu konsultieren.Teil II richtet sich an fortgeschrittene KOMA-Script-Anwender. Das sind all diejenigen, die

sich bereits mit LATEX auskennen oder schon einige Zeit mit KOMA-Script gearbeitet habenund jetzt etwas besser verstehen wollen, wie KOMA-Script funktioniert, wie es mit anderenPaketen interagiert und wie man speziellere Aufgaben mit KOMA-Script lösen kann. Dazu wer-den die Klassenbeschreibungen aus Teil I in einigen Aspekten nochmals aufgegriffen und nähererläutert. Dazu kommt die Dokumentation von Anweisungen, die speziell für fortgeschritteneAnwender und Experten vorgesehen sind. Ergänzt wird dies durch die Dokumentation vonPaketen, die für den Anwender normalerweise insofern verborgen sind, als sie unter der Ober-fläche der Klassen und Anwenderpakete ihre Arbeit verrichten. Diese Pakete sind ausdrücklichauch für die Verwendung durch andere Klassen- und Paketautoren vorgesehen.Der Anhang, der nur in der Buchfassung zu finden ist, richtet sich an diejenigen, denen all

diese Informationen nicht genügen. Es gibt dort zum einen Hintergrundwissen zu Fragen derTypografie, mit denen dem fortgeschrittenen Anwender eine Grundlage für fundierte eigeneEntscheidungen vermittelt werden soll. Darüber hinaus sind dort Beispiele für angehendePaketautoren zu finden. Diese Beispiele sind weniger dazu gedacht, einfach übernommen zuwerden. Vielmehr sollen sie Wissen um Planung und Durchführung von LATEX-Projekten sowieeinige grundlegende LATEX-Anweisungen für Paketautoren vermitteln.

Die Kapitel-Einteilung der Anleitung soll ebenfalls dabei helfen, nur die Teile lesen zu müs-sen, die tatsächlich von Interesse sind. Um dies zu erreichen, sind die Informationen zu deneinzelnen Klassen und Paketen nicht über das gesamte Dokument verteilt, sondern jeweils ineinem Kapitel konzentriert. Querverweise in ein anderes Kapitel sind damit in der Regel auchVerweise auf einen anderen Teil des Gesamtpakets. Da die drei Hauptklassen in weiten Teilenübereinstimmen, sind sie in einem gemeinsamen Kapitel zusammengefasst. Die Unterschiedewerden deutlich hervorgehoben, soweit sinnvoll auch durch eine entsprechende Randnotiz. Diesgeschieht beispielsweise wie hier, wenn etwas nur die Klasse scrartcl betrifft. Nachteil diesesscrartclVorgehens ist, dass diejenigen, die KOMA-Script insgesamt kennenlernen wollen, in einigenKapiteln auf bereits Bekanntes stoßen werden. Vielleicht nutzen Sie die Gelegenheit, um IhrWissen zu vertiefen.Unterschiedliche Schriftarten werden auch zur Hervorhebung unterschiedlicher Dinge ver-

Kapitel 1: Einleitung 22

wendet. So werden die Namen von Paketen und Klassen anders angezeigt als Dateinamen.Optionen, \Anweisungen, Umgebungen, Variablen und Pseudolängen werden einheitlich her-vorgehoben. Der Platzhalter für einen Parameter wird jedoch anders dargestellt als einkonkreter Wert eines Parameters. So zeigt etwa \begin{Umgebung }, wie eine Umgebung ganzallgemein eingeleitet wird, wohingegen \begin{document} angibt, wie die konkrete Umgebungdocument beginnt. Dabei ist dann document ein konkreter Wert für den Parameter Umgebungder Anweisung \begin.

1.3. Die Geschichte von KOMA-Script

Anfang der 1990er Jahre wurde Frank Neukam damit beauftragt, ein Vorlesungsskript zusetzen. Damals war noch LATEX 2.09 aktuell und es gab keine Unterscheidung nach Klassenund Paketen, sondern alles waren Stile (engl. styles). Die Standarddokumentstile erschienenihm für ein Vorlesungsskript nicht optimal und boten auch nicht alle Befehle und Umgebungen,die er benötigte.Zur selben Zeit beschäftigte sich Frank auch mit Fragen der Typografie, insbesondere mit

[Tsc87]. Damit stand für ihn fest, nicht nur irgendeinen Dokumentstil für Skripten zu erstellen,sondern allgemein eine Stilfamilie, die den Regeln der europäischen Typografie folgt. Script wargeboren.Der KOMA-Script-Autor traf auf Script ungefähr zum Jahreswechsel 1992/1993. Im Ge-

gensatz zu Frank Neukam hatte er häufig mit Dokumenten im A5-Format zu tun. Zu jenemZeitpunkt wurde A5 weder von den Standardstilen noch von Script unterstützt. Daher dauertees nicht lange, bis er erste Veränderungen an Script vornahm. Diese fanden sich auch in Script-2wieder, das im Dezember 1993 von Frank veröffentlicht wurde.Mitte 1994 erschien dann LATEX2ε. Die damit einhergehenden Änderungen waren tiefgrei-

fend. Daher blieb dem Anwender von Script-2 nur die Entscheidung, sich entweder auf denKompatibilitätsmodus von LATEX zu beschränken oder auf Script zu verzichten. Wie vieleandere wollte ich beides nicht. Also machte der KOMA-Script-Autor sich daran, einen Script-Nachfolger für LATEX2ε zu entwickeln, der am 7. Juli 1994 unter dem Namen KOMA-Scripterschienen ist. Ich will hier nicht näher auf die Wirren eingehen, die es um die offizielle Nach-folge von Script gab und warum dieser neue Name gewählt wurde. Tatsache ist, dass auchaus Franks Sicht KOMA-Script der Nachfolger von Script-2 ist. Zu erwähnen ist noch, dassKOMA-Script ursprünglich ohne Briefklasse erschienen war. Diese wurde im Dezember 1994von Axel Kielhorn beigesteuert. Noch etwas später erstellte Axel Sommerfeldt den erstenrichtigen scrguide zu KOMA-Script.Seither ist einige Zeit vergangen. LATEX hat sich kaum verändert, die LATEX-Landschaft

erheblich. KOMA-Script wurde weiterentwickelt. Es findet nicht mehr allein im deutschspra-chigen Raum Anwender, sondern in ganz Europa, Nordamerika, Australien und Asien. DieseAnwender suchen bei KOMA-Script nicht allein nach einem typografisch ansprechenden Ergeb-nis. Zu beobachten ist vielmehr, dass bei KOMA-Script ein neuer Schwerpunkt entstanden ist:

Kapitel 1: Einleitung 23

Flexibilisierung durch Variabilisierung. Unter diesem Schlagwort verstehe ich die Möglichkeit,in das Erscheinungsbild an vielen Stellen eingreifen zu können. Dies führte zu vielen neuenMakros, die mehr schlecht als recht in die ursprüngliche Dokumentation integriert wurden.Irgendwann wurde es damit auch Zeit für eine komplett überarbeitete Anleitung.

1.4. Danksagung

Mein persönlicher Dank gilt Frank Neukam, ohne dessen Script-Familie es vermutlich KOMA-Script nie gegeben hätte. Mein Dank gilt denjenigen, die an der Entstehung von KOMA-Scriptund den Anleitungen mitgewirkt haben. Dieses Mal danke ich Elke, Jana, Ben und Edoardostellvertretend für Beta-Test und Kritik. Ich hoffe, ihr macht damit noch weiter.Ganz besonderen Dank bin ich den Gründern und den Mitgliedern von DANTE, Deutsch-

sprachige Anwendervereinigung TEX e.V., schuldig, durch die letztlich die Verbreitung vonTEX und LATEX und allen Paketen einschließlich KOMA-Script an einer zentralen Stelle über-haupt ermöglicht wird. In gleicher Weise bedanke ich mich bei den aktiven Helfern auf derMailingliste TEX-D-L (siehe [Wik])m in der Usenet-Gruppe de.comp.text.tex und den vielenLATEX-Foren im Internet, die mir so manche Antwort auf Fragen zu KOMA-Script abnehmen.Mein Dank gilt aber auch allen, die mich immer wieder aufgemuntert haben, weiter zu

machen und dieses oder jenes noch besser, weniger fehlerhaft oder schlicht zusätzlich zu im-plementieren. Ganz besonders bedanke ich mich noch einmal bei dem äußerst großzügigenSpender, der mich mit dem bisher und vermutlich für alle Zeiten größten Einzelbetrag für diebisher geleistete Arbeit an KOMA-Script bedacht hat.

1.5. Rechtliches

KOMA-Script steht unter der LATEX Project Public Licence. Eine nicht offizielle deutscheÜbersetzung ist Bestandteil des KOMA-Script-Pakets. In allen Zweifelsfällen gilt im deutsch-sprachigen Raum der Text lppl-de.txt, während in allen anderen Ländern der Text lppl.txtanzuwenden ist.Für die Korrektheit der Anleitung, Teile der Anleitung oder einer anderen in diesem Paket

enthaltenen Dokumentation wird keine Gewähr übernommen.

1.6. Installation

Die drei wichtigsten TEX-Distributionen, MacTEX, MiKTEX und TEX Live, stellen KOMA-Script über ihre jeweiligen Paketverwaltungen bereit. Es wird empfohlen, die Installati-on und Aktualisierung von KOMA-Script darüber vorzunehmen. Die manuelle Installati-on von KOMA-Script ohne Verwendung der jeweiligen Paketverwaltung wird in der DateiINSTALLD.txt, die Bestandteil jeder KOMA-Script-Verteilung ist, beschrieben. Beachten Siedazu auch die jeweilige Dokumentation zur installierten TEX-Distribution.

Kapitel 1: Einleitung 24

Daneben gibt es auf [KDP] seit einiger Zeit Installationspakete von Zwischenversionen vonKOMA-Script für die wichtigsten Distributionen. Für deren Installation ist die dortige Anlei-tung zu beachten.

1.7. Fehlermeldungen, Fragen, Probleme

Sollten Sie der Meinung sein, dass Sie einen Fehler in der Anleitung, einer der KOMA-Script-Klassen, einem der KOMA-Script-Pakete oder einem anderen Bestandteil von KOMA-Scriptgefunden haben, so sollten Sie wie folgt vorgehen. Prüfen Sie zunächst, ob inzwischen eine neueVersion von KOMA-Script erschienen ist. Installieren Sie diese neue Version und kontrollierenSie, ob der Fehler oder das Problem auch dann noch vorhanden ist.Wenn es sich nicht um einen Fehler in der Dokumentation handelt und der Fehler oder das

Problem nach einem Update noch immer auftritt, erstellen Sie bitte, wie in [Wik] angegeben,ein minimales Beispiel. Gehen Sie dazu wie unten beschrieben vor. Oft lässt sich ein Problemdurch ein minimales Beispiel so weit eingrenzen, dass bereits vom Anwender selbst festgestelltwerden kann, ob es sich um einen Anwendungsfehler handelt oder nicht. Auch ist so sehr häufigzu erkennen, welche Pakete oder Klassen konkret das Problem verursachen und ob es sichüberhaupt um ein KOMA-Script-Problem handelt. Dies können Sie gegebenenfalls zusätzlichüberprüfen, indem Sie statt einer KOMA-Script-Klasse einen Test mit der entsprechendenStandardklasse vornehmen. Danach ist dann auch klar, ob der Fehlerbericht an den Autor vonKOMA-Script oder an den Autor eines anderen Pakets zu richten ist. Sie sollten spätestensjetzt noch einmal gründlich die Anleitungen der entsprechenden Paket, Klassen und KOMA-Script-Bestandteile studieren sowie [Wik] konsultieren. Möglicherweise existiert ja bereits eineLösung für Ihr Problem, so dass sich eine Fehlermeldung erübrigt.Wenn Sie denken, dass Sie einen noch unbekannten Fehler gefunden haben, oder es aus an-

derem Grund für sinnvoll oder notwendig erachten, den KOMA-Script-Autor zu kontaktieren,so sollten Sie dabei folgende Angaben keinesfalls vergessen:

• Tritt das Problem auch auf, wenn statt einer KOMA-Script-Klasse eine Standardklasseverwendet wird? In dem Fall liegt der Fehler höchst wahrscheinlich nicht bei KOMA-Script. Es ist dann sinnvoller, die Frage in einem öffentlichen Forum, einer Mailinglisteoder im Usenet zu stellen.

• Welche KOMA-Script-Version verwenden Sie? Entsprechende Informationen finden Siein der log-Datei des LATEX-Laufs jedes Dokuments, das eine KOMA-Script-Klasse ver-wendet.

• Welches Betriebssystem und welche TEX-Distribution wird verwendet? Diese Angabenerscheinen bei einem bestriebssystemunabhängigen Paket wie KOMA-Script oder LATEXeher überflüssig. Es zeigt sich aber immer wieder, dass sie durchaus eine Rolle spielenkönnen.

Kapitel 1: Einleitung 25

• Was genau ist das Problem oder der Fehler? Beschreiben Sie das Problem oder denFehler lieber zu ausführlich als zu knapp. Oftmals ist es sinnvoll auch die Hintergründezu erläutern.

• Wie sieht ein vollständiges Minimalbeispiel aus? Ein solches vollständiges Minimalbei-spiel kann jeder leicht selbst erstellen, indem Schritt für Schritt Inhalte und Pakete ausdem Problemdokument auskommentiert werden. Am Ende bleibt ein Dokument, das nurdie Pakete lädt und nur die Teile enthält, die für das Problem notwendig sind. Außerdemsollten alle geladenen Abbildungen durch \rule-Anweisungen entsprechender Größe er-setzt werden. Vor dem Verschicken entfernt man nun die auskommentierten Teile, fügtals erste Zeile die Anweisung \listfiles ein und führt einen weiteren LATEX-Lauf durch.Man erhält dann am Ende der log-Datei eine Übersicht über die verwendeten Pakete.Das vollständige Minimalbeispiel und die log-Datei fügen Sie ihrer Beschreibung hinzu.

Schicken Sie keine Pakete, PDF- oder PS- oder DVI-Dateien mit. Falls die gesamte Problem-oder Fehlerbeschreibung einschließlich Minimalbeispiel und log-Datei größer als ein paar Dut-zend KByte ist, haben Sie mit größter Wahrscheinlichkeit etwas falsch gemacht. Anderenfallsschicken Sie Ihre Mitteilung an [email protected]äufig werden Sie eine Frage zu KOMA-Script oder im Zusammenhang mit KOMA-Script

lieber öffentlich, beispielsweise in de.comp.text.tex oder dem Forum auf [KDP], stellen wol-len. Auch in diesem Fall sollten Sie obige Punkte beachten, in der Regel jedoch auf die log-Datei verzichten. Fügen Sie stattdessen nur die Liste der Pakete und Paketversionen aus derlog-Datei an. Im Falle einer Fehlermeldung zitieren Sie diese ebenfalls aus der log-Datei.Bitte beachten Sie, dass typografisch nicht optimale Voreinstellungen keine Fehler darstel-

len. Aus Gründen der Kompatibilität werden Voreinstellungen nach Möglichkeit auch in neu-en KOMA-Script-Versionen beibehalten. Darüber hinaus ist Typografie auch eine Frage derSprache und Kultur. Die Voreinstellungen von KOMA-Script stellen daher zwangsläufig einenKompromiss dar.

1.8. Weitere Informationen

Sobald Sie im Umgang mit KOMA-Script geübt sind, werden Sie sich möglicherweise Bei-spiele zu schwierigeren Aufgaben wünschen. Solche Beispiele gehen über die Vermittlung vonGrundwissen hinaus und sind daher nicht Bestandteil dieser Anleitung. Auf den Internetseitendes KOMA-Script Documentation Projects [KDP] finden Sie jedoch weiterführende Beispiele.Diese sind für fortgeschrittene LATEX-Anwender konzipiert. Für Anfänger sind sie wenig odernicht geeignet.

Teil I.

KOMA-Script für Autoren

In diesem Teil sind die Informationen für die Autoren von Artikeln, Berichten, Büchern undBriefen zu finden. Dabei wird davon ausgegangen, dass der normale Anwender sich wenigerdafür interessiert, wie in KOMA-Script die Dinge implementiert sind und wo die Schwierigkei-ten dabei liegen. Auch ist es für den normalen Anwender wenig interessant, welche obsoletenOptionen und Anweisungen noch enthalten sind. Er will wissen, wie er aktuell etwas erreichenkann. Eventuell ist er noch an typografischen Hintergrundinformationen interessiert.Die wenigen Passagen, die weiterführende Informationen und Begründungen enthalten und

deshalb für ungeduldige Leser weniger von Interesse sind, wurden in diesem Teil in serifen-loser Schrift gesetzt und können bei Bedarf übersprungen werden. Wer hingegen noch mehrInformationen zu Hintergründen der Implementierung, Nebenwirkungen bei Verwendung an-derer Pakete und zu obsoleten Optionen oder Anweisungen sucht, sei auf Teil II ab Seite 338verwiesen. Darüber hinaus beschäftigt sich jener Teil von KOMA-Script auch mit all denMöglichkeiten, die speziell für Autoren von Paketen und Klassen geschaffen wurden.

Kapitel 2: Satzspiegelberechnung mit typearea.sty 27

Satzspiegelberechnung mit typearea.sty

Viele LATEX-Klassen, darunter auch die Standardklassen, bieten dem Anwender eine weitge-hend feste Aufteilung von Rändern und Textbereich. Bei den Standardklassen ist die konkreteAufteilung in engen Grenzen von der gewählten Schriftgröße abhängig. Darüber hinaus gibtes Pakete wie geometry (siehe [Ume10]), die dem Anwender die volle Kontrolle, aber auch dieVerantwortung für die Einstellungen des Textbereichs und der Ränder überlassen.KOMA-Script geht mit dem Paket typearea einen etwas anderen Weg. Hier werden basierend

auf einer in der Typografie etablierten Konstruktion Einstellmöglichkeiten und Automatismengeboten, die es dem Anwender erleichtern, eine gute Wahl zu treffen.

2.1. Grundlagen der Satzspiegelkonstruktion

Betrachtet man eine einzelne Seite eines Buches oder eines anderen Druckwerkes, so besteht dieseauf den ersten Blick aus den Rändern, einem Kopfbereich, einem Textkörper und einem Fußbereich.Genauer betrachtet, kommt noch ein Abstand zwischen Kopfbereich und Textkörper sowie zwischenTextkörper und Fußbereich hinzu. Der Textkörper heißt in der Fachsprache der Typografen undSetzer Satzspiegel. Die Aufteilung dieser Bereiche sowie ihre Anordnung zueinander und auf demPapier nennen wir Satzspiegeldefinition oder Satzspiegelkonstruktion.In der Literatur werden verschiedene Algorithmen und heuristische Verfahren zur Konstruktion

eines guten Satzspiegels vorgeschlagen und diskutiert [Koh02]. Häufig findet man ein Verfahren,das mit verschiedenen Diagonalen und deren Schnittpunkten arbeitet. Das gewünschte Ergebnisist, dass das Seitenverhältnis des Satzspiegels dem Seitenverhältnis der Seite entspricht. Bei einemeinseitigen Dokument sollen außerdem der linke und der rechte Rand gleich breit sein, währendder obere zum unteren Rand im Verhältnis 1:2 stehen sollte. Bei einem doppelseitigen Dokument,beispielsweise einem Buch, ist hingegen zu beachten, dass der gesamte innere Rand genauso großsein sollte wie jeder der beiden äußeren Ränder. Eine einzelne Seite steuert dabei jeweils nur dieHälfte des inneren Randes bei.Im vorherigen Absatz wurde die Seite erwähnt und hervorgehoben. Irrtümlich wird oftmals an-

genommen, das Format der Seite wäre mit dem Format des Papiers gleichzusetzen. Betrachtetman jedoch ein gebundenes Druckerzeugnis, so ist zu erkennen, dass ein Teil des Papiers in derBindung verschwindet und nicht mehr als Seite zu sehen ist. Für den Satzspiegel ist jedoch nichtentscheidend, welches Format das Papier hat, sondern, was der Leser für einen Eindruck vom For-mat der Seite bekommt. Damit ist klar, dass bei der Berechnung des Satzspiegels der Teil, derdurch die Bindung versteckt wird, aus dem Papierformat herausgerechnet und dann zum innerenRand hinzugefügt werden muss. Wir nennen diesen Teil Bindekorrektur. Die Bindekorrektur ist alsorechnerischer Bestandteil des Bundstegs, nicht jedoch des sichtbaren inneren Randes.Die Bindekorrektur ist vom jeweiligen Produktionsvorgang abhängig und kann nicht allgemein

festgelegt werden. Es handelt sich dabei also um einen Parameter, der für jeden Produktionsvorgang

Kapitel 2: Satzspiegelberechnung mit typearea.sty 28

neu festzulegen ist. Im professionellen Bereich spielt dieser Wert nur eine geringe Rolle, da ohnehinauf größere Papierbögen gedruckt und entsprechend geschnitten wird. Beim Schneiden wird dannwiederum sichergestellt, dass obige Verhältnisse für die sichtbare Doppelseite eingehalten sind.Wir wissen nun also, wie die einzelnen Teile zueinander stehen. Wir wissen aber noch nicht, wie

breit und hoch der Satzspiegel ist. Kennen wir eines dieser beiden Maße, so ergeben sich zusammenmit dem Papierformat und dem Seitenformat oder der Bindekorrektur alle anderen Maße durchLösung mehrerer mathematischer Gleichungen:

Satzspiegelhöhe : Satzspiegelbreite = Seitenhöhe : Seitenbreiteoberer Rand : unterer Rand = 1 : 2linker Rand : rechter Rand = 1 : 1

innerer Randanteil : äußerer Rand = 1 : 2Seitenbreite = Papierbreite− Bindekorrektur

oberer Rand + unterer Rand = Seitenhöhe− Satzspiegelhöhelinker Rand + rechter Rand = Seitenbreite− Satzspiegelbreite

innerer Randanteil + äußerer Rand = Seitenbreite− Satzspiegelbreiteinnerer Randanteil + Bindekorrektur = Bundsteg

Dabei gibt es linker Rand und rechter Rand nur im einseitigen Druck. Entsprechend gibt esinnerer Randanteil und äußerer Rand nur im doppelseitigen Druck.

In den Gleichungen wird mit innerer Randanteil gearbeitet, weil der komplette innere Rand einElement der vollständigen Doppelseite ist. Zu einer Seite gehört also nur die Hälfte des innerenRandes: innerer Randanteil.

Die Frage nach der Breite des Satzspiegels wird in der Literatur ebenfalls diskutiert. Die optimaleSatzspiegelbreite ist von verschiedenen Faktoren abhängig:

• Größe, Laufweite und Art der verwendeten Schrift,

• verwendeter Durchschuss,

• Länge der Worte,

• verfügbarer Platz.

Der Einfluss der Schrift wird deutlich, wenn man sich bewusst macht, wozu Serifen dienen. Serifensind kleine Striche an den Linienenden der Buchstaben. Buchstaben, die mit vertikalen Linien aufdie Grundlinie der Textzeile treffen, lösen diese eher auf, als dass sie das Auge auf der Linie halten.Genau bei diesen Buchstaben liegen die Serifen horizontal auf der Grundlinie und verstärken damitdie Zeilenwirkung der Schrift. Das Auge kann der Textzeile nicht nur beim Lesen der Worte, sonderninsbesondere auch beim schnellen Zurückspringen an den Anfang der nächsten Zeile besser folgen.

Kapitel 2: Satzspiegelberechnung mit typearea.sty 29

Damit darf die Zeile bei einer Schrift mit Serifen genau genommen länger sein als bei einer Schriftohne Serifen.Unter dem Durchschuss versteht man den Abstand zwischen Textzeilen. Bei LATEX ist ein Durch-

schuss von etwa 20% der Schriftgröße voreingestellt. Mit Befehlen wie \linespread oder bessermit Hilfe von Paketen wie setspace (siehe [TF11]) kann der Durchschuss verändert werden. Eingroßer Durchschuss erleichtert dem Auge die Verfolgung einer Zeile. Bei sehr großem Durchschusswird das Lesen aber dadurch gestört, dass das Auge zwischen den Zeilen weite Wege zurücklegenmuss. Daneben wird sich der Leser des entstehenden Streifeneffekts sehr deutlich und unange-nehm bewusst. Der Graueindruck der Seite ist in diesem Fall gestört. Dennoch dürfen bei großemDurchschuss die Zeilen länger sein.Auf der Suche nach konkreten Werten für gute Zeilenlängen findet man in der Literatur je nach

Autor unterschiedliche Angaben. Teilweise ist dies auch in der Muttersprache des Autors begrün-det. Das Auge springt nämlich üblicherweise von Wort zu Wort, wobei kurze Wörter diese Aufgabeerleichtern. Über alle Sprachen und Schriftarten hinweg kann man sagen, dass eine Zeilenlängevon 60 bis 70 Zeichen, einschließlich Leer- und Satzzeichen, einen brauchbaren Kompromiss dar-stellt. Ein gut gewählter Durchschuss wird dabei vorausgesetzt. Bei den Voreinstellungen von LATEXbraucht man sich über Letzteres normalerweise keine Sorgen zu machen. Größere Zeilenlängen darfman nur Gewohnheitslesern zumuten, die täglich viele Stunden lesend zubringen. Aber auch dannsind Zeilenlängen jenseits von 80 Zeichen unzumutbar. In jedem Fall ist dann der Durchschussanzupassen. 5% bis 10% zusätzlich sind dabei als Faustregel empfehlenswert. Bei Schriften wiePalatino, die bereits bei einer normalen Zeilenlänge nach 5% mehr Durchschuss verlangt, könnenes auch mehr sein.Bevor wir uns an die konkrete Konstruktion machen, fehlen jetzt nur noch Kleinigkeiten, die

man wissen sollte. LATEX beginnt die erste Zeile des Textbereichs einer Seite nicht am oberen Randdes Textbereichs, sondern setzt die Grundlinie der Zeile mit einem definierten Mindestabstand zumoberen Rand des Textbereichs. Des Weiteren verfügt LATEX über die beiden Befehle \raggedbottomund \flushbottom. Der erste dieser Befehle legt fest, dass die letzte Zeile einer jeden Seite dortliegen soll, wo sie eben zu liegen kommt. Das kann dazu führen, dass sich die Position der letztenZeile von Seite zu Seite vertikal um nahezu eine Zeile verändern kann – bei Zusammentreffen desSeitenendes mit Überschriften, Abbildungen, Tabellen oder Ähnlichem auch mehr. Im doppelseiti-gen Druck ist das in der Regel unerwünscht. Mit dem zweiten Befehl, \flushbottom, wird hingegenfestgelegt, dass die letzte Zeile immer am unteren Rand des Textbereichs zu liegen kommt. Umdiesen vertikalen Ausgleich zu erreichen, muss LATEX gegebenenfalls dehnbare vertikale Abständeüber das erlaubte Maß hinaus strecken. Ein solcher Abstand ist beispielsweise der Absatzabstand.Dies gilt in der Regel auch, wenn man gar keinen Absatzabstand verwendet. Um nicht bereitsauf normalen Seiten, auf denen der Absatzabstand das einzige dehnbare vertikale Maß darstellt,eine Dehnung zu erzwingen, sollte die Höhe des Textbereichs ein Vielfaches der Textzeilenhöhezuzüglich des Abstandes der ersten Zeile vom oberen Rand des Textbereichs sein.Soweit die Grundlagen. In den folgenden beiden Abschnitten werden die von KOMA-Script

angebotenen Konstruktionen im Detail vorgestellt.

Kapitel 2: Satzspiegelberechnung mit typearea.sty 30

Abbildung 2.1.: Doppelseite mitder Rasterkonstruktion für dieklassische Neunerteilung nachAbzug einer Bindekorrektur

Bindekorrektur

Satzspiegel links Satzspiegel rechts

9

8

7

6

5

4

3

2

1 987654321

9

8

7

6

5

4

3

2

19 8 7 6 5 4 3 2

2.2. Satzspiegelkonstruktion durch Teilung

Der einfachste Weg, um zu erreichen, dass der Textbereich dasselbe Seitenverhältnis aufweist wiedie Seite, ist folgender:

• Zunächst zieht man an der Innenseite des Papiers den Teil BCOR, der für die Bindekorrekturbenötigt wird, ab und teilt die restliche Seite vertikal in eine Anzahl DIV gleich hoher Streifen.

• Dann teilt man die Seite horizontal in die gleiche Anzahl DIV gleich breiter Streifen.

• Nun verwendet man den obersten horizontalen Streifen als oberen und die beiden unterstenhorizontalen Streifen als unteren Rand. Im doppelseitigen Druck verwendet man außerdemden innersten vertikalen Streifen als inneren und die beiden äußersten vertikalen Streifen alsäußeren Rand.

• Zum inneren Rand gibt man dann noch BCOR hinzu.

Was nun innerhalb der Seite noch übrig bleibt, ist der Textbereich. Die Breite bzw. Höhe derRänder und des Textbereichs resultiert damit automatisch aus der Anzahl DIV der Streifen. Dafür die Ränder insgesamt jeweils drei Streifen benötigt werden, muss DIV zwingend größer als dreisein. Damit der Satzspiegel horizontal und vertikal jeweils mindestens doppelt so viel Platz wie dieRänder einnimmt, sollte DIV sogar mindestens 9 betragen. Mit diesem Wert ist die Konstruktionauch als klassische Neunerteilung bekannt (siehe Abbildung 2.1).

Bei KOMA-Script ist diese Art der Konstruktion im Paket typearea realisiert, wobei der untereRand weniger als eine Textzeile kleiner ausfallen kann, um die im vorherigen Abschnitt erwähnte

Kapitel 2: Satzspiegelberechnung mit typearea.sty 31

Nebenbedingung für die Satzspiegelhöhe einzuhalten und damit die dort erwähnte Problematikin Bezug auf \flushbottom zu mindern. Dabei sind für A4-Papier je nach Schriftgröße unter-schiedliche Werte für DIV voreingestellt, die Tabelle 2.2, Seite 37 zu entnehmen sind. Bei Verzichtauf Bindekorrektur, wenn also BCOR = 0pt gilt, ergeben sich in etwa die Satzspiegelmaße ausTabelle 2.1, Seite 36.Neben den voreingestellten Werten kann man BCOR und DIV direkt beim Laden des Pakets als

Option angeben (siehe Abschnitt 2.6 ab Seite 34). Zusätzlich existiert ein Befehl, mit dem maneinen Satzspiegel explizit berechnen kann und dem man die beiden Werte als Parameter übergibt(siehe ebenfalls Abschnitt 2.6, Seite 41).Das typearea-Paket bietet außerdem die Möglichkeit, den optimalen DIV-Wert automatisch zu

bestimmen. Dieser ist von der Schrift und dem Durchschuss abhängig, der zum Zeitpunkt derSatzspiegelberechnung eingestellt ist. Siehe hierzu ebenfalls Abschnitt 2.6, Seite 37).

2.3. Satzspiegelkonstruktion durch Kreisschlagen

Neben der zuvor beschriebenen Satzspiegelkonstruktion gibt es in der Literatur noch eine eherklassische oder sogar mittelalterliche Methode. Bei diesem Verfahren will man die gleichen Wertenicht nur in Form des Seitenverhältnisses wiederfinden; man geht außerdem davon aus, dass dasOptimum dann erreicht wird, wenn die Höhe des Textbereichs der Breite der Seite entspricht. Dasgenaue Verfahren ist beispielsweise in [Tsc87] nachzulesen.Als Nachteil dieses spätmittelalterlichen Buchseitenkanons ergibt sich, dass die Breite des Text-

bereichs nicht mehr von der Schriftart abhängt. Es wird also nicht mehr der zur Schrift passendeTextbereich gewählt, stattdessen muss der Autor oder Setzer unbedingt die zum Textbereich pas-sende Schrift wählen. Dies ist als zwingend zu betrachten.Im typearea-Paket wird diese Konstruktion dahingehend abgewandelt, dass durch Auswahl eines

ausgezeichneten – normalerweise unsinnigen – DIV-Wertes oder einer speziellen, symbolischen An-gabe derjenige DIV-Wert ermittelt wird, bei dem der resultierende Satzspiegel dem spätmittelalterli-chen Buchseitenkanon am nächsten kommt. Es wird also wiederum auf die Satzspiegelkonstruktiondurch Teilung zurückgegriffen.

2.4. Frühe oder späte Optionenwahl

In diesem Abschnitt wird eine Besonderheit von KOMA-Script vorgestellt, die neben typeareaauch andere KOMA-Script-Pakete und -Klassen betrifft. Damit die Anwender alle Informa-tionen zu einem Paket oder einer Klasse im jeweiligen Kapitel finden, ist dieser Abschnittnahezu gleichlautend in mehreren Kapiteln zu finden. Anwender, die nicht nur an der Anlei-tung zu einem Paket oder einer Klasse interessiert sind, sondern sich einen Gesamtüberblicküber KOMA-Script verschaffen wollen, brauchen diesen Abschnitt nur in einem der Kapitelzu lesen und können ihn beim weiteren Studium der Anleitung dann überspringen.

Kapitel 2: Satzspiegelberechnung mit typearea.sty 32

\documentclass[Optionenliste ]{KOMA-Script-Klasse }\usepackage[Optionenliste ]{Paket-Liste }

Bei LATEX ist vorgesehen, dass Anwender Klassenoptionen in Form einer durch Komma ge-trennten Liste einfacher Schlüsselwörter als optionales Argument von \documentclass ange-ben. Außer an die Klasse werden diese Optionen auch an alle Pakete weitergereicht, die dieseOptionen verstehen. Ebenso ist vorgesehen, dass Anwender Paketoptionen in Form einer durchKomma getrennten Liste einfacher Schlüsselwörter als optionales Argument von \usepackageangeben. KOMA-Script erweitertv3.00 den Mechanismus der Optionen für die KOMA-Script-Klassen und einige Pakete um weitere Möglichkeiten. So haben die meisten Optionen beiKOMA-Script zusätzlich einen Wert. Eine Option hat also nicht unbedingt nur die FormOption , sondern kann auch die Form Option =Wert haben. Bis auf diesen Unterschied arbei-ten \documentclass und \usepackage bei KOMA-Script wie in [Tea05b] oder jeder LATEX-Einführung, beispielsweise [DGS+12], beschrieben.

Bei Verwendung einer KOMA-Script-Klasse sollten im Übrigen beim Laden des Paketstypearea oder scrbase keine Optionen angegeben werden. Das ist darin begründet, dass dieKlasse diese Pakete bereits ohne Optionen lädt und LATEX das mehrmalige Laden eines Paketsmit unterschiedlicher Angabe von Optionen verweigert.Das Setzen der Optionen mit \documentclass hat übrigens einen entscheidenden Nach-

teil: Anweisungen, Längen, Zähler und ähnliches können darin leicht zerbrechen. So führt dieVerwendung einer LATEX-Länge im Wert einer Option bei dieser Anweisung bei vielen Nicht-KOMA-Script-Klassen zu einer Fehlermeldung, noch bevor der Wert an ein KOMA-Script-Paket übergeben wird, es also die Kontrolle darüber übernehmen könnte. Wertzuweisungenmit LATEX-Längen oder LATEX-Zählern sollten daher nie per \documentclass, sondern mitden nachfolgend dokumentierten Anweisungen \KOMAoptions oder \KOMAoption vorgenom-men werden.

\KOMAoptions{Optionenliste }\KOMAoption{Option }{Werteliste }

KOMA-Scriptv3.00 bietet bei den meisten Klassen- und Paketoptionen auch die Möglichkeit, denWert der Optionen noch nach dem Laden der Klasse beziehungsweise des Pakets zu ändern.Mit der Anweisung \KOMAoptions kann man wie bei \documentclass oder \usepackage dieWerte einer Reihe von Optionen ändern. Jede Option der Optionenliste hat dabei die FormOption =Wert .

Einige Optionen besitzen auch einen Säumniswert (engl. default value). Versäumt man dieAngabe eines Wertes, verwendet man die Option also einfach in der Form Option , so wirdautomatisch dieser Säumniswert angenommen.Manche Optionen können gleichzeitig mehrere Werte besitzen. Für solche Optionen besteht

die Möglichkeit, mit \KOMAoption der einen Option nacheinander eine Reihe von Wertenzuzuweisen. Die einzelnen Werte sind dabei in der Werteliste durch Komma voneinandergetrennt.

Kapitel 2: Satzspiegelberechnung mit typearea.sty 33

Soll ein Wert ein Gleichheitszeichen oder ein Komma enthalten, so ist der Wert in geschweif-te Klammern zu setzen.KOMA-Script bedient sich für die Realisierung dieser Möglichkeit der Anweisungen

\FamilyOptions und \FamilyOption mit der Familie »KOMA«. Näheres zu diesen Anweisungenfinden fortgeschrittene Anwender in Abschnitt 12.2 ab Seite 345.Mit \KOMAoptions oder \KOMAoption gesetzte Optionen erreichen sowohl die KOMA-Script-

Klasse als auch alle bereits geladenen KOMA-Script-Pakete, die diese Optionen kennen. Isteine Option oder ein Wert insgesamt unbekannt, so wird die Option einschließlich des Wertesvon scrbase als fehlerhaft gemeldet.

2.5. Kompatibilität zu früheren Versionen von KOMA-Script

Wer seine Dokumente im Quellcode archiviert, legt in der Regel allergrößten Wert darauf, dassbei zukünftigen LATEX-Läufen immer wieder exakt dasselbe Ergebnis erzielt wird. In einigenFällen führen aber Verbesserungen und Korrekturen am Paket zu Änderungen im Verhalten,inbesondere beim Umbruch. Dies ist jedoch manchmal eher unerwünscht.

version=Wertversion=firstversion=last

Seitv2.96av2.9tv3.01b Version 3.01b besteht bei typearea die Wahl, ob eine Quelldatei, soweit irgend möglich,auch zukünftig bei einem LATEX-Lauf zu exakt demselben Ergebnis führen soll oder ob erjeweils entsprechend der Anpassungen der neusten Version zu setzen ist. Zu welcher VersionKompatibilität herzustellen ist, wird dabei über die Option version festgelegt. Kompatibilitätzur ältesten unterstützten KOMA-Script-Version kann mit version=first oder version=2.9oder version=2.9t erreicht werden. Bei Angabe einer unbekannten Version als Wert wird eineWarnung ausgegeben und sicherheitshalber version=first angenommen.Mit version=last kann die jeweils neuste Version ausgewählt werden. In diesem Fall wird

also auf rückwirkende Kompatibilität verzichtet. Wird die Option ohne Wertangabe verwendet,so wird ebenfalls last angenommen.v3.01a Dies entspricht auch der Voreinstellung, solange keineobsolete Option verwendet wird.Bei der Verwendung einer obsoleten Option von KOMA-Script 2 setzt KOMA-Script 3

automatisch version=first. In der dabei ausgegebenen Warnung wird erklärt, wie man dieseKompatibilitätsumschaltung verhindern kann. Alternativ kann man auch nach der obsoletenOption selbst eine abweichende Einstellung für Option version wählen.Die Frage der Kompatibilität betrifft in erster Linie Fragen des Umbruchs. Neue Möglich-

keiten, die sich nicht auf den Umbruch auswirken, sind auch dann verfügbar, wenn man perOption die Kompatibilität zu einer älteren Version ausgewählt hat. Die Option hat keine Aus-wirkungen auf Umbruchänderungen, die bei Verwendung einer neueren Version durch Beseiti-gung eindeutiger Fehler entstehen. Wer auch im Fehlerfall unbedingte Umbruchkompatibilität

Kapitel 2: Satzspiegelberechnung mit typearea.sty 34

benötigt, sollte stattdessen mit dem Dokument auch die verwendete KOMA-Script-Versionarchivieren.Es ist zu beachten, dass die Option version nach dem Laden des Pakets typearea nicht

mehr verändert werden kann. Das Setzen mit \KOMAoptions oder \KOMAoption ist dahernicht vorgesehen.

2.6. Einstellung des Satzspiegels und der Seitenaufteilung

Das Paket typearea bietet zwei unterschiedliche Benutzerschnittstellen, um auf die Satzspie-gelkonstruktion Einfluss zu nehmen. Die wichtigste Möglichkeit ist die Angabe von Optionen.Wie im vorherigen Abschnitt erwähnt, können die Optionen dabei auf unterschiedlichen Wegengesetzt werden.In diesem Abschnitt wird die Klasse protokol verwendet werden. Es handelt sich dabei nicht

um eine KOMA-Script-Klasse, sondern um eine hypothetische Klasse. Diese Anleitung gehtvon dem Idealfall aus, dass für jede Aufgabe eine dafür passende Klasse zur Verfügung steht.

BCOR=Korrektur

Mit Hilfe der Option BCOR=Korrekturv3.00 geben Sie den absoluten Wert der Bindekorrektur an,also die Breite des Bereichs, der durch die Bindung von der Papierbreite verloren geht. DieserWert wird in der Satzspiegelkonstruktion automatisch berücksichtigt und bei der Ausgabewieder dem inneren beziehungsweise linken Rand zugeschlagen. Als Korrektur können Siejede von TEX verstandene Maßeinheit angeben.

Beispiel: Angenommen, Sie erstellen einen Finanzbericht. Das Ganze soll einseitig in A4 ge-druckt und anschließend in eine Klemmmappe geheftet werden. Die Klemme derMappe verdeckt 7,5mm. Der Papierstapel ist sehr dünn, deshalb gehen beim Kni-cken und Blättern durchschnittlich höchstens weitere 0,75mm verloren. Sie schrei-ben dann also:\documentclass[a4paper]{report}\usepackage[BCOR=8.25mm]{typearea}

mit BCOR=8.25mm als Option für typearea oder\documentclass[a4paper,BCOR=8.25mm]{report}\usepackage{typearea}

zur Angabe von BCOR=8.25mm als globale Option.Bei Verwendung einer KOMA-Script-Klasse kann das explizite Laden von typeareaentfallen:\documentclass[BCOR=8.25mm]{scrreprt}

Kapitel 2: Satzspiegelberechnung mit typearea.sty 35

Die Option a4paper konnte bei scrreprt entfallen, da diese der Voreinstellung beiallen KOMA-Script-Klassen entspricht.Setzt man die Option erst später auf einen neuen Wert, verwendet man also bei-spielsweise\documentclass{scrreprt}\KOMAoptions{BCOR=8.25mm}

so werden bereits beim Laden der Klasse scrreprt Standardeinstellungen vorgenom-men. Beim Ändern der Einstellung mit Hilfe einer der Anweisung \KOMAoptionsoder \KOMAoption wird dann automatisch ein neuer Satzspiegel mit neuen Rand-einstellungen berechnet.

Bitte beachten Sie unbedingt, dass diese Option bei Verwendung einer der KOMA-Script-Klassen wie im Beispiel als Klassenoption oder per \KOMAoptions beziehungsweise\KOMAoption nach dem Laden der Klasse übergeben werden muss. Weder sollte das Pa-ket typearea bei Verwendung einer KOMA-Script-Klasse explizit per \usepackage geladen,noch die Option dabei als optionales Argument angegeben werden. Wird die Option per\KOMAoptions oder \KOMAoption nach dem Laden des Pakets geändert, so werden Satzspiegelund Ränder automatisch neu berechnet.

DIV=Faktor

Mit Hilfe der Option DIV=Faktorv3.00 wird festgelegt, in wie viele Streifen die Seite horizontalund vertikal bei der Satzspiegelkonstruktion eingeteilt wird. Die genaue Konstruktion ist Ab-schnitt 2.2 zu entnehmen. Wichtig zu wissen ist, dass gilt: Je größer der Faktor , desto größerwird der Textbereich und desto kleiner die Ränder. Als Faktor kann jeder ganzzahlige Wertab 4 verwendet werden. Bitte beachten Sie jedoch, dass sehr große Werte dazu führen kön-nen, dass Randbedingungen der Satzspiegelkonstruktion, je nach Wahl der weiteren Optionen,verletzt werden. So kann die Kopfzeile im Extremfall auch außerhalb der Seite liegen. Bei Ver-wendung der Option DIV=Faktor sind Sie für die Einhaltung der Randbedingungen sowie einenach typografischen Gesichtspunkten günstige Zeilenlänge selbst verantwortlich.In Tabelle 2.1 finden Sie für das Seitenformat A4 ohne Bindekorrektur die aus einigen DIV-

Faktoren resultierenden Satzspiegelgrößen. Dabei werden die weiteren von der Schriftgrößeabhängigen Nebenbedingungen nicht berücksichtigt.

Beispiel: Angenommen, Sie schreiben ein Sitzungsprotokoll. Sie verwenden dafür die Klasseprotokol. Das Ganze soll doppelseitig werden. In Ihrer Firma wird die SchriftartBookman in 12 pt verwendet. Diese Schriftart, die zu den Standard-PostScript-Schriften gehört, wird in LATEX mit der Anweisung \usepackage{bookman} akti-viert. Die Schriftart Bookman läuft sehr weit, das heißt, die einzelnen Zeichen sindim Verhältnis zur Höhe relativ breit. Deshalb ist Ihnen die Voreinstellung für denDIV-Wert in typearea zu gering. Statt einem Wert von 12 sind Sie nach gründlichem

Kapitel 2: Satzspiegelberechnung mit typearea.sty 36

Tabelle 2.1.: Satzspiegelmaße in Abhängigkeit von DIVbei A4 ohne Berücksichtigung von \topskip oder BCOR Satzspiegel Ränder

DIV Breite Höhe oben innen6 105,00 148,50 49,50 35,007 120,00 169,71 42,43 30,008 131,25 185,63 37,13 26,259 140,00 198,00 33,00 23,3310 147,00 207,90 29,70 21,0011 152,73 216,00 27,00 19,0912 157,50 222,75 24,75 17,5013 161,54 228,46 22,85 16,1514 165,00 233,36 21,21 15,0015 168,00 237,60 19,80 14,00

(alle Längen in mm)

Studium dieses Kapitels einschließlich der weiterführenden Abschnitte überzeugt,dass der Wert 15 angebracht ist. Das Protokoll wird nicht gebunden, sondern gelochtund in einen Ordner abgeheftet. Eine Bindekorrektur ist deshalb nicht notwendig.Sie schreiben also:\documentclass[a4paper,twoside]{protokol}\usepackage{bookman}\usepackage[DIV=15]{typearea}

Als Sie fertig sind, macht man Sie darauf aufmerksam, dass die Protokolle neuer-dings gesammelt und am Quartalsende alle zusammen als Buch gebunden werden.Die Bindung erfolgt als einfache Leimbindung, weil den Band ohnehin nie wie-der jemand anschaut und er nur wegen ISO9000 angefertigt wird. Für die Bindungeinschließlich Biegefalz werden durchschnittlich 12mm benötigt. Sie ändern die Op-tionen von typearea also entsprechend ab und verwenden die Klasse für Protokollenach ISO9000:\documentclass[a4paper,twoside]{iso9000p}\usepackage{bookman}\usepackage[DIV=15,BCOR=12mm]{typearea}

Natürlich können Sie auch hier wieder eine KOMA-Script-Klasse verwenden:\documentclass[twoside,DIV=15,BCOR=12mm]{scrartcl}\usepackage{bookman}

Option a4paper entspricht der Voreinstellung und konnte daher entfallen.

Bitte beachten Sie unbedingt, dass die Option DIV bei Verwendung einer der KOMA-Script-Klassen wie im Beispiel als Klassenoption oder per \KOMAoptions beziehungsweise

Kapitel 2: Satzspiegelberechnung mit typearea.sty 37

Tabelle 2.2.: DIV -Voreinstellungen für A4Grundschriftgröße: 10 pt 11 pt 12 ptDIV: 8 10 12

\KOMAoption nach dem Laden der Klasse übergeben werden muss. Weder sollte das Pa-ket typearea bei Verwendung einer KOMA-Script-Klasse explizit per \usepackage geladen,noch die Option dabei als optionales Argument angegeben werden. Wird die Option per\KOMAoptions oder \KOMAoption nach dem Laden des Pakets geändert, so werden Satzspiegelund Ränder automatisch neu berechnet.

DIV=calcDIV=classic

Wiev3.00 bereits in Abschnitt 2.2 erwähnt, gibt es nur für das Papierformat A4 feste Voreinstel-lungen für den DIV-Wert. Diese sind Tabelle 2.2 zu entnehmen. Solche festen Werte habenallerdings den Nachteil, dass sie die Laufweite der verwendeten Schrift nicht berücksichtigen.Das kann bei A4 und recht schmalen Schriften sehr rasch zu unangenehm hoher Zeichenzahlje Zeile führen. Siehe hierzu die Überlegungen in Abschnitt 2.1. Wird ein anderes Papierfor-mat gewählt, so berechnet typearea selbst einen guten DIV-Wert. Natürlich können Sie dieseBerechnung auch für A4 wählen. Hierzu verwenden Sie DIV=calc anstelle von DIV=Faktor .Selbstverständlich können Sie diese Option auch explizit bei allen anderen Papierformaten an-geben. Wenn Sie die automatische Berechnung wünschen, ist diese Angabe sogar sinnvoll, dadie Möglichkeit besteht, in einer Konfigurationsdatei andere Voreinstellungen zu setzen (sieheAbschnitt 20.3). Eine explizit angegebene Option DIV=calc überschreibt diese Vorkonfigura-tion aber.Die in Abschnitt 2.3 erwähnte klassische Konstruktion, der mittelalterliche Buchseitenkanon,

ist ebenfalls auswählbar. Verwenden Sie in diesem Fall anstelle von DIV=Faktor oder DIV=calc einfach DIV=classic. Es wird dann ein DIV-Wert ermittelt, der eine möglichst guteNäherung an den mittelalterlichen Buchseitenkanon darstellt.

Beispiel: In dem bei der Option DIV=Faktor aufgeführten Beispiel mit der Schriftart Book-man gab es ja genau das Problem, dass man einen zur Schriftart besser passendenDIV-Wert haben wollte. Man könnte also in Abwandlung des ersten Beispiels aucheinfach die Ermittlung dieses Wertes typearea überlassen:\documentclass[a4paper,twoside]{protokol}\usepackage{bookman}\usepackage[DIV=calc]{typearea}

Bitte beachten Sie unbedingt, dass diese Option bei Verwendung einer der KOMA-Script-Klassen wie im Beispiel als Klassenoption oder per \KOMAoptions beziehungsweise\KOMAoption nach dem Laden der Klasse übergeben werden muss. Weder sollte das Pa-ket typearea bei Verwendung einer KOMA-Script-Klasse explizit per \usepackage geladen,

Kapitel 2: Satzspiegelberechnung mit typearea.sty 38

noch die Option dabei als optionales Argument angegeben werden. Wird die Option per\KOMAoptions oder \KOMAoption nach dem Laden des Pakets geändert, so werden Satzspiegelund Ränder automatisch neu berechnet.

DIV=currentDIV=last

Wennv3.00 Sie bis hier die Beispiele aufmerksam verfolgt haben, wissen Sie eigentlich bereits, wieman die Berechnung eines DIV-Wertes in Abhängigkeit von der gewählten Schrift erreicht,wenn eine KOMA-Script-Klasse zusammen mit einem Schriftpaket verwendet wird.Das Problem dabei ist, dass die KOMA-Script-Klasse das Paket typearea bereits selbst lädt.

Die Übergabe der Optionen als optionale Argumente von \usepackage ist also nicht möglich. Eswürde auch nichts nützen, die Option DIV=calc als optionales Argument von \documentclassanzugeben. Diese Option würde direkt beim Laden des Pakets typearea ausgewertet. Damit würdenSatzspiegel und Ränder für die LATEX-Standardschrift und nicht für die später geladene Schriftberechnet.Selbstverständlich ist es möglich, mit \KOMAoptions{DIV=calc} oder \KOMAoption{DIV}

{calc} nach dem Laden des Schriftpakets Satzspiegel und Ränder neu berechnen zu lassen. Dabeiwird dann über den Wert calc direkt ein DIV-Wert für eine gute Zeilenlänge eingefordert.

Da es aber häufig praktischer ist, die Einstellung für die Option DIV nicht erst nach dem Ladender Schrift vorzunehmen, sondern an herausgehobener Stelle, beispielsweise beim Laden der Klasse,bietet typearea zwei weitere symbolische Werte für diese Option.

Mit DIV=currentv3.00 wird eine Neuberechnung von Satzspiegel und Rändern angestoßen, wobeigenau der DIV-Wert verwendet wird, der aktuell eingestellt ist. Dies ist weniger für die Neu-berechnung des Satzspiegels nach Wahl einer anderen Grundschrift von Interesse. Vielmehrist das dann nützlich, wenn man etwa nach Änderung des Durchschusses bei Beibehaltung desTeilers DIV die Randbedingung sicherstellen will, dass \textheight abzüglich \topskip einVielfaches von \baselineskip sein sollte.Mit DIV=lastv3.00 wird eine Neuberechnung von Satzspiegel und Rändern angestoßen, wobei

genau dieselbe Einstellung wie bei der letzten Berechnung verwendet wird.

Beispiel: Gehen wir wieder davon aus, dass für die Schriftart Bookman ein Satzspiegelmit guter Zeilenlänge berechnet werden soll. Gleichzeitig wird eine KOMA-Script-Klasse verwendet. Dies ist mit dem symbolischen Wert last und der Anweisung\KOMAoptions sehr einfach möglich:\documentclass[BCOR=12mm,DIV=calc,twoside]

{scrartcl}\usepackage{bookman}\KOMAoptions{DIV=last}

Wird später entschieden, dass ein anderer DIV-Wert verwendet werden soll, so mussnur die Einstellung im optionalen Argument von \documentclass geändert werden.

Kapitel 2: Satzspiegelberechnung mit typearea.sty 39

Tabelle 2.3.: Mögliche symbolische Werte für die Option DIV oder das DIV -Argument der Anweisung\typearea[BCOR ]{DIV }

areasetSatzspiegel neu anordnen.

calcSatzspiegelberechnung einschließlich Ermittlung eines guten DIV-Wertes erneutdurchführen.

classicSatzspiegelberechnung nach dem mittelalterlichen Buchseitenkanon (Kreisberech-nung) erneut durchführen.

currentSatzspiegelberechnung mit dem aktuell gültigen DIV-Wert erneut durchführen.

defaultSatzspiegelberechnung mit dem Standardwert für das aktuelle Seitenformat und dieaktuelle Schriftgröße erneut durchführen. Falls kein Standardwert existiert, calcanwenden.

lastSatzspiegelberechnung mit demselben DIV -Argument, das beim letzten Aufruf an-gegeben wurde, erneut durchführen.

Eine Zusammenfassung aller möglichen symbolischen Werte für die Option DIV finden Siein Tabelle 2.3. Es wird an dieser Stelle darauf hingewiesen, dass auch die Verwendung desPakets fontenc dazu führen kann, dass LATEX eine andere Schrift lädt.Häufig wird die Satzspiegelneuberechnung im Zusammenhang mit der Veränderung des Zei-

lenabstandes (Durchschuss) benötigt. Da der Satzspiegel unbedingt so berechnet werden sollte,dass eine ganze Anzahl an Zeilen in den Textbereich passt, muss bei Verwendung eines an-deren Durchschusses als des normalen der Satzspiegel für diesen Zeilenabstand neu berechnetwerden.

Beispiel: Angenommen, für eine Diplomarbeit wird die Schriftgröße 10 pt bei eineinhalb-zeiligem Satz zwingend gefordert. LATEX setzt normalerweise bei 10 pt mit 2 ptDurchschuss, also 1,2-zeilig. Deshalb muss als zusätzlicher Dehnfaktor der Wert1,25 verwendet werden. Gehen wir außerdem davon aus, dass eine Bindekorrek-tur von 12mm benötigt wird. Dann könnte die Lösung dieses Problems wie folgtaussehen:\documentclass[10pt,twoside,BCOR=12mm,DIV=calc]

{scrreprt}\linespread{1.25}\KOMAoptions{DIV=last}

Kapitel 2: Satzspiegelberechnung mit typearea.sty 40

Da typearea selbst immer die Anweisung \normalsize bei Berechnung eines neuenSatzspiegels ausführt, ist es nicht zwingend notwendig, nach \linespread den ge-wählten Durchschuss mit \selectfont zu aktivieren, damit dieser auch tatsächlichfür die Neuberechnung verwendet wird.Das gleiche Beispiel sähe unter Verwendung des setspace-Pakets (siehe [TF11]) wiefolgt aus:\documentclass[10pt,twoside,BCOR=12mm,DIV=calc]

{scrreprt}\usepackage[onehalfspacing]{setspace}\KOMAoptions{DIV=last}

Wie man an dem Beispiel sieht, spart man sich mit dem setspace-Paket das Wissen um denkorrekten Dehnungswert. Dies gilt allerdings nur für die Standardschriftgrößen 10 pt, 11 pt und12 pt. Für alle anderen Schriftgrößen verwendet das Paket einen näherungsweise passendenDehnungswert.An dieser Stelle erscheint es mir angebracht, darauf hinzuweisen, dass der Zeilenabstand für

die Titelseite wieder auf den normalen Wert zurückgesetzt werden sollte und außerdem auchdie Verzeichnisse mit dem normalen Zeilenabstand gesetzt werden sollten.

Beispiel: Ein vollständiges Beispiel wäre also:\documentclass[10pt,twoside,BCOR=12mm,DIV=calc]

{scrreprt}\usepackage[onehalfspacing]{setspace}\AfterTOCHead{\singlespacing}\KOMAoptions{DIV=last}\begin{document}\title{Titel}\author{Markus Kohm}\begin{spacing}{1}\maketitle

\end{spacing}\tableofcontents\chapter{Ok}\end{document}

Siehe hierzu auch die Anmerkungen in Abschnitt 2.8. Die Anweisung\AfterTOCHead wird in Teil II, Kapitel 15 auf Seite 396 vorgestellt.

Außerdem sei darauf hingewiesen, dass Änderungen am Zeilenabstand auch Auswirkungenauf Kopf und Fuß der Seite haben können. Dies kann sich beispielsweise bei Verwendung vonscrlayer-scrpage auswirken und man muss dann selbst entscheiden, ob man dort lieber den nor-malen Durchschuss oder den veränderten haben will. Siehe dazu auch Option singlespacingin Kapitel 17 auf Seite 457.

Kapitel 2: Satzspiegelberechnung mit typearea.sty 41

Tabelle 2.4.: Mögliche symbolische BCOR -Argumente für \typearea[BCOR ]{DIV }

currentSatzspiegelberechnung mit dem aktuell gültigen BCOR-Wert erneut durchführen.

Bitte beachten Sie unbedingt, dass diese Optionen auch zur Verwendung mit \KOMAoptionsoder \KOMAoption nach dem Laden des Pakets vorgesehen sind und dann eine automatischeNeuberechnung von Satzspiegel und Rändern auslösen.

\typearea[BCOR ]{DIV }\recalctypearea

Wird die Option DIV oder die Option BCOR nach dem Laden des Pakets typearea gesetzt, so wirdintern die Anweisung \typearea aufgerufen. Dabei wird beim Setzen der Option DIV für BCORintern der symbolische Wert current verwendet, der aus Gründen der Vollständigkeit auch inTabelle 2.4 zu finden ist. Beim Setzen der Option BCOR wird für DIV hingegen der symbolische Wertlast verwendet. Wollen Sie, dass Satzspiegel und Ränder stattdessen mit dem symbolischen Wertcurrent für DIV neu berechnet werden, so können Sie direkt \typearea[current]{current}verwenden.Sollen die Werte sowohl von BCOR als auch DIV geändert werden, so ist die Verwendung

von \typearea zu empfehlen, da hierbei die Ränder und der Satzspiegel nur einmal neu be-rechnet werden. Bei \KOMAoptions{DIV=Faktor ,BCOR=Korrektur } werden hingegen Ränderund Satzspiegel zunächst in Folge von Option DIV und dann zusätzlich durch Option BCORneu berechnet.Der Befehl \typearea ist derzeit so definiert, dass es auch möglich ist, mitten in einem Do-

kument den Satzspiegel zu wechseln. Dabei werden allerdings Annahmen über den Aufbau desLATEX-Kerns gemacht und interne Definitionen und Größen des LATEX-Kerns verändert. Da amLATEX-Kern nur noch zur Beseitigung von Fehlern notwendige Änderungen vorgenommen werden,ist die Wahrscheinlichkeit hoch, dass dies in zukünftigen Versionen von LATEX2ε noch funktionierenwird. Eine Garantie dafür gibt es jedoch nicht. Die Verwendung innerhalb des Dokuments führtaußerdem immer zu einem Seitenumbruch.Da \KOMAoption{DIV}{last} oder \KOMAoptions{DIV=last} beziehungsweise \typearea

[current]{last} für die Neuberechnung des Satzspiegels und der Ränder recht häufig benö-tigt werden, gibt es dafür die abkürzende Anweisung \recalctypeareav3.00 .

Beispiel: Wenn Ihnen die Schreibweisen\KOMAoptions{DIV=last}

oder\typearea[current]{last}

Kapitel 2: Satzspiegelberechnung mit typearea.sty 42

Tabelle 2.5.: Standardwerte für alle einfachen Schalter inKOMA-Script Wert Bedeutung

true aktiviert die Optionon aktiviert die Optionyes aktiviert die Optionfalse deaktiviert die Optionoff deaktiviert die Optionno deaktiviert die Option

für die Neuberechnung von Satzspiegel und Rändern aufgrund der vielen Sonder-zeichen zu umständlich ist, können Sie einfach\recalctypearea

verwenden.

twoside=Ein-Aus-Werttwoside=semiWie in Abschnitt 2.1 erklärt, hängt die Randverteilung davon ab, ob ein Dokument ein- oderzweiseitig gesetzt werden soll. Bei einseitigem Satz sind der linke und rechte Rand gleichbreit, während bei doppelseitigem Satz der innere Randanteil einer Seite nur halb so großist wie der jeweilige äußere Rand. Um diese Unterscheidung vornehmen zu können, musstypearea mit Option twoside mitgeteilt werden, ob das Dokument doppelseitig gesetzt wird.Als Ein-Aus-Wert kann dabei einer der Standardwerte für einfache Schalter aus Tabelle 2.5verwendet werden. Wird die Option ohne Wert-Angabe verwendet, so wird der Wert trueangenommen, also doppelseitiger Satz verwendet. Deaktivieren der Option führt zu einseitigemSatz.Außer den Werten aus Tabelle 2.5 kann jedoch auch noch der Wert semiv3.00 angegeben wer-

den. Dieser Wert semi führt zu doppelseitigem Satz mit einseitigen Rändern und einseitigen,also nicht alternierenden Marginalien. Einev3.12 eventuelle Bindekorrektur (siehe Option BCOR, Sei-te 34) wird jedoch ab KOMA-Script Version 3.12 wie beim doppelseitigen Satz auf Seiten mitungerader Nummer dem linken Rand und auf Seiten mit gerader Nummer dem rechten Randzugeschlagen. Wird auf Kompatibilität zu einer früheren Version zurückgeschaltet (siehe Ab-schnitt 2.5, Seite 33), so ist die Bindekorrektur jedoch auch bei twoside=semi immer Teil deslinken Randes.Die Option kann wahlweise als Klassenoption bei \documentclass, als Paketoption bei

\usepackage oder auch nach dem Laden von typearea per \KOMAoptions oder \KOMAoptiongesetzt werden. Eine Verwendung dieser Option nach dem Laden von typearea führt automa-tisch zur Neuberechnung des Satzspiegels mit \recalctypearea (siehe Seite 41). War vor derOption doppelseitiger Satz aktiv, wird noch vor der Neuberechnung auf die nächste ungeradeSeite umbrochen.

Kapitel 2: Satzspiegelberechnung mit typearea.sty 43

twocolumn=Ein-Aus-Wert

Für die Berechnung eines guten Satzspiegels mit Hilfe von DIV=calc ist es erforderlich zu wis-sen, ob das Dokument ein- oder zweispaltig gesetzt wird. Da die Betrachtungen zur Zeilenlängeaus Abschnitt 2.1 dann für jede einzelne Spalte gelten, darf der Satzspiegel in doppelspaltigenDokumenten bis zu doppelt so breit sein wie in einspaltigen Dokumenten.Um diese Unterscheidung vornehmen zu können, muss typearea mit Option twocolumn mit-

geteilt werden, ob das Dokument doppelspaltig gesetzt wird. Als Ein-Aus-Wert kann dabeieiner der Standardwerte für einfache Schalter aus Tabelle 2.5 verwendet werden. Wird die Op-tion ohne Wert-Angabe verwendet, so wird der Wert true angenommen, also doppelspaltigerSatz verwendet. Ein Deaktivieren der Option führt wieder zum voreingestellten einspaltigenSatz.Die Option kann als Klassenoption bei \documentclass, als Paketoption bei \usepackage

oder auch nach dem Laden von typearea per \KOMAoptions oder \KOMAoption gesetzt wer-den. Eine Verwendung dieser Option nach dem Laden von typearea führt automatisch zurNeuberechnung des Satzspiegels mittels \recalctypearea (siehe Seite 41).

headinclude=Ein-Aus-Wertfootinclude=Ein-Aus-WertBisher wurde zwar erklärt, wie die Satzspiegelkonstruktion funktioniert und in welchem Verhältniseinerseits die Ränder zueinander stehen, andererseits der Textkörper zur Seite steht, aber eineentscheidende Frage blieb ausgeklammert: Was genau ist der Rand?Auf den ersten Blick wirkt diese Frage trivial: Der Rand ist der Teil der Seite, der oben, unten,

links und rechts frei bleibt. Doch das ist nur die halbe Wahrheit. Der äußere Rand ist keineswegsimmer leer. Teilweise findet man darin noch gesetzte Randnotizen (siehe den Befehl \marginparbeispielsweise in [DGS+12] bzw. Abschnitt 3.21).

Beim oberen und unteren Rand stellt sich die Frage, wie Kopf- und Fußzeile zu behandeln sind.Gehören diese beiden zum Textkörper oder zum jeweiligen Rand? Die Frage ist nicht einfach zubeantworten. Eindeutig ist, dass ein leerer Fuß und ein leerer Kopf zum Rand zu rechnen sind.Schließlich können sie nicht vom restlichen Rand unterschieden werden. Ein Fuß, der nur die Pa-ginierung enthält, wirkt optisch ebenfalls eher wie Rand und sollte deshalb zu diesem gerechnetwerden. Für die optische Wirkung ist dabei unwesentlich, ob der Fuß beim Lesen oder Überflie-gen leicht als Fuß erkannt werden kann oder nicht. Entscheidend ist, wie eine wohlgefüllte Seitebei unscharfer Betrachtung wirkt. Dazu bedient man sich beispielsweise seiner altersweitsichtigenGroßeltern, denen man die Brille stibitzt und dann die Seite etwa einen halben Meter von der Na-senspitze entfernt hält. In Ermangelung erreichbarer Großeltern kann man sich auch damit behelfen,dass man die eigenen Augen auf Fernsicht stellt, die Seite aber nur mit ausgestreckten Armen hält.Brillenträger sind hier deutlich im Vorteil. Hat man eine Fußzeile, die neben der Paginierung weitereweitschweifige Angaben enthält, beispielsweise einen Copyright-Hinweis, so wirkt die Fußzeile eherwie ein etwas abgesetzter Teil des Textkörpers. Bei der Berechnung des Satzspiegels sollte dasberücksichtigt werden.

Kapitel 2: Satzspiegelberechnung mit typearea.sty 44

Bei der Kopfzeile sieht es noch schwieriger aus. In der Kopfzeile wird häufig der Kolumnentitelgesetzt. Arbeitet man mit einem lebenden Kolumnentitel, also der Wiederholung der ersten bzw.zweiten Gliederungsebene in der Kopfzeile, und hat gleichzeitig sehr lange Überschriften, so erhältman automatisch sehr lange Kopfzeilen. In diesem Fall wirkt der Kopf wiederum wie ein abgesetzterTeil des Textkörpers und weniger wie leerer Rand. Verstärkt wird dieser Effekt noch, wenn nebendem Kolumnentitel auch die Paginierung im Kopf erfolgt. Dadurch erhält man einen links und rechtsabgeschlossenen Bereich, der kaum noch als leerer Rand wirkt. Schwieriger ist es bei Paginierungim Fuß und Überschriften, deren Länge sehr stark schwankt. Hier kann der Kopf der einen Seitewie Textkörper wirken, der Kopf der anderen Seite aber eher wie Rand. Keinesfalls sollte man dieSeiten jedoch unterschiedlich behandeln. Das würde zu vertikal springenden Köpfen führen und istnicht einmal für ein Daumenkino geeignet. Ich rate in diesem Fall dazu, den Kopf zum Textkörperzu rechnen.Ganz einfach fällt die Entscheidung, wenn Kopf oder Fuß durch eine Linie vom eigentlichen

Textkörper abgetrennt sind. Dadurch erhält man eine geschlossene Wirkung und der Kopf bzw.Fuß sollte unbedingt zum Textkörper gerechnet werden. Wie gesagt: Die durch die Trennlinieverbesserte Erkennung des Kopfes oder Fußes ist hier unerheblich. Entscheidend ist die unscharfeBetrachtung.Das typearea-Paket trifft die Entscheidung, ob ein Kopf oder Fuß zum Textkörper gehört

oder davon getrennt zum Rand gerechnet werden muss, nicht selbst. Stattdessen kann mitden Optionen headinclude und footinclude eingestellt werden, ob der Kopf und der Fußzum Textkörper gerechnet werden sollen. Die Optionen verstehen dabei als Ein-Aus-Wertv3.00 dieStandardwerte für einfache Schalter, die in Tabelle 2.5, Seite 42 angegeben sind. Man kann dieOptionen auch ohne Wertzuweisung verwenden. In diesem Fall wird true als Ein-Aus-Wertverwendet, also der Kopf oder Fuß zum Satzspiegel gerechnet.Wenn Sie unsicher sind, was die richtige Einstellung ist, lesen Sie bitte obige Erläuterungen.

Voreingestellt sind normalerweise headinclude=false und footinclude=false. Dies kannsich jedoch bei den KOMA-Script-Klassen je nach Klassenoption oder bei Verwendung andererKOMA-Script-Pakete generell ändern (siehe Abschnitt 3.1 und Kapitel 5).Bitte beachten Sie unbedingt, dass diese Optionen bei Verwendung einer der KOMA-Script-

Klassen als Klassenoptionen oder per \KOMAoptions beziehungsweise \KOMAoption nach demLaden der Klasse übergeben werden müssen. Eine Änderung dieser Optionen nach dem Ladenvon typearea führt dabei nicht zu einer automatischen Neuberechnung des Satzspiegels. Viel-mehr wirkt sich die Änderung erst bei der nächsten Neuberechnung des Satzspiegels aus. ZurNeuberechnung des Satzspiegels siehe Option DIV mit den Werten last oder current (sieheSeite 38) oder die Anweisung \recalctypearea (siehe Seite 41).

mpinclude=Ein-Aus-Wert

Nebenv2.8q Dokumenten, bei denen der Kopf und der Fuß der Seite eher zum Textbereich als zumRand gehört, gibt es auch Dokumente, bei denen dies für Randnotizen zutrifft. Mit der Optionmpinclude kann genau dies erreicht werden. Die Option versteht dabei als Ein-Aus-Wertv3.00 die

Kapitel 2: Satzspiegelberechnung mit typearea.sty 45

Standardwerte für einfache Schalter, die in Tabelle 2.5, Seite 42 angegeben sind. Man kanndie Option auch ohne Wertzuweisung verwenden. In diesem Fall wird true als Ein-Aus-Wertverwendet.Der Effekt von mpinclude=true ist, dass eine Breiteneinheit vom Textbereich weggenom-

men und als Bereich für die Randnotizen verwendet wird. Mit mpinclude=false, was derVoreinstellung entspricht, wird hingegen ein Teil des Randes für Randnotizen verwendet. Diesist, je nachdem ob einseitig oder doppelseitig gearbeitet wird, ebenfalls eine Breiteneinheitoder auch eineinhalb Breiteneinheiten. In der Regel ist die Verwendung von mpinclude=truenicht anzuraten und sollte Experten vorbehalten bleiben.In den meisten Fällen, in denen die Option mpinclude sinnvoll ist, werden außerdem breitere

Randnotizen benötigt. In sehr vielen Fällen sollte dabei aber nicht die gesamte Breite, sondernnur ein Teil davon dem Textbereich zugeordnet werden. Dies ist beispielsweise der Fall, wennder Rand für Zitate verwendet wird. Solche Zitate werden üblicherweise im Flattersatz gesetzt,wobei die bündige Kante an den Textbereich anschließt. Da sich kein geschlossener optischerEindruck ergibt, dürfen die flatternden Enden also durchaus teilweise in den Rand ragen. Mankann das einfach erreichen, indem man zum einen die Option mpinclude verwendet. Zum anderenvergrößert man die Länge \marginparwidth nach der Berechnung des Satzspiegels noch mit Hilfeder \addtolength-Anweisung. Um welchen Wert man vergrößern sollte, hängt vom Einzelfall abund erfordert einiges Fingerspitzengefühl. Auch deshalb ist die Option mpinclude eher etwas fürExperten. Natürlich kann man auch festlegen, dass die Randnotizen beispielsweise zu einem Drittelin den Rand hineinragen sollen, und das wie folgt erreichen:\setlength{\marginparwidth}{1.5\marginparwidth}

Da es derzeit keine Option gibt, um mehr Platz für die Randnotizen innerhalb desTextbereichs vorzusehen, gibt es nur eine Möglichkeit, dies zu erreichen: Die Anpassungvon \textwidth und \marginparwidth nach der Berechnung des Satzspiegels. Siehe dazu\AfterCalculatingTypearea in Abschnitt 20.2, Seite 500.Bitte beachten Sie unbedingt, dass diese Option bei Verwendung einer der KOMA-Script-

Klassen als Klassenoption oder per \KOMAoptions beziehungsweise oder \KOMAoption nachdem Laden der Klasse übergeben werden muss. Eine Änderung dieser Option nach dem La-den von typearea führt nicht zu einer automatischen Neuberechnung des Satzspiegels. Vielmehrwirkt sich die Änderung erst bei der nächsten Neuberechnung des Satzspiegels aus. Zur Neube-rechnung des Satzspiegels siehe Option DIV mit den Werten last oder current (siehe Seite 38)oder die Anweisung \recalctypearea (siehe Seite 41).

headlines=Zeilenanzahlheadheight=Höhe

Es ist nun also bekannt, wie man Satzspiegel mit dem typearea-Paket berechnet und wie mandabei angibt, ob der Kopf oder Fuß zum Textkörper oder zum Rand gehört. Insbesondere fürden Kopf fehlt aber noch die Angabe, wie hoch er denn eigentlich sein soll. Hierzu dienen die

Kapitel 2: Satzspiegelberechnung mit typearea.sty 46

Optionen headlines und headheightv3.00 .Die Option headlines setzt man dabei auf die Anzahl der Kopfzeilen. Normalerweise ar-

beitet das typearea-Paket mit 1,25 Kopfzeilen. Dieser Wert stellt einen Kompromiss dar. Zumeinen ist er groß genug, um auch für eine unterstrichene Kopfzeile (siehe Abschnitt 3.12) Platzzu bieten, zum anderen ist er klein genug, um das Randgewicht nicht zu stark zu verändern,wenn mit einer einfachen, nicht unterstrichenen Kopfzeile gearbeitet wird. Damit ist der vor-eingestellte Wert in den meisten Standardfällen ein guter Wert. In einigen Fällen will odermuss man aber die Kopfhöhe genauer den tatsächlichen Erfordernissen anpassen.

Beispiel: Angenommen, es soll ein Text mit einem zweizeiligen Kopf erstellt werden. Nor-malerweise würde dies dazu führen, dass auf jeder Seite eine Warnung »overfull\vbox« von LATEX ausgegeben würde. Um dies zu verhindern, wird das typearea-Paket angewiesen, einen entsprechenden Satzspiegel zu berechnen:\documentclass[a4paper]{article}\usepackage[headlines=2.1]{typearea}

Es ist auch wieder möglich und bei Verwendung einer KOMA-Script-Klasse emp-fehlenswert, diese Option direkt an die Klasse zu übergeben:\documentclass[headlines=2.1]{scrartcl}

Befehle, mit denen dann der Inhalt der zweizeiligen Kopfzeile definiert werden kann,sind in Kapitel 5 zu finden.

In einigen Fällen ist es nützlich, wenn man die Kopfhöhe nicht in Zeilen, sondern direkt alsLängenwert angeben kann. Dies ist mit Hilfe der alternativ verwendbaren Option headheightmöglich. Als Höhe sind alle Längen und Größen verwendbar, die LATEX kennt. Es ist jedoch zubeachten, dass bei Verwendung einer LATEX-Länge wie \baselineskip nicht deren Größe zumZeitpunkt des Setzens der Option, sondern zum Zeitpunkt der Berechnung des Satzspiegels undder Ränder entscheidend ist. Außerdem sollten LATEX-Längen wie \baselineskip keinesfallsim optionalen Argument von \documentclass oder \usepackage verwendet werden.Bitte beachten Sie unbedingt, dass diese Optionen bei Verwendung einer der KOMA-Script-

Klassen als Klassenoptionen oder per \KOMAoptions beziehungsweise \KOMAoption nach demLaden der Klasse übergeben werden müssen. Eine Änderung dieser Optionen nach dem La-den von typearea führt nicht zu einer automatischen Neuberechnung des Satzspiegels. Vielmehrwirkt sich die Änderung erst bei der nächsten Neuberechnung des Satzspiegels aus. Zur Neube-rechnung des Satzspiegels siehe Option DIV mit den Werten last oder current (siehe Seite 38)oder die Anweisung \recalctypearea (siehe Seite 41).

Kapitel 2: Satzspiegelberechnung mit typearea.sty 47

footlines=Zeilenanzahlfootheight=Höhe\footheight

Wie schon für den Kopf fehlt aber noch die Angabe, wie hoch der Fuß sein soll. Hierzu dienendie Optionen footlines und footheightv3.12 . Allerdings ist die Höhe des Fußes im Gegensatzzur Höhe des Kopfes keine Länge des LATEX-Kerns selbst. Daher definiert typearea zur Ein-führung eine neue Länge \footheight, falls diese noch nicht existiert. Ob diese dann auchbeispielsweise von Klassen und Paketen für die Gestaltung von Kopf und Fuß verwendet wird,hängt von den verwendeten Klassen und Paketen ab. Das KOMA-Script-Paket scrlayer-scrpageberücksichtigt \footheight und arbeitet somit aktiv mit typearea zusammen. Die KOMA-Script-Klassen berücksichtigen \footheight hingegen nicht, da sie ohne Paketunterstützungnur Seitenstile mit einzeiligen Seitenfüßen anbieten.Die Option footlines setzt man vergleichbar zu headlines auf die Anzahl der Fußzeilen.

Normalerweise arbeitet das typearea-Paket mit 1,25 Fußzeilen. Dieser Wert stellt einen Kom-promiss dar. Zum einen ist er groß genug, um auch für eine über- und unterstrichene Fußzeile(siehe Abschnitt 3.12) Platz zu bieten, zum anderen ist er klein genug, um das Randgewichtnicht zu stark zu verändern, wenn mit einer einfachen Fußzeile ohne Trennlinien gearbeitetwird. Damit ist der voreingestellte Wert in den meisten Standardfällen ein guter Wert. Ineinigen Fällen will oder muss man aber die Fußhöhe genauer den tatsächlichen Erfordernissenanpassen.

Beispiel: Angenommen, im Fuß soll eine zweizeilige Copyright-Angabe gesetzt werden. Zwargibt es in LATEX selbst keinen Test, ob der für den Fuß vorgesehene Platz dafürgenügend Raum bietet, die Überschreitung der vorgesehenen Höhe resultiert aberwahrscheinlich in einer unausgeglichenen Verteilung von Satzspiegeln und Rändern.Außerdem führt beispielsweise das Paket scrlayer-scrpage, mit dem ein solcher Fuß-inhalt gesetzt werden könnte, durchaus eine entsprechende Überprüfung durch undmeldet gegebenenfalls auch Überschreitungen. Daher ist es sinnvoll, die benötigtegrößere Fußhöhe bereits bei der Berechnung des Satzspiegels anzugeben:\documentclass[a4paper]{article}\usepackage[footlines=2.1]{typearea}

Es ist auch wieder möglich und bei Verwendung einer KOMA-Script-Klasse emp-fehlenswert, diese Option direkt an die Klasse zu übergeben:\documentclass[footlines=2.1]{scrartcl}

Befehle, mit denen dann der Inhalt der zweizeiligen Fußzeile definiert werden kann,sind in Kapitel 5 zu finden.

In einigen Fällen ist es nützlich, wenn man die Fußhöhe nicht in Zeilen, sondern direkt alsLängenwert angeben kann. Dies ist mit Hilfe der alternativ verwendbaren Option footheight

Kapitel 2: Satzspiegelberechnung mit typearea.sty 48

möglich. Als Höhe sind alle Längen und Größen verwendbar, die LATEX kennt. Es ist jedoch zubeachten, dass bei Verwendung einer LATEX-Länge wie \baselineskip nicht deren Größe zumZeitpunkt des Setzens der Option, sondern zum Zeitpunkt der Berechnung des Satzspiegels undder Ränder entscheidend ist. Außerdem sollten LATEX-Längen wie \baselineskip keinesfallsim optionalen Argument von \documentclass oder \usepackage verwendet werden.Bitte beachten Sie unbedingt, dass diese Optionen bei Verwendung einer der KOMA-Script-

Klassen als Klassenoptionen oder per \KOMAoptions beziehungsweise \KOMAoption nach demLaden der Klasse übergeben werden müssen. Eine Änderung dieser Optionen nach dem La-den von typearea führt nicht zu einer automatischen Neuberechnung des Satzspiegels. Vielmehrwirkt sich die Änderung erst bei der nächsten Neuberechnung des Satzspiegels aus. Zur Neube-rechnung des Satzspiegels siehe Option DIV mit den Werten last oder current (siehe Seite 38)oder die Anweisung \recalctypearea (siehe Seite 41).

\areaset[BCOR ]{Breite }{Höhe }

Bis hier wurde nun eine Menge darüber erzählt, wie man einen guten Satzspiegel für Stan-dardanwendungen erstellt und wie das typearea-Paket dem Anwender diese Arbeit erleichtert,ihm aber gleichzeitig Möglichkeiten der Einflussnahme bietet. Es gibt jedoch auch Fälle, indenen der Textkörper eine bestimmte Größe exakt einhalten soll, ohne dass dabei auf guteSatzspiegelkonstruktion oder auf weitere Nebenbedingungen zu achten ist. Trotzdem sollendie Ränder so gut wie möglich verteilt und dabei gegebenenfalls auch eine Bindekorrektur be-rücksichtigt werden. Das typearea-Paket bietet hierfür den Befehl \areaset, dem man nebender optionalen Bindekorrektur als Parameter die Breite und Höhe des Textbereichs übergibt.Die Ränder und deren Verteilung werden dann automatisch berechnet, wobei gegebenenfallsauch die Einstellungen der Paketoptionen headinclude und footinclude berücksichtigt wer-den. Die Optionen headlines, headheight, footlines und footheight bleiben in diesemFall jedoch unberücksichtigt! Siehe dazu die weiterführenden Informationen zu \areaset aufSeite 498 in Abschnitt 20.1.Die Voreinstellung für BCOR ist 0 pt. Soll hingegen die aktuelle, beispielsweise per Option

BCOR eingestellte Bindekorrektur erhalten bleiben, sollte man den symbolischen Wert currentals optionales Argument verwenden.

Beispiel: Angenommen, ein Text auf A4-Papier soll genau die Breite von 60 Zeichen in derTypewriter-Schrift haben und exakt 30 Zeilen je Seite besitzen. Dann könnte mitfolgender Präambel gearbeitet werden:\documentclass[a4paper,11pt]{article}\usepackage{typearea}\newlength{\CharsLX}% Breite von 60 Zeichen\newlength{\LinesXXX}% Hoehe von 30 Zeilen\settowidth{\CharsLX}{\texttt{1234567890}}\setlength{\CharsLX}{6\CharsLX}\setlength{\LinesXXX}{\topskip}

Kapitel 2: Satzspiegelberechnung mit typearea.sty 49

\addtolength{\LinesXXX}{29\baselineskip}\areaset{\CharsLX}{\LinesXXX}

Der Faktor von 29 statt 30 ist damit begründet, dass die Grundlinie der oberstenZeile bereits am obersten Rand des um \topskip verringerten Satzspiegels liegt,solange die Höhe der obersten Zeile kleiner als \topskip ist. Die oberste Zeilebenötigt damit keine Höhe. Die Unterlängen der untersten Zeile ragen dafür unterden Satzspiegel.Soll stattdessen ein Gedichtband mit quadratischem Textbereich der Seitenlänge15 cm und einem Binderand von 1 cm gesetzt werden, so ist Folgendes möglich:\documentclass{gedichte}\usepackage{typearea}\areaset[1cm]{15cm}{15cm}

DIV=areaset

Inv3.00 seltenen Fällen ist es nützlich, wenn man den aktuell eingestellten Satzspiegel neu aus-richten lassen kann. Dies ist mit der Option DIV=areaset möglich, wobei \KOMAoptions{DIV=areaset} der Anweisung\areaset[current]{\textwidth}{\textheight}

entspricht. Dasselbe Ergebnis erhält man auch, wenn DIV=last verwendet wird und der Satz-spiegel zuletzt per \areaset eingestellt wurde.Wenn Sie konkrete Vorgaben bezüglich der Ränder zu erfüllen haben, ist typearea nicht ge-

eignet. In diesem Fall ist die Verwendung des Pakets geometry (siehe [Ume10]) empfehlenswert.

2.7. Einstellung des Papierformats

Das Papierformat ist ein entscheidendes Grundmerkmal eines Dokuments. Wie bereits bei derVorstellung der unterstützten Satzspiegelkonstruktionen (siehe Abschnitt 2.1 bis Abschnitt 2.3ab Seite 27) aufgezeigt, steht und fällt die Aufteilung der Seite und damit das gesamte Doku-mentlayout mit der Wahl des Papierformats. Während die LATEX-Standardklassen auf einigewenige Formate festgelegt sind, unterstützt KOMA-Script mit dem Paket typearea selbst aus-gefallene Seitengrößen.

Kapitel 2: Satzspiegelberechnung mit typearea.sty 50

paper=Formatpaper=Ausrichtung

Die Option paperv3.00 ist das zentrale Element der Formatauswahl bei KOMA-Script. Als Formatwird dabei zunächst das amerikanische letter, legal und executive unterstützt. Darüberhinaus sind die ISO-Formate der Reihen A, B, C und D möglich, also beispielsweise A4 oder– klein geschrieben – a4.Querformate werden dadurch unterstützt, dass man die Option ein weiteres Mal mit dem

Wert landscape oder seascapev3.02c angibt. Dabei unterscheiden sich landscape und seascapenur darin, dass das Programm dvips bei landscape um -90 ° dreht, während bei seascapeum +90 ° gedreht wird. Hilfreich ist seascape also vor allem dann, wenn ein PostScript-Anzeigeprogramm die Seiten im Querformat auf dem Kopf stellt. Damit der Unterschied eineRolle spielt, darf auch die nachfolgend beschriebene Option pagesize nicht deaktiviert sein.

Zusätzlich kann das Format auch in der Form Breite :Höhev3.01b beziehungsweise Höhe :Breitev3.22

angegeben werden. Welcher Wert die Höhe und welcher die Breite ist, richtet sich nach derAusrichtung des Papiers. Mit paper=landscape oder paper=seascape ist der kleinere Wertdie Höhe und der größere Wert die Breite . Mit paper=portrait ist dagegen der kleinereWert die Breite und der größere Wert die Höhe .

Es wird darauf hingewiesen, dass bis Version 3.01a der erste Wert immer die Höhe undder zweite Wert die Breite war. Dagegen war von Version 3.01b bis Version 3.21a der ersteWert immer die Breite und der zweite Wert immer die Höhe . Dies ist insbesondere dann zubeachten, wenn mit einer entsprechenden Kompatibilitätseinstellung (siehe Option version,Abschnitt 2.5, Seite 33) gearbeitet wird.

Beispiel: Angenommen, es soll eine Karteikarte im Format ISO-A8 quer bedruckt werden.Dabei sollen die Ränder sehr klein gewählt werden. Außerdem wird auf eine Kopf-und eine Fußzeile verzichtet.\documentclass{article}\usepackage[headinclude=false,footinclude=false,%

paper=A8,paper=landscape]{typearea}\areaset{7cm}{5cm}\pagestyle{empty}\begin{document}\section*{Definierte Papierformate}letter, legal, executive, a0, a1 \dots\ %b0, b1 \dots\ c0, c1 \dots\ d0, d1 \dots\end{document}

Haben die Karteikarten das Sonderformat (Breite:Höhe) 5 cm : 3 cm, so ist dies mit\documentclass{article}\usepackage[headinclude=false,footinclude=false,

paper=landscape,paper=5cm:3cm]{typearea}\areaset{4cm}{2.4cm}

Kapitel 2: Satzspiegelberechnung mit typearea.sty 51

\pagestyle{empty}\begin{document}\section*{Definierte Papierformate}letter, legal, executive, a0, a1 \dots\ %b0, b1 \dots\ c0, c1 \dots\ d0, d1 \dots\end{document}

möglich.

In der Voreinstellung wird bei KOMA-Script mit A4-Papier in der Ausrichtung portraitgearbeitet. Dies ist ein Unterschied zu den Standardklassen, bei denen in der Voreinstellungdas amerikanische Format letter verwendet wird.Bitte beachten Sie unbedingt, dass diese Option bei Verwendung einer der KOMA-Script-

Klassen als Klassenoption oder per \KOMAoptions beziehungsweise \KOMAoption nach demLaden der Klasse übergeben werden muss. Eine Änderung des Papierformats oder der Pa-pierausrichtung mit Hilfe der Anweisung \KOMAoptions oder \KOMAoption nach dem Ladenvon typearea führt nicht zu einer automatischen Neuberechnung des Satzspiegels. Vielmehrwirkt sich die Änderung erst bei der nächsten Neuberechnung des Satzspiegels aus. Zur Neu-berechnung des Satzspiegels siehe Option DIV mit den Werten last oder current (sieheSeite 38) oder die Anweisung \recalctypearea (siehe Seite 41).

pagesize=Ausgabetreiber

Die oben genannten Mechanismen zur Auswahl des Papierformats haben nur insofern einen Einflussauf die Ausgabe, als interne LATEX-Maße gesetzt werden. Das Paket typearea verwendet diese dannbei der Aufteilung der Seite in Ränder und Textbereich. Die Spezifikation des DVI-Formats siehtaber an keiner Stelle Angaben zum Papierformat vor. Wird direkt aus dem DVI-Format in eine Low-Level-Druckersprache wie PCL1 oder ESC/P22 beziehungsweise ESC/P-R3 ausgegeben, spielt diesnormalerweise keine Rolle, da auch bei diesen Ausgaben der 0-Bezugspunkt wie bei DVI links obenliegt. Wird aber in Sprachen wie PostScript oder PDF übersetzt, bei denen der 0-Bezugspunktan anderer Stelle liegt und außerdem das Papierformat in der Ausgabedatei angegeben werdensollte, so fehlt diese Information. Als Lösung des Problems verwendet der entsprechende Treibereine voreingestellte Papiergröße, die der Anwender entweder per Option oder durch entsprechendeAngabe in der TEX-Quelldatei verändern kann. Bei Verwendung des DVI-Treibers dvips oderdvipdfm kann diese Angabe in Form einer \special-Anweisung erfolgen. Bei Verwendung vonpdfTEX, luaTEX, X ETEX oder VTEX werden deren Papierformat-Längen entsprechend gesetzt.

Mit der Option pagesize kann eingestellt werden, für welchen Ausgabetreiber die Papier-größe in das Ausgabedokument geschrieben wird. Die unterstützten Ausgabetreiber sind Tabel-le 2.6 zu entnehmen. Voreingestelltv3.17 ist pagesize. Diese Verwendung der Option ohne Angabeeines Wertes entspricht pagesize=auto.

1PCL ist eine Familie von Druckersprachen, die HP für seine Tinten- und Laserdrucker verwendet.2ESC/P2 ist die Druckersprache, die EPSON für seine 24-Nadel- und ältere Tinten- oder Laserdrucker benutzt.3ESC/P-R ist die Druckersprache, die EPSON aktuell für Tinten- und Laserdrucker benutzt.

Kapitel 2: Satzspiegelberechnung mit typearea.sty 52

Tabelle 2.6.: Ausgabetreiber für Option pagesize=Ausgabetreiber

autoFalls die pdfTEX-spezifischen Register \pdfpagewidth und \pdfpageheight oderdie luaTEX-spezifischen Register \pagewidth und \pageheight vorhanden sind, wirdder Ausgabetreiber pdftex aktiviert. Zusätzlich wird auch der Ausgabetreiber dvipsverwendet. Diese Einstellung ist grundsätzlich auch für X ETEX geeignet.

automediaDies entspricht dem Ausgabetreiber auto. Allerdings werden zusätzlich auch nochdie VTEX-spezifischen Register \mediawidth und \mediaheight gesetzt, falls diesedefiniert sind.

false, no, offDie Papiergröße wird nicht an den Ausgabetreiber gemeldet.

dvipdfmxv3.05a Die Papiergröße wird als \special{pagesize=Breite ,Höhe } in die DVI-Datei

geschrieben. Der Name des Ausgabetreibers kommt daher, dass das Programmdvipdfmx eine Papierformatumschaltung über diese Anweisung auch innerhalb desDokuments erlaubt.

dvipsBei Verwendung innerhalb der Dokumentpräambel wird die Papiergröße über\special{pagesize=Breite ,Höhe } in das Dokument geschrieben. Da das Pro-gramm dvips keine Papierformatumschaltung innerhalb des Dokuments unterstützt,wird bei Bedarf im Dokument ein recht unsauberer Hack verwendet, um die Um-schaltung nach Möglichkeit dennoch zu erreichen. Papierformatumschaltung nachder Dokumentprämbel bei gleichzeitiger Verwendung des Ausgabetreibers dvips er-folgen daher auf eigene Gefahr!

pdftex, luatexv3.20 Die Papiergröße wird über die pdfTEX-spezifischen Register \pdfpagewidth

und \pdfpageheight oder die luaTEX-spezifischen Register \pagewidth und\pageheight gesetzt. Dies ist auch jederzeit innerhalb des Dokuments problemlosmöglich.

Kapitel 2: Satzspiegelberechnung mit typearea.sty 53

Beispiel: Angenommen, es soll ein Dokument sowohl als DVI-Datei verwendet werden, alsauch eine Online-Version im PDF-Format erstellt werden. Dann könnte die Präam-bel beispielsweise so beginnen:\documentclass{article}\usepackage[paper=A4,pagesize]{typearea}

Wird nun für die Bearbeitung pdfTEX verwendet und die PDF-Ausgabe aktiviert,so werden die beiden Spezialgrößen \pdfpagewidth und \pdfpageheight entspre-chend gesetzt. Wird jedoch eine DVI-Datei erzeugt – egal ob mit LATEX oder pd-fLATEX –, so wird ein \special an den Anfang dieser Datei geschrieben.

Es wird empfohlen, die Option pagesize immer anzugeben, weil frühere Versionen von typeareasie noch nicht als Voreinstellung gesetzt haben. In der Regel ist dabei die Methode ohneAusgabetreiber oder mit auto oder automedia günstig.

2.8. Tipps

Insbesondere für die Erstellung von schriftlichen Arbeiten während des Studiums findet manhäufig Vorschriften, die einer typografischen Begutachtung nicht nur in keiner Weise standhal-ten, sondern massiv gegen alle Regeln der Typografie verstoßen. Ursache für solche Regeln istoft typografische Inkompetenz derjenigen, die sie herausgeben. Manchmal ist die Ursache auchim Ausgangspunkt begründet, nämlich der Schreibmaschine. Mit einer Schreibmaschine odereiner Textverarbeitung von 1980 ist es ohne erheblichen Aufwand kaum möglich, typografischperfekte Ergebnisse zu erzielen. Also wurden einst Vorschriften erlassen, die leicht erfüllbarschienen und dem Korrektor trotzdem entgegenkommen. Dazu zählen dann Randeinstellung-en, die für einseitigen Druck mit einer Schreibmaschine zu brauchbaren Zeilenlängen führen.Um nicht extrem kurze Zeilen zu erhalten, die durch Flattersatz zudem verschlimmert werden,werden die Ränder schmal gehalten und für Korrekturen stattdessen ein großer Durchschuss inForm von eineinhalbzeiligem Satz vorgeschrieben. Bevor moderne Textverarbeitungssystemeverfügbar wurden, wäre – außer mit TEX – einzeiliger Satz die einzige Alternative gewesen.Dabei wäre dann selbst das Anbringen von Korrekturzeichen schwierig geworden. Als die Ver-wendung von Computern für die Erstellung schriftlicher Arbeiten üblicher wurde, hat sichmanches Mal auch der Spieltrieb des einen oder anderen Studenten gezeigt, der durch Ver-wendung einer Schmuckschrift seine Arbeit aufpeppen und so eine bessere Note mit wenigerEinsatz herausschinden wollte. Nicht bedacht hat er dabei, dass solche Schriften schlechter zulesen und deshalb für den Zweck ungeeignet sind. Damit hielten zwei Brotschriften Einzug indie Vorschriften, die weder zusammenpassen noch im Falle von Times wirklich gut geeignetsind. Times ist eine relativ enge Schrift, die Anfang des 20. Jahrhunderts speziell für schmaleSpalten im englischen Zeitungssatz entworfen wurde. In modernen Schnitten ist dies etwasentschärft. Dennoch passt die häufig vorgeschriebene Times meist nicht zu den gleichzeitiggegebenen Randvorgaben.

Kapitel 2: Satzspiegelberechnung mit typearea.sty 54

LATEX setzt bereits von sich aus mit ausreichendem Durchschuss. Gleichzeitig sind die Ränderbei sinnvollen Zeilenlängen groß genug, um Platz für Korrekturen zu bieten. Dabei wirkt dieSeite trotz einer Fülle von Text großzügig angelegt.

Oft sind die typografisch mehr als fragwürdigen Satzvorschriften mit LATEX auch außeror-dentlich schwierig umzusetzen. So kann eine feste Anzahl von »Anschlägen« nur dann ein-gehalten werden, wenn keine proportionale Schrift verwendet wird. Es gibt nur wenige gutenichtproportionale Schriften. Häufig wird versucht, durch ausladende Serifen beispielsweisebeim kleinen »i« oder »l« die unterschiedliche Breite der Zeichen auszugleichen. Dies kannnicht funktionieren. Im Ergebnis wirkt der Text unruhig und zerrissen. Außerdem verträgt sicheine solche Schrift kaum mit dem im deutschen Sprachraum üblichen und allgemein vorzuzie-henden Blocksatz. Gewisse Vorgaben können daher bei Verwendung von LATEX nur ignoriertoder großzügig ausgelegt werden, etwa indem man »60 Anschläge pro Zeile« nicht als feste,sondern als durchschnittliche oder maximale Angabe interpretiert.Wie ausgeführt, sind Satzvorschriften meist dazu gedacht, ein brauchbares Ergebnis zu

erhalten, auch wenn der Ausführende selbst nicht weiß, was dabei zu beachten ist. Brauchbarbedeutet häufig: lesbar und korrigierbar. Nach meiner Auffassung wird ein mit LATEX und demtypearea-Paket gesetzter Text bezüglich des Satzspiegels diesen Anforderungen von vornhereingerecht. Wenn Sie also mit Vorschriften konfrontiert sind, die offensichtlich erheblich davonabweichen, so empfehle ich, dem Betreuer einen Textauszug vorzulegen und nachzufragen, obes gestattet ist, die Arbeit trotz der Abweichungen in dieser Form zu liefern. Gegebenenfallskann durch Veränderung der Option DIV der Satzspiegel moderat angepasst werden. Von derVerwendung von \areaset zu diesem Zweck rate ich jedoch ab. Schlimmstenfalls verwendenSie das nicht zu KOMA-Script gehörende geometry-Paket (siehe [Ume10]) oder verändern Siedie Satzspiegelparameter von LATEX selbst. Die von typearea ermittelten Werte finden Sie inder log-Datei Ihres Dokuments. Mit Hilfe von Option usegeometry, die Sie in Teil II finden,kann außerdem die Zusammenarbeit von typearea und geometry verbessert werden. Damitsollten moderate Anpassungen möglich sein. Achten Sie jedoch unbedingt darauf, dass dieProportionen des Textbereichs mit denen der Seite unter Berücksichtigung der Bindekorrekturannähernd übereinstimmen.Sollte es unbedingt erforderlich sein, den Text eineinhalbzeilig zu setzen, so definieren Sie

keinesfalls \baselinestretch um. Dieses Vorgehen wird zwar allzu häufig empfohlen, ist aberseit der Einführung von LATEX2ε im Jahre 1994 obsolet. Verwenden Sie schlimmstenfalls denBefehl \linespread. Ich empfehle das Paket setspace, das nicht zu KOMA-Script gehört (siehe[TF11]). Auch sollten Sie typearea nach der Umstellung des Zeilenabstandes den Satzspiegelfür diesen Abstand berechnen lassen, jedoch für den Titel, besser auch für die Verzeichnisse –sowie das Literaturverzeichnis und den Index – wieder auf normalen Satz umschalten. Näheresdazu finden Sie bei der Erklärung zu DIV=current.

Das typearea-Paket berechnet auch bei der Option DIV=calc einen sehr großzügigen Text-bereich. Viele konservative Typografen werden feststellen, dass die resultierende Zeilenlängenoch zu groß ist. Der berechnete DIV-Wert ist ebenfalls in der log-Datei zum jeweiligen Do-

Kapitel 2: Satzspiegelberechnung mit typearea.sty 55

kument zu finden. Sie können also leicht nach dem ersten LATEX-Lauf einen kleineren Wertwählen.Nicht selten wird mir die Frage gestellt, warum ich eigentlich kapitelweise auf einer Satzspie-

gelberechnung herumreite, während es sehr viel einfacher wäre, nur ein Paket zur Verfügungzu stellen, mit dem man die Ränder wie bei einer Textverarbeitung einstellen kann. Oft wirdauch behauptet, ein solches Paket wäre ohnehin die bessere Lösung, da jeder selbst wisse, wiegute Ränder zu wählen seien, und die Ränder von KOMA-Script wären ohnehin nicht gut. Icherlaube mir zum Abschluss dieses Kapitels ein passendes Zitat von Hans Peter Willberg undFriedrich Forssmann, zwei der angesehensten Typografen der Gegenwart (siehe [WF00]):

Das Selbermachen ist längst üblich, die Ergebnisse oft fragwürdig, weil Laien-Typografen nicht sehen, was nicht stimmt und nicht wissen können, worauf esankommt. So gewöhnt man sich an falsche und schlechte Typografie. [. . . ] Jetztkönnte der Einwand kommen, Typografie sei doch Geschmackssache. Wenn es umDekoration ginge, könnte man das Argument vielleicht gelten lassen, da es aber beiTypografie in erster Linie um Information geht, können Fehler nicht nur stören,sondern sogar Schaden anrichten.

Kapitel 3: Die Hauptklassen scrbook, scrreprt, scrartcl 56

Die Hauptklassen scrbook, scrreprt, scrartcl

Die Hauptklassen des KOMA-Script-Pakets sind als Äquivalent zu den LATEX-Standardklassenangelegt. Das bedeutet, dass zu den drei Standardklassen book, report und article im KOMA-Script-Paket Entsprechungen zu finden sind. Daneben ist auch für die Standardklasse lettereine Entsprechung vorhanden. Der Briefklasse in KOMA-Script ist jedoch ein eigenes Kapitelgewidmet, da sie sich von den drei Hauptklassen grundsätzlich unterscheidet (siehe Kapitel 4).Die einfachste Möglichkeit, anstelle einer Standardklasse eine KOMA-Script-Klasse zu ver-

wenden, ist das Ersetzen des Klassennamens in der Anweisung \documentclass entsprechendTabelle 3.1. Man tauscht also beispielsweise \documentclass{book} gegen \documentclass{scrbook}. Der anschließende LATEX-Lauf sollte lediglich einige Layoutänderungen mit sichbringen. Ein großer Teil der in den nachfolgenden Abschnitten beschriebenen vielfältigen Mög-lichkeiten und Optionen werden von den KOMA-Script-Klassen zusätzlich geboten.Lassen Sie mich der Erläuterung der Klassen noch eine Bemerkung vorausschicken. Oft ist

man sich am Anfang eines Dokuments unsicher, welche Einstellungen konkret zu wählen sind.Bei einigen Einstellungen, wie der Auswahl des Papierformats, mögen sie bereits vorab festste-hen. Aber schon die Frage nach der Seitenaufteilung könnte im Voraus schwer zu beantwortensein. Andererseits sollten diese Angaben für die Haupttätigkeiten des Autors – Entwurf derGliederung, Schreiben des Textes, Zusammenstellen von Abbildungen, Tabellen und Verzeich-nissen – zunächst auch unerheblich sein. Konzentrieren Sie sich als Autor erst einmal auf denInhalt. Wenn der dann steht, können Sie sich um die Feinheiten der Form kümmern. Nebender Auswahl der Optionen gehören dazu dann auch Dinge wie die Korrektur der Trennung undmöglicherweise dezente Eingriffe in den Seitenumbruch oder die Verteilung von Abbildungenund Tabellen.

3.1. Frühe oder späte Optionenwahl

Es gilt sinngemäß, was in Abschnitt 2.4 geschrieben wurde. Falls Sie also Abschnitt 2.4 bereitsgelesen und verstanden haben, können Sie auf Seite 58 mit Abschnitt 3.2 fortfahren.

Tabelle 3.1.: Gegenüberstellung der Standardklassenund der KOMA-Script-Klassen Standard-Klasse KOMA-Script-Klasse

article scrartclreport scrreprtbook scrbookletter scrlttr2

Kapitel 3: Die Hauptklassen scrbook, scrreprt, scrartcl 57

\documentclass[Optionenliste ]{KOMA-Script-Klasse }\usepackage[Optionenliste ]{Paket-Liste }

Bei LATEX ist vorgesehen, dass Anwender Klassenoptionen in Form einer durch Komma ge-trennten Liste einfacher Schlüsselwörter als optionales Argument von \documentclass ange-ben. Außer an die Klasse werden diese Optionen auch an alle Pakete weitergereicht, die dieseOptionen verstehen. Ebenso ist vorgesehen, dass Anwender Paketoptionen in Form einer durchKomma getrennten Liste einfacher Schlüsselwörter als optionales Argument von \usepackageangeben. KOMA-Script erweitertv3.00 den Mechanismus der Optionen für die KOMA-Script-Klassen und einige Pakete um weitere Möglichkeiten. So haben die meisten Optionen beiKOMA-Script zusätzlich einen Wert. Eine Option hat also nicht unbedingt nur die FormOption , sondern kann auch die Form Option =Wert haben. Bis auf diesen Unterschied arbei-ten \documentclass und \usepackage bei KOMA-Script wie in [Tea05b] oder jeder LATEX-Einführung, beispielsweise [DGS+12], beschrieben.

Bei Verwendung einer KOMA-Script-Klasse sollten im Übrigen beim Laden des Paketstypearea oder scrbase keine Optionen angegeben werden. Das ist darin begründet, dass dieKlasse diese Pakete bereits ohne Optionen lädt und LATEX das mehrmalige Laden eines Paketsmit unterschiedlicher Angabe von Optionen verweigert.Gegenüber der nachfolgend vorgestellten Schnittstelle zu Einstellungen von Optionen hat

\documentclass einen Nachteil, der unbedingt zu beachten ist: Anweisungen, Längen, Zählerund ähnliches können darin leicht zerbrechen. So führt die Verwendung einer LATEX-Längeim Wert einer Option bei dieser Anweisung bei vielen Nicht-KOMA-Script-Klassen zu einerFehlermeldung. Wertzuweisungen mit LATEX-Längen oder LATEX-Zählern sollten daher nie per\documentclass, sondern mit den nachfolgend dokumentierten Anweisungen \KOMAoptionsoder \KOMAoption vorgenommen werden.

\KOMAoptions{Optionenliste }\KOMAoption{Option }{Werteliste }

KOMA-Scriptv3.00 bietet bei den meisten Klassen- und Paketoptionen auch die Möglichkeit, denWert der Optionen noch nach dem Laden der Klasse beziehungsweise des Pakets zu ändern.Mit der Anweisung \KOMAoptions kann man wie bei \documentclass oder \usepackage dieWerte einer Reihe von Optionen ändern. Jede Option der Optionenliste hat dabei die FormOption =Wert .

Einige Optionen besitzen auch einen Säumniswert (engl. default value). Versäumt man dieAngabe eines Wertes, verwendet man die Option also einfach in der Form Option , so wirdautomatisch dieser Säumniswert angenommen.Manche Optionen können gleichzeitig mehrere Werte besitzen. Für solche Optionen besteht

die Möglichkeit, mit \KOMAoption der einen Option nacheinander eine Reihe von Wertenzuzuweisen. Die einzelnen Werte sind dabei in der Werteliste durch Komma voneinandergetrennt.

Kapitel 3: Die Hauptklassen scrbook, scrreprt, scrartcl 58

Soll ein Wert ein Gleichheitszeichen oder ein Komma enthalten, so ist der Wert in geschweif-te Klammern zu setzen.KOMA-Script bedient sich für die Realisierung dieser Möglichkeit der Anweisungen

\FamilyOptions und \FamilyOption mit der Familie »KOMA«. Siehe dazu Teil II, Abschnitt 12.2,ab Seite 345.Mit \KOMAoptions oder \KOMAoption gesetzte Optionen erreichen sowohl die KOMA-Script-

Klasse als auch alle bereits geladenen KOMA-Script-Pakete, die diese Optionen kennen. Isteine Option oder ein Wert insgesamt unbekannt, so wird die Option einschließlich des Wertesvon scrbase als fehlerhaft gemeldet.

3.2. Kompatibilität zu früheren Versionen von KOMA-Script

Es gilt sinngemäß, was in Abschnitt 2.5 geschrieben wurde. Falls Sie also Abschnitt 2.5 bereitsgelesen und verstanden haben, können Sie in Abschnitt 3.3 auf Seite 59 fortfahren.Wer seine Dokumente im Quellcode archiviert, legt in der Regel allergrößten Wert darauf,

dass bei zukünftigen LATEX-Läufen immer wieder exakt dasselbe Ergebnis erzielt wird. Ineinigen Fällen führen aber Verbesserungen und Korrekturen an der Klasse zu Änderungen imVerhalten, inbesondere beim Umbruch. Dies ist jedoch manchmal eher unerwünscht.

version=Wertversion=firstversion=last

Seitv2.96av2.9tv3.01b Version 2.96a besteht bei KOMA-Script die Wahl, ob eine Quelldatei, soweit irgend mög-lich, auch zukünftig bei einem LATEX-Lauf zu exakt demselben Ergebnis führen soll oder ob erjeweils entsprechend der Anpassungen der neusten Version der Klasse zu setzen ist. Zu welcherVersion Kompatibilität herzustellen ist, wird dabei über die Option version festgelegt. Kom-patibilität zur ältesten unterstützten KOMA-Script-Version kann mit version=first oderversion=2.9 oder version=2.9t erreicht werden. Bei Angabe einer unbekannten Version alsWert wird eine Warnung ausgegeben und sicherheitshalber version=first angenommen.Mit version=last kann die jeweils neuste Version ausgewählt werden. In diesem Fall wird

also auf rückwirkende Kompatibilität verzichtet. Wird die Option ohne Wertangabe verwendet,so wird ebenfalls last angenommen.v3.01a Dies entspricht auch der Voreinstellung, solange keineobsolete Option verwendet wird.Bei der Verwendung einer obsoleten Option von KOMA-Script 2 setzt KOMA-Script 3

automatisch version=first. In der dabei ausgegebenen Warnung wird erklärt, wie man dieseKompatibilitätsumschaltung verhindern kann. Alternativ kann man auch nach der obsoletenOption selbst eine abweichende Einstellung für Option version wählen.Die Frage der Kompatibilität betrifft in erster Linie Fragen des Umbruchs. Neue Möglich-

keiten, die sich nicht auf den Umbruch auswirken, sind auch dann verfügbar, wenn man per

Kapitel 3: Die Hauptklassen scrbook, scrreprt, scrartcl 59

Option die Kompatibilität zu einer älteren Version ausgewählt hat. Die Option hat keine Aus-wirkungen auf Umbruchänderungen, die bei Verwendung einer neueren Version durch Beseiti-gung eindeutiger Fehler entstehen. Wer auch im Fehlerfall unbedingte Umbruchkompatibilitätbenötigt, sollte stattdessen mit dem Dokument auch die verwendete KOMA-Script-Versionarchivieren.Es ist zu beachten, dass die Option version nach dem Laden der Klasse nicht mehr verän-

dert werden kann. Das Setzen mit \KOMAoptions oder \KOMAoption ist daher nicht vorgesehen.

3.3. Entwurfsmodus

Viele Klassen und viele Pakete kennen neben dem normalen Satzmodus auch einen Entwurfs-modus. Die Unterschiede zwischen diesen beiden sind so vielfältig wie die Klassen und Pakete,die diese Unterscheidung anbieten.

draft=Ein-Aus-Wertoverfullrule=Ein-Aus-Wert

Mit Option draftv3.00 wird zwischen Dokumenten im Entwurfsstadium und fertigen Dokumen-ten unterschieden. Als Ein-Aus-Wert kann einer der Standardwerte für einfache Schalter ausTabelle 2.5, Seite 42 verwendet werden. Bei Aktivierung der Option werden im Falle überlan-ger Zeilen am Zeilenende kleine, schwarze Kästchen ausgegeben. Diese Kästchen erleichterndem ungeübten Auge, Absätze ausfindig zu machen, die manueller Nachbearbeitung bedürfen.Demgegenüber erscheinen in der Standardeinstellung draft=false keine solchen Kästchen.Solche Zeilen verschwinden übrigens häufig durch Verwendung des Pakets microtype [Sch13].

Dav3.25 Option draft bei verschiedenen Paketen zu allerlei unerwünschten Effekten führen kann,bietet KOMA-Script die Möglichkeit, die Markierung für überlange Zeilen auch über Optionoverfullrule zu steuern. Auch hier gilt, dass bei aktivierter Option die Markierung angezeigtwird.

3.4. Seitenaufteilung

Eine Dokumentseite besteht aus unterschiedlichen Teilen, wie den Rändern, dem Kopf, demFuß, dem Textbereich, einer Marginalienspalte und den Abständen zwischen diesen Elementen.KOMA-Script unterscheidet dabei auch noch zwischen der Gesamtseite oder dem Papier undder sichtbaren Seite. Ohne Zweifel gehört die Aufteilung der Seite in diese unterschiedlichenTeile zu den Grundfähigkeiten einer Klasse. Bei KOMA-Script wird diese Arbeit an das Pakettypearea delegiert. Dieses Paket kann auch zusammen mit anderen Klassen verwendet werden.Die KOMA-Script-Klassen laden typearea jedoch selbstständig. Es ist daher weder notwendignoch sinnvoll, das Paket bei Verwendung einer KOMA-Script-Klasse auch noch explizit per\usepackage zu laden. Siehe hierzu auch Abschnitt 3.1, ab Seite 56.

Kapitel 3: Die Hauptklassen scrbook, scrreprt, scrartcl 60

Einige Einstellungen der KOMA-Script-Klassen haben Auswirkungen auf die Seitenauftei-lung und umgekehrt. Diese Auswirkungen werden bei den entsprechenden Einstellungen do-kumentiert.Für die weitere Erklärung zur Wahl des Papierformats, der Aufteilung der Seite in Ränder

und Satzspiegel und die Wahl von ein- oder zweispaltigem Satz sei auf die Anleitung des Paketstypearea verwiesen. Diese ist in Kapitel 2 ab Seite 27 zu finden.

\flushbottom\raggedbottom

Insbesondere bei doppelseitigen Dokumenten ist es wünschenswert, wenn nicht nur alle erstenZeilen eines Satzspiegels mit ihrer Grundlinie auf der gleichen Höhe liegen, sondern auch die letztenZeilen einer Doppelseite. Enthält eine Seite nur Text ohne Absätze und Überschriften, so hat mandas automatisch, wenn bei der Konstruktion des Satzspiegels einige Grundregeln befolgt wurden.Aber bereits dann, wenn Absätze mit einem halben Grundlinienabstand markiert werden, genügtes, wenn die Anzahl der Absätze auf der einen Seite um eine ungerade Zahl von der auf deranderen Seite abweicht, damit dieses Ziel nicht mehr erreicht werden kann. Es ist dann notwendig,dass man zumindest einige der vertikalen Abstände etwas dehnt oder staucht, um das Ziel wiederzu erreichen. TEX kennt zu diesem Zweck dehn- und stauchbare Abstände und LATEX bietet dieMöglichkeit, diesen vertikalen Ausgleich automatisch durchzuführen.Wird über die Option twoside (siehe Abschnitt 2.6, Seite 42) doppelseitiger oder über Op-

tion twocolumn (siehe Seite 43) zweispaltiger Satz angefordert, so wird der vertikale Ausgleichebenfalls eingeschaltet. Dasv3.17 gilt jedoch bei einer Kompatibilitätseinstellung zu einer KOMA-Script-Version vor 3.17 (siehe Abschnitt 3.2, Seite 58, Option version) nicht, wenn die Optionüber \KOMAoption oder \KOMAoptions geändert wird.Man kann den vertikalen Ausgleich auch mit \flushbottom jederzeit ab der aktuellen Seite

explizit fordern. Umgekehrt ist es möglich, mit \raggedbottom den vertikalen Ausgleich abder aktuellen Seite explizit abzuschalten. Dies entspricht der Voreinstellung bei einseitigemSatz.KOMA-Script verwendet übrigens einen leicht modifizierten Verzicht auf den vertikalen

Ausgleich.

3.5. Wahl der Schriftgröße für das Dokument

Die Grundschrift und deren Größe sind zentrale Elemente der Gestaltung eines Dokuments.Wie in Kapitel 2 ausgeführt wurde, hängt die Aufteilung zwischen Satzspiegel und Rändernwesentlich davon ab. Die Grundschrift ist dabei die Schrift, die für die Masse des Textes einesDokuments verwendet wird. Alle davon abweichenden Einstellungen, sei es in der Form, derDicke, der Neigung oder der Größe, stehen in einer Beziehung zur Grundschrift.

Kapitel 3: Die Hauptklassen scrbook, scrreprt, scrartcl 61

fontsize=Größe

Während von den Standardklassen und den meisten anderen Klassen nur eine sehr beschränkteAnzahl an Schriftgrößen unterstützt wird, bietet KOMA-Script die Möglichkeit, jede beliebigeGröße für die Grundschrift anzugeben. Dabei kann als Einheit für die Größe auch jede be-kannte TEX-Einheit verwendet werden. Wird die Größe ohne Einheit angegeben, so wird ptals Einheit angenommen.Wird die Option innerhalb des Dokuments gesetzt, so werden ab diesem Punkt die

Grundschriftgröße und die davon abhängigen Schriftgrößen der Befehle \tiny, \scriptsize,\footnotesize, \small, \normalsize, \large, \Large, \LARGE, \huge und \Huge geändert.Das kann beispielsweise dann nützlich sein, wenn der Anhang insgesamt in einer kleinerenSchriftgröße gesetzt werden soll.Es wird darauf hingewiesen, dass bei Verwendung nach dem Laden der Klasse die Auf-

teilung zwischen Satzspiegel und Rändern nicht automatisch neu berechnet wird (siehe\recalctypearea, Abschnitt 2.6, Seite 41). Wird diese Neuberechnung jedoch vorgenommen,so erfolgt sie auf Basis der jeweils gültigen Grundschriftgröße. Die Auswirkungen des Wechselsder Grundschriftgröße auf zusätzlich geladene Pakete oder die verwendete Klasse sind von die-sen Paketen und der Klasse abhängig. Es können also Fehler auftreten, die nicht als Fehler vonKOMA-Script angesehen werden, und auch die KOMA-Script-Klassen selbst passen nicht alleLängen an eine nach dem Laden der Klasse vorgenommene Änderung der Grundschriftgrößean.Diese Option sollte keinesfalls als Ersatz für \fontsize (siehe [Tea05a]) missverstanden

werden. Sie sollte auch nicht anstelle einer der von der Grundschrift abhängigen Schriftgrö-ßenanweisungen, \tiny bis \Huge, verwendet werden!Voreingestellt ist bei scrbook, scrreprt und scrartcl fontsize=11pt. Demgegenüber ist übri-

gens bei den Standardklassen 10pt voreingestellt. Dies ist bei einem Wechsel von den Stan-dardklassen zu den KOMA-Script-Klassen gegebenenfalls zu beachten.

3.6. Textauszeichnungen

LATEX verfügt über eine ganze Reihe von Anweisungen zur Textauszeichnung. Neben der Wahlder Schriftart gehören dazu auch Befehle zur Wahl einer Textgröße oder der Textausrichtung.Näheres zu den normalerweise definierten Möglichkeiten ist [DGS+12], [Tea05b] und [Tea05a]zu entnehmen.

\textsuperscript{Text }\textsubscript{Text }

Im LATEX-Kern ist bereits die Anweisung \textsuperscript definiert, mit der Text höhergestellt werden kann. Eine entsprechende Anweisung, um Text tief statt hoch zu stellen, bietetLATEX erst seit Version 2015/01/01. Für ältere LATEX-Versionen definiert KOMA-Script daher\textsubscript.

Kapitel 3: Die Hauptklassen scrbook, scrreprt, scrartcl 62

Beispiel: Sie schreiben einen Text über den menschlichen Stoffwechsel. Darin kommen hinund wieder einfache chemische Summenformeln vor. Dabei sind einzelne Ziffern tiefzu stellen. Im Sinne des logischen Markups definieren Sie zunächst in der Doku-mentpräambel oder einem eigenen Paket:\newcommand*{\Molek}[2]{#1\textsubscript{#2}}

Damit schreiben Sie dann:Die Zelle bezieht ihre Energie unter anderem ausder Reaktion von \Molek C6\Molek H{12}\Molek O6und \Molek O2 zu \Molek H2\Molek O{} und\Molek C{}\Molek O2. Arsen (\Molek{As}{}) wirktsich auf den Stoffwechsel sehr nachteilig aus.

Das Ergebnis sieht daraufhin so aus:

Die Zelle bezieht ihre Energie unter anderem aus der Reaktion von C6H12O6und O2 zu H2O und CO2. Arsen (As) wirkt sich auf den Stoffwechsel sehrnachteilig aus.

Etwas später entscheiden Sie, dass Summenformeln grundsätzlich serifenlos ge-schrieben werden sollen. Nun zeigt sich, wie gut die Entscheidung für konsequenteslogisches Markup war. Sie müssen nur die \Molek-Anweisung umdefinieren:\newcommand*{\Molek}[2]{%\textsf{#1\textsubscript{#2}}%

}

Schon ändert sich die Ausgabe im gesamten Dokument:

Die Zelle bezieht ihr Energie unter anderem aus der Reaktion von C6H12O6und O2 zu H2O und CO2. Arsen (As) wirkt sich auf den Stoffwechsel sehrnachteilig aus.

\setkomafont{Element }{Befehle }\addtokomafont{Element }{Befehle }\usekomafont{Element }

Mitv2.8p Hilfe der Anweisungen \setkomafont und \addtokomafont ist es möglich, die Befehlefestzulegen, mit denen die Schrift eines bestimmten Element s umgeschaltet wird. Theore-tisch könnten als Befehle alle möglichen Anweisungen einschließlich Textausgaben verwen-det werden. Sie sollten sich jedoch unbedingt auf solche Anweisungen beschränken, mit de-nen wirklich nur Schriftattribute umgeschaltet werden. In der Regel werden dies Befehle wie\rmfamily, \sffamily, \ttfamily, \upshape, \itshape, \slshape, \scshape, \mdseries,\bfseries, \normalfont oder einer der Befehle \Huge, \huge, \LARGE, \Large, \large,\normalsize, \small, \footnotesize, \scriptsize und \tiny sein. Die Erklärung zu diesen

Kapitel 3: Die Hauptklassen scrbook, scrreprt, scrartcl 63

Befehlen entnehmen Sie bitte [DGS+12], [Tea05b] oder [Tea05a]. Auch Farbumschaltungen wie\normalcolor sind möglich (siehe [Car17] und [Ker07]). Die Verwendung anderer Anweisun-gen, inbesondere solcher, die Umdefinierungen vornehmen oder zu Ausgaben führen, ist nichtvorgesehen. Seltsames Verhalten ist in diesen Fällen möglich und stellt keinen Fehler dar.Mit \setkomafont wird die Schriftumschaltung eines Elements mit einer völlig neuen Defi-

nition versehen. Demgegenüber wird mit \addtokomafont die existierende Definition lediglicherweitert. Es wird empfohlen, beide Anweisungen nicht innerhalb des Dokuments, sondernnur in der Dokumentpräambel zu verwenden. Beispiele für die Verwendung entnehmen Siebitte den Abschnitten zu den jeweiligen Elementen. Namen und Bedeutung der einzelnen Ele-mente sind in Tabelle 3.2 aufgelistet. Die Voreinstellungen sind den jeweiligen Abschnitten zuentnehmen.Mit der Anweisung \usekomafont kann die aktuelle Schriftart auf diejenige umgeschaltet

werden, die für das angegebene Element definiert ist.

Beispiel: Angenommen, für das Element captionlabel soll dieselbe Schriftart wie fürdescriptionlabel verwendet werden. Das erreichen Sie einfach mit:

\setkomafont{captionlabel}{%\usekomafont{descriptionlabel}%

}

Weitere Beispiele finden Sie in den Abschnitten zu den jeweiligen Elementen.

Tabelle 3.2.: Elemente, deren Schrift bei scrbook, scrreprt oder scrartcl mit \setkomafont und\addtokomafont verändert werden kann

authorv3.12 Autorangaben im Haupttitel des Dokuments mit \maketitle, also das Argument

von \author (siehe Abschnitt 3.7, Seite 71)

captionText einer Abbildungs- oder Tabellenunter- oder -überschrift (siehe Abschnitt 3.20,Seite 140)

captionlabelLabel einer Abbildungs- oder Tabellenunter- oder -überschrift; Anwendung erfolgtnach dem Element caption (siehe Abschnitt 3.20, Seite 140)

chapterÜberschrift der Ebene \chapter (siehe Abschnitt 3.16, Seite 107)

. . .

Kapitel 3: Die Hauptklassen scrbook, scrreprt, scrartcl 64

Tabelle 3.2.: Elemente, deren Schrift verändert werden kann (Fortsetzung)

chapterentryInhaltsverzeichniseintrag der Ebene \chapter (siehe Abschnitt 3.9, Seite 80)

chapterentrydotsv3.15 Optionale Verbindungspunkte in Inhaltsverzeichniseinträgen der Ebene \chapter

abweichend vom Element chapterentrypagenumber (siehe Abschnitt 3.9, Seite 80)

chapterentrypagenumberSeitenzahl des Inhaltsverzeichniseintrags der Ebene \chapter abweichend vom Ele-ment chapterentry (siehe Abschnitt 3.9, Seite 80)

chapterprefixKapitelnummernzeile sowohl bei Einstellung chapterprefix=true als auchappendixprefix=true (siehe Abschnitt 3.16, Seite 102)

datev3.12 Datum im Haupttitel des Dokuments mit \maketitle, also das Argument von \date

(siehe Abschnitt 3.7, Seite 71)

dedicationv3.12 Widmung nach dem Haupttitel des Dokuments mit \maketitle, also das Argument

von \dedication (siehe Abschnitt 3.7, Seite 74)

descriptionlabelLabel, also das optionale Argument der \item-Anweisung, in einer description-Umgebung (siehe Abschnitt 3.18, Seite 129)

dictummit \dictum gesetzter schlauer Spruch (siehe Abschnitt 3.17, Seite 124)

dictumauthorUrheber eines schlauen Spruchs; Anwendung erfolgt nach dem Element dictum (sieheAbschnitt 3.17, Seite 124)

dictumtextalternative Bezeichnung für dictum

dispositionalle Gliederungsüberschriften, also die Argumente von \part bis \subparagraph und\minisec sowie die Überschrift der Zusammenfassung; die Anwendung erfolgt vordem Element der jeweiligen Gliederungsebene (siehe Abschnitt 3.16 ab Seite 100)

. . .

Kapitel 3: Die Hauptklassen scrbook, scrreprt, scrartcl 65

Tabelle 3.2.: Elemente, deren Schrift verändert werden kann (Fortsetzung)

footnoteMarke und Text einer Fußnote (siehe Abschnitt 3.14, Seite 95)

footnotelabelMarke einer Fußnote; Anwendung erfolgt nach dem Element footnote (siehe Ab-schnitt 3.14, Seite 95)

footnotereferenceReferenzierung der Fußnotenmarke im Text (siehe Abschnitt 3.14, Seite 95)

footnoteruleLiniev3.07 über dem Fußnotenapparat (siehe Abschnitt 3.14, Seite 99)

labelinglabelLabel, also das optionale Argument der \item-Anweisung, und Trennzeichen, al-so das optionale Argument der labeling-Umgebung, in einer labeling-Umgebung(siehe Abschnitt 3.18, Seite 130)

labelingseparatorTrennzeichen, also das optionale Argument der labeling-Umgebung, in einerlabeling-Umgebung; Anwendung erfolgt nach dem Element labelinglabel (sie-he Abschnitt 3.18, Seite 130)

minisecmit \minisec gesetzte Überschrift (siehe Abschnitt 3.16 ab Seite 114)

pagefootwird nur verwendet, wenn das Paket scrlayer-scrpage geladen ist (siehe Kapitel 5,Seite 262)

pageheadalternative Bezeichnung für pageheadfoot

pageheadfootSeitenkopf und Seitenfuß bei allen von KOMA-Script definierten Seitenstilen (sieheAbschnitt 3.12 ab Seite 85)

pagenumberSeitenzahl im Kopf oder Fuß der Seite (siehe Abschnitt 3.12)

. . .

Kapitel 3: Die Hauptklassen scrbook, scrreprt, scrartcl 66

Tabelle 3.2.: Elemente, deren Schrift verändert werden kann (Fortsetzung)

paginationalternative Bezeichnung für pagenumber

paragraphÜberschrift der Ebene \paragraph (siehe Abschnitt 3.16, Seite 107)

partÜberschrift der Ebene \part, jedoch ohne die Zeile mit der Nummer des Teils (sieheAbschnitt 3.16, Seite 107)

partentryInhaltsverzeichniseintrag der Ebene \part (siehe Abschnitt 3.9, Seite 80)

partentrypagenumberSeitenzahl des Inhaltsverzeichniseintrags der Ebene \part abweichend vom Elementpartentry (siehe Abschnitt 3.9, Seite 80)

partnumberZeile mit der Nummer des Teils in Überschrift der Ebene \part (siehe Abschnitt 3.16,Seite 107)

publishersv3.12 Verlagsangabe im Haupttitel des Dokuments mit \maketitle, also das Argument

von \publishers (siehe Abschnitt 3.7, Seite 71)

sectionÜberschrift der Ebene \section (siehe Abschnitt 3.16, Seite 107)

sectionentryInhaltsverzeichniseintrag der Ebene \section (nur bei scrartcl verfügbar, siehe Ab-schnitt 3.9, Seite 80)

sectionentrydotsv3.15 Optionale Verbindungspunkte in Inhaltsverzeichniseinträgen der Ebene \section

abweichend vom Element sectionentrypagenumber (nur bei scrartcl verfügbar, sieheAbschnitt 3.9, Seite 80)

sectionentrypagenumberSeitenzahl des Inhaltsverzeichniseintrags der Ebene \section abweichend vom Ele-ment sectionentry (nur bei scrartcl verfügbar, siehe Abschnitt 3.9, Seite 80)

. . .

Kapitel 3: Die Hauptklassen scrbook, scrreprt, scrartcl 67

Tabelle 3.2.: Elemente, deren Schrift verändert werden kann (Fortsetzung)

sectioningalternative Bezeichnung für disposition

subjectTypisierung des Dokuments, also das Argument von \subject auf der Haupttitelseitemit \maketitle (siehe Abschnitt 3.7, Seite 71)

subparagraphÜberschrift der Ebene \subparagraph (siehe Abschnitt 3.16, Seite 107)

subsectionÜberschrift der Ebene \subsection (siehe Abschnitt 3.16, Seite 107)

subsubsectionÜberschrift der Ebene \subsubsection (siehe Abschnitt 3.16, Seite 107)

subtitleUntertitel des Dokuments, also das Argument von \subtitle auf der Haupttitelseitemit \maketitle (siehe Abschnitt 3.7, Seite 71)

titleHaupttitel des Dokuments, also das Argument von \title bei Verwendung von\maketitle (bezüglich der Größe des Haupttitels siehe die ergänzenden Bemerkun-gen im Text von Abschnitt 3.7 ab Seite 71)

titleheadv3.12 Kopf über dem Haupttitel des Dokuments, also das Argument von \titlehead mit

\maketitle (siehe Abschnitt 3.7, Seite 71)

\usefontofkomafont{Element }\useencodingofkomafont{Element }\usesizeofkomafont{Element }\usefamilyofkomafont{Element }\useseriesofkomafont{Element }\useshapeofkomafont{Element }

Manchmalv3.12 werden in der Schrifteinstellung eines Elements auch Dinge vorgenommen, die mitder Schrift eigentlich gar nichts zu tun haben, obwohl dies ausdrücklich nicht empfohlen wird.Soll dann nur die Schrifteinstellung, aber keine dieser zusätzlichen Einstellungen ausgeführtwerden, so kann statt \usekomafont die Anweisung \usefontofkomafont verwendet werden.Diese Anweisung übernimmt nur die Schriftgröße und den Grundlinienabstand, die Codierung

Kapitel 3: Die Hauptklassen scrbook, scrreprt, scrartcl 68

(engl. encoding), die Familie (engl. family), die Strichstärke oder Ausprägung (engl. font series)und die Form oder Ausrichtung (engl. font shape).Mit den übrigen Anweisungen können auch einzelne Schriftattribute übernommen werden.

Dabei übernimmt \usesizeofkomafont sowohl die Schriftgröße als auch den Grundlinienab-stand.Diese Befehle sollten jedoch nicht als Legitimation dafür verstanden werden, in die Schrift-

einstellungen der Elemente beliebige Anweisungen einzufügen. Das kann nämlich sehr schnellzu Fehlern führen (siehe Abschnitt 21.5, Seite 505).

3.7. Dokumenttitel

Bei Dokumenten wird zwischen zwei Arten von Titeln für das gesamte Dokument unterschie-den. Zum einen gibt es die Titelseiten. Hierbei steht der Dokumenttitel zusammen mit einigenzusätzlichen Informationen wie dem Autor auf einer eigenen Seite. Neben der Haupttitelseitekann es weitere Titelseiten, etwa Schmutztitel, Verlagsinformationen, Widmung oder ähnli-che, geben. Zum anderen gibt es den Titelkopf. Dabei erscheint der Titel lediglich am Anfangeiner neuen – in der Regel der ersten – Seite. Unterhalb dieser Titelzeilen wird das Doku-ment beispielsweise mit der Zusammenfassung, einem Vorwort oder dem Inhaltsverzeichnisfortgesetzt.

titlepage=Ein-Aus-Werttitlepage=firstiscover\coverpagetopmargin\coverpageleftmargin\coverpagerightmargin\coverpagebottommargin

Mit dieser Optionv3.00 wird ausgewählt, ob für die mit \maketitle (siehe Seite 69) gesetzte Tite-lei eigene Seiten verwendet werden oder stattdessen die Titelei von \maketitle als Titelkopfgesetzt wird. Als Ein-Aus-Wert kann einer der Standardwerte für einfache Schalter aus Ta-belle 2.5, Seite 42 verwendet werden.Mit titlepage=true oder titlepage wird die Titelei in Form von Titelseiten ausgewählt.

Die Anweisung \maketitle verwendet titlepage-Umgebungen zum Setzen dieser Seiten, diesomit normalerweise weder Seitenkopf noch Seitenfuß erhalten. Bei KOMA-Script wurde dieTitelei gegenüber den Standardklassen stark erweitert. Die zusätzlichen Elemente finden sieauf den nachfolgenden Seiten.Demgegenüber wird mit titlepage=false erreicht, dass ein Titelkopf (engl.: in-page title)

gesetzt wird. Das heißt, die Titelei wird lediglich speziell hervorgehoben. Auf der Seite mitdem Titel kann aber nachfolgend weiteres Material, beispielsweise eine Zusammenfassung oderein Abschnitt, gesetzt werden.

Kapitel 3: Die Hauptklassen scrbook, scrreprt, scrartcl 69

Mitv3.12 der dritten Möglichkeit, titlepage=firstiscover, werden nicht nur Titelseiten akti-viert. Es wird auch dafür gesorgt, dass die erste von \maketitle ausgegebene Titelseite, alsoentweder der Schmutztitel oder der Haupttitel, als Umschlagseite ausgegeben wird. Jede andereEinstellung für die Option titlepage hebt diese Einstellung wieder auf. Die Ränder dieser Um-schlagseite werden über \coverpagetopmargin (oberer Rand), \coverpageleftmargin (lin-ker Rand), \coverpagerightmargin (rechter Rand) und natürlich \coverpagebottommargin(unterer Rand) bestimmt. Die Voreinstellungen sind von den Längen \topmargin und\evensidemargin abhängig und können mit \renewcommand geändert werden.Bei den Klassen scrbook und scrreprt sind Titelseiten voreingestellt. Demgegenüber verwen-

det scrartcl in der Voreinstellung einen Titelkopf.

\begin{titlepage} . . . \end{titlepage}Grundsätzlich werden bei den Standardklassen und bei KOMA-Script alle Titelseiten in einerspeziellen Umgebung, der titlepage-Umgebung, gesetzt. Diese Umgebung startet immer miteiner neuen Seite – im zweiseitigen Layout sogar mit einer neuen rechten Seite – im einspaltigenModus. Für eine Seite wird der Seitenstil mit \thispagestyle{empty} geändert, so dassweder Seitenzahl noch Kolumnentitel ausgegeben werden. Am Ende der Umgebung wird dieSeite automatisch beendet. Sollten Sie nicht das automatische Layout der Titelei, wie es dasnachfolgend beschriebene \maketitle bietet, verwenden können, ist zu empfehlen, eine eigeneTitelei mit Hilfe dieser Umgebung zu entwerfen.

Beispiel: Angenommen, Sie wollen eine Titelseite, auf der lediglich oben links möglichst großund fett das Wort »Me« steht – kein Autor, kein Datum, nichts weiter. FolgendesDokument ermöglicht das:\documentclass{scrbook}\begin{document}\begin{titlepage}\textbf{\Huge Me}

\end{titlepage}\end{document}

\maketitle[Seitenzahl ]

Während bei den Standardklassen nur maximal eine Titelseite mit den drei Angaben Titel,Autor und Datum existiert, können bei KOMA-Script mit \maketitle bis zu sechs Titelseitengesetzt werden. Im Gegensatz zu den Standardklassen kennt \maketitle bei KOMA-Scriptaußerdem noch ein optionales nummerisches Argument. Findet es Verwendung, so wird dieNummer als Seitenzahl der ersten Titelseite benutzt. Diese Seitenzahl wird jedoch nicht aus-gegeben, sondern beeinflusst lediglich die Zählung. Sie sollten hier unbedingt eine ungeradeZahl wählen, da sonst die gesamte Zählung durcheinander gerät. Meiner Auffassung nach gibt

Kapitel 3: Die Hauptklassen scrbook, scrreprt, scrartcl 70

es nur zwei sinnvolle Anwendungen für das optionale Argument. Zum einen könnte man demSchmutztitel die logische Seitenzahl -1 geben, um so die Seitenzählung erst ab der Hauptti-telseite mit 1 zu beginnen. Zum anderen könnte man mit einer höheren Seitenzahl beginnen,beispielsweise 3, 5 oder 7, um so weitere Titelseiten zu berücksichtigen, die erst vom Verlag hin-zugefügt werden. Wird ein Titelkopf verwendet, wird das optionale Argument ignoriert. Dafürkann der Seitenstil einer solchen Titelei durch Umdefinierung des Makros \titlepagestyle(siehe Abschnitt 3.12, Seite 88) verändert werden.Die folgenden Anweisungen führen nicht unmittelbar zum Setzen der Titelei. Das Setzen

der Titelei erfolgt immer mit \maketitle. Es sei an dieser Stelle auch darauf hingewiesen,dass \maketitle nicht innerhalb einer titlepage-Umgebung zu verwenden ist. Wie in denBeispielen angegeben, sollte man nur entweder \maketitle oder titlepage verwenden.Mit den nachfolgend erklärten Anweisungen werden lediglich die Inhalte der Titelei festge-

legt. Sie müssen daher auch unbedingt vor \maketitle verwendet werden. Es ist jedoch nichtnotwendig und bei Verwendung des babel-Pakets (siehe [BB13]) auch nicht empfehlenswert,diese Anweisungen in der Dokumentpräambel vor \begin{document} zu verwenden. Beispiel-dokumente finden Sie bei den weiteren Befehlen dieses Abschnitts.

\extratitle{Schmutztitel }\frontispiece{Frontispiz }

Früher war der Buchblock oftmals nicht durch einen Buchdeckel vor Verschmutzung geschützt.Diese Aufgabe übernahm dann die erste Seite des Buches, die meist einen Kurztitel, eben denSchmutztitel, trug. Auch heute noch wird diese Extraseite vor dem eigentlichen Haupttitel gerneverwendet und enthält dann Verlagsangaben, Buchreihennummer und ähnliche Angaben.Bei KOMA-Script ist es möglich, vor der eigentlichen Titelseite eine weitere Seite zu setzen.

Als Schmutztitel kann dabei beliebiger Text – auch mehrere Absätze – gesetzt werden.Der Inhalt von Schmutztitel wird von KOMA-Script ohne zusätzliche Beeinflussung derFormatierung ausgegeben. Dadurch ist dessen Gestaltung völlig dem Anwender überlassen.Die Rückseitev3.25 des Schmutztitels ist das Frontispiz . Der Schmutztitel ergibt auch dann eineeigene Titelseite, wenn mit Titelköpfen gearbeitet wird. Die Ausgabe des mit \extratitledefinierten Schmutztitels erfolgt als Bestandteil der Titelei mit \maketitle.

Beispiel: Kommen wir auf das Beispiel von oben zurück und gehen davon aus, dass dasspartanische »Me« nur den Schmutztitel darstellt. Nach dem Schmutztitel soll nochder Haupttitel folgen. Dann kann wie folgt verfahren werden:\documentclass{scrbook}\begin{document}\extratitle{\textbf{\Huge Me}}\title{It’s me}\maketitle

\end{document}

Kapitel 3: Die Hauptklassen scrbook, scrreprt, scrartcl 71

Sie können den Schmutztitel aber auch horizontal zentriert und etwas tiefer setzen:\documentclass{scrbook}\begin{document}

\extratitle{\vspace*{4\baselineskip}\begin{center}\textbf{\Huge Me}\end{center}}

\title{It’s me}\maketitle

\end{document}

Die Anweisung \title ist beim Setzen der Titelei mit Hilfe von \maketitle grund-sätzlich notwendig, damit die Beispiele fehlerfrei sind. Sie wird nachfolgend erklärt.

\titlehead{Kopf }\subject{Typisierung }\title{Titel }\subtitle{Untertitel }\author{Autor }\date{Datum }\publishers{Verlag }\and\thanks{Fußnote }

Für den Inhalt der Haupttitelseite stehen sieben Elemente zur Verfügung. Die Ausgabe derHaupttitelseite erfolgt als Bestandteil der Titelei mit \maketitle, während die hier aufgeführ-ten Anweisungen lediglich der Definition der entsprechenden Elemente dienen.Der Kopf des Haupttitels wird mit der Anweisung \titlehead definiert. Er wird über die

gesamte Textbreite in normalem Blocksatz am Anfang der Seite ausgegeben. Er kann vomAnwender frei gestaltet werden. Für die Ausgabe wird die Schrift des gleichnamigen Elementsverwendet (siehe Tabelle 3.4, Seite 73).Die Typisierung wird unmittelbar über dem Titel in der Schrift des gleichnamigen Ele-

ments ausgegeben.Der Titel wird in einer sehr großen Schrift gesetzt. Dabeiv2.8p finden abgesehen von der Größe

Schriftumschaltungen für das Element title Anwendung (siehe Tabelle 3.4, Seite 73).Der Untertitelv2.97c steht knapp unter dem Titel in der Schrift des gleichnamigen Elements

(siehe Tabelle 3.4, Seite 73).Unter dem Untertitel folgt der Autor . Es kann auch durchaus mehr als ein Autor in-

nerhalb des Arguments von \author angegeben werden. Die Autoren sind dann mit \andvoneinander zu trennen. Die Ausgabe erfolgt in der Schrift des gleichnamigen Elements (sieheTabelle 3.4, Seite 73).Unter dem Autor oder den Autoren folgt das Datum. Dabei ist das aktuelle Datum, \today,

voreingestellt. Es kann jedoch mit \date eine beliebige Angabe – auch ein leere – erreicht

Kapitel 3: Die Hauptklassen scrbook, scrreprt, scrartcl 72

Tabelle 3.3.: Voreinstellun-gen der Schrift für die Ele-mente des Titels

Element-Name Voreinstellungauthor \Largedate \Largededication \Largepublishers \Largesubject \normalfont\normalcolor\bfseries\Largesubtitle \usekomafont{title}\largetitle \usekomafont{disposition}titlehead

werden. Die Ausgabe erfolgt in der Schrift des gleichnamigen Elements (siehe Tabelle 3.4,Seite 73).Als Letztes folgt schließlich der Verlag . Selbstverständlich kann diese Anweisung auch für

andere Angaben geringer Wichtigkeit verwendet werden. Notfalls kann durch Verwendungeiner \parbox über die gesamte Seitenbreite auch erreicht werden, dass diese Angabe nichtzentriert, sondern im Blocksatz gesetzt wird. Sie ist dann als Äquivalent zum Kopf zu be-trachten. Dabei ist jedoch zu beachten, dass sie oberhalb von eventuell vorhandenen Fußnotenausgegeben wird. Die Ausgabe erfolgt in der Schrift des gleichnamigen Elements (siehe Tabel-le 3.4, Seite 73).

Fußnoten werden auf der Titelseite nicht mit \footnote, sondern mit der Anweisung\thanks erzeugt. Sie dienen in der Regel für Anmerkungen bei den Autoren. Als Fußno-tenzeichen werden dabei Symbole statt Zahlen verwendet. Es ist zu beachten, dass \thanksinnerhalb des Arguments einer der übrigen Anweisungen, beispielsweise im Argument Autorder Anweisung \author, zu verwenden ist.

Fürv3.12 die Ausgabe der Titelelemente kann die Schrift mit Hilfe der Befehle \setkomafontund \addtokomafont (siehe Abschnitt 3.6, Seite 62) eingestellt werden. Die Voreinstellungensind Tabelle 3.3 zu entnehmen.

Bis auf den Kopf und eventuelle Fußnoten werden alle Ausgaben horizontal zentriert. DieseAngaben sind noch einmal kurz zusammengefasst in Tabelle 3.4 zu finden.

Beispiel: Nehmen wir nun einmal an, Sie schreiben eine Diplomarbeit. Dabei sei vorgegeben,dass die Titelseite oben linksbündig das Institut einschließlich Adresse und rechts-bündig das Semester wiedergibt. Wie üblich ist ein Titel einschließlich Autor undAbgabedatum zu setzen. Außerdem soll der Betreuer angegeben und zu erkennensein, dass es sich um eine Diplomarbeit handelt. Sie könnten das wie folgt erreichen:\documentclass{scrbook}\usepackage[ngerman]{babel}\begin{document}\titlehead{{\Large Universit"at Schlauenheim

Kapitel 3: Die Hauptklassen scrbook, scrreprt, scrartcl 73

Tabelle 3.4.: Schrift-größe und Ausrichtungder Elemente derHaupttitelseite beiVerwendung von\maketitle

Element Anweisung Schrift SatzSeitenkopf \titlehead \usekomafont{titlehead} Block-Typisierung \subject \usekomafont{subject} zentriertTitel \title \usekomafont{title}\huge zentriertUntertitel \subtitle \usekomafont{subtitle} zentriertAutoren \author \usekomafont{author} zentriertDatum \date \usekomafont{date} zentriertVerlag \publishers \usekomafont{publishers} zentriert

\hfill SS~2001\\}Institut f"ur Raumkr"ummung\\Hochschulstra"se~12\\34567 Schlauenheim}

\subject{Diplomarbeit}\title{Digitale Raumsimulation mit dem

DSP\,56004}\subtitle{Klein aber fein?}\author{cand. stup. Uli Ungenau}\date{30. Februar 2001}\publishers{Betreut durch

Prof. Dr. rer. stup. Naseweis}\maketitle\end{document}

Ein häufiges Missverständnis betrifft die Bedeutung der Haupttitelseite. Irrtümlich wird oft ange-nommen, es handle sich dabei um den Buchumschlag oder Buchdeckel. Daher wird häufig erwartet,dass die Titelseite nicht den Randvorgaben für doppelseitige Satzspiegel gehorcht, sondern rechtsund links gleich große Ränder besitzt. Nimmt man jedoch einmal ein Buch zur Hand und klapptes auf, trifft man sehr schnell auf mindestens eine Titelseite unter dem Buchdeckel innerhalb dessogenannten Buchblocks. Genau diese Titelseiten werden mit \maketitle gesetzt.

Wie beim Schmutztitel handelt es sich also auch bei der Haupttitelseite um eine Seite innerhalbdes Buchblocks, die deshalb dem Satzspiegel des gesamten Dokuments gehorcht. Überhaupt istein Buchdeckel, das Cover, etwas, das man in einem getrennten Dokument erstellt. Schließlich hater oft eine sehr individuelle Gestalt. Es spricht auch nichts dagegen, hierfür ein Grafik- oder DTP-Programm zu Hilfe zu nehmen. Ein getrenntes Dokument sollte auch deshalb verwendet werden,weil es später auf ein anderes Druckmedium, etwa Karton, und möglicherweise mit einem anderenDrucker ausgegeben werden soll.

Seit KOMA-Script 3.12 kann man die erste von \maketitle ausgegebene Titelseite alternativaber auch als Umschlagseite formatieren lassen. Dabei ändern sich nur die für diese Seite verwen-deten Ränder (siehe Option titlepage=firstiscover auf Seite 68).

Kapitel 3: Die Hauptklassen scrbook, scrreprt, scrartcl 74

\uppertitleback{Titelrückseitenkopf }\lowertitleback{Titelrückseitenfuß }

Im doppelseitigen Druck bleibt bei den Standardklassen die Rückseite des Blatts mit derTitelseite leer. Bei KOMA-Script lässt sich die Rückseite der Haupttitelseite hingegen fürweitere Angaben nutzen. Dabei wird zwischen genau zwei Elementen unterschieden, die derAnwender frei gestalten kann: dem Titelrückseitenkopf und dem Titelrückseitenfuß .Dabei kann der Kopf bis zum Fuß reichen und umgekehrt. Nimmt man diese Anleitung alsBeispiel, so wurde der Haftungsausschluss mit Hilfe von \uppertitleback gesetzt.

\dedication{Widmung }

KOMA-Script bietet eine eigene Widmungsseite. Diese Widmung wird zentriert und in derVoreinstellung mit etwas größerer Schrift gesetzt. Diev3.12 genaue Schrifteinstellung für das Ele-ment dedication, die Tabelle 3.3, Seite 72 zu entnehmen ist, kann über die Anweisungen\setkomafont und \addtokomafont (siehe Abschnitt 3.6, Seite 62) verändert werden.Die Rückseite ist grundsätzlich leer. Die Widmungsseite wird zusammen mit der restlichen

Titelei mit \maketitle ausgegeben und muss daher vor dieser Anweisung definiert sein.

Beispiel: Nehmen wir dieses Mal an, dass Sie einen Gedichtband schreiben, den Sie IhrerPartnerin oder Ihrem Partner widmen wollen. Das könnte wie folgt aussehen:\documentclass{scrbook}\usepackage[ngerman]{babel}\begin{document}\extratitle{\textbf{\Huge In Liebe}}\title{In Liebe}\author{Prinz Eisenherz}\date{1412}\lowertitleback{%Dieser Gedichtband wurde mit Hilfe von{\KOMAScript} und {\LaTeX} gesetzt.}

\uppertitleback{%Selbstverlach\parAuf"|lage: 1 Exemplar}

\dedication{%Meinem Schnuckelchen\\in ewiger Liebe\\von Deinem Hasenboppelchen.}

\maketitle\end{document}

Ich bitte, die Kosenamen nach eigenen Vorlieben zu ersetzen und zu personalisieren.

Kapitel 3: Die Hauptklassen scrbook, scrreprt, scrartcl 75

3.8. Zusammenfassung

Insbesondere bei Artikeln, seltener bei Berichten findet man unmittelbar unter der Titelei undnoch vor dem Inhaltsverzeichnis eine Zusammenfassung. Bei Verwendung eines Titelkopfes istdie Zusammenfassung in der Regel ein rechts und links eingezogener Block. Im Vergleich dazuwird bei Verwendung von Titelseiten die Zusammenfassung eher als Kapitel oder Abschnittgesetzt.

abstract=Ein-Aus-Wert

Beiv3.00 den Standardklassen setzt die abstract-Umgebung noch den zentrierten Titel »Zusam-scrreprt,scrartcl menfassung« vor die Zusammenfassung. Früher war dies durchaus üblich. Inzwischen sind wir

durch das Zeitunglesen darin geübt, einen entsprechend hervorgehobenen Text am Anfang ei-nes Artikels oder Berichts als Zusammenfassung zu erkennen. Dies gilt umso mehr, wenn dieserText noch vor dem Inhaltsverzeichnis steht. Zudem verwundert es, wenn ausgerechnet dieseÜberschrift klein und zentriert ist. KOMA-Script bietet mit der Option abstract die Möglich-keit, die Überschrift über der Zusammenfassung ein- oder auszuschalten. Als Ein-Aus-Wertkann einer der Standardwerte für einfache Schalter aus Tabelle 2.5, Seite 42 verwendet werden.Voreingestellt ist bei KOMA-Script false.Bei Büchern wird in der Regel eine andere Art der Zusammenfassung verwendet. Dort

setzt man ein entsprechendes Kapitel an den Anfang oder das Ende des Werks. Oft wird dieseZusammenfassung entweder mit der Einleitung oder einem weiteren Ausblick verknüpft. Dahergibt es bei scrbook überhaupt keine abstract-Umgebung. Bei Berichten im weiteren Sinne,etwa einer Studien- oder Diplomarbeit, ist ebenfalls eine Zusammenfassung in dieser Form zuempfehlen. Siehe dazu die in Abschnitt 3.16, ab Seite 112 dokumentierten Befehle \chapter*.\addchap und \addchap*.

\begin{abstract} . . . \end{abstract}scrartcl,scrreprt Einige LATEX-Klassen bieten eine spezielle Umgebung für die Zusammenfassung: die abstract-

Umgebung. Diese wird unmittelbar ausgegeben, ist also nicht Bestandteil der mit \maketitlegesetzten Titelei. Bitte beachten Sie unbedingt, dass es sich bei abstract um eine Umgebungund nicht um eine Anweisung handelt. Ob die Zusammenfassung mit einer Überschrift versehenwird oder nicht, wird über die Option abstract gesteuert (siehe oben).Bei Büchern ist die Zusammenfassung häufig Bestandteil der Einleitung oder eines gesonder-

ten Kapitels am Ende des Dokuments. Daher gibt es bei scrbook keine abstract-Umgebung.Bei Verwendung der Klasse scrreprt ist es sicher eine Überlegung wert, ob man nicht genausoverfahren sollte. Siehe hierzu in Abschnitt 3.16 ab Seite 112 die Anweisungen \chapter* und\addchap oder \addchap*.Wird ein Titelkopf (siehe Option titlepage, Abschnitt 3.7, Seite 68) verwendet, so wird

die Zusammenfassung intern mit Hilfe einer quotation-Umgebung (siehe Abschnitt 3.18, Sei-te 132) gesetzt. Dabei werden Absatzanfänge normalerweise mit Einzug gesetzt. Soll der ers-

Kapitel 3: Die Hauptklassen scrbook, scrreprt, scrartcl 76

te Absatz nicht eingezogen werden, so kann dieser Einzug mit \noindent unmittelbar nach\begin{abstract} unterdrückt werden.

3.9. Inhaltsverzeichnis

Auf die Titelei und eine eventuell vorhandene Zusammenfassung folgt normalerweise das In-haltsverzeichnis. Häufig findet man nach dem Inhaltsverzeichnis auch noch die Verzeichnisseder Gleitumgebungen, beispielsweise von Tabellen und Abbildungen (siehe Abschnitt 3.20).Neben den in diesem Abschnitt dokumentierten Möglichkeiten hat auch der mit

\DeclareTOCStyleEntry gewählte und konfigurierte Eintragsstil des Pakets tocbasic (sie-he Seite 401) maßgeblichen Einfluss auf die Darstellung des Inhaltsverzeichnisses. Ent-sprechend können sich auch die in Abschnitt 21.8 ab Seite 507 dokumentierten Befeh-le \DeclareSectionCommand, \ProvideSectionCommand, \DeclareNewSectionCommand und\RedeclareSectionCommand auf das Inhaltsverzeichnis auswirken.

toc=Einstellung

Neuerdings ist es fast schon üblich geworden Tabellen- und Abbildungsverzeichnis sowie dasLiteraturverzeichnis, seltener das Stichwortverzeichnis, ins Inhaltsverzeichnis aufzunehmen.Dies hat sicher auch mit der neuen Mode zu tun, Abbildungs- und Tabellenverzeichnis ansBuchende zu stellen. Beide Verzeichnisse haben von Aufbau und Intention eine deutliche Ähn-lichkeit mit dem Inhaltsverzeichnis. Daher betrachte ich die Entwicklung skeptisch. Da es kei-nen Sinn hat, nur das Tabellen- oder nur das Abbildungsverzeichnis ohne das jeweils andereins Inhaltsverzeichnis aufzunehmen, werden mit der Einstellungv3.00 listof beide Verzeichnissegemeinsam ins Inhaltsverzeichnis aufgenommen. Dabei werden auch Verzeichnisse berücksich-tigt, die mit Hilfe des float-Pakets ab Version 1.2e (siehe [Lin01]) oder floatrow (siehe [Lap08])erstellt werden. Als Verzeichnisse, die den Inhalt anderer Abschnitte des Werks aufführen,erhalten Tabellen-, Abbildungs- und die mit den genannten Paketen erzeugten Verzeichnissegrundsätzlich keine Kapitelnummer. Wer diesen Grundsatz ignorieren will, bedient sich derEinstellung listofnumbered.Das Stichwortverzeichnis erhält mit toc=index einen Eintrag im Inhaltsverzeichnis. Da das

Stichwortverzeichnis ebenfalls nur Verweise auf den Inhalt anderer Abschnitte enthält, wirdauch dieser Eintrag grundsätzlich nicht nummeriert. Einev3.18 Abweichung von diesem Grundsatzwird von KOMA-Script trotz Bedenken des Autors mit toc=indexnumbered ebenfalls unter-stützt.Das Literaturverzeichnis stellt eine etwas andere Art von Verzeichnis dar. Hier wird nicht

der Inhalt des vorliegenden Werks aufgelistet, sondern auf externe Inhalte verwiesen. Mit die-ser Begründung könnte man argumentieren, dass das Literaturverzeichnis ein eigenes Kapitelbzw. einen eigenen Abschnitt darstelle und somit eine Nummer verdiene. Die Option toc=bibliographynumbered führt genau dazu, einschließlich des dann fälligen Eintrags im In-haltsverzeichnis. Ich selbst bin allerdings der Meinung, dass bei dieser Argumentation auch

Kapitel 3: Die Hauptklassen scrbook, scrreprt, scrartcl 77

ein klassisches, kommentiertes Quellenverzeichnis ein eigenes Kapitel wäre. Außerdem ist dasLiteraturverzeichnis letztlich nichts, was man selbst geschrieben hat. Deshalb erscheint mirallenfalls ein nicht nummerierter Eintrag im Inhaltsverzeichnis angemessen, was mit der Ein-stellung toc=bibliography erreicht wird.Normalerweisev2.8q wird das Inhaltsverzeichnis so formatiert, dass die Gliederungsebenen un-

terschiedlich weit eingezogen werden. Dabei wird für die Gliederungsnummer jeder Ebene einRaum fester Breite vorgesehen, in dem die Nummer linksbündig gesetzt wird. Dies entsprichtder Einstellungv3.00 toc=graduated.

Werden sehr viele Gliederungspunkte verwendet, so werden die Gliederungsnummern sehrbreit. Damit reicht der vorgesehene Platz nicht aus. In [Wik] wird für solche Fälle vorgeschla-gen, die Erzeugung des Inhaltsverzeichnisses umzudefinieren. KOMA-Script bietet jedoch einealternative Formatierung an, bei der das Problem nicht auftritt. Bei Verwendung der Optiontoc=flat werden die unterschiedlichen Gliederungsebenen nicht unterschiedlich weit einge-zogen. Stattdessen wird eine tabellenartige Form gewählt, in der alle Gliederungsnummernund alle Gliederungstexte jeweils in einer Spalte linksbündig untereinander stehen. Der für dieGliederungsnummern benötigte Platz wird dabei automatisch ermittelt.Einen Überblick über alle möglichen Werte für die Einstellung von toc ist in Tabelle 3.5

zu finden.

Tabelle 3.5.: Mögliche Werte für Option toc zur Einstellung von Form und Inhalt des Inhaltsverzeich-nisses

bibliography, bibDas Literaturverzeichnis erhält einen Eintrag im Inhaltsverzeichnis, ohne dass esnummeriert wird.

bibliographynumbered, bibnumbered, numberedbibliography, numberedbibDas Literaturverzeichnis erhält einen Eintrag im Inhaltsverzeichnis und wird num-meriert.

chapterentrywithdots, chapterentrydotfillv3.15 Bei den Kapiteleinträgen der Klassen scrbook und scrreprt werden Text und Seiten-

zahl ebenfalls durch eine punktierte Linie miteinander verbunden.

chapterentrywithoutdots, chapterentryfillv3.15 Bei den Kapiteleinträgen der Klassen scrbook und scrreprt werden Text und Seiten-

zahl nicht durch eine punktierte Linie miteinander verbunden. Dies entspricht derVoreinstellung.

. . .

Kapitel 3: Die Hauptklassen scrbook, scrreprt, scrartcl 78

Tabelle 3.5.: Mögliche Werte für Option toc (Fortsetzung)

flat, leftDas Inhaltsverzeichnis erhält eine tabellarische Form. Die Gliederungsnummern sinddabei die erste Spalte, die Überschriften die zweite Spalte, die Seitenzahlen die dritteSpalte. Der Platz, der für die Gliederungsnummern reserviert wird, richtet sich nachdem benötigten Platz des vorherigen LATEX-Laufs.

graduated, indent, indentedDas Inhaltsverzeichnis erhält eine hierarchische Form. Es steht nur ein begrenzterPlatz für die Gliederungsnummern zur Verfügung. Dies entspricht der Voreinstellung.

indenttextentries, indentunnumbered, numberlinev3.12 Die Eigenschaft numberline (siehe Abschnitt 15.2, Seite 397) wird für das Inhalts-

verzeichnis gesetzt. Dadurch werden nicht nummerierte Einträge linksbündig mitdem Text von nummerierten Einträgen gleicher Ebene gesetzt.

index, idxDas Stichwortverzeichnis erhält einen Eintrag im Inhaltsverzeichnis, ohne dass esnummeriert wird.

indexnumberedv3.18 Das Stichwortverzeichnis erhält einen Eintrag im Inhaltsverzeichnis und wird num-

meriert.

leftaligntextentries, leftalignunnumbered, nonumberlinev3.12 Die Eigenschaft numberline (siehe Abschnitt 15.2, Seite 397) wird für das Inhalts-

verzeichnis gelöscht. Dadurch werden nicht nummerierte Einträge linksbündig mitder Nummer von nummerierten Einträgen gleicher Ebene gesetzt. Dies entsprichtder Voreinstellung.

listofDie Verzeichnisse der Gleitumgebungen, beispielsweise das Abbildungs- und das Ta-bellenverzeichnis, erhalten einen Eintrag im Inhaltsverzeichnis, ohne dass sie num-meriert werden.

listofnumbered, numberedlistofDie Verzeichnisse der Gleitumgebungen, beispielsweise das Abbildungs- und das Ta-bellenverzeichnis, erhalten einen Eintrag im Inhaltsverzeichnis und werden numme-riert.

. . .

Kapitel 3: Die Hauptklassen scrbook, scrreprt, scrartcl 79

Tabelle 3.5.: Mögliche Werte für Option toc (Fortsetzung)

nobibliography, nobibDas Literaturverzeichnis erhält keinen Eintrag im Inhaltsverzeichnis. Dies entsprichtder Voreinstellung.

noindex, noidxDas Stichwortverzeichnis erhält keinen Eintrag im Inhaltsverzeichnis. Dies entsprichtder Voreinstellung.

nolistofDie Verzeichnisse der Gleitumgebungen, beispielsweise das Abbildungs- und das Ta-bellenverzeichnis, erhalten keinen Eintrag im Inhaltsverzeichnis. Dies entspricht derVoreinstellung.

sectionentrywithdots, sectionentrydotfillv3.15 Bei den Abschnittseinträgen der Klasse scrartcl werden Text und Seitenzahl ebenfalls

durch eine punktierte Linie miteinander verbunden.

sectionentrywithoutdots, sectionentryfillv3.15 Bei den Abschnittseinträgen der Klasse scrartcl werden Text und Seitenzahl nicht

durch eine punktierte Linie miteinander verbunden. Dies entspricht der Voreinstel-lung.

chapterentrydots=Ein-Aus-Wertsectionentrydots=Ein-Aus-Wert

Diesev3.15 Optionen legen fest, ob im Inhaltsverzeichnis bei den Klassen scrbook und scrreprt für diescrbook,scrreprt Kapitelebene beziehungsweise bei der Klasse scrartcl für die Abschnittsebene wie bei den tiefe-scrartcl ren Ebenen auch eine punktierte Verbindungslinie zwischen dem Text des Eintrags und der

zugehörigen Seitenzahl verwendet werden soll. Als Ein-Aus-Wert kann einer der Standard-werte für einfache Schalter aus Tabelle 2.5, Seite 42 verwendet werden. Voreingestellt ist fürbeide Optionen false, wodurch statt einer punktierten Linie lediglich ein Abstand verwendetwird.

Wird die punktierte Linie verwendet, so kann deren Schrift über die Elementechapterentrydots und sectionentrydots gegenüber den Einstellungen für die Seitenzah-len in den Einträgen verändert werden (siehe auch \setkomafont und \addtokomafont, Ab-schnitt 3.6, Seite 62, sowie Tabelle 3.2, Seite 63). Die Voreinstellungen der Elemente sindTabelle 3.6 auf Seite 80 zu entnehmen. Es ist zu beachten, dass die Pünktchen nur sauberuntereinander stehen, wenn die Schrift aller Pünktchen identisch ist.

Kapitel 3: Die Hauptklassen scrbook, scrreprt, scrartcl 80

Tabelle 3.6.: Voreinstel-lungen der Schrift für dieElemente des Inhaltsver-zeichnisses

Element Voreinstellungpartentry \usekomafont{disposition}\largepartentrypagenumberchapterentry \usekomafont{disposition}chapterentrydots \normalfontchapterentrypagenumbersectionentry \usekomafont{disposition}sectionentrydots \normalfontsectionentrypagenumber

\tableofcontents

Die Ausgabe des Inhaltsverzeichnisses wird mit \tableofcontents erreicht. Um ein korrektesInhaltsverzeichnis zu erhalten, sind nach jeder Änderung mindestens zwei LATEX-Läufe not-wendig. Mit der oben erläuterten Option toc kann der Umfang und die Form des Inhaltsver-zeichnisses beeinflusst werden. Nach einer Umschaltung der Option sind ebenfalls mindestenszwei weitere LATEX-Läufe notwendig.Der Eintrag für \chapter bei scrbook und scrreprt beziehungsweise \section bei scrartcl

sowie der Gliederungsebene \part wird nicht eingerückt. Gleichzeitig befinden sich zwischendem Text der Gliederungsebene und der Seitenzahl in der Voreinstellung keine Pünktchen.Die typografischen Gründe dafür liegen in der normalerweise anderen Schriftart sowie der er-wünschten Hervorhebung. Diesv3.15 kann jedoch mit den zuvor dokumentierten Optionen geändertwerden. Das Inhaltsverzeichnis dieser Anleitung ist mit den Voreinstellungen gesetzt und dientals Beispiel.Diev2.97c Schrift der oberen Inhaltsverzeichniseinträge ist über die Elemente partentry und

für scrbook und scrreprt über chapterentry beziehungsweise sectionentry für scrartcl ein-stellbar. Die Schrift der Seitenzahlen kann jeweils davon abweichend über die Elementepartentrypagenumber und chapterentrypagenumber (scrbook und scrreprt) beziehungswei-se sectionentrypagenumber (scrartcl) eingestellt werden (siehe auch \setkomafont und\addtokomafont in Abschnitt 3.6, Seite 62, sowie Tabelle 3.2, Seite 63). Werdenv3.15 je nach Klassefür die Kapitel- beziehungsweise Abschnittseinträge ebenfalls punktierte Verbindungslinien zuden Seitenzahlen über Option toc, chapterentrydots oder sectionentrydots verwendet, sokann deren Schrift über die Elemente chapterentrydots und sectionentrydots gegenüberden Einstellungen für die Seitenzahlen verändert werden. Die Voreinstellungen der Elementesind Tabelle 3.6 zu entnehmen.

Kapitel 3: Die Hauptklassen scrbook, scrreprt, scrartcl 81

tocdepth\parttocdepth\sectiontocdepth\subsectiontocdepth\subsubsectiontocdepth\paragraphtocdepth\subparagraphtocdepth

Normalerweise werden bei den Klassen scrbook und scrreprt die Gliederungsebenen \part bis\subsection und bei der Klasse scrartcl die Ebenen \part bis \subsubsection in das Inhalts-verzeichnis aufgenommen. Dies wird über den Zähler tocdepth gesteuert. Dabei steht der Wert-1 für \part, 0 für \chapter und so weiter. Durch Setzen oder Erhöhen oder Verringern desZählers kann bestimmt werden, bis zu welcher Gliederungsebene Einträge in das Inhaltsver-zeichnis erfolgen sollen. Dies ist übrigens bei den Standardklassen ganz genauso. Imv3.15 Unter-schied zu den Standardklassen muss sich bei KOMA-Script aber niemand diese Zuordnungmerken. KOMA-Script definiert für jede Gliederungsebene eine Anweisung \Ebene tocdepthmit dem entsprechenden Wert, die für Zuweisungen an tocdepth verwendet werden kann.

Bitten beachten Sie, dass die Werte für tocdepth und secnumdepth (siehe Abschnitt 3.16,Seite 121) bei scrartcl für \part nicht übereinstimmen. Dies wurde aus Gründen der Kompati-scrartclbilität von der Standardklasse article übernommen. Daher sollte beispielsweise die Anweisung\partnumdepth auch nicht zum Setzen von tocdepth verwendet werden.

Beispiel: Angenommen, Sie setzen einen Artikel, bei dem die Gliederungsebene\subsubsection verwendet wird. Gehen wir weiter davon aus, dass Sie diese Glie-derungsebene aber nicht im Inhaltsverzeichnis haben wollen. Dann könnte die Prä-ambel Ihres Dokuments wie folgt aussehen:\documentclass{scrartcl}\setcounter{tocdepth}{\subsectiontocdepth}

Sie setzen den Zähler tocdepth daher auf den in Anweisung \subsectiontocdepthgespeicherten Wert. Dass dies normalerweise der Wert 2 ist, müssen Sie sich alsogar nicht merken.Wollen Sie stattdessen nur, dass eine Ebene weniger in das Inhaltsverzeichnis einge-tragen wird als normalerweise, können Sie auch einfach vom voreingestellten Wertdes Zählers tocdepth eins abziehen:\documentclass{scrartcl}\addtocounter{tocdepth}{-1}

Den Wert, den Sie zu tocdepth addieren oder davon subtrahieren müssen, könnenSie nach mindestens zwei LATEX-Läufen einfach im Inhaltsverzeichnis abzählen.

Kapitel 3: Die Hauptklassen scrbook, scrreprt, scrartcl 82

3.10. Absatzauszeichnung

Die Standardklassen setzen Absätze normalerweise mit Absatzeinzug und ohne Absatzabstand.Bei Verwendung eines normalen Satzspiegels, wie ihn typearea bietet, ist dies die vorteilhaf-teste Absatzauszeichnung. Würde man ohne Einzug und Abstand arbeiten, hätte der Leserals Anhaltspunkt nur die Länge der letzten Zeile. Im Extremfall kann es sehr schwer sein zuerkennen, ob eine Zeile voll ist oder nicht. Des Weiteren stellt der Typograf fest, dass die Aus-zeichnung des Absatzendes am Anfang der nächsten Zeile leicht vergessen ist. Demgegenüberist eine Auszeichnung am Absatzanfang einprägsamer. Der Absatzabstand hat den Nachteil,dass er in verschiedenem Zusammenhang leicht verloren geht. So wäre nach einer abgesetztenFormel nicht mehr festzustellen, ob der Absatz fortgesetzt wird oder ein neuer beginnt. Aucham Seitenanfang müsste zurückgeblättert werden, um feststellen zu können, ob mit der Seiteauch ein neuer Absatz beginnt. All diese Probleme sind beim Absatzeinzug nicht gegeben. EineKombination von Absatzeinzug und Absatzabstand ist wegen der übertriebenen Redundanzabzulehnen. Der Einzug alleine ist deutlich genug. Der einzige Nachteil des Absatzeinzugs liegtin der Verkürzung der Zeile. Damit gewinnt der Absatzabstand bei ohnehin kurzen Zeilen, etwaim Zeitungssatz, seine Berechtigung.

parskip=Methode

Hin und wieder wird ein Layout mit Absatzabstand anstelle des voreingestellten Absatzeinzugsgefordert. Die KOMA-Script-Klassen bieten mit der Option parskipv3.00 eine Reihe von Möglich-keiten, um dies zu erreichen. Die Methode setzt sich dabei aus zwei Teilen zusammen. Dererste Teil ist entweder full oder half, wobei full für einen Absatzabstand von einer Zeileund half für einen Absatzabstand von einer halben Zeile steht. Der zweite Teil ist eines derZeichen »*«, »+«, »-« und kann auch entfallen. Lässt man das Zeichen weg, so wird in derletzten Zeile des Absatzes am Ende mindestens ein Geviert, das ist 1 em, frei gelassen. Mitdem Pluszeichen wird am Zeilenende mindestens ein Drittel und mit dem Stern mindestens einViertel einer normalen Zeile frei gelassen. Mit der Minus-Variante werden keine Vorkehrungenfür die letzte Zeile eines Absatzes getroffen.Die Einstellung kann jederzeit geändert werden. Wird sie innerhalb des Dokuments geändert,

so wird implizit die Anweisung \selectfontv3.08 ausgeführt. Änderungen der Absatzauszeichnunginnerhalb eines Absatzes werden erst am Ende des Absatzes sichtbar.Neben den sich so ergebenden acht Kombinationen ist es noch möglich, als Methode die

Werte für einfache Schalter aus Tabelle 2.5, Seite 42 zu verwenden. Das Einschalten der Optionentspricht dabei full ohne angehängtes Zeichen für den Freiraum der letzten Absatzzeile, alsomit mindestens einem Geviert Freiraum am Ende des Absatzes. Das Ausschalten der Optionschaltet hingegen wieder auf Absatzeinzug von einem Geviert um. Dabei darf die letzte Zeileeines Absatzes auch bis zum rechten Rand reichen. Einen Überblick über alle möglichen Wertefür Methode bietet Tabelle 3.7.

Kapitel 3: Die Hauptklassen scrbook, scrreprt, scrartcl 83

Tabelle 3.7.: Mögliche Werte für Option parskip zur Auswahl der Kennzeichnung von Absätzen

false, off, noAbsätze werden durch einen Einzug der ersten Zeilen von einem Geviert (1 em)gekennzeichnet. Der erste Absatz eines Abschnitts wird nicht eingezogen.

full, true, on, yesAbsätze werden durch einen vertikalen Abstand von einer Zeile gekennzeichnet, Ab-satzenden durch einen Leerraum von mind. einem Geviert (1 em) der Grundschriftam Ende der letzten Zeile.

full-Absätze werden durch einen vertikalen Abstand von einer Zeile gekennzeichnet. Ab-satzenden werden nicht gekennzeichnet.

full+Absätze werden durch einen vertikalen Abstand von einer Zeile gekennzeichnet.Absatzenden werden durch einen Leerraum von mind. einem Drittel einer normalenZeile gekennzeichnet.

full*Absätze werden durch einen vertikalen Abstand von einer Zeile gekennzeichnet. Ab-satzenden werden durch einen Leerraum von mind. einem Viertel einer normalenZeile gekennzeichnet.

halfAbsätze werden durch einen vertikalen Abstand von einer halben Zeile gekennzeich-net. Absatzenden durch einen Leerraum von mind. einem Geviert (1 em) der norma-len Schrift am Ende gekennzeichnet.

half-Absätze werden durch einen vertikalen Abstand von einer halben Zeile gekennzeich-net. Absatzenden werden nicht gekennzeichnet.

half+Absätze werden durch einen vertikalen Abstand von einer halben Zeile gekennzeich-net. Absatzenden werden durch einen Leerraum von mind. einem Drittel einer nor-malen Zeile gekennzeichnet.

. . .

Kapitel 3: Die Hauptklassen scrbook, scrreprt, scrartcl 84

Tabelle 3.7.: Mögliche Werte für Option parskip (Fortsetzung)

half*Absätze werden durch einen vertikalen Abstand von einer Zeile gekennzeichnet. Ab-satzenden werden durch einen Leerraum von mind. einem Viertel einer normalenZeile gekennzeichnet.

neverEsv3.08 wird auch dann kein Abstand zwischen Absätzen eingefügt, wenn für den vertika-len Ausgleich der Einstellung \flushbottom zusätzlicher vertikaler Abstand verteiltwerden muss.

Wird ein Absatzabstand verwendet, so verändert sich auch der Abstand vor, nach und inner-halb von Listenumgebungen. Dadurch wird verhindert, dass diese Umgebungen oder Absätzeinnerhalb dieser Umgebungen stärker vom Text abgesetzt werden als die Absätze des nor-malen Textes voneinander. Inhalts-, Abbildungs- und Tabellenverzeichnis werden immer ohnezusätzlichen Absatzabstand gesetzt.Voreingestellt ist bei KOMA-Script parskip=false. Hierbei gibt es keinen Absatzabstand,

sondern einen Absatzeinzug von 1 em.

3.11. Erkennung von rechten und linken Seiten

Bei doppelseitigen Dokumenten wird zwischen linken und rechten Seiten unterschieden. Dabeihat eine linke Seite immer eine gerade Nummer und eine rechte Seite immer eine ungeradeNummer. Die Erkennung von rechten und linken Seiten ist damit gleichbedeutend mit der Er-kennung von Seiten mit gerader oder ungerader Nummer. In dieser Anleitung ist vereinfachendvon ungeraden und geraden Seiten die Rede.Bei einseitigen Dokumenten existiert die Unterscheidung zwischen linken und rechten Seiten

nicht. Dennoch gibt es natürlich auch bei einseitigen Dokumenten sowohl Seiten mit geraderals auch Seiten mit ungerader Nummer.

\ifthispageodd{Dann-Teil }{Sonst-Teil }

Will man bei KOMA-Script feststellen, ob ein Text auf einer geraden oder einer ungeradenSeite ausgegeben wird, so verwendet man die Anweisung \ifthispageodd. Dabei wird dasArgument Dann-Teil nur dann ausgeführt, wenn man sich aktuell auf einer ungeraden Seitebefindet. Anderenfalls kommt das Argument Sonst-Teil zur Anwendung.

Beispiel: Angenommen, Sie wollen einfach nur ausgeben, ob ein Text auf einer geraden oderungeraden Seite ausgegeben wird. Sie könnten dann beispielsweise mit der EingabeDies ist eine Seite mit\ifthispageodd{un}{}gerader Seitenzahl.

Kapitel 3: Die Hauptklassen scrbook, scrreprt, scrartcl 85

die AusgabeDies ist eine Seite mit ungerader Seitenzahl.

erhalten. Beachten Sie, dass in diesem Beispiel das Argument Sonst-Teil leergeblieben ist.

Da die Anweisung \ifthispageodd mit einem Mechanismus arbeitet, der einem Label undeiner Referenz darauf sehr ähnlich ist, werden nach jeder Textänderung mindestens zwei LATEX-Durchläufe benötigt. Erst dann ist die Entscheidung korrekt. Im ersten Durchlauf wird für dieEntscheidung eine Heuristik verwendet.Näheres zur Problematik der Erkennung von linken und rechten Seiten oder geraden und

ungeraden Seitennummern ist für Experten in Abschnitt 21.1, Seite 501 zu finden.

3.12. Kopf und Fuß bei vordefinierten Seitenstilen

Eine der allgemeinen Eigenschaften eines Dokuments ist der Seitenstil. Bei LATEX versteht manunter dem Seitenstil in erster Linie den Inhalt der Kopf- und Fußzeilen.

headsepline=Ein-Aus-Wertfootsepline=Ein-Aus-Wert

Mit diesen Optionen kann eingestellt werden, obv3.00 unter Kolumnentiteln oder über dem Fuß ei-ne horizontale Linie gewünscht wird. Als Ein-Aus-Wert kann einer der Standardwerte füreinfache Schalter aus Tabelle 2.5, Seite 42 verwendet werden. Ein Aktivieren der Optionheadsepline oder die Verwendung der Option ohne Wertübergabe schaltet die Linie unterden Kolumnentiteln ein. Ein Aktivieren der Option footsepline oder die Verwendung derOption ohne Wertübergabe schaltet die Linie über der Fußzeile ein. Die Deaktivierung derOptionen schaltet die jeweilige Linie aus.Bei den weiter unten erklärten Seitenstilen empty und plain hat die Option headsepline

selbstverständlich keine Auswirkung, da hier auf einen Seitenkopf ausdrücklich verzichtet wer-den soll. Typografisch betrachtet, hat eine solche Linie immer die Auswirkung, dass der Kopfoptisch näher an den Text heranrückt. Dies bedeutet nun nicht, dass der Kopf räumlich wei-ter vom Textkörper weggerückt werden müsste. Stattdessen sollte der Kopf dann bei derBerechnung des Satzspiegels als zum Textkörper gehörend betrachtet werden. Dies wird beiKOMA-Script dadurch erreicht, dass Paket typearea ebenfalls auf headsepline reagiert undautomatisch die Paketoption headinclude mit gleichem Wert ausführt. Entsprechendes giltauch für die Fußlinie. Im Gegensatz zu headsepline wirkt sich die Option footsepline auchbeim Seitenstil plain aus, da plain eine Seitenzahl im Fuß ausgibt.Die Optionen führen selbst keine automatische Neuberechnung des Satzspiegels aus. Zur

Neuberechnung des Satzspiegels siehe Option DIV mit den Werten last oder current (sieheSeite 38) oder die Anweisung \recalctypearea (siehe Seite 41) in Kapitel 2.

Kapitel 3: Die Hauptklassen scrbook, scrreprt, scrartcl 86

Das Paket scrlayer-scrpage (siehe Kapitel 5) bietet weitere Einflussmöglichkeiten für Linienim Kopf und Fuß.

\pagestyle{Seitenstil }\thispagestyle{lokaler Seitenstil }

Üblicherweise wird zwischen vier verschiedenen Seitenstilen unterschieden:

empty ist der Seitenstil, bei dem Kopf- und Fußzeile vollständig leer bleiben. Dies ist beiKOMA-Script vollkommen identisch zu den Standardklassen.

headings ist der Seitenstil für lebende Kolumnentitel. Das sind Kolumnentitel, bei denenÜberschriften automatisch in den Seitenkopf übernommen werden. Im Internet oderin Beschreibungen zu LATEX-Paketen findet man auch häufig die englische Bezeichnung»running headline«. Bei den Klassen scrbook und scrreprt werden dabei im doppelseitigenscrbook,

scrreprt Layout die Überschriften der Kapitel und der Abschnitte in der Kopfzeile wiederholt –bei KOMA-Script jeweils außen, bei den Standardklassen innen. Die Seitenzahl wirdbei KOMA-Script im Fuß außen, bei den Standardklassen im Kopf außen gesetzt. Imeinseitigen Layout werden nur die Überschriften der Kapitel verwendet und bei KOMA-Script zentriert im Kopf ausgegeben. Die Seitenzahlen werden bei KOMA-Script dannzentriert im Fuß gesetzt. Bei scrartcl wird entsprechend verfahren, jedoch eine Ebenescrartcltiefer bei Abschnitt und Unterabschnitt angesetzt, da die Gliederungsebene Kapitel hiernicht existiert.Während die Standardklassen automatische Kolumnentitel immer in Versalien – alsoGroßbuchstaben – setzen, verwendet KOMA-Script die Schreibweise, die in der Über-schrift vorgefunden wurde. Dies hat verschiedene typografische Gründe. So sind Versali-en als Auszeichnung eigentlich viel zu mächtig. Verwendet man sie trotzdem, sollten sieum einen Punkt kleiner gesetzt und leicht gesperrt werden (siehe hierzu beispielsweise[Tsc60]). All dies findet bei den Standardklassen keine Beachtung.Darüber hinaus können bei den KOMA-Script-Klassen mit den Optionen headseplineund footsepline (siehe Seite 85) Linien unter dem Kopf und über dem Fuß gesetztwerden.

myheadings entspricht weitgehend dem Seitenstil headings, allerdings werden die Kolumnen-titel nicht automatisch erzeugt, sondern liegen in der Verantwortung des Anwenders. Erverwendet dazu die Anweisungen \markboth und \markright (siehe Seite 88).

plain ist der Seitenstil, bei dem keinerlei Kolumnentitel verwendet, sondern nur eine Sei-tenzahl ausgegeben wird. Bei den Standardklassen wird diese Seitenzahl immer mittigim Fuß ausgegeben. Bei KOMA-Script erfolgt die Ausgabe im doppelseitigen Layoutstattdessen außen im Fuß. Der einseitige Seitenstil entspricht bei KOMA-Script dem derStandardklassen.

Kapitel 3: Die Hauptklassen scrbook, scrreprt, scrartcl 87

Tabelle 3.8.: Voreinstellungen derSchrift für die Elemente des Seitenstils Element Voreinstellung

pagefootpageheadfoot \normalfont\normalcolor\slshapepagenumber \normalfont\normalcolor

Der Seitenstil kann jederzeit mit Hilfe der \pagestyle-Anweisung gesetzt werden. Verwen-det man \pagestyle vor Anweisungen, die einen Seitenumbruch mit Einfügen einer Vakat-seite herbeiführen können, und soll die Änderung erst ab der neuen Seite gelten, so ist ein\cleardoublepage davor nützlich.

Für eine Änderung des Seitenstils nur der aktuellen Seite verwendet man stattdessen dieAnweisung \thispagestyle. Dies geschieht auch an einigen Stellen im Dokument automatisch.Beispielsweise wird bei allen Kapitelanfangsseiten implizit die Anweisung \thispagestyle{\chapterpagestyle} ausgeführt.

Bitte beachten Sie, dass die Umschaltung zwischen automatischen und manuellen Kolum-nentiteln bei Verwendung von scrlayer-scrpage nicht mehr über den Seitenstil, sondern mitspeziellen Anweisungen erfolgt. Die beiden Seitenstile headings und myheadings sollten nichtzusammen mit diesem Paket verwendet werden.Um die Schriftarten von Kopf und Fuß der Seite oder der Seitenzahl zu ändernv2.8p , verwenden

Sie die Anweisungen \setkomafont und \addtokomafont (siehe Abschnitt 3.6, Seite 62). Fürden Kopf und den Fuß ist dabei das gleiche Element pageheadfoot zuständig. Das Elementfür die Seitenzahl innerhalb des Kopfes oder Fußes heißt pagenumber. Das ebenfalls in denKOMA-Script-Klassen bereitgestellte Element pagefoot wird nur verwendet, wenn man mitdem Paket scrlayer-scrpage (siehe Kapitel 5, Seite 262) einen Seitenstil definiert, bei dem auchder Fuß Text enthält.Die Voreinstellungen sind in Tabelle 3.8 zu finden.

Beispiel: Angenommen, Sie wollen Kopf und Fuß einen Schriftgrad kleiner und kursiv set-zen. Die Seitenzahl soll jedoch nicht kursiv, sondern fett gesetzt werden. Davonabgesehen, dass das Ergebnis grauenvoll aussehen wird, können Sie dies wie folgterreichen:\setkomafont{pageheadfoot}{%\normalfont\normalcolor\itshape\small}

\setkomafont{pagenumber}{\normalfont\bfseries}

Wollen Sie hingegen lediglich, dass zusätzlich zur bereits voreingestellten schrägenVariante ebenfalls eine kleinere Schrift verwendet wird, so genügt:\addtokomafont{pagehead}{\small}

Wie Sie sehen, wurde im letzten Beispiel das Element pagehead verwendet. Dasgleiche Ergebnis erhalten Sie auch, wenn Sie stattdessen pageheadfoot verwenden(siehe Tabelle 3.2, Seite 63).

Kapitel 3: Die Hauptklassen scrbook, scrreprt, scrartcl 88

Es ist an dieser Stelle nicht möglich, Versalien für die automatischen Kolumnentitel zu er-zwingen. Wenn Sie dies wünschen, müssen Sie beispielsweise \MakeMarkcase entsprechendumdefinieren. Es wird jedoch empfohlen, in solchen Fällen das Paket scrlayer-scrpage zu ver-wenden (siehe Kapitel 5, Seite 272).Werden eigene Seitenstile definiert, sind eventuell die Befehle \usekomafont

{pageheadfoot}, \usekomafont{pagenumber} sowie \usekomafont{pagefoot} nützlich.Insbesondere falls Sie dafür nicht das KOMA-Script-Paket scrlayer-scrpage (siehe Kapitel 5),sondern beispielsweise das Paket fancyhdr (siehe [vO04]) einsetzen, können Sie diese Befehlein Ihren Definitionen verwenden. Dadurch bleiben Sie zu KOMA-Script möglichst kompatibel.Verwenden Sie diese Befehle in Ihren eigenen Definitionen nicht, so bleiben Schriftänderungenwie in den vorangehenden Beispielen unbeachtet. Das Paket scrlayer-scrpage sorgt selbst fürmaximale Kompatibilität. Solange beispielsweise für die Seitenzahl nicht direkt \thepage,sondern das dafür vorgesehene \pagemark verwendet wird.

\markboth{linke Marke }{rechte Marke }\markright{rechte Marke }

Beim Seitenstil myheadings wird der Kolumnentitel nicht automatisch gesetzt. Stattdessensetzt man ihn mit Hilfe der Anweisungen \markboth und \markright. Dabei wird die linkeMarke normalerweise im Kopf linker Seiten und die rechte Marke im Kopf rechter Seitenverwendet. Im einseitigen Satz existiert nur die rechte Marke. Bei Verwendung des Paketsscrlayer-scrpage steht außerdem die Anweisung \markleft zur Verfügung.Die Anweisungen können auch zusammen mit anderen Seitenstilen verwendet werden. Bei

Kombination mit automatischen Kolumnentiteln, etwa dem Seitenstil headings, ist der Wir-kungsbereich allerdings bis zum nächsten automatischen Setzen der entsprechenden Markebegrenzt.

\titlepagestyle\partpagestyle\chapterpagestyle\indexpagestyle

Auf einigen Seiten wird mit Hilfe von \thispagestyle automatisch ein anderer Seitenstil ge-wählt. Welcher Seitenstil dies ist, wird diesen vier Makros entnommen, wobei \partpagestyleund \chapterpagestyle nur bei den Klassen scrbook und scrreprt nicht jedoch bei scrartclscrbook,

scrreprt existieren. In der Voreinstellung ist der Seitenstil in allen vier Fällen plain. Die Bedeutungder einzelnen Makros entnehmen Sie bitte Tabelle 3.9. Die Seitenstile können mit Hilfe von\renewcommand umdefiniert werden.

Beispiel: Angenommen, Sie wollen nicht, dass die Seiten mit der \part-Überschrift mit einerNummer versehen werden. Dann setzen Sie folgende Anweisung beispielsweise inder Präambel Ihres Dokuments:

Kapitel 3: Die Hauptklassen scrbook, scrreprt, scrartcl 89

Tabelle 3.9.: Makros zur Festlegung des Seitenstils besonderer Seiten

\titlepagestyleSeitenstil der Seite mit der Titelei bei Titelköpfen (siehe Abschnitt 3.7)

\partpagestyleSeitenstil der Seiten mit \part-Titeln (siehe Abschnitt 3.16)

\chapterpagestyleSeitenstil auf Kapitelanfangsseiten (siehe Abschnitt 3.16)

\indexpagestyleSeitenstil der ersten Stichwortverzeichnisseite (siehe Abschnitt 3.24)

\renewcommand*{\partpagestyle}{empty}

Wie Sie auf Seite 86 erfahren haben, ist der Seitenstil empty genau das, was indiesem Beispiel verlangt wird. Natürlich können Sie auch einen selbst definiertenSeitenstil verwenden.Angenommen, Sie haben mit dem Paket scrlayer (siehe Abschnitt 17.4) oder Paketscrlayer-scrpage (siehe Abschnitt 18.2) einen eigenen Seitenstil für Kapitelanfangs-seiten definiert. Diesem Seitenstil haben Sie den passenden Namen chapter ge-geben. Um ihn auch tatsächlich zu verwenden, definieren Sie \chapterpagestyleentsprechend um:\renewcommand*{\chapterpagestyle}{chapter}

Angenommen, Sie wollen das Inhaltsverzeichnis eines Buches insgesamt nicht mitSeitenzahlen versehen. Danach soll aber wieder mit dem Seitenstil headings gear-beitet werden sowie mit plain auf den Kapitelanfangsseiten. Dann verwenden Siebeispielsweise:\clearpage\pagestyle{empty}\renewcommand*{\chapterpagestyle}{empty}\tableofcontents\clearpage\pagestyle{headings}\renewcommand*{\chapterpagestyle}{plain}

Sie können die Umdefinierung des Seitenstils für Kapitelanfangsseiten aber auchlokal halten. Das hat den Vorteil, dass Sie dann keine Annahmen über die vor derÄnderung gültige Einstellung treffen müssen. Die Änderung des Seitenstils selbstkönnen Sie gleichermaßen lokal halten:\clearpage\begingroup

Kapitel 3: Die Hauptklassen scrbook, scrreprt, scrartcl 90

\pagestyle{empty}\renewcommand*{\chapterpagestyle}{empty}\tableofcontents\clearpage

\endgroup

Beachten Sie jedoch, dass Sie niemals eine nummerierte Gliederungsüberschrift ineine Gruppe packen sollten. Anderenfalls können Anweisungen wie \label rasch zuunvorhergesehenen Ergebnissen führen.Auf Seite 396 in Abschnitt 15.2 werden Sie die Anweisung \AfterTOCHead kennen-lernen, mit der eine Lösung noch einfacher ist:\AfterTOCHead[toc]{%

\thispagestyle{empty}%\pagestyle{empty}%

}

Hierbei wird die Tatsache ausgenutzt. dass bei mehreren \thispagestyle-Anweisungen auf derselben Seite immer die letzte gewinnt.

Wer nun glaubt, er könne auf Kapitelanfangsseiten ebenfalls mit lebenden Kolumnentiteln ar-beiten, indem er einfach\renewcommand*{\chapterpagestyle}{headings}

verwendet, sollte in Abschnitt 21.1 auf Seite 501 Näheres über die Hintergründe zu \rightmarknachlesen. Auch die Ausführungen zu \rightfirstmark ab Seite Seite 473 in Kapitel 18, Teil IIkönnen hierzu wichtige Informationen liefern.

\pagenumbering{Nummerierungsstil }

Diese Anweisung funktioniert bei KOMA-Script in der gleichen Weise wie bei den Standard-klassen. Genau genommen handelt es sich dabei weder um eine Fähigkeit der Standardklassennoch der KOMA-Script-Klassen, sondern um eine Anweisung des LATEX-Kerns. Sie wird ver-wendet, um den Nummerierungsstil für die Seitenzahlen umzuschalten.Die Umschaltung gilt ab sofort, also ab der Seite, auf der diese Anweisung aufgerufen wird.

Gegebenenfalls sollte also zuvor mit \clearpage oder besser \cleardoubleoddpage dieseSeite erst beendet werden. Mögliche Angaben für den Nummerierungsstil sind Tabelle 3.10zu entnehmen.Der Aufruf von \pagenumbering setzt immer die Seitenzahl zurück. Die aktuelle Seite be-

kommt also die Nummer 1 im gewählten Nummerierungsstil . Damit bei doppelseitigen Doku-menten diese neue Seite auch wirklich auf eine gerade Seite folgt, die linke Seite also nicht etwafehlt, sollte man daher vor \pagenumbering immer \cleardoubleoddpage einfügen. Nähereszu einer dabei gegebenenfalls eingefügten Vakatseite erfahren Sie im nächsten Abschnitt.

Kapitel 3: Die Hauptklassen scrbook, scrreprt, scrartcl 91

Nummerierungsstil Beispiel Bedeutungarabic 8 arabische Zahlenroman viii kleine römische ZahlenRoman VIII große römische Zahlenalph h KleinbuchstabenAlph H Großbuchstaben

Tabelle 3.10.: Verfügbare Nummerie-rungsstile für Seitenzahlen

Lassen Sie mich noch ein Wort zu einem häufigen Fehler verlieren, den man in diversen Vorlagenfindet, die im Internet kursieren. Wenn Sie – natürlich ohne den Eingangskommentar – auf Zeilenwie:

% Achtung dieses Beispiel enthält Fehler!% Beachten Sie bitte die Erklärungen im Text!\tableofcontents\pagenumbering{arabic}\setcounter{page}{1}

stoßen, so ist das ein untrügliches Zeichen dafür, dass der Ersteller dieser Vorlage obige Ausführun-gen nicht gelesen oder nicht verstanden hat. Da \tableofcontents das Inhaltsverzeichnis zwarausgibt, aber die letzte Seite nicht automatisch beendet, wird bereits für diese letzte Seite des In-haltsverzeichnisses die Seitennummerierung umgeschaltet. Sie erhält damit die arabische Seitenzahl1. Es fehlt also \cleardoubleoddpage vor \pagenumbering. Ebenso ist die letzte Zeile mit demSetzen der Seitennummerierung auf 1 überflüssig, da dies bereits von \pagenumbering erledigtwird.Teilweise findet man – natürlich ohne den Eingangskommentar – auch:% Achtung dieses Beispiel enthält Fehler!% Beachten Sie bitte die Erklärungen im Text!\tableofcontents\pagebreak\pagenumbering{arabic}\setcounter{page}{1}

Hier hat der Ersteller versucht, das Problem mit der letzten Seite des Inhaltsverzeichnisses mitHilfe von \pagebreak zu lösen.

Diese Lösung ist aber leider auch nicht viel besser. Hier wird die letzte Seite des Inhaltsverzeich-nisses auf die nächste Seite umbrochen. Damit werden bei einem doppelseitigen Dokument unterUmständen die Einträge auf der letzten Seite mit einem erhöhten vertikalen Abstand gesetzt (siehe\flushbottom auf Seite 60). \pagebreak ist hier eindeutig die falsche Anweisung.

Aber auch \newpage oder \clearpage würden bei einem doppelseitigen Dokument nicht ge-nügen. Hätte die letzte Seite des Inhaltsverzeichnisses beispielsweise die römische Nummer vii, sowürde auf die römisch nummerierte rechte Seite nun unmittelbar die arabisch nummerierte rechteSeite 1 folgen. Eine linke Seite zwischen diesen beiden Seiten würde im Dokument fehlen, was

Kapitel 3: Die Hauptklassen scrbook, scrreprt, scrartcl 92

beim späteren Druck erhebliche Probleme bereiten könnte.Mein Rat: Vermeiden Sie die Verwendung von Vorlagen, die bereits in solch einfachen Dingen

Fehler enthalten. Korrekt wäre übrigens:\tableofcontents\cleardoubleoddpage\pagenumbering{arabic}

Das gilt auch, wenn mit scrartcl eine Klasse verwendet wird, bei der üblicherweise nach demscrartclInhaltsverzeichnis keine neue Seite begonnen wird. Schaltet man die Seitennummerierung um, somuss eine neue rechte Seite begonnen werden. Wollen Sie eine solche Umschaltung nicht, so solltenSie den Nummerierungsstil der Seiten über das gesamte Dokument konsequent durchhalten, ohneihn zwischendurch zu ändern.

Einfacher wird die Änderung des Nummerierungsstils bei Verwendung von scrbook. Dort wer-scrbookden Sie durch die beiden Anweisungen \frontmatter und \mainmatter bei der am häufigstenverwendeten Umschaltung unterstützt. Nähere Informationen entnehmen Sie bitte Abschnitt 3.15,ab Seite 100.

3.13. Vakatseiten

Vakatseiten sind Seiten, die beim Satz eines Dokuments absichtlich leer bleiben. Bei LATEXwerden sie jedoch in der Voreinstellung mit dem aktuell gültigen Seitenstil gesetzt. KOMA-Script bietet hier diverse Erweiterungen.

Vakatseiten findet man hauptsächlich in Büchern. Da es bei Büchern üblich ist, dass Kapitelauf einer rechten Seite beginnen, muss in dem Fall, dass das vorherige Kapitel ebenfalls aufeiner rechten Seite endet, eine leere linke Seite eingefügt werden. Aus dieser Erklärung ergibtsich auch, dass Vakatseiten normalerweise nur im doppelseitigen Satz existieren.

cleardoublepage=Seitenstilcleardoublepage=current

Mit Hilfe dieser Optionv3.00 kann man den Seitenstil der Vakatseite bestimmen,die bei Bedarf von den Anweisungen \cleardoublepage, \cleardoubleoddpage oder\cleardoubleevenpage eingefügt wird, um bis zur gewünschten Seite zu umbrechen. AlsSeitenstil sind dabei alle bereits definierten Seitenstile (siehe Abschnitt 3.12 ab Seite 85und Kapitel 5 ab Seite 252) verwendbar. Daneben ist auch cleardoublepage=current mög-lich. Dieser Fall entspricht der Voreinstellung von KOMA-Script bis Version 2.98c und führtdazu, dass die Vakatseite mit dem Seitenstil erzeugt wird, der beim Einfügen gerade aktuell ist.Ab Version 3.00v3.00 werden in der Voreinstellung entsprechend der typografischen Gepflogenhei-ten Vakatseiten mit dem Seitenstil empty erzeugt, wenn man nicht Kompatibilität zu früherenKOMA-Script-Versionen eingestellt hat (siehe Option version, Abschnitt 3.2, Seite 58).

Kapitel 3: Die Hauptklassen scrbook, scrreprt, scrartcl 93

Beispiel: Angenommen, Sie wollen, dass die Vakatseiten bis auf die Paginierung leer sind,also mit Seitenstil plain erzeugt werden. Dies erreichen Sie beispielsweise mit:\KOMAoptions{cleardoublepage=plain}

Näheres zum Seitenstil plain ist in Abschnitt 3.12, Seite 86 zu finden.

\clearpage\cleardoublepage\cleardoublepageusingstyle{Seitenstil }\cleardoubleemptypage\cleardoubleplainpage\cleardoublestandardpage\cleardoubleoddpage\cleardoubleoddpageusingstyle{Seitenstil }\cleardoubleoddemptypage\cleardoubleoddplainpage\cleardoubleoddstandardpage\cleardoubleevenpage\cleardoubleevenpageusingstyle{Seitenstil }\cleardoubleevenemptypage\cleardoubleevenplainpage\cleardoubleevenstandardpage

Im LATEX-Kern existiert die Anweisung \clearpage, die dafür sorgt, dass alle noch nichtausgegebenen Gleitumgebungen ausgegeben werden und anschließend eine neue Seite begon-nen wird. Außerdem existiert die Anweisung \cleardoublepage, die wie \clearpage arbeitet,durch die aber im doppelseitigen Layout (siehe Option twoside in Abschnitt 2.6, Seite 42) eineneue rechte Seite begonnen wird. Dazu wird gegebenenfalls eine linke Vakatseite im aktuellenSeitenstil ausgegeben.Bei KOMA-Script arbeitet \cleardoubleoddstandardpagev3.00 genau in der soeben für die

Standardklassen beschriebenen Art und Weise. Die Anweisung \cleardoubleoddplainpageändert demgegenüber den Seitenstil der leeren linken Seite zusätzlich auf plain,um den Kolumnentitel zu unterdrücken. Analog dazu wird bei der Anweisung\cleardoubleoddemptypage der Seitenstil empty verwendet, um sowohl Kolumnentitel alsauch Seitenzahl auf der leeren linken Seite zu unterdrücken. Die Seite ist damit vollständigleer. Will man für die Vakatseite einen eigenen Seitenstil vorgeben, so ist dieser als Argu-ment von \cleardoubleoddpageusingstyle anzugeben. Dabei kann jeder bereits definierteSeitenstil (siehe auch Kapitel 5) verwendet werden.Manchmal möchte man nicht, dass Kapitel mit neuen rechten Seiten, sondern links auf ei-

ner Doppelseite beginnen. Dies widerspricht zwar dem klassischen Buchdruck, kann jedoch

Kapitel 3: Die Hauptklassen scrbook, scrreprt, scrartcl 94

seine Berechtigung haben, wenn die Doppelseite am Kapitelanfang einen ganz speziellen In-halt hat. Bei KOMA-Script ist deshalb die Anweisung \cleardoubleevenstandardpage alsÄquivalent zur Anweisung \cleardoubleoddstandardpage definiert, jedoch mit dem Unter-schied, dass die nächste Seite eine linke Seite ist. Entsprechendes gilt für die Anweisungen\cleardoubleevenplainpage, \cleardoubleevenemptypage und für die ein Argument er-wartende Anweisung \cleardoubleevenpageusingstyle.Die Arbeitsweise der Anweisungen \cleardoublestandardpage, \cleardoubleemptypage,

\cleardoubleplainpage und der ein Argument erwartenden Anweisung\cleardoublepageusingstyle ist ebenso wie die Standard-Anweisung \cleardoublepagevon der in Abschnitt 3.16, Seite 101 erklärten Option open abhängig und entspricht je nachEinstellung einer der in den vorherigen Absätzen erläuterten Anweisungen.

Beispiel: Angenommen, Sie wollen innerhalb eines Dokuments als nächstes eine Doppelseitesetzen, bei der auf der linken Seite eine Abbildung in Größe des Satzspiegels platziertwird und rechts ein neues Kapitel beginnt. Falls das vorherige Kapitel mit einerlinken Seite endet, muss also eine Vakatseite eingefügt werden. Diese soll komplettleer sein. Ebenso soll die linke Bildseite weder Kopf noch Fußzeile besitzen.An der gewünschten Stelle schreiben Sie daher:\cleardoubleevenemptypage\thispagestyle{empty}\includegraphics[width=\textwidth,%

height=\textheight,%keepaspectratio]%{bild}

\chapter{Kapitelüberschrift}

Die erste Zeile wechselt auf die nächste linke Seite und fügt zu diesem Zweck beiBedarf eine komplett leere rechte Seite ein. Die zweite Zeile sorgt dafür, dass dieselinke Seite ebenfalls mit dem Seitenstil empty gesetzt wird. Die dritte bis sechsteZeile lädt die Bilddatei mit dem Namen bild und bringt sie auf die gewünschteGröße, ohne sie dabei zu verzerren. Hierfür wird das Paket graphicx benötigt (siehe[Car17]). Die letzte Zeile beginnt auf der nächsten – dann rechten – Seite ein neuesKapitel.

Im doppelseitigen Satz führt \cleardoubleoddpage immer zur nächsten linken Seite,\cleardoubleevenpage zur nächsten rechten Seite. Eine gegebenenfalls einzufügenden Va-katseite wird mit dem über Option cleardoublepage festgelegten Seitenstil ausgegeben.

3.14. Fußnoten

Im Unterschied zu den Standardklassen bietet KOMA-Script die Möglichkeit, die Form vonFußnoten in vielfältiger Weise zu konfigurieren.

Kapitel 3: Die Hauptklassen scrbook, scrreprt, scrartcl 95

Tabelle 3.11.: Mögliche Werte für Option footnotes zur Einstellung der Fußnoten

multipleUnmittelbar aufeinander folgende Fußnotenmarkierungen werden durch\multfootsep voneinander getrennt ausgegeben.

nomultipleUnmittelbar aufeinander folgende Fußnotenmarkierungen werden auch unmittelbaraufeinander folgend ausgegeben.

footnotes=Einstellung\multfootsep

Fußnotenv3.00 werden im Text in der Voreinstellung mit kleinen, hochgestellten Ziffern markiert.Werden in der Voreinstellung footnotes=nomultiple zu einer Textstelle mehrere Fußnotenhintereinander gesetzt, so entsteht der Eindruck, dass es sich nicht um zwei einzelne Fußnoten,sondern um eine einzige Fußnote mit hoher Nummer handele.Mit footnotes=multiple werden Fußnoten, die unmittelbar aufeinander folgen, stattdessen

mit einem Trennzeichen aneinander gereiht. Das in \multfootsep definierte Trennzeichen istals\newcommand*{\multfootsep}{,}

definiert. Es ist also mit einem Komma vorbelegt. Dieses kann umdefiniert werden.Der gesamte Mechanismus ist kompatibel zu footmisc, Version 5.3d bis 5.5b (siehe [Fai11])

implementiert. Er wirkt sich sowohl auf Fußnotenmarkierungen aus, die mit \footnote gesetztwurden, als auch auf solche, die direkt mit \footnotemark ausgegeben werden.

Es ist jederzeit möglich, mit \KOMAoptions oder \KOMAoption auf die Voreinstellungfootnotes=nomultiple zurückzuschalten. Bei Problemen mit anderen Paketen, die Einflussauf die Fußnoten nehmen, sollte die Option jedoch nicht verwendet und die Einstellung auchnicht innerhalb des Dokuments umgeschaltet werden.

Eine Zusammenfassung möglicher Werte für die Einstellung von footnotes bietet Tabel-le 3.11.

\footnote[Nummer ]{Text }\footnotemark[Nummer ]\footnotetext[Nummer ]{Text }\multiplefootnoteseparator

Fußnoten werden bei KOMA-Script genau wie bei den Standardklassen mit der Anwei-sung \footnote oder den paarweise zu verwendenden Anweisungen \footnotemark und\footnotetext erzeugt. Genau wie bei den Standardklassen ist es möglich, dass innerhalbeiner Fußnote ein Seitenumbruch erfolgt. Dies geschieht in der Regel dann, wenn die zugehöri-ge Fußnotenmarkierung so weit unten auf der Seite gesetzt wird, dass keine andere Wahl bleibt,

Kapitel 3: Die Hauptklassen scrbook, scrreprt, scrartcl 96

als die Fußnote auf die nächste Seite zu umbrechen. Im Unterschiedv3.00 zu den Standardklassenbietet KOMA-Script aber zusätzlich die Möglichkeit, Fußnoten, die unmittelbar aufeinanderfolgen, automatisch zu erkennen und durch ein Trennzeichen auseinander zu rücken. Siehehierzu die zuvor dokumentierte Option footnotes.

Will man dieses Trennzeichen stattdessen von Hand setzen, so erhält man es durch Aufrufvon \multiplefootnoteseparator. Diese Anweisung sollten Anwender jedoch nicht umdefi-nieren, da sie neben dem Trennzeichen auch die Formatierung des Trennzeichen, beispielsweisedie Wahl der Schriftgröße und das Hochstellen, enthält. Das Trennzeichen selbst ist in der zu-vor erklärten Anweisung \multfootsep gespeichert.

Beispiel: Angenommen, Sie wollen zu einem Wort zwei Fußnoten setzen. Im ersten Ansatzschreiben Sie dafürWort\footnote{Fußnote 1}\footnote{Fußnote 2}.

Nehmen wir weiter an, dass die Fußnoten mit 1 und 2 nummeriert werden. Da diebeiden Fußnotennummern direkt aufeinander folgen, entsteht jedoch der Eindruck,dass das Wort nur eine Fußnote mit der Nummer 12 besitzt. Sie könnten dies nundadurch ändern, dass Sie mit\KOMAoptions{footnotes=multiple}

die automatische Erkennung von Fußnotenhäufungen aktivieren. Stattdessen kön-nen Sie aber auchWort\footnote{Fußnote 1}%\multiplefootnoteseparator\footnote{Fußnote 2}

verwenden. Das sollte auch dann noch funktionieren, wenn die automatische Erken-nung aus irgendwelchen Gründen versagt oder nicht verwendet werden kann.Nehmen wir nun an, Sie wollen außerdem, dass die Fußnotennummern nicht nurdurch ein Komma, sondern durch ein Komma, gefolgt von einem Leerzeichen ge-trennt werden sollen. In diesem Fall schreiben Sie\renewcommand*{\multfootsep}{,\nobreakspace}

in Ihre Dokumentpräambel. \nobreakspace wurde hier anstelle eines norma-len Leerzeichens gewählt, damit innerhalb der Reihung der Fußnotenzeichen keinAbsatz- oder Seitenumbruch erfolgen kann.

Kapitel 3: Die Hauptklassen scrbook, scrreprt, scrartcl 97

\footref{Referenz }

Manchmalv3.00 hat man in einem Dokument eine Fußnote, zu der es im Text mehrere Verweisegeben soll. Die ungünstige Lösung dafür wäre die Verwendung von \footnotemark unter An-gabe der gewünschten Nummer. Ungünstig an dieser Lösung ist, dass man die Nummer kennenmuss und sich diese jederzeit ändern kann. KOMA-Script bietet deshalb die Möglichkeit, den\label-Mechanismus auch für Verweise auf Fußnoten zu verwenden. Man setzt dabei in derentsprechenden Fußnote eine \label-Anweisung und kann dann mit \footref alle weiterenFußnotenmarken für diese Fußnote im Text setzen.

Beispiel: Sie schreiben einen Text, in dem sie bei jedem Auftreten eines Markennamens eineFußnote setzen müssen, die darauf hinweist, dass es sich um einen geschütztenMarkennamen handelt. Sie schreiben beispielsweise:Die Firma SplischSplasch\footnote{Bei diesemNamen handelt es sich um eine registrierteMarke. Alle Rechte daran sind demMarkeninhaber vorbehalten.\label{refnote}}

stellt neben SplischPlumps\footref{refnote}auch noch die verbesserte VersionSplischPlatsch\footref{refnote} her.

Es wird dann dreimal eine Marke auf dieselbe Fußnote gesetzt, einmal mit\footnote direkt und zweimal mit \footref.

Da die Fußnotenmarken mit Hilfe des \label-Mechanismus gesetzt werden, werden nachÄnderungen, die sich auf die Fußnotennummerierung auswirken, gegebenenfalls zwei LATEX-Durchläufe benötigt, bis die mit \footref gesetzten Marken korrekt sind.Es sei darauf hingewiesen, dass die Anweisung genau wie \ref oder \pageref zerbrechlich

ist und deshalb in beweglichen Argumenten wie Überschriften \protect davor gestellt werdensollte.

\deffootnote[Markenbreite ]{Einzug }{Absatzeinzug }{Markendefinition }\deffootnotemark{Markendefinition }\thefootnotemark

Die KOMA-Script-Klassen setzen Fußnoten etwas anders als die Standardklassen. Die Fußno-tenmarkierung im Text, also die Referenzierung der Fußnote, erfolgt wie bei den Standardklas-sen durch kleine hochgestellte Zahlen. Genauso werden die Markierungen auch in der Fußnoteselbst wiedergegeben. Sie werden dabei rechtsbündig in einem Feld der Breite Markenbreitegesetzt. Die erste Zeile der Fußnote schließt direkt an das Feld der Markierung an.Alle weiteren Zeilen werden um den Betrag von Einzug eingezogen ausgegeben. Wird der op-

tionale Parameter Markenbreite nicht angegeben, dann entspricht er dem Wert von Einzug .Sollte die Fußnote aus mehreren Absätzen bestehen, dann wird die erste Zeile eines Absatzeszusätzlich mit dem Einzug der Größe Absatzeinzug versehen.

Kapitel 3: Die Hauptklassen scrbook, scrreprt, scrartcl 98

Abbildung 3.1.: Parameter für dieDarstellung der Fußnoten

erster Absatz einer Fußnote

folgender Absatz einer Fußnote- � Absatzeinzug

- � Einzug

- � Markenbreite

Abbildung 3.1 veranschaulicht die verschiedenen Parameter nochmals. Die Voreinstellungin den KOMA-Script-Klassen entspricht folgender Definition:\deffootnote[1em]{1.5em}{1em}{%\textsuperscript{\thefootnotemark}%

}

Dabei wird mit Hilfe von \textsuperscript sowohl die Hochstellung als auch die Wahl einerkleineren Schrift erreicht. Die Anweisung \thefootnotemark liefert die aktuelle Fußnotenmar-ke ohne jegliche Formatierung.Aufv2.8q die Fußnote einschließlich der Markierung findet außerdem die für das Element footnote

eingestellte Schriftart Anwendung. Die Schriftart der Markierung kann mit Hilfe der Anwei-sungen \setkomafont und \addtokomafont (siehe Abschnitt 3.6, Seite 62) für das Elementfootnotelabel davon abweichend eingestellt werden. Siehe hierzu auch Tabelle 3.2, Seite 63.Voreingestellt ist jeweils keine Umschaltung der Schrift. Bitte missbrauchen Sie das Elementnicht für andere Zwecke, beispielsweise zur Verwendung von Flattersatz in den Fußnoten (siehedazu auch \raggedfootnote, Seite 99).Die Fußnotenmarkierung im Text wird getrennt von der Markierung vor der Fußnote defi-

niert. Dies geschieht mit der Anweisung \deffootnotemark. Voreingestellt ist hier:\deffootnotemark{\textsuperscript{\thefootnotemark}}

Dabei findetv2.8q die Schriftart für das Element footnotereference Anwendung (siehe Tabel-le 3.2, Seite 63). Die Markierungen im Text und in der Fußnote selbst sind also identisch.Die Schriftart kann mit den Anweisungen \setkomafont und \addtokomafont (siehe Ab-schnitt 3.6, Seite 62) jedoch geändert werden.

Beispiel: Relativ häufig wird gewünscht, dass die Markierung in der Fußnote selbst wederhochgestellt noch kleiner gesetzt wird. Dabei soll sie aber nicht direkt am Textkleben, sondern geringfügig davor stehen. Dies kann zum einen wie folgt erreichtwerden:\deffootnote{1em}{1em}{\thefootnotemark\ }

Die Fußnotenmarkierung und das folgende Leerzeichen wird also rechtsbündig ineine Box der Breite 1 em gesetzt. Die folgenden Zeilen der Fußnote werden gegenüberdem linken Rand ebenfalls um 1 em eingezogen.Eine weitere, oft gefragte Formatierung sind linksbündige Fußnotenmarkierungenin der Fußnote. Diese können mit folgender Definition erhalten werden:

Kapitel 3: Die Hauptklassen scrbook, scrreprt, scrartcl 99

\deffootnote{1.5em}{1em}{%\makebox[1.5em][l]{\thefootnotemark}%

}

Sollen jedoch die Fußnoten insgesamt lediglich in einer anderen Schriftart, beispiels-weise serifenlos gesetzt werden, so ist dies ganz einfach mit Hilfe der Anweisungen\setkomafont und \addtokomafont (siehe Abschnitt 3.6, Seite 62) zu lösen:\setkomafont{footnote}{\sffamily}

Wie die Beispiele zeigen, ermöglicht KOMA-Script mit dieser einfachen Benutzerschnittstelleeine große Vielfalt unterschiedlicher Fußnotenformatierungen.

\setfootnoterule[Höhe ]{Länge }

Üblicherweisev3.06 wird zwischen dem Textbereich und dem Fußnotenapparat eine Trennlinie ge-setzt, die jedoch normalerweise nicht über die gesamte Breite des Satzspiegels geht. Mit Hilfedieser Anweisung kann die genaue Länge und die Höhe oder Dicke der Linie bestimmt werden.Dabei werden Höhe und Länge erst beim Setzen der Linie selbst abhängig von \normalsizeausgewertet. Der optionale Parameter Höhe kann komplett entfallen und wird dann nicht ge-ändert. Ist das Argument Höhe oder Länge leer, so wird die jeweilige Größe ebenfalls nichtgeändert. Es gibt sowohl beim Setzen als auch bei Verwendung der Größen für unplausibleWerte eine Warnung.Die Farbev3.07 der Linie kann über das Element footnoterule mit Hilfe der Anweisungen

\setkomafont und \addtokomafont (siehe Abschnitt 3.6, Seite 62) eingestellt werden. Vorein-gestellt ist hierbei keinerlei Änderung von Schrift oder Farbe. Um die Farbe ändern zu können,muss außerdem ein Farbpaket wie xcolor geladen sein.

\raggedfootnote

Inv3.23 der Voreinstellung werden die Fußnoten bei KOMA-Script genau wie bei den Standardklas-sen im Blocksatz gesetzt. Es ist aber auch möglich die Formatierung abweichend vom restlichenDokument zu ändern. Dazu ist \raggedfootnote umzudefinieren. Gültige Definitionen wä-ren \raggedright, \raggedleft, \centering, \relax oder entsprechend der Voreinstellungeine leere Definition. Auch die Ausrichtungsbefehle des Pakets ragged2e sind zulässig (siehe[Sch09]).

Beispiel: Angenommen Sie verwenden Fußnoten ausschließlich, um Hinweise auf sehr langeLinks anzugeben, deren Umbruch im Blocksatz zu schlechten Ergebnissen führen.Dann könnten Sie in der Dokumentpräambel mit\let\raggedfootnote\raggedright

für die Fußnoten einfach auf linksbündigen Flattersatz umschalten.

Kapitel 3: Die Hauptklassen scrbook, scrreprt, scrartcl 100

3.15. Abgrenzungscrbook

Bei Büchern gibt es teilweise die Grobaufteilung in Vorspann, Hauptteil und Nachspann. AuchKOMA-Script bietet für scrbook diese Möglichkeit.

\frontmatter\mainmatter\backmatter

Mit \frontmatter wird der Vorspann eingeleitet. Im Vorspann werden die nummerierten Sei-ten mit römischen Seitenzahlen versehen. Kapitelüberschriften sind im Vorspann nicht num-meriert. Abschnittsüberschriften wären jedoch nummeriert, gingen von Kapitelnummer 0 ausund wären außerdem über Kapitelgrenzen hinweg durchgehend nummeriert. Dies spielt jedochkeine Rolle, da der Vorspann allenfalls für die Titelei, das Inhalts-, Abbildungs- und Tabel-lenverzeichnis und ein Vorwort verwendet wird. Das Vorwort kann also als normales Kapitelgesetzt werden. Ein Vorwort sollte niemals in Abschnitte unterteilt, sondern möglichst kurzgefasst werden. Im Vorwort wird also keine tiefere Gliederungsebene als Kapitel benötigt.Für den Fall, dass der Anwender dies anders sieht und nummerierte Abschnitte in den

Kapiteln des Vorspanns haben will, enthält ab Version 2.97ev2.97e die Nummerierung der Abschnittekeine Kapitelnummer. Diese Änderung gibt es nur, wenn eine Kompatibilität ab Version 2.97eeingestellt ist (siehe Option version, Abschnitt 3.2, Seite 58). Es wird ausdrücklich daraufhingewiesen, dass dadurch bezüglich der Nummern eine Verwechslung mit Kapitelnummerngegeben ist! Die Verwendung von \addsec und \section* (siehe Abschnitt 3.16, Seite 112und Seite 113) sind aus Sicht des Autors im Vorspann deshalb unbedingt vorzuziehen!Ab Version 2.97ev2.97e enthalten auch die Nummern für Gleitumgebungen wie Tabellen und Ab-

bildungen und die Gleichungsnummern im Vorspann keinen Kapitelanteil. Auch dies erforderteine entsprechende Kompatibilitätseinstellung (siehe Option version, Abschnitt 3.2, Seite 58).Mit \mainmatter wird der Hauptteil eingeleitet. Existiert kein Vorspann, so kann diese

Anweisung auch entfallen. Im Hauptteil sind arabische Seitenzahlen voreingestellt. Die Seiten-zählung beginnt im Hauptteil neu mit der 1.

Mit \backmatter wird der Nachspann eingeleitet. Was zum Nachspann gehört, ist unter-schiedlich. Manchmal wird im Nachspann nur das Literaturverzeichnis, manchmal nur dasStichwortverzeichnis gesetzt. Manchmal erscheint der gesamte Anhang im Nachspann. DerNachspann gleicht bezüglich der Gliederungsüberschriften dem Vorspann. Eine getrennte Sei-tennummerierung ist jedoch nicht vorgesehen. Falls Sie dies ebenfalls benötigen, bedienen Siesich bitte der Anweisung \pagenumbering aus Abschnitt 3.12, Seite 90.

3.16. Gliederung

Unter der Gliederung versteht man die Einteilung eines Dokuments in Teile, Kapitel, Ab-schnitte und weitere Gliederungsebenen.

Kapitel 3: Die Hauptklassen scrbook, scrreprt, scrartcl 101

Tabelle 3.12.: Mögliche Werte für Option open zur Auswahl von Umbrüchen mit Vakatseiten bei scrbookund scrreprt

anyTeile, Kapitel, Index und Nachspann verwenden \clearpage, aber nicht\cleardoublepage;die Anweisungen \cleardoublepageusingstyle, \cleardoublestandardpage,\cleardoubleplainpage, \cleardoubleemptypage und \cleardoublepage verhal-ten sich wie bei open=right.

leftTeile, Kapitel, Index und Nachspann verwenden \cleardoublepage;die Anweisungen \cleardoublepageusingstyle, \cleardoublestandardpage,\cleardoubleplainpage, \cleardoubleemptypage und \cleardoublepage erzeu-gen einen Seitenumbruch und fügen gegebenenfalls eine Vakatseite ein, um im dop-pelseitigen Satz auf die nächste linke Seite zu gelangen.

rightTeile, Kapitel, Index und Nachspann verwenden \cleardoublepage;die Anweisungen \cleardoublepageusingstyle, \cleardoublestandardpage,\cleardoubleplainpage, \cleardoubleemptypage und \cleardoublepage erzeu-gen einen Seitenumbruch und fügen gegebenenfalls eine Vakatseite ein, um im dop-pelseitigen Satz auf die nächste rechte Seite zu gelangen.

open=Methode

Bei den KOMA-Script-Klassen scrbook und scrreprt kann gewählt werden, wo im dop-scrbook,scrreprt pelseitigen Satz neue Kapitel beginnen. In der Voreinstellung beginnen bei scrreprt neue

Kapitel auf der nächsten neuen Seite. Dies entspricht der Methode any. Demgegenüberbeginnen bei scrbook neue Kapitel auf der nächsten rechten Seite. Dies entspricht derMethode right und ist bei den meisten Büchern üblich. In einigen Fällen sollen neue Ka-pitel jedoch auf der linken Seite einer kompletten Doppelseite beginnen. Dies entspricht derMethode leftv3.00 . Eine Zusammenfassung der möglichen Werte findet sich in Tabelle 3.12. Da-bei sind auch die Auswirkungen auf \cleardoublepage sowie \cleardoublepageusingstyle,\cleardoublestandardpage, \cleardoubleplainpage und die letzte der betroffenen Anwei-sungen, \cleardoubleemptypage, (siehe Abschnitt 3.13, Seite 93) angegeben.Da im einseitigen Satz nicht zwischen linken und rechten Seiten unterschieden wird, hat die

Option dort keine Wirkung.Bei der Klasse scrartcl ist die oberste Gliederungsebene unter dem Teil der Abschnitt. Daher

unterstützt scrartcl diese Option nicht.

Kapitel 3: Die Hauptklassen scrbook, scrreprt, scrartcl 102

chapterprefix=Ein-Aus-Wertappendixprefix=Ein-Aus-Wert\IfChapterUsesPrefixLine{Dann-Teil }{Sonst-Teil }

Bei den Standardklassen book und report werden Kapitelüberschriften in der Form ausgege-scrbook,scrreprt ben, dass zunächst in einer Zeile »Kapitel«1, gefolgt von der Kapitelnummer steht. Erst ab

der nächsten Zeile wird dann die Überschrift in linksbündigem Flattersatz ausgegeben. BeiKOMA-Script kann dieses Verhalten mit der Klassenoption chapterprefix ebenfalls erreichtwerden. Als Ein-Aus-Wert kann einer der Standardwerte für einfache Schalter aus Tabelle 2.5,Seite 42 verwendet werden. Voreingestellt ist chapterprefix=false, während das Verhaltender Standardklassen chapterprefix=true entspricht. Die Optionen wirken sich außerdem aufdas Aussehen der automatischen Kolumnentitel für Kapitel aus (siehe Abschnitt 3.12, Sei-te 86).Zuweilen kommt es vor, dass man die Kapitelüberschriften im Hauptteil durchaus in der ein-

fachen Form von chapterprefix=false setzen möchte. Gleichzeitig sollen die Überschriftenim Anhang jedoch davon abweichend mit einer Präfixzeile – »Anhang«, gefolgt vom Buch-staben des Anhangs – versehen werden. Dies ist mit der Einstellung appendixprefix=truemöglich. Da sich jedoch dadurch ein inkonsistentes Layout ergibt, rate ich von der Verwendungab. Letztlich führt die Option dazu, dass chapterprefix zu Beginn des Anhangs automatischgeändert wird.Mit der Anweisung \IfChapterUsesPrefixLinev3.18 kann man Code in Abhängigkeit der aktu-

ellen Einstellung für die Präfixzeile ausführen. Ist chapterprefix aktiv, so wird der Dann-Teilausgeführt, anderenfalls der Sonst-Teil .Die Schriftart der Kapitelnummernzeile bei chapterprefix=true oder appendixprefix=

true kann mit den beiden Anweisungen \setkomafont und \addtokomafont (siehe Ab-schnitt 3.6, Seite 62) für das Element chapterprefixv2.96a geändert werden. Voreingestellt istdie Verwendung des Elements chapter (siehe Seite 107, sowie Tabelle 3.15, Seite 111).Weitere Einstellmöglichkeiten für Kapitelüberschriften sind den Erklärungen zu

\RedeclareSectionCommand sowie den Anweisungen \chapterlineswithprefixformat und\chapterlinesformat in Abschnitt 21.8, Teil II zu entnehmen.

headings=Einstellung

Die Überschriften werden sowohl bei den Standardklassen als auch bei KOMA-Script norma-lerweise recht groß gesetzt. Dies gefällt nicht jedem und wirkt insbesondere bei kleinen Pa-piergrößen oft störend. Daher stehen bei KOMA-Script neben den mit der Option headings=bigv3.00 sehr groß voreingestellten Überschriften die beiden Möglichkeiten headings=normal undheadings=small zur Verfügung, mit denen man insgesamt kleinere Überschriften erhält. Dieaus den Optionen resultierenden Schriftgrößen sind für die Überschriften der Klassen scrbook

1Bei Verwendung einer anderen Sprache als Deutsch wird »Kapitel« selbstverständlich in der jeweiligen Spra-che gesetzt.

Kapitel 3: Die Hauptklassen scrbook, scrreprt, scrartcl 103

und scrreprt Tabelle 3.15, Seite 111 zu entnehmen. Konkret setzen alle drei Einstellungendie Schrift für die Elemente chapter, section, subsection, subsubsection, paragraph undsubparagraph auf entsprechende Voreinstellungen zurück. Bei scrartcl werden generell etwaskleinere Überschriften verwendet. Die Abstände vor und nach Kapitelüberschriften werdenscrbook,

scrreprt von diesen Optionen ebenfalls neu definiert.Auf Kapitelüberschriften wirken sich außerdem die beiden Optionen headings=scrbook,

scrreprt twolinechapter und headings=onelinechapter, die den oben erklärten chapterprefix=true und chapterprefix=false entsprechen, aus. Für den Anhang stehen als Alter-nativen zu appendixprefix=true und appendixprefix=false die Optionen headings=twolineappendix und headings=onelineappendix zur Verfügung. Diese existieren natürlichnicht bei scrartcl.Optionv3.12 headings=standardclasses passt zum Einen die Schriftgrößen der Überschriften

an die der Standardklassen an. Des Weiteren wird die Schrift für Element disposition auf\bfseries gesetzt. Es wird also für Überschriften nicht mehr auf einen serifenlosen Font umge-schaltet. Bei Verwendung von scrbook oder scrreprt wird außerdem headings=twolinechapterscrbook,

scrreprt gesetzt und die Abstände bei den Kapitelüberschriften werden denen der Standardklassen an-gepasst.Für Kapitel kann mit headings=openany, headings=openright und headings=openleftscrbook,

scrreprt die Methode für Kapitelanfänge alternativ zur Verwendung der Option open mit den Wertenany, right und left (siehe oben) gesetzt werden.Einev3.10 weitere Besonderheit von KOMA-Script betrifft die Behandlung des optionalen Ar-

guments der Gliederungsbefehle. Sowohl dessen Funktion als auch dessen Bedeutung kanndurch die Einstellungen headings=optiontohead, headings=optiontotoc und headings=optiontoheadandtoc beeinflusst werden.Eine Zusammenfassung der möglichen Einstellungen für Option headings finden Sie in

Tabelle 3.13. Beispiele zur Verwendung einiger der möglichen Einstellungen sind in den nach-folgenden Beschreibungen der Gliederungsbefehle enthalten.

Tabelle 3.13.: Mögliche Werte für Option headings zur Einstellung der Überschriften

bigSetzt die Schrifteinstellung für die einzelnen Standard-Gliederungsebenen zurück undverwendet große Überschriften mit großen Abständen darüber und darunter.

normalSetzt die Schrifteinstellung für die einzelnen Standard-Gliederungsebenen zurückund verwendet mittelgroße Überschriften mit mittelgroßen Abständen darüber unddarunter.

. . .

Kapitel 3: Die Hauptklassen scrbook, scrreprt, scrartcl 104

Tabelle 3.13.: Mögliche Werte für Option headings (Fortsetzung)

onelineappendix, noappendixprefix, appendixwithoutprefix,appendixwithoutprefixline

Kapitelüberschriften im Anhang werden wie andere Überschriften auch gesetzt.

onelinechapter, nochapterprefix, chapterwithoutprefix,chapterwithoutprefixline

Kapitelüberschriften werden wie andere Überschriften auch gesetzt.

openanyDie Anweisungen \cleardoublepageusingstyle, \cleardoublestandardpage,\cleardoubleplainpage, \cleardoubleemptypage und \cleardoublepage erzeu-gen einen Seitenumbruch und fügen gegebenenfalls eine Vakatseite ein, um im dop-pelseitigen Satz wie bei headings=openright auf die nächste rechte Seite zu ge-langen. Teile, Kapitel, Index und Nachspann verwenden \clearpage, aber nicht\cleardoublepage.

openleftDie Anweisungen \cleardoublepageusingstyle, \cleardoublestandardpage,\cleardoubleplainpage, \cleardoubleemptypage und \cleardoublepage erzeu-gen einen Seitenumbruch und fügen gegebenenfalls eine Vakatseite ein, um im dop-pelseitigen Satz auf die nächste linke Seite zu gelangen. Teile, Kapitel, Index undNachspann verwenden \cleardoublepage.

openrightDie Anweisungen \cleardoublepageusingstyle, \cleardoublestandardpage,\cleardoubleplainpage, \cleardoubleemptypage und \cleardoublepage erzeu-gen einen Seitenumbruch und fügen gegebenenfalls eine Vakatseite ein, um im dop-pelseitigen Satz auf die nächste rechte Seite zu gelangen. Teile, Kapitel, Index undNachspann verwenden \cleardoublepage.

optiontoheadDiev3.10 erweiterte Funktion des optionalen Arguments der Gliederungsbefehle wird ak-tiviert. In der Voreinstellung wird das optionale Argument ausschließlich für denKolumnentitel verwendet.

optiontoheadandtoc, optiontotocandheadDiev3.10 erweiterte Funktion des optionalen Arguments der Gliederungsbefehle wird ak-tiviert. In der Voreinstellung wird das optionale Argument sowohl für den Kolum-nentitel als auch den Eintrag ins Inhaltsverzeichnis verwendet.

. . .

Kapitel 3: Die Hauptklassen scrbook, scrreprt, scrartcl 105

Tabelle 3.13.: Mögliche Werte für Option headings (Fortsetzung)

optiontotocDiev3.10 erweiterte Funktion des optionalen Arguments der Gliederungsbefehle wird ak-tiviert. In der Voreinstellung wird das optionale Argument ausschließlich für denEintrag ins Inhaltsverzeichnis verwendet.

smallSetzt die Schrifteinstellung für die einzelnen Standard-Gliederungsebenen zurück undverwendet kleine Überschriften mit kleinen Abständen darüber und darunter.

standardclassesv3.12 Setzt die Schrifteinstellung für die einzelnen Standard-Gliederungsebenen zurück und

verwendet Überschriften in den Größen der Standardklassen. Für Kapitelüberschrif-ten wird bei scrbook und scrreprt headings=twolinechapter gesetzt.

twolineappendix, appendixprefix, appendixwithprefix, appendixwithprefixlineKapitelüberschriften im Anhang werden mit einer Vorsatzzeile gesetzt, deren Inhaltvon \chapterformat bestimmt wird.

twolinechapter, chapterprefix, chapterwithprefix, chapterwithprefixlineKapitelüberschriften werden mit einer Vorsatzzeile gesetzt, deren Inhalt von\chapterformat bestimmt wird.

numbers=Einstellung

Nach DUDEN steht in Gliederungen, in denen ausschließlich arabische Ziffern für die Num-merierung verwendet werden, am Ende der Gliederungsnummern kein abschließender Punkt(siehe [DUD96, R 3]). Wird hingegen innerhalb der Gliederung auch mit römischen Zahlenoder Groß- oder Kleinbuchstaben gearbeitet, so steht am Ende aller Gliederungsnummern einabschließender Punkt (siehe [DUD96, R 4]). In KOMA-Script ist ein Automatismus eingebaut,der diese etwas komplexe Regel zu erfüllen versucht. Der Automatismus wirkt sich so aus, dassnormalerweise bei Verwendung des Gliederungsbefehls \part oder eines Anhangs (\appendix)auf Gliederungsnummer mit abschließendem Punkt umgeschaltet wird. Diese Information wirdin der aux-Datei gespeichert und wirkt sich dann beim nächsten LATEX-Lauf auf das gesamteDokument aus.Manchmal versagt der mit numbers=autoendperiod voreingestellte Automatismus zum Set-

zen oder Weglassen des abschließenden Punktes in der Gliederungsnummer. Teilweise se-hen andere Sprachen auch andere Regeln vor. Deshalb ist es beispielsweise mit der Ein-stellung numbers=endperiod möglich, den Punkt manuell vorzuschreiben oder mit numbers=noendperiod zu verbieten.

Kapitel 3: Die Hauptklassen scrbook, scrreprt, scrartcl 106

Tabelle 3.14.: Mögliche Werte für Option numbers zur Konfigurierung des Abschlusspunktes in Gliede-rungsnummern

autoendperiod, autoenddot, autoKOMA-Script trifft die Entscheidung, ob am Ende von Gliederungsnummern undallen von Gliederungsnummern abhängigen Nummern ein Punkt gesetzt wird, selbst.Kommen in sämtlichen Gliederungsnummern nur arabische Ziffern vor, so wird keinPunkt gesetzt. Wird in einer Gliederungsnummer ein Buchstabe oder eine römischeZahl entdeckt, so wird der Punkt bei allen Nummern gesetzt. Referenzen auf dieseNummern werden jedoch ohne abschließenden Punkt gesetzt.

endperiod, withendperiod, periodatend, enddot, withenddot, dotatendBei sämtlichen Gliederungsnummern und davon abhängigen Nummern wird am Endeein Punkt gesetzt, der bei der Referenzierung entfällt.

noendperiod, noperiodatend, noenddot, nodotatendGliederungsnummern und davon abhängige Nummern werden ohne abschließendenPunkt gesetzt.

Es ist zu beachten, dass der Automatismus immer erst für den nächsten LATEX-Lauf dieVerwendung des abschließenden Punktes ein- oder ausschaltet. Bevor also versucht wird, diekorrekte Darstellung über Verwendung einer der Optionen zu erzwingen, sollte grundsätzlichein weiterer LATEX-Lauf ohne Dokumentänderung durchgeführt werden.

Eine Zusammenfassung der möglichen Werte für die Einstellung von numbers bietet Ta-belle 3.14. Im Unterschied zu den meisten anderen Einstellungen, kann diese Option nur inder Dokumentpräambel, also vor \begin{document} vorgenommen werden.

chapteratlistschapteratlists=Wert

Wie auch bei der Option listof in Abschnitt 3.20, Seite 153 erwähnt wird, fügt normalerweisev2.96ascrbook,scrreprt jeder mit \chapter erzeugte Kapiteleintrag einen vertikalen Abstand in die Verzeichnisse der

Gleitumgebungen ein. Seit Version 2.96a gilt dies auch für die Anweisung \addchap, wennnicht eine Kompatibilitätseinstellung zu einer früheren Version gewählt wurde (siehe Optionversion in Abschnitt 3.2, Seite 58).

Außerdem kann mit der Option chapteratlists der Abstand verändert werden. Dazu gibtman als Wert den gewünschten Abstand an. Bei der Voreinstellung listof=chaptergapsmall(siehe Seite 154) sind dies 10 pt.Mit der Einstellung chapteratlists=entry oder bei Verwendung der Form

chapteratlists ohne Angabe eines Wertes wird statt des Abstandes der Kapitelein-trag selbst in die Verzeichnisse eingetragen. Es wird darauf hingewiesen, dass ein solcherEintrag auch dann erfolgt, wenn das Kapitel keine Gleitumgebung enthält. Eine Lösung, bei

Kapitel 3: Die Hauptklassen scrbook, scrreprt, scrartcl 107

der nur Kapitel mit Gleitumgebungen im jeweiligen Verzeichnis angezeigt werden, finden Sieunter [Koh15].Es ist zu beachten, dass sich eine Änderung der Einstellung je nach Art der Änderung erst

nach zwei weiteren LATEX-Läufen im Verzeichnis auswirkt.

\part[Kurzform ]{Überschrift }\chapter[Kurzform ]{Überschrift }\section[Kurzform ]{Überschrift }\subsection[Kurzform ]{Überschrift }\subsubsection[Kurzform ]{Überschrift }\paragraph[Kurzform ]{Überschrift }\subparagraph[Kurzform ]{Überschrift }

Die Standardgliederungsbefehle funktionieren bei KOMA-Script im Grundsatz wie bei denStandardklassen. So kann in der Voreinstellung ganz normal über ein optionales Argumentein abweichender Text für den Kolumnentitel und das Inhaltsverzeichnis vorgegeben werden.Mitv3.10 der Einstellung headings=optiontohead wird das optionale Argument bei KOMA-

Script hingegen nur noch für den Kolumnentitel verwendet. Ein konkreter Eintrag in denKolumnentitel erfolgt natürlich nur, wenn ein Seitenstil gewählt wird, bei dem die entspre-chende Gliederungsebene überhaupt für den Kolumnentitel verwendet wird. Siehe hierzu Ab-schnitt 3.12 sowie Kapitel 5. Mit der Einstellung headings=optiontotoc wird das optionaleArgument hingegen ausschließlich für den Eintrag ins Inhaltsverzeichnis verwendet. Auch diesselbstverständlich nur, wenn die Einstellung für den Zähler tocdepth (siehe Abschnitt 3.9,Seite 81) einen Eintrag der entsprechenden Ebene überhaupt vorsieht. Mit der Einstellungheadings=optiontoheadandtoc findet schließlich das optionale Argument wieder sowohl fürden Kolumnentitel als auch den Eintrag ins Inhaltsverzeichnis Verwendung. Allen drei Einstel-lungen ist gemeinsam, dass sie im Gegensatz zur Voreinstellung die erweiterte Interpretationdes optionalen Arguments aktivieren.Beiv3.10 der erweiterten Interpretation des optionalen Arguments wird geprüft, ob sich ein Gleich-

heitszeichen in Kurzform befindet. Ist dies der Fall, so wird das optionale Argument der Glie-derungsbefehle selbst statt als Kurzform als Optionenliste interpretiert. Dabei werden dievier Optionen head=Kolumnentitel , tocentry=Inhaltsverzeichniseintrag , reference=Querverweistitelv3.22 und nonumber=Ein-Aus-Wertv3.27 akzeptiert. Um ein Gleichheitszeichen oderein Komma in einem der Werte der ersten drei Optionen unterzubringen, muss dieses in zu-sätzliche geschweifte Klammern gesetzt werden.Bitte beachten Sie, dass dieser Mechanismus nur funktioniert, solange KOMA-Script die

Kontrolle über die Gliederungsbefehle besitzt. Wird hingegen ein Paket verwendet, dass dieGliederungsbefehle oder die internen LATEX-Kern-Anweisungen für Gliederungsbefehle umdefi-niert, so kann KOMA-Script diese erweiterte Funktionalität nicht mehr zur Verfügung stellen.Dies gilt auch für die immer aktive Erweiterung, dass leere Inhaltsverzeichniseinträge nichtzu einem Eintrag ohne Text führen, sondern gänzlich unterbleiben. Soll tatsächlich einmal ein

Kapitel 3: Die Hauptklassen scrbook, scrreprt, scrartcl 108

leerer Eintrag ins Inhaltsverzeichnis erfolgen, so kann dies mit einem unsichtbaren Eintrag wie\mbox{} erreicht werden.

Beispiel: Angenommen, Sie haben ein Dokument mit teilweise sehr langen Kapitelüberschrif-ten. Diese langen Kapitelüberschriften sollen auch im Inhaltsverzeichnis ausgegebenwerden. Die Kolumnentitel wollen Sie jedoch auf einzeilige Kurztexte beschränken.Dazu stellen Sie mit\documentclass[headings=optiontohead]{scrbook}

bereits beim Laden der Klasse ein, dass das optionale Argument der Gliederungs-befehle nur für die Kolumnentitel verwendet werden soll. Im Dokument nehmenSie dann einen entsprechenden Eintrag über das optionale Argument von \chaptervor.\chapter[Kurzformen für Kapitel]

{Der Gliederungsbefehl fürKapitelüberschriften erlaubt neben demText für die eigentlicheKapitelüberschrift auch eine Kurzformmit steuerbarer Verwendung}

Etwas später wird Ihnen bewusst, dass diese lange Überschrift sehr ungünstig um-brochen wird. Sie wollen deshalb die Umbrüche für diese Überschrift selbst bestim-men. Im Inhaltsverzeichnis soll allerdings weiterhin automatisch umbrochen werden.Mit\chapter[head={Kurzformen für Kapitel},

tocentry={Der Gliederungsbefehl fürKapitelüberschriften erlaubt nebendem Text für die eigentlicheKapitelüberschrift auch eine Kurzformmit steuerbarer Verwendung}]

{Der Gliederungsbefehl fürKapitelüberschriften\\erlaubt neben dem\\Text für die eigentlicheKapitelüberschrift\\auch eine Kurzform\\mit steuerbarer Verwendung}

setzen Sie daher die Einträge für den Kolumnentitel und das Inhaltsverzeichnisunabhängig voneinander und von der Überschrift selbst. Die Argumente der beidenOptionen head und tocentry wurden dabei in geschweifte Klammern gesetzt, damitder Inhalt der Argumente beliebig sein kann.Die Notwendigkeit der geschweiften Klammern im vorherigen Beispiel lässt sich

Kapitel 3: Die Hauptklassen scrbook, scrreprt, scrartcl 109

am besten an einem weiteren Beispiel verdeutlichen. Angenommen, Sie haben alsOption headings=optiontotoc gewählt und setzen nun die Überschrift:\section[head=\emph{Wert}]

{Die Option head=\emph{Wert}}

Dies führt dazu, dass im Inhaltsverzeichnis der Eintrag »Die Option head=Wert«und im Kolumnentitel der Eintrag »Wert« verwendet wird. In Wirklichkeit woll-ten Sie aber, dass im Inhaltsverzeichnis der Eintrag »head=Wert« lautet und imKolumnentitel der Text der Überschrift übernommen wird. Dies ist dadurch zuerreichen, dass das Gleichheitszeichen in geschweifte Klammern gesetzt wird:\section[head{=}\emph{Wert}]

{Die Option head=\emph{Wert}}

Ein ähnlicher Fall betrifft das Komma. Bei gleicher Voreinstellung der Optionenwürde\section[head=0, 1, 2, 3, \dots]

{Die natürlichen Zahlen mit der Null}

zu einer Fehlermeldung führen, weil die Kommata als Trennzeichen zwischen deneinzelnen Optionen der Optionenliste »head=0, 1, 2, 3, \dots« interpretiertwürden. Schreibt man hingegen\section[head={0, 1, 2, 3, \dots}]

{Die natürlichen Zahlen mit der Null}

so ist »0, 1, 2, 3, \dots« das Argument der Option head.

Sov3.22 wie im Beispiel Option head den Titel für den lebenden Kolumnentitel und Optiontocentry den Titel für den Verzeichniseintrag bestimmt, kann mit reference der Titel füreinen Querverweise durch die Pakete nameref, titleref oder das titleref-Modul von zref explizitvorgegeben werden. Die Unterstützung für titleref ist dabei eher rudimentär, da das Paket mitder Leistungsfähigkeit der anderen beiden nur schlecht mithalten kann und auch nicht mithyperref kompatibel ist.Darüber hinaus kann mit Hilfe der Option nonumber=truev3.27 im erweiterten optionalen Argu-

ment die Nummerierung der Überschrift deaktiviert werden. Im Gegensatz zu den nachfolgenderklärten Sternvarianten der Gliederungsbefehle wird jedoch trotzdem ein Inhaltsverzeichnis-eintrag und gegebenenfalls ein Kolumnentitel erzeugt. Für \part, \chapter und \sectionentspricht dies weitgehend den auf Seite 113 erklärten Anweisungen \addpart, \addchap und\addsec.Die Überschrift der Teile-Ebene (\part) unterscheidet sich von den anderen Gliederungs-

ebenen dadurch, dass sie unabhängig von den übrigen Ebenen nummeriert wird. Das bedeutet,dass die Kapitel-Ebene (bei scrbook oder scrreprt) bzw. die Abschnitt-Ebene (bei scrartcl) überalle Teile hinweg durchgehend nummeriert wird. Darüber hinaus steht bei den Klassen scrbook

Kapitel 3: Die Hauptklassen scrbook, scrreprt, scrartcl 110

und scrreprt die Überschrift dieser Ebene zusammen mit ihrer Präambel (siehe Anweisungscrbook,scrreprt \setpartpreamble, Seite 122) alleine auf einer Seite.

\chapter existiert nur bei Buch- und Berichtklassen, also bei book, scrbook, report undscrbook,scrreprt scrreprt, nicht jedoch bei den Artikelklassen article und scrartcl. \chapter unterscheidet sich

bei KOMA-Script außerdem gravierend von der Version der Standardklassen. Bei den Stan-dardklassen wird die Kapitelnummer mit dem Präfix »Kapitel« beziehungsweise dem Kapi-telnamen in der gewählten Sprache in einer Zeile vor dem eigentlichen Text der Überschriftausgegeben. Diese sehr mächtige Form wird bei KOMA-Script durch eine einfache Nummer vordem Text abgelöst, lässt sich aber durch die Optionen chapterprefix und appendixprefixeinstellen (siehe Seite 102).Bitte beachten Sie, dass \part und \chapter bei scrbook und scrreprt den Seitenstil für einescrbook,

scrreprt Seite umschalten. Der jeweilige Seitenstil ist bei KOMA-Script in den Makros \partpagestyleund \chapterpagestyle abgelegt (siehe Abschnitt 3.12, Seite 88).

Diev2.8p Schriftart aller sieben Gliederungsebenen kann mit den Anweisungen \setkomafont und\addtokomafont (siehe Abschnitt 3.6, Seite 62) bestimmt werden. Dabei wird zunächst gene-rell das Element disposition und anschließend zusätzlich je Gliederungsebene ein spezifischesElement verwendet (siehe Tabelle 3.2, Seite 63). Für den Nummernteil der Teile-Überschriftwird zusätzlich das Element partnumber verwendet, für die optionale Präfixzeile der Kapitel-überschriften das Element chapterprefix. Die Schriftart für das Element disposition istals \normalcolor\sffamily\bfseries vordefiniert. Die Voreinstellungen für die spezifischenElemente sind mit einer Schriftgröße vorbelegt und daher von den Einstellungen big, normalund small für die Option headings abhängig (siehe Seite 102). Sie finden die Voreinstellungenin Tabelle 3.15.

Beispiel: Angenommen, Sie stellen bei Verwendung der Klassenoption headings=big fest,dass die sehr großen Überschriften von Teildokumenten (\part oder \addpart) zufett wirken. Nun könnten Sie natürlich wie folgt verfahren:\setkomafont{disposition}{\normalcolor\sffamily}\part{\appendixname}\addtokomafont{disposition}{\bfseries}

Auf diese Weise würden Sie nur für die eine Überschrift »Anhang« das Schriftattri-but Fett abschalten. Sehr viel komfortabler und eleganter ist es aber, stattdessengenerell für \part-Überschriften eine entsprechende Änderung vorzunehmen. Dasist wahlweise mit:\addtokomafont{part}{\normalfont\sffamily}\addtokomafont{partnumber}{\normalfont\sffamily}

oder einfach mit:\addtokomafont{part}{\mdseries}\addtokomafont{partnumber}{\mdseries}

Kapitel 3: Die Hauptklassen scrbook, scrreprt, scrartcl 111

Tabelle 3.15.: Voreinstel-lungen der Schrift für dieElemente der Gliederungbei scrbook und scrreprt

Klassenoption Element Voreinstellungheadings=big part \Huge

partnumber \hugechapter \hugechapterprefix \usekomafont{chapter}section \Largesubsection \largesubsubsection \normalsizeparagraph \normalsizesubparagraph \normalsize

headings=normal part \hugepartnumber \hugechapter \LARGEchapterprefix \usekomafont{chapter}section \Largesubsection \largesubsubsection \normalsizeparagraph \normalsizesubparagraph \normalsize

headings=small part \LARGEpartnumber \LARGEchapter \Largechapterprefix \usekomafont{chapter}section \largesubsection \normalsizesubsubsection \normalsizeparagraph \normalsizesubparagraph \normalsize

möglich. Die Verwendung von \setkomafont wäre zwar grundsätzlich möglich,müsste aber auch die Auswahl der Schriftgröße enthalten und würde damit dieGrößenänderung über die Option headings verhindern.Die zweite Version mit \mdseries ist vorzuziehen, da diese auch dann noch zumgewünschten Ergebnis führt, wenn Sie später das Element disposition wie folgtändern:\setkomafont{disposition}{\normalcolor\bfseries}

Mit dieser Änderung verzichten Sie darauf, für alle Gliederungsebenen serifenlose

Kapitel 3: Die Hauptklassen scrbook, scrreprt, scrartcl 112

Schrift voreinzustellen.Ich möchte eindringlich davon abraten, die Möglichkeit zur Schriftumschaltung zu miss-

brauchen, um wild Schriften, Schriftgrößen und Schriftattribute miteinander zu mischen. DieAuswahl der richtigen Schrift für die richtige Aufgabe ist eine Sache für Experten und hatsehr, sehr wenig mit dem persönlichem Geschmack eines Laien zu tun. Siehe hierzu auch dasZitat am Ende von Abschnitt 2.8, Seite 55 und die folgende Erklärung.Unterschiedliche Schriften für unterschiedliche Gliederungsebenen sind mit KOMA-Script-

Mitteln möglich. Der Laie sollte sie aber meiden wie der Teufel das Weihwasser. Dies hat ty-pografische Gründe.Eine Regel der Typografie besagt, dass man möglichst wenig Schriften miteinander mischen soll.

Serifenlose für die Überschriften scheinen bereits ein Verstoß gegen diese Regel zu sein. Allerdingsmuss man wissen, dass fette, große, serifenbehaftete Buchstaben oft viel zu mächtig für eineÜberschrift sind. Man müsste dann strenggenommen zumindest auf eine normale statt eine fetteoder halbfette Schrift ausweichen. In tiefen Gliederungsebenen kann das aber wieder zu schwachsein. Andererseits haben Serifenlose in Überschriften eine sehr angenehme Wirkung und fast nur fürÜberschriften eine Berechtigung. Daher wurde diese Voreinstellung für KOMA-Script mit gutemGrund gewählt.Größere Vielfalt sollte aber vermieden werden. Schriftenmischung ist etwas für Profis. Aus den

genannten Gründen sollten Sie bei Verwendung anderer als der Standard-TEX-Fonts – egal ob CM-,EC- oder LM-Fonts – bezüglich der Verträglichkeit der serifenlosen und serifenbehafteten Schrifteinen Experten zu Rate ziehen oder die Schrift für das Element disposition vorsichtshalber wiein obigem Beispiel umdefinieren. Die häufig anzutreffenden Kombinationen Times mit Helveticaoder Palatino mit Helvetica werden vom Autor als ungünstig betrachtet.

\part*{Überschrift }\chapter*{Überschrift }\section*{Überschrift }\subsection*{Überschrift }\subsubsection*{Überschrift }\paragraph*{Überschrift }\subparagraph*{Überschrift }

Bei den Sternvarianten der Gliederungsbefehle erfolgt keine Nummerierung, wird kein Kolum-nentitel gesetzt und kein Eintrag im Inhaltsverzeichnis vorgenommen. Der Verzicht auf denKolumnentitel hat übrigens einen oftmals unerwünschten Effekt. Geht beispielsweise ein mit\chapter* gesetztes Kapitel über mehrere Seiten, so taucht plötzlich der Kolumnentitel desletzten Kapitels wieder auf. KOMA-Script bietet dafür aber eine Lösung, die im Anschluss be-schrieben wird. \chapter* existiert selbstverständlich nur bei Buch- und Berichtklassen, alsoscrbook,

scrreprt bei book, scrbook, report und scrreprt, nicht jedoch bei den Artikelklassen article und scrartcl.Bitte beachten Sie, dass \part* und \chapter* den Seitenstil für eine Seite umschalten.

Während die Standardklassen dabei den Seitenstil plain verwenden, ist bei KOMA-Script der

Kapitel 3: Die Hauptklassen scrbook, scrreprt, scrartcl 113

zu verwendende Seitenstil in den Makros \partpagestyle und \chapterpagestyle abgelegt(siehe Abschnitt 3.12, Seite 88).Bezüglich der Möglichkeiten der Schriftumschaltungv2.8p gilt das Gleiche, wie zuvor in der Er-

klärung zu den sternlosen Varianten geschrieben. Die Elemente tragen die gleichen Namen, dasie nicht Varianten, sondern Gliederungsebenen bezeichnen.

\addpart[Kurzform ]{Überschrift }\addpart*{Überschrift }\addchap[Kurzform ]{Überschrift }\addchap*{Überschrift }\addsec[Kurzform ]{Überschrift }\addsec*{Überschrift }

KOMA-Script bietet über die Gliederungsbefehle der Standardklassen hinaus die Anweisungen\addpart, \addchap und \addsec. Diese ähneln bis auf die fehlende Nummerierung sehr denStandardanweisungen \part, \chapter und \section. Sie erzeugen sowohl einen automati-schen Kolumnentitel als auch einen Eintrag im Inhaltsverzeichnis, wobei auch die Einstellungenvon Option headings beachtet werden, insbesondere auch die entsprechende Erweiterung desoptionalen Arguments verfügbar ist. Das Aktivieren oder Deaktivieren des in der Erklärungzu \part, \chapter und \section dokumentierten Schalters nonumber bleibt dabei jedochwirkungslos.Die Sternvarianten \addchap* und \addsec* gleichen hingegen den Standardanweisungen

\chapter* und \section* mit einem winzigen, aber wichtigen Unterschied: Die Kolumnenti-tel werden gelöscht. Dadurch wird der oben erwähnte Effekt veralteter Kolumnentitel ausge-schlossen. Stattdessen bleibt der Kolumnentitel auf Folgeseiten leer. \addchap und \addchap*scrbook,

scrreprt existieren selbstverständlich nur bei Buch- und Berichtklassen, also bei scrbook und scrreprt,nicht jedoch bei der Artikelklasse scrartcl.

Die Anweisung \addpart erstellt entsprechend einen nicht nummerierten Dokumentteil miteinem Eintrag im Inhaltsverzeichnis. Da bereits \part und \part* den Kolumnentitel lö-schen, ergibt sich hier nicht das oben genannte Problem mit veralteten Kolumnentiteln. DieSternvariante \addpart* ist daher identisch mit der Sternvariante \part* und wurde nur ausKonsistenzgründen definiert.Bitte beachten Sie, dass \addpart und \addchap und deren Sternvarianten den Seitenstil

für eine Seite umschalten. Der jeweilige Seitenstil ist in den Makros \partpagestyle und\chapterpagestyle abgelegt (siehe Abschnitt 3.12, Seite 88).Bezüglich der Möglichkeiten der Schriftumschaltungv2.8p gilt das Gleiche, wie zuvor in der Er-

klärung zu \part*, \chapter* und \section* geschrieben. Die Elemente tragen die gleichenNamen, da sie nicht Varianten, sondern Gliederungsebenen bezeichnen.

Kapitel 3: Die Hauptklassen scrbook, scrreprt, scrartcl 114

\minisec{Überschrift }

Manchmal ist eine Art Überschrift wünschenswert, die zwar hervorgehoben wird, ansonstenaber eng mit dem nachfolgenden Text zusammenhängt. Eine solche Überschrift soll dann ohnegroße Abstände gesetzt werden.

Der Befehl \minisec bewirkt genau eine derartige Überschrift. Diese Überschrift ist keinerGliederungsebene zugeordnet. Eine solche Mini-Section wird nicht in das Inhaltsverzeichnisaufgenommen und erhält auch keine Nummerierung.Die Schriftart des Gliederungsbefehls \minisec kann über die Elemente disposition und

minisecv2.96a beeinflusst werden (siehe Tabelle 3.2, Seite 63). Die Voreinstellung für das Elementminisec ist leer, so dass in der Voreinstellung nur das Element disposition wirkt.

Beispiel: Sie haben einen Bausatz für eine Mausefalle entwickelt und wollen diesen getrenntnach den benötigten Materialien und der Anleitung für die Montage beschreiben.Das könnte so gemacht werden:\documentclass{scrartcl}\usepackage[ngerman]{babel}\usepackage{selinput}\SelectInputMappings{adieresis={ä},germandbls={ß}

}

\begin{document}

\title{Selbstbauprojekte}\author{Zwei Linke Daumen}\date{\today}\maketitle

\section{Mausefalle}Das erste Projekt ist auch für Anfänger geeignetund benötigt lediglich einige wenige Bauteile,die in jedem Haushalt zu finden sein sollten.

\minisec{Bauteile}

\begin{flushleft}1 Brett ($100\times 50 \times 12$)\\1 Bierflaschenschnappverschluss\\1 Kugelschreiberfeder\\1 Reißzwecke\\2 Schrauben\\1 Hammer\\

Kapitel 3: Die Hauptklassen scrbook, scrreprt, scrartcl 115

1 Messer\end{flushleft}

\minisec{Montage}

Zunächst suche man das Mauseloch. Dann lege mandie Reißzwecke innen unmittelbar hinter das Loch,damit bei den folgenden Aktionen die Maus nichtentschlüpfen kann.Anschließend klopfe man mit dem Hammer denBierflaschenschnappverschluss in das Mauseloch.Sollte der Verschluss nicht groß genug sein, umdas Loch vollständig und dauerhaft zuverschließen, nehme man stattdessen das Brettund schraube es unter Zuhilfenahme der beidenSchrauben und des Messers vor das Loch. Stattdes Messers kann selbstverständlich auch einSchraubendreher verwendet werden.Die Kugelschreiberfeder ist dem Tierschutz zumOpfer gefallen.\end{document}

Der wesentliche Teil ab der Überschrift »Bauteile« sieht anschließend wie folgt aus:Bauteile1 Brett (100× 50× 12)1 Bierflaschenschnappverschluss1 Kugelschreiberfeder1 Reißzwecke2 Schrauben1 Hammer1 Messer

MontageZunächst suche man das Mauseloch. Dann lege man die Reißzwecke innenunmittelbar hinter das Loch, damit bei den folgenden Aktionen die Mausnicht entschlüpfen kann. Anschließend klopfe man mit dem Hammer denBierflaschenschnappverschluss in das Mauseloch. Sollte der Verschluss nichtgroß genug sein, um das Loch vollständig und dauerhaft zu verschließen,nehme man stattdessen das Brett und schraube es unter Zuhilfenahme derbeiden Schrauben und des Messers vor das Loch. Statt des Messers kannselbstverständlich auch ein Schraubendreher verwendet werden. Die Kugel-schreiberfeder ist dem Tierschutz zum Opfer gefallen.

Zum Verständnis der Verwendung des Pakets selinput und von\SelectInputMappings sei auf [Obe16b] verwiesen.

Kapitel 3: Die Hauptklassen scrbook, scrreprt, scrartcl 116

\raggedsection\raggedchapter\raggedpart

Bei den Standardklassen werden die Überschriften ganz normal im Blocksatz ausgegeben. Da-durch können in den Überschriften Trennungen auftreten und mehrzeilige Überschriften wer-den auf Textbreite gedehnt. Dieses Vorgehen ist in der Typografie eher unüblich. KOMA-Scriptsetzt Überschriften von \chapter bis \subparagraph daher in linksbündigem Flattersatz mithängendem Einzug. Verantwortlich ist dafür die Anweisung \raggedsection, die vordefiniertist als:\let\raggedsection\raggedright

Die Anweisung \raggedsection kann mit \renewcommand umdefiniert werden.

Beispiel: Sie wollen auch für Überschriften Blocksatz. Dazu schreiben Sie in die PräambelIhres Dokuments:\renewcommand*{\raggedsection}{}

oder kürzer:\let\raggedsection\relax

Sie erreichen somit eine ähnliche Formatierung der Überschriften wie bei den Stan-dardklassen. Noch ähnlicher wird es, wenn Sie diese Änderung mit der oben vorge-stellten Änderung für das Element disposition kombinieren.

Dav3.15 manche Anwender für die Kapitelebene eine andere Ausrichtung wünschen als für alleanderen Ebenen, kann diese über \raggedchapter auch getrennt verändert werden. In derVoreinstellung verwendet die Anweisung jedoch einfach \raggedsection, so dass eine Ände-rung von \raggedsection sich indirekt auch auf \raggedchapter auswirkt.Die Überschriften von Teilen (\part) werden in der Voreinstellung als einzige nicht in links-

bündigem Flattersatz, sondern zentriert gesetzt. Dafür ist die Anweisung \raggedpart ver-antwortlich, die als:\let\raggedpart\centering

vordefiniert ist. Auch diese Anweisung kann mit \renewcommand umdefiniert werden.

Beispiel: Sie wollen, dass Überschriften mit \part in der gleichen Weise formatiert werdenwie alle anderen Ebenen. Dazu schreiben Sie\renewcommand*{\raggedpart}{\raggedsection}

in die Präambel Ihres Dokuments. An dieser Stelle wurde im Gegensatz zu obenabsichtlich nicht \let verwendet, da mit \let der Anweisung \raggedpart die ak-tuelle Bedeutung von \raggedsection zugewiesen würde. Spätere Änderungen von\raggedsection blieben also bei \raggedpart unberücksichtigt. Bei der Umdefi-nierung mit \renewcommand erhält \raggedpart dagegen nicht die Bedeutung von

Kapitel 3: Die Hauptklassen scrbook, scrreprt, scrartcl 117

\raggedsection zum Zeitpunkt dieser Umdefinierung, sondern zum Zeitpunkt derVerwendung von \raggedpart.

\partformat\chapterformat\sectionformat\subsectionformat\subsubsectionformat\paragraphformat\subparagraphformat\othersectionlevelsformat{Gliederungsname }{}{Zählerausgabe }\IfUsePrefixLine{Dann-Teil }{Sonst-Teil }\autodot

KOMA-Script fügt der Ausgabe der Gliederungsnummern oberhalb von\theGliederungsname (siehe \theZähler , Seite 501) eine weitere logische Ebene hin-zu. Die Zähler werden für die jeweilige Überschrift nicht einfach nur ausgegeben. Siewerden mit Hilfe der parameterlosen Anweisungen \partformat, \chapterformat bis\subparagraphformatv3.17 formatiert. Die Anweisung \chapterformat existiert, wie bereitsscrbook,

scrreprt \thechapter, selbstverständlich nicht in der Klasse scrartcl, sondern nur in den Klassenscrbook und scrreprt.

Wie bereits bei Option numbers am Anfang dieses Abschnitts (siehe Seite 105) erläutertwurde, müssen gemäß [DUD96] die Gliederungsnummern je nach Gliederung mit einem nach-folgenden Punkt versehen werden oder dieser hat zu entfallen. Die Anweisung \autodot istbei KOMA-Script für die Einhaltung dieser Regel verantwortlich. Auf den Punkt folgt beiallen Gliederungsebenen außer \part noch ein \enskip. Dies entspricht einem Leerraum von0,5 em, also einem Halbgeviert.Die Anweisung \othersectionlevelsformatv3.17 wird seit KOMA-Script 3.17 nur noch in Aus-

nahmefällen verwendet, wenn für eine Gliederungsebene keine Format-Anweisung definiertoder diese \relax ist, was jedoch in der Voreinstellung für die Gliederungsebenen von KOMA-Script nicht zutrifft. Daher wird sie auch nicht mehr offiziell dokumentiert. Bei einer Kom-patibilitätseinstellung zu Versionen vor 3.17 (siehe Option version, Abschnitt 3.2, Seite 58)haben hingegen die Anweisungen \sectionformat bis \subparagraphformat keine interneFunktion. Stattdessen wird für diese Ebenen dann weiterhin \othersectionlevelsformatverwendet.Mit Hilfe von \renewcommand kann jede der Formatierungsanweisungen umdefiniert werden,

um sie eigenen Anforderungen anzupassen. Nachfolgend finden Sie einige Definitionen, diedenen aus den KOMA-Script-Klassen entsprechen:\newcommand*{\partformat}{\partname~\thepart\autodot}\newcommand*{\chapterformat}{%

Kapitel 3: Die Hauptklassen scrbook, scrreprt, scrartcl 118

\mbox{\chapappifchapterprefix{\nobreakspace}\thechapter\autodot\IfUsePrefixLine{}{\enskip}}}

\newcommand*{\sectionformat}{\thesection\autodot\enskip}\newcommand*{\subsectionformat}{%\thesubsection\autodot\enskip}

\newcommand*{\subsubsectionformat}{%\thesubsubsection\autodot\enskip}

\newcommand*{\paragraphformat}{\theparagraph\autodot\enskip}\newcommand*{\subparagraphformat}{%\thesubparagraph\autodot\enskip}

\newcommand*{\othersectionlevelsformat}[3]{%#3\autodot\enskip}

Wegenv3.17 der Verwendung von \IfUsePrefixLine sollte die Anweisung \chapterformat nichtaußerhalb von \chapter verwendet werden. \IfUsePrefixLine ist nur innerhalb der Gliede-rungsbefehle von KOMA-Script wohldefiniert. Dort wird dann im Falle der Verwendung einerPräfixzeile für die Nummer der Überschrift der Dann-Teil ausgeführt, während im anderenFall der Sonst-Teil zur Ausführung kommt.Bitte beachten Sie außerdem, dass bei der Umdefinierung selbstverständlich \newcommand

durch \renewcommand zu ersetzen ist.

Beispiel: Angenommen, Sie wollen, dass bei \part das Wort »Teil« vor der Nummer nichtausgegeben wird. Dann können Sie beispielsweise folgende Anweisung in die Prä-ambel Ihres Dokuments schreiben:\renewcommand*{\partformat}{\thepart\autodot}

Genau genommen könnten Sie an dieser Stelle auch auf \autodot verzichten undstattdessen einen festen Punkt setzen. Da \part mit römischen Zahlen nummeriertwird, muss der Punkt laut [DUD96] folgen. Allerdings bringen Sie sich dann um dieMöglichkeit, die Option numbers einzusetzen und so von der Regel abzuweichen.Näheres zu der Option siehe Seite 105.Eine weitere Möglichkeit besteht darin, die Nummerierung der Abschnitte so inden Rand zu platzieren, dass der Überschriftentext links mit dem umgebendenText abschließt. Dies erreicht man mit:\renewcommand*{\sectionformat}{%\makebox[0pt][r]{\thesection\autodot\enskip}}

\renewcommand*{\subsectionformat}{%\makebox[0pt][r]{\thesubsection\autodot\enskip}}

\renewcommand*{\subsubsectionformat}{%\makebox[0pt][r]{%

\thesubsubsection\autodot\enskip}}\renewcommand*{\paragraphformat}{%\makebox[0pt][r]{\theparagraph\autodot\enskip}}

Kapitel 3: Die Hauptklassen scrbook, scrreprt, scrartcl 119

\renewcommand*{\paragraphformat}{%\makebox[0pt][r]{%\thesubparagraph\autodot\enskip}}

Die optionalen Argumente der \makebox-Anweisungen fordern von LATEX dabei eineBox der Breite Null, deren Inhalt rechtsbündig angeordnet ist. Im Ergebnis wirdder Inhalt der Box links von der aktuellen Position ausgegeben. Näheres zu denoptionalen Argumenten von \makebox ist [Tea05b] zu entnehmen.

Für Formatierungsänderungen bei den Überschriften, die über die reine Ausga-be der Nummer hinaus gehen, sei ausdrücklich auf \partlineswithprefixformat,\chapterlineswithprefixformat und \chapterlinesformat sowie \sectionlinesformatund das zugehörige \sectioncatchphraseformat in Abschnitt 21.8, ab Seite 520 verwiesen.

\chapappifchapterprefix{Zusatztext }\chapapp

Diesev2.8o beiden Anweisungen werden nicht nur intern von KOMA-Script verwendet, sondernscrbook,scrreprt stehen auch dem Anwender zur Verfügung. Nachfolgend werden sie beispielsweise für die Um-

definierung anderer Anweisungen verwendet.Bei Verwendung von Option chapterprefix=true (siehe Seite 102) setzt

\chapappifchapterprefix im Hauptteil des Dokuments das Wort »Kapitel« in deraktuellen Sprache, gefolgt vom Zusatztext . Im Anhang wird stattdessen das Wort »An-hang« in der aktuellen Sprache, ebenfalls gefolgt vom Zusatztext , ausgegeben. Bei derEinstellung chapterprefix=false wird hingegen nichts ausgegeben.

Die Anweisung \chapapp setzt immer das Wort »Kapitel« beziehungsweise »Anhang«. Da-bei spielt die Einstellung der Option chapterprefix keine Rolle.

Da es Kapitel nur bei den Klassen scrbook und scrreprt gibt, existieren die beiden Anwei-sungen auch nur bei diesen Klassen.

Kapitel 3: Die Hauptklassen scrbook, scrreprt, scrartcl 120

\chaptermark{Kolumnentitel }\addchapmark{Kolumnentitel }\sectionmark{Kolumnentitel }\addsecmark{Kolumnentitel }\subsectionmark{Kolumnentitel }\chaptermarkformat\sectionmarkformat\subsectionmarkformat

Wie bereits in Abschnitt 3.12 erwähnt, arbeitet der Seitenstil headings mit automatischen Ko-lumnentiteln. Dazu werden die Anweisungen \chaptermark und \sectionmark beziehungswei-se \sectionmark und \subsectionmark entsprechend definiert. Gliederungsbefehle (\chapter,\section . . . ) führen automatisch eine entsprechende \...mark-Anweisung aus. Der dabei über-gebene Parameter beinhaltet den Text der Gliederungsüberschrift. Die zugehörige Gliederungsnum-mer wird automatisch in der \...mark-Anweisung hinzugefügt. Die Formatierung erfolgt je nachGliederungsebene mit einer der drei Anweisungen \chaptermarkformat, \sectionmarkformatund \subsectionmarkformat.Es ist zu beachten, dass die Kolumnentitel von \addchap und \addsec ebenfalls auf

\chaptermark und \sectionmark basieren. Dabei wird aber lokal der Zähler secnumdepthauf einen Wert gesetzt, mit dem die Nummerierung von Kapiteln beziehungsweise Abschnit-ten abgeschaltet wird. Dies sollte man beispielsweise bei der Umdefinierung von \chaptermarkund \sectionmark berücksichtigen (siehe \ifnumbered auf Seite 122). Für die Sternfor-men \addchap* und \addsec* existieren außerdem die Anweisungen \addchapmark und\addsecmark, die in der Voreinstellung ebenfalls in der genannten Weise definiert sind.Während bei scrartcl weder \chaptermark noch \addchapmark oder \chaptermarkformatscrbook,

scrreprt existieren, gibt es die beiden Anweisungen \subsectionmark und \subsectionmarkformat nurscrartcl bei scrartcl. Bei Verwendung des Pakets scrlayer-scrpage ändert sich dies jedoch (siehe Kapitel 5).

So wie mit \partformat bis \subparagraphformat die Nummern der Gliederungsüber-schriften formatiert ausgegeben werden, werden entsprechend mit \chaptermarkformat,\sectionmarkformat und \subsectionmarkformat die Nummern der Gliederungsebenen inden automatischen Kolumnentiteln formatiert ausgegeben. Mit \renewcommand können sieeigenen Anforderungen angepasst werden. Die Originaldefinitionen aus den KOMA-Script-Klassen sind:\newcommand*{\chaptermarkformat}{%\chapappifchapterprefix{\ }\thechapter\autodot\enskip}

\newcommand*{\sectionmarkformat}{%\thesection\autodot\enskip}

\newcommand*{\subsectionmarkformat}{%\thesubsection\autodot\enskip}

Beispiel: Angenommen, Sie wollen, dass der Kapitelnummer in den Kolumnentiteln das Wort

Kapitel 3: Die Hauptklassen scrbook, scrreprt, scrartcl 121

»Kapitel« vorangestellt wird. Dann setzen Sie beispielsweise diese Definition in diePräambel Ihres Dokuments:\renewcommand*{\chaptermarkformat}{%\chapapp~\thechapter\autodot\enskip}

Wie Sie sehen, finden hier die beiden Anweisungen \chapapp und \chapappifchapterprefixVerwendung, die weiter oben erklärt wurden.

secnumdepth\partnumdepth\chapternumdepth\sectionnumdepth\subsectionnumdepth\subsubsectionnumdepth\paragraphnumdepth\subparagraphnumdepth

Normalerweise werden bei den Klassen scrbook und scrreprt die Gliederungsebenen \part bis\subsection und bei der Klasse scrartcl die Ebenen \part bis \subsubsection nummeriert.Gesteuert wird dies über den LATEX-Zähler secnumdepth.Damitv3.12 sich der Anwender keine abstrakten Nummern merken muss, um einstellen zu kön-

nen, bis zu welcher Gliederungsebene die Überschriften nummeriert werden sollen, gibt es dieAnweisungen \partnumdepth bis \subparagraphnumdepth. Diese liefern die entsprechendeNummer zur jeweiligen Gliederungsebene.

Beispiel: Sie wollen, dass in einem Buchprojekt nur die Gliederungsebenen vom Teil (engl.part) über das Kapitel (engl. chapter) bis zum Abschnitt (engl. section) nummeriertwerden. Dazu müssen Sie in der Dokumentpräambel den Zähler secnumdepth aufden Wert setzen, den die Anweisung \sectionnumdepth liefert:\setcounter{secnumdepth}{\sectionnumdepth}

Eine Umdefinierung der Anweisungen ist nicht vorgesehen und wird ausdrücklich nicht emp-fohlen, da dies zu unvorhergesehenen Ergebnissen sowohl mit KOMA-Script als auch bei Ver-wendung von Drittpaketen führen kann.Der Zähler secnumdepth ist nicht zu verwechseln mit dem Zähler tocdepth (siehe Ab-

schnitt 3.9, Seite 81). Auch sind die Werte je nach Klasse nicht eins zu eins übertragbar.

Kapitel 3: Die Hauptklassen scrbook, scrreprt, scrartcl 122

\ifnumbered{Gliederungsebene }{Dann-Teil }{Else-Teil }\ifunnumbered{Gliederungsebene }{Dann-Teil }{Else-Teil }

Nachdemv3.12 zuvor erklärt wurde, wie man bestimmen kann, welche Gliederungsebenen num-meriert werden sollen, kann mit diesen Anweisungen nun Code abhängig davon, ob eineGliederungsebene nummeriert wird oder nicht, ausgeführt werden. Wird mit den aktuel-len Einstellungen eine Gliederungsebene nummeriert, so führt \ifnumbered den Dann-Teilaus, während \ifunnumbered den Else-Teil ausführt. Wird mit den aktuellen Einstellun-gen eine Gliederungsebene nicht nummeriert, dann führt \ifnumbered den Else-Teil aus,wohingegen \ifunnumbered den Dann-Teil ausführt. Als Gliederungsebene wird der engli-sche Name der Ebene angegeben, also part, chapter, section, subsection, subsubsection,paragraph oder subparagraph.KOMA-Script selbst verwendet diesen Test beispielsweise in der Definition von

\chaptermark beim Seitenstil headings. Dadurch wird indirekt auch sichergestellt, dass Über-schriften mit \addchap den Kolumnentitel nicht mit einer Nummer versehen (siehe auch\addchapmark, Seite 120).

\setpartpreamble[Position ][Breite ]{Präambel }\setchapterpreamble[Position ][Breite ]{Präambel }

scrbook,scrreprt Teile und Kapitel können bei KOMA-Script mit einer Präambel versehen werden. Dies ist ins-

besondere im zweispaltigen Layout mit der Klassenoption twocolumn nützlich, da die Präambelzusammen mit der Überschrift einspaltig gesetzt wird. Die Präambel kann auch mehrere Ab-sätze beinhalten. Die Anweisung zum Setzen der Präambel muss vor der jeweiligen \part-oder \addpart- bzw. \chapter- oder \addchap-Anweisung stehen.

Beispiel: Sie schreiben einen Bericht über den Zustand einer Firma. Dabei organisieren Sieden Bericht so, dass jeder Abteilung ein eigener Teilbericht spendiert wird. Jedemdieser Teile soll außerdem eine Zusammenfassung vorangestellt werden. Diese Zu-sammenfassung soll auf der Titelseite jedes Teils stehen. Das ist wie folgt möglich:\setpartpreamble{%\begin{abstract}Dies ist ein Blindtext zur Demonstration.

\end{abstract}}\part{Abteilung Grünschnitt}

Je nach Einstellung der Optionen für die Überschriftengröße (siehe Seite 102) undder Optionen für die Form der abstract-Umgebung (siehe Abschnitt 3.8, Seite 75),sieht das Ergebnis ungefähr wie folgt aus:

Kapitel 3: Die Hauptklassen scrbook, scrreprt, scrartcl 123

Teil III.

Abteilung Grünschnitt

Zusammenfassung

Dies ist ein Blindtext zur Demonstration.

Bitte beachten Sie, dass Sie für die Abstände der Präambel zur Teilüberschrift bzw. zumKapiteltext selbst verantwortlich sind. Bitte beachten Sie auch, dass die abstract-Umgebungbei der Klasse scrbook nicht existiert (siehe Abschnitt 3.8, Seite 75).

Dasv2.8p erste optionale Argument Position bestimmt über ein bis zwei Buchstaben die Posi-tion, an der die Präambel ausgegeben wird. Für die vertikale Position existieren derzeit zweiMöglichkeiten:

o – über der Überschriftu – unter der Überschrift

Es kann so jeweils eine Präambel unter und über der Überschrift gesetzt werden, mit dreiMöglichkeiten für die horizontale Position:

l – linksbündigr – rechtsbündigc – zentriert

Dabei wird allerdings nicht der Text der Präambel entsprechend angeordnet, sondern eineBox, deren Breite durch das zweite optionale Argument Breite bestimmt wird. Wird auf daszweite optionale Argument verzichtet, so wird stattdessen die gesamte Textbreite verwendet.Damit bleibt die Option zur horizontalen Positionierung in diesem Fall wirkungslos. Es kannjeweils ein Buchstabe für die vertikale mit einem Buchstaben für die horizontale Anordnungkombiniert werden.Eine häufigere Anwendung von \setchapterpreamble dürfte ein Spruch oder Zitat zu einer

Überschrift sein. Die dazu verwendbare Anweisung \dictum ist im nachfolgenden Abschnitterläutert. Dort findet sich auch ein entsprechendes Beispiel.Bitte beachten Sie, dass Präambel bei der Platzierung über der Überschrift in den dort

vorhandenen freien Platz gesetzt wird. Die Überschrift wird dabei nicht nach unten verschoben.Der Anwender ist also selbst dafür verantwortlich dass Präambel nicht zu groß ist und dervorhandene freie Platz über der Überschrift genügt. Siehe dazu auch Einstellung beforeskipfür \RedeclareSectionCommand in Abschnitt 21.8, Tabelle 21.3, Seite 511.

Kapitel 3: Die Hauptklassen scrbook, scrreprt, scrartcl 124

Tabelle 3.16.: Voreinstel-lungen der Schrift für dieElemente des Spruchs

Element Voreinstellungdictum \normalfont\normalcolor\sffamily\smalldictumauthor \itshape

3.17. Schlauer Spruch

Ein häufiger anzutreffendes Element sind Zitate oder eine Redewendungen, die mit Quellen-angabe und eigener Formatierung unter oder über einer Überschrift gesetzt werden.

\dictum[Urheber ]{Spruch }\dictumwidth\dictumauthorformat{Urheber }\dictumrule\raggeddictum\raggeddictumtext\raggeddictumauthor

Ein solcher Spruch kann mit Hilfe der Anweisung \dictum gesetzt werden. Bei KOMA-Script-Klassen wird für Kapitel oder Teile empfohlen, \dictum als obligatorisches Argument derAnweisung \setchapterpreamble beziehungsweise \setpartpreamble (siehe Abschnitt 3.16,Seite 122) zu verwenden. Dies ist jedoch nicht zwingend.Der Spruch wird zusammen mit einem optional anzugebenden Urheber in einer \parbox

(siehe [Tea05b]) der Breite \dictumwidth gesetzt. Dabei ist \dictumwidth keine Länge, diemit \setlength gesetzt wird. Es handelt sich um ein Makro, das mit \renewcommand umde-finiert werden kann. Vordefiniert ist 0.3333\textwidth, also ein Drittel der jeweiligen Text-breite. Die Box selbst wird mit der Anweisung \raggeddictum ausgerichtet. Voreingestellt istdabei \raggedleft, also rechtsbündig. \raggeddictum kann mit Hilfe von \renewcommandumdefiniert werden.Innerhalb der Box wird der Spruch mit \raggeddictumtext angeordnet. Voreingestellt ist

hier \raggedright, also linksbündig. Eine Umdefinierung ist auch hier mit \renewcommandmöglich. Die Ausgabe erfolgt in der für Element dictum eingestellten Schriftart, die mit denAnweisungen \setkomafont und \addtokomafont (siehe Abschnitt 3.6, Seite 62) geändertwerden kann. Die Voreinstellung entnehmen Sie bitte Tabelle 3.16.Ist ein Urheber angegeben, so wird dieser mit einer Linie über die gesamte Breite der

\parbox vom Spruch abgetrennt. Diesev3.10 Linie ist in \dictumrule definiert. Es handelt sichdabei um ein vertikales Objekt, das mit\newcommand*{\dictumrule}{\vskip-1ex\hrulefill\par}

vordefiniert ist.

Kapitel 3: Die Hauptklassen scrbook, scrreprt, scrartcl 125

Mit \raggeddictumauthor wird die Ausrichtung für die Linie und den Urheber vorge-nommen. Voreingestellt ist \raggedleft. Auch diese Anweisung kann mit \renewcommandumdefiniert werden. Die Ausgabe erfolgt in der Form, die mit \dictumauthorformat festge-legt ist. Das Makro erwartet schlicht den Urheber als Argument. In der Voreinstellung ist\dictumauthorformat mit\newcommand*{\dictumauthorformat}[1]{(#1)}

definiert. Der Urheber wird also in runde Klammern gesetzt. Für das Element dictumauthorkann dabei eine Abweichung der Schrift von der des Elementes dictum definiert werden. DieVoreinstellung entnehmen Sie bitte Tabelle 3.16. Eine Änderung ist mit Hilfe der Anweisungen\setkomafont und \addtokomafont (siehe Abschnitt 3.6, Seite 62) möglich.Wird \dictum innerhalb der Anweisung \setchapterpreamble oder \setpartpreamble

(siehe Abschnitt 3.16, Seite 122) verwendet, so ist Folgendes zu beachten: Die horizontale An-ordnung erfolgt immer mit \raggeddictum. Das optionale Argument zur horizontalen Anord-nung, das die beiden Anweisungen vorsehen, bleibt daher ohne Wirkung. \textwidth ist nichtdie Breite des gesamten Textkörpers, sondern wie bei minipage die aktuelle Textbreite. Ist alsodie Breite \dictumwidth als .5\textwidth definiert und bei \setchapterpreamble wird alsoptionales Argument für die Breite ebenfalls .5\textwidth angegeben, so erfolgt die Ausgabein einer Box, deren Breite ein Viertel der Breite des Textkörpers ist. Es wird empfohlen, beiVerwendung von \dictum auf die optionale Angabe einer Breite bei \setchapterpreambleoder \setpartpreamble zu verzichten.Sollen mehrere schlaue Sprüche untereinander gesetzt werden, so sollten diese durch einen

zusätzlichen Abstand vertikal voneinander abgesetzt werden. Ein solcher kann leicht mit derAnweisung \bigskip gesetzt werden.

Beispiel: Sie schreiben ein Kapitel über die moderne Ehe. Dabei wollen Sie in der Präambelzur Kapitelüberschrift einen schlauen Spruch setzen. Dieser soll unter der Über-schrift erscheinen. Also schreiben Sie:\setchapterpreamble[u]{%\dictum[Schiller]{Drum prüfe,wer sich ewig bindet \dots}}

\chapter{Die moderne Ehe}

Die Ausgabe erfolgt dann in der Form:

17 Die moderne EheDrum prüfe, wer sich ewigbindet . . .

(Schiller)

Wenn Sie wollen, dass nicht ein Drittel, sondern nur ein Viertel der verfügbarenTextbreite für den Spruch verwendet wird, so definieren Sie \dictumwidth wie

Kapitel 3: Die Hauptklassen scrbook, scrreprt, scrartcl 126

folgt um:\renewcommand*{\dictumwidth}{.25\textwidth}

3.18. Listen

LATEX und die Standardklassen bieten verschiedene Umgebungen für Listen. All diese Umge-bungen bietet KOMA-Script selbstverständlich auch, teilweise jedoch mit leichten Abwandlun-gen oder Erweiterungen. Grundsätzlich gilt, dass Listen – auch unterschiedlicher Art – bis zueiner Tiefe von vier Listen geschachtelt werden können. Eine tiefere Schachtelung wäre auchaus typografischen Gründen kaum sinnvoll, da genau genommen schon mehr als drei Ebenennicht mehr überblickt werden können. Ich empfehle in solchen Fällen, die eine große Liste inmehrere kleinere Listen aufzuteilen.

\begin{itemize}\item . . ....

\end{itemize}\labelitemi\labelitemii\labelitemiii\labelitemiv

Die einfachste Form einer Liste ist die Stichpunkt- oder itemize-Liste. Bei den KOMA-Script-Klassen werden je nach Ebene folgende Aufzählungszeichen zur Einleitung eines Listenelementsverwendet: »•«, »–«, »∗« und »·«. Die Definition der Zeichen für die einzelnen Ebenen sindin den Makros \labelitemi, \labelitemii, \labelitemiii und \labelitemiv abgelegt. Siekönnen diese leicht mit \renewcommand umdefinieren. Die einzelnen Stichpunkte werden mit\item eingeleitet.

Beispiel: Sie haben eine einfache Aufzählung, die in mehreren Ebenen geschachtelt ist. Sieschreiben beispielsweise:\minisec{Die Fahrzeuge im Spiel}\begin{itemize}\item Flugzeuge\begin{itemize}\item Doppeldecker\item Transportmaschinen\begin{itemize}\item einmotorig\begin{itemize}\item{düsengetrieben}\item{propellergetrieben}

Kapitel 3: Die Hauptklassen scrbook, scrreprt, scrartcl 127

\end{itemize}\item zweimotorig\begin{itemize}\item{düsengetrieben}\item{propellergetrieben}

\end{itemize}\end{itemize}\item Drehflügler

\end{itemize}\item Motorräder\item Automobile\begin{itemize}\item Rennwagen\item Personenwagen\item Lastwagen\end{itemize}\item Fahrräder

\end{itemize}\end{itemize}

Anschließend erhalten Sie:Die Fahrzeuge im Spiel

• Flugzeuge– Doppeldecker– Transportmaschinen

∗ einmotorig· düsengetrieben· propellergetrieben

∗ zweimotorig· düsengetrieben· propellergetrieben

– Drehflügler

• Motorräder

• Automobile– Rennwagen– Personenwagen– Lastwagen

• Fahrräder

Kapitel 3: Die Hauptklassen scrbook, scrreprt, scrartcl 128

\begin{enumerate}\item . . ....

\end{enumerate}\theenumi\theenumii\theenumiii\theenumiv\labelenumi\labelenumii\labelenumiii\labelenumiv

Die nummerierte Liste ist ebenfalls sehr häufig zu finden und bereits vom LATEX-Kern vor-gesehen. Die Nummerierung erfolgt je nach Ebene in unterschiedlicher Art: mit arabischenZahlen, mit Kleinbuchstaben, mit kleinen römischen Zahlen und mit Großbuchstaben. DieArt der Nummerierung wird dabei über die Makros \theenumi bis \theenumiv festgelegt.Das Format der Ausgabe wird von den Makros \labelenumi bis \labelenumiv bestimmt.Dabei folgt auf den Wert der zweiten Ebene, der in Kleinbuchstaben ausgegeben wird, einerunde Klammer, während die Werte aller anderen Ebenen von einem Punkt gefolgt werden.Die einzelnen Stichpunkte werden wieder mit \item eingeleitet.

Beispiel: Verkürzen wir das vorherige Beispiel und verwenden statt der itemize- eineenumerate-Umgebung:

Die Fahrzeuge im Spiel1. Flugzeuge

a) Doppeldeckerb) Transportmaschinen

i. einmotorigA. düsengetriebenB. propellergetrieben

ii. mehrmotorig

2. Motorrädera) historisch korrektb) futurisch nicht real

Innerhalb der Aufzählung können ganz normal mit \label Marken gesetzt werden,auf die dann mit \ref zugegriffen werden kann. So wurde oben hinter den düsenge-triebenen, einmotorigen Flugzeugen mit »\label{bsp:duesen}« ein Label gesetzt.Der \ref-Wert ist dann »1(b)iA«.

Kapitel 3: Die Hauptklassen scrbook, scrreprt, scrartcl 129

\begin{description}\item[Stichwort ] . . ....

\end{description}

Eine weitere Listenform ist die Stichwortliste. Sie dient in erster Linie der Beschreibung ein-zelner Begriffe. Diese werden als optionale Parameter bei \item angegeben. Die Schriftartv2.8p , diefür die Hervorhebung des Stichworts verwendet wird, kann außerdem bei den KOMA-Script-Klassen mit Hilfe der Anweisungen \setkomafont und \addtokomafont (siehe Abschnitt 3.6,Seite 62) für das Element descriptionlabel (siehe Tabelle 3.2, Seite 63) geändert werden.In der Voreinstellung wird \sffamily\bfseries verwendet.

Beispiel: Sie wollen, dass die Stichworte statt serifenlos und fett lediglich fett, aber in derStandardschriftart ausgegeben werden. Mit\setkomafont{descriptionlabel}{\normalfont\bfseries}

definieren Sie daher die Schrift entsprechend um.Ein Beispiel für die Ausgabe einer Stichwortliste ist eine Aufzählung der Seitenstile.Der Quelltext dazu lautet beispielsweise:\begin{description}\item[empty] ist der Seitenstil, bei dem Kopf-

und Fußzeile vollständig leer bleiben.\item[plain] ist der Seitenstil, bei dem

keinerlei Kolumnentitel verwendet wird.\item[headings] ist der Seitenstil für

automatische Kolumnentitel.\item[myheadings] ist der Seitenstil für

manuelle Kolumnentitel.\end{description}

Diese ergibt:

empty ist der Seitenstil, bei dem Kopf- und Fußzeile vollständig leer blei-ben.

plain ist der Seitenstil, bei dem keinerlei Kolumnentitel verwendet wird.

headings ist der Seitenstil für automatische Kolumnentitel.

myheadings ist der Seitenstil für manuelle Kolumnentitel.

Kapitel 3: Die Hauptklassen scrbook, scrreprt, scrartcl 130

\begin{labeling}[Trennzeichen ]{längstes Schlüsselwort }\item[Stichwort ] . . ....

\end{labeling}

Eine andere Form der Stichwortliste ist nur bei den KOMA-Script-Klassen vorhanden: dielabeling-Umgebung. Im Unterschied zur zuvor vorgestellten Umgebung description kannbei labeling ein Muster angegeben werden, dessen Länge die Einrücktiefe bei allen Stich-punkten ergibt. Darüber hinaus kann zwischen Stichpunkt und Beschreibungstext ein optio-nales Trennzeichen festgelegt werden. Die Schriftartv3.02 , die für die Hervorhebung des Schlüssel-worts verwendet wird, kann mit Hilfe der Anweisungen \setkomafont und \addtokomafont(siehe Abschnitt 3.6, Seite 62) für das Element labelinglabel (siehe Tabelle 3.2, Seite 63)geändert werden. Für die davon abweichende Schriftart der Trennzeichen ist das Elementlabelingseparator (siehe ebenfalls Tabelle 3.2, Seite 63) zuständig.

Beispiel: Wir schreiben das Beispiel der description-Umgebung etwas um:\setkomafont{labelinglabel}{\ttfamily}\setkomafont{labelingseparator}{\normalfont}\begin{labeling}[~--]{myheadings}\item[empty]

Seitenstil für leere Seiten ohne Kopf und Fuß\item[plain]

Seitenstil für Kapitelanfänge ganz ohneKolumnentitel

\item[headings]Seitenstil für automatische Kolumnentitel

\item[myheadings]Seitenstil für manuelle Kolumnentitel

\end{labeling}

Als Ergebnis erhalten wir dann:

empty – Seitenstil für leere Seiten ohne Kopf und Fuß

plain – Seitenstil für Kapitelanfänge ganz ohne Kolumnentitel

headings – Seitenstil für automatische Kolumnentitel

myheadings – Seitenstil für manuelle Kolumnentitel

Wie in diesem Beispiel zu sehen ist, kann eine eventuell geforderte Schriftumschal-tung in bei KOMA-Script gewohnter Weise erreicht werden. Da sich die Schriftum-schaltung für das Schlüsselwort aber auch auf die Trennzeichen auswirkt, kann eseventuell erforderlich sein, die Schriftumschaltung dafür explizit aufzuheben.

Gedacht war die Umgebung ursprünglich für Strukturen wie »Voraussetzung, Aussage, Be-weis« oder »Gegeben, Gesucht, Lösung«, wie man sie in Vorlesungsskripten häufiger findet.

Kapitel 3: Die Hauptklassen scrbook, scrreprt, scrartcl 131

Inzwischen findet die Umgebung aber ganz unterschiedliche Anwendungen. So wurde die Um-gebung für Beispiele in dieser Anleitung mit Hilfe der labeling-Umgebung definiert.

\begin{verse} . . . \end{verse}Die verse-Umgebung wird normalerweise nicht als Listenumgebung wahrgenommen, da hiernicht mit \item gearbeitet wird. Stattdessen wird wie innerhalb der flushleft-Umgebungmit festen Zeilenumbrüchen gearbeitet. Intern handelt es sich jedoch sowohl bei den Stan-dardklassen als auch bei KOMA-Script durchaus um eine Listenumgebung.

Die verse-Umgebung findet hauptsächlich für Gedichte Anwendung. Dabei werden die Zei-len links und rechts eingezogen. Einzelne Verse werden mit einem festen Zeilenumbruch, alsomit \\ beendet. Strophen werden ganz normal als Absatz gesetzt, also durch eine Leerzeilegetrennt. Häufig findet stattdessen auch \medskip oder \bigskip Verwendung. Will man ver-hindern, dass am Ende eines Verses ein Seitenumbruch erfolgt, so verwendet man ganz normal\\* anstelle von \\.

Beispiel: Als Beispiel ein kurzes Gedicht von Wilhelm Busch:\begin{verse}Wenn einer, der mit Mühe kaum\\*Gekrochen ist auf einen Baum,\\*Schon meint, dass er ein Vogel wär,\\*So irrt sich der.

\end{verse}

Mit dem Resultat:

Wenn einer, der mit Mühe kaumGekrochen ist auf einen Baum,Schon meint, dass er ein Vogel wär,So irrt sich der.

Bei einem sehr langen Vers wie:\begin{verse}Der Philosoph wie der Hausbesitzer hatimmer Reparaturen.\\*\bigskipWer dir sagt, er hätte noch nie gelogen,dem traue nicht, mein Sohn.

\end{verse}

bei dem ein Zeilenumbruch innerhalb des Verses erfolgt:

Der Philosoph wie der Hausbesitzer hat immer Reparaturen.

Wer dir sagt, er hätte noch nie gelogen, dem traue nicht, meinSohn.

Kapitel 3: Die Hauptklassen scrbook, scrreprt, scrartcl 132

kann mit \\* allerdings nicht verhindert werden, dass am Zeilenumbruch auch einSeitenumbruch erfolgt. Um dies zu erreichen, müsste innerhalb der ersten Zeilezusätzlich ein \nopagebreak eingefügt werden:\begin{verse}

Der Philosoph wie der Hausbesitzer\nopagebreak{}hat immer Reparaturen.\\\bigskipWer dir sagt, er hätte noch nie\nopagebreak{}gelogen, dem traue nicht, mein Sohn.

\end{verse}

Hier noch zwei Sprüche, die man immer bedenken sollte, wenn man mit scheinbarseltsamen Fragen zu LATEX oder den dazugehörigen Antworten konfrontiert ist:\begin{verse}

Wir mögen’s keinem gerne gönnen,\\*Dass er was kann, was wir nicht können.\\\bigskipWie klein ist das, was einer ist,\\*Wenn man’s mit seinem Dünkel misst.

\end{verse}

Wir mögen’s keinem gerne gönnen,Dass er was kann, was wir nicht können.

Wie klein ist das, was einer ist,Wenn man’s mit seinem Dünkel misst.

In diesen Beispielen wurde übrigens jeweils \bigskip verwendet, um zwei Sprüchevoneinander zu trennen.

\begin{quote} . . . \end{quote}Dies ist intern ebenfalls eine Listenumgebung und sowohl bei den Standardklassen als auchbei KOMA-Script zu finden. Der Inhalt der Umgebung wird im Blocksatz mit beidseitigemEinzug gesetzt. Die Umgebung wird häufig verwendet, um längere Zitate abzusetzen. Dabeiwerden Absätze innerhalb der Umgebung durch einen vertikalen Abstand gekennzeichnet.

\begin{quotation} . . . \end{quotation}Diese Umgebung ist mit quote vergleichbar. Während bei quote Absätze durch vertikalenAbstand gekennzeichnet werden, wird bei quotation mit horizontalem Einzug der ersten Zeileeines Absatzes gearbeitet. Dies gilt auch für den ersten Absatz einer quotation-Umgebung.Wollen Sie dort den Einzug verhindern, müssen Sie die \noindent-Anweisung voranstellen.

Kapitel 3: Die Hauptklassen scrbook, scrreprt, scrartcl 133

Beispiel: Sie wollen eine kleine Anekdote hervorheben. Also schreiben Sie unter Verwendungder Umgebung quotation:\documentclass[paper=a5,pagesize]{scrartcl}\usepackage{selinput}\SelectInputMappings{adieresis={ä},germandbls={ß}}\usepackage[ngerman]{babel}\begin{document}Ein kleines Beispiel für eine Anekdote, die sicheinst in Schwaben zugetragen haben soll:\begin{quotation}Es klingelt an der Tür eines Pfarrhauses inStuttgart. Als die Haushälterin öffnet, stehtein unrasierter Mann in reichlich schäbigemMantel vor der Tür und hält seine Strickmützein der Hand.

"‘Gute Frau,"’ verkündet der Mann in gequältemTon, doch bestem Hochdeutsch,"‘ich habe seit drei Tagen nichts mehrgegessen."’

Die Frau schüttelt mitleidig den Kopf undentgegnet im Brustton vollster Überzeugung:

"‘Guda Moh, Sie missat sich halt zwinga!"’\end{quotation}\end{document}

Das Ergebnis könnte dann so aussehen:

Ein kleines Beispiel für eine Anekdote, die sich einst in Schwaben zugetra-gen haben soll:

Es klingelt an der Tür eines Pfarrhauses in Stuttgart. Alsdie Haushälterin öffnet, steht ein unrasierter Mann in reichlichschäbigem Mantel vor der Tür und hält seine Strickmütze inder Hand.„Gute Frau,“ verkündet der Mann in gequältem Ton, doch

bestem Hochdeutsch, „ich habe seit drei Tagen nichts mehr ge-gessen.“Die Frau schüttelt mitleidig den Kopf und entgegnet im

Brustton vollster Überzeugung:„Guda Moh, Sie missat sich halt zwinga!“

Zum Vergleich sei das Ganze anstelle von quotation auch noch mit einer quote-Umgebung gezeigt:

Kapitel 3: Die Hauptklassen scrbook, scrreprt, scrartcl 134

Ein kleines Beispiel für eine Anekdote, die sich einst in Schwaben zugetra-gen haben soll:

Es klingelt an der Tür eines Pfarrhauses in Stuttgart. Als dieHaushälterin öffnet, steht ein unrasierter Mann in reichlichschäbigem Mantel vor der Tür und hält seine Strickmütze inder Hand.„Gute Frau,“ verkündet der Mann in gequältem Ton, doch bes-tem Hochdeutsch, „ich habe seit drei Tagen nichts mehr geges-sen.“Die Frau schüttelt mitleidig den Kopf und entgegnet im Brust-ton vollster Überzeugung:„Guda Moh, Sie missat sich halt zwinga!“

\begin{addmargin}[linker Einzug ]{Einzug } . . . \end{addmargin}\begin{addmargin*}[innerer Einzug ]{Einzug } . . . \end{addmargin*}Wie bei quote und quotation handelt es sich bei addmargin um eine Umgebung, die denRand verändert. Im Unterschied zu den beiden erstgenannten Umgebungen kann der Anwenderjedoch bei addmargin wählen, um welchen Wert der Rand verändert werden soll. Des Weiterenverändert die Umgebung den Absatzeinzug und den Absatzabstand nicht. Es wird auch keinzusätzlicher vertikaler Abstand vor und nach der Umgebung eingefügt.

Ist nur das obligatorische Argument Einzug angegeben, so wird der Inhalt der Umgebungrechts und links um diesen Wert eingezogen. Ist das optionale Argument linker Einzughingegen angegeben, so wird links abweichend von Einzug der Wert linker Einzug zumRand addiert.Die Sternvariante addmargin* unterscheidet sich nur im doppelseitigen Satz von der Vari-

ante ohne Stern, wobei der Unterschied auch nur dann auftritt, wenn das optionale Argumentinnerer Einzug verwendet wird. Dabei wird dann der Wert von innerer Einzug zum in-neren Randanteil der Seite addiert. Dies ist bei rechten Seiten der linke Rand der Seite, beilinken Seiten jedoch der rechte Rand der Seite. Einzug gilt dann für den jeweils anderen Rand.Bei beiden Varianten der Umgebung sind für alle Parameter auch negative Werte erlaubt.

Damit kann man erreichen, dass die Umgebung in den Rand hineinragt.

Beispiel: Angenommen, Sie schreiben eine Anleitung mit kurzen Quellcode-Beispielen. Umdiese sehr stark hervorzuheben, sollen sie mit horizontalen Linien vom Text abge-setzt und leicht in den äußeren Rand verschoben werden. Sie definieren sich dafürzunächst eine Umgebung:\newenvironment{QuellcodeRahmen}{%\begin{addmargin*}[1em]{-1em}%\begin{minipage}{\linewidth}%

\rule{\linewidth}{2pt}%}{%

Kapitel 3: Die Hauptklassen scrbook, scrreprt, scrartcl 135

\rule[.25\baselineskip]{\linewidth}{2pt}%\end{minipage}%

\end{addmargin*}%}

Zur Demonstration sei die Definition der Umgebung in der Umgebungselbst gesetzt:

\newenvironment{\QuellcodeRahmen}{%\begin{addmargin*}[1em]{-1em}%\begin{minipage}{\linewidth}%\rule{\linewidth}{2pt}%

}{%\rule[.25\baselineskip]{\linewidth}{2pt}%\end{minipage}%

\end{addmargin*}%}

Nicht zwingend schön, aber es zeigt den Nutzen.

Das optionale Argument der addmargin*-Umgebung sorgt dafür, dass der innereRand um den Wert 1 em vergrößert wird. Dafür wird der äußere Rand um dennegativen Wert vergrößert, also in Wirklichkeit um 1 em verkleinert. Dies resultiertin einer Verschiebung um 1 em nach außen. Selbstverständlich kann statt 1em aucheine Länge, beispielsweise 2\parindent, verwendet werden.

Ob eine Seite eine linke oder eine rechte Seite ist, kann übrigens beim ersten LATEX-Durchlauf nicht zuverlässig festgestellt werden. Siehe dazu die Erklärungen zu den Anwei-sungen \ifthispageodd (Abschnitt 3.11, Seite 84) und \ifthispagewasodd (Abschnitt 21.1,Seite 501).Im Zusammenspiel von Listen mit Absätzen ergeben sich für Laien häufiger Fragen. Daher

widmet sich die weiterführende Erklärung zu Option parskip in Abschnitt 21.1, Seite 501 auchdiesem Thema. Ebenfalls im Expertenteil in Abschnitt 21.1, Seite 501 wird die Problematik vonmehrseitigen addmargin*-Umgebungen behandelt.

3.19. Mathematik

Die KOMA-Script-Klassen stellen keine eigenen Umgebungen für mathematische Formeln,Gleichungssysteme oder ähnliche Elemente der Mathematik bereit. Stattdessen stützt sichKOMA-Script im Bereich der Mathematik voll und ganz auf den LATEX-Kern. Dies gilt auchfür die Realisierung der beiden Optionen leqno und fleqn.Auf eine Beschreibung der Mathematikumgebungen des LATEX-Kerns, also displaymath,

equation und eqnarray, wird an dieser Stelle verzichtet. Wer diese verwenden möchte, seiauf [DGS+12] verwiesen. Für mehr als nur einfachste mathematische Formeln und Gleichungensei jedoch die Verwendung von Paket amsmath empfohlen (siehe [Ame02]).

Kapitel 3: Die Hauptklassen scrbook, scrreprt, scrartcl 136

leqno

Gleichungen werden normalerweise auf der rechten Seite nummeriert. Mit Hilfe der Standard-option leqno wird die Standardoptionsdatei leqno.clo geladen. Dadurch erfolgt die Numme-rierung von Gleichungen links. Diese Option ist als optionales Argument von \documentclasszu verwenden. Eine Einstellung per \KOMAoptions oder \KOMAoption wird nicht unterstützt.Dies wäre auch deshalb nicht sinnvoll, weil das für den Mathematiksatz empfohlene Paketamsmath ebenfalls nur beim Laden, nicht aber zur Laufzeit auf diese Option reagieren kann.

fleqn

Gleichungen werden normalerweise horizontal zentriert ausgegeben. Mit Hilfe der Standard-option fleqn wird die Standardoptionsdatei fleqn.clo geladen. Dadurch erfolgt die Ausgabevon Gleichungen linksbündig. Diese Option ist als optionales Argument von \documentclasszu verwenden. Eine Einstellung per \KOMAoptions oder \KOMAoption wird nicht unterstützt.Dies wäre auch deshalb nicht sinnvoll, weil das für den Mathematiksatz empfohlene Paketamsmath ebenfalls nur beim Laden, nicht aber zur Laufzeit auf diese Option reagieren kann.

3.20. Gleitumgebungen für Tabellen und Abbildungen

LATEX bietet mit den Gleitumgebungen einen sehr leistungsfähigen und komfortablen Mecha-nismus für die automatische Anordnung von Abbildungen und Tabellen. Genau genommensollte von »Tafeln« statt von »Tabellen« die Rede sein. Dies wäre auch zur Unterscheidungder Umgebungen table und tabular von Vorteil. Es hat sich im Deutschen aber für beidesdie Bezeichnung »Tabelle« eingebürgert. Das kommt vermutlich daher, dass man in table-Umgebungen üblicherweise tabular-Umgebungen setzt, auch wenn dies keineswegs zwingendist.Häufig werden die Gleitumgebungen von Anfängern nicht richtig verstanden. So wird oft

die Forderung aufgestellt, eine Tabelle oder Abbildung genau an einer bestimmten Position imText zu setzen. Dies ist jedoch nicht erforderlich, da auf Gleitumgebungen im Text über eineReferenz verwiesen wird. Es ist auch nicht sinnvoll, da ein solches Objekt an einer Stelle nurdann gesetzt werden kann, wenn auf der Seite noch genügend Platz für das Objekt vorhandenist. Ist dies nicht der Fall, müsste das Objekt auf die nächste Seite umbrochen werden und aufder aktuellen Seite würde ein möglicherweise sehr großer leerer Raum bleiben.Häufig findet sich in einem Dokument auch bei jedem Gleitobjekt das gleiche optionale

Argument zur Platzierung des Objekts. Auch dies ist nicht sinnvoll. In solchen Fällen sollteman besser den Standardwert global ändern. Näheres dazu ist [Wik] zu entnehmen.Ein wichtiger Hinweis sei diesem Abschnitt noch vorangestellt: Die meisten Mechanismen,

die hier vorgestellt werden und über die Fähigkeiten der Standardklassen hinaus gehen, funk-tionieren nicht mehr, wenn Sie ein Paket verwenden, das in die Generierung von Tabellen- undAbbildungstiteln eingreift und deren Aussehen verändert. Dies sollte selbstverständlich sein,wird aber leider häufig nicht bedacht.

Kapitel 3: Die Hauptklassen scrbook, scrreprt, scrartcl 137

captions=Einstellung

Bei den Standardklassen werden die Titel von Gleitumgebungen, die mit der Anweisung\caption (siehe unten) gesetzt werden, als Unterschrift formatiert. Darüber hinaus wird zwi-schen ein- und mehrzeiligen Unterschriften unterschieden, wobei einzeilige Unterschriften ho-rizontal zentriert werden.Tabellen werden jedoch häufig mit Überschriften statt mit Unterschriften versehen. Das

liegt daran, dass es auch Tabellen geben kann, die sich über mehrere Seiten erstrecken. Beisolchen Tabellen möchte man natürlich bereits auf der ersten Seite wissen, worum es sichhandelt. Darüber hinaus werden Tabellen zeilenweise von oben nach unten gelesen. Damitgibt es mindestens zwei gute Gründe, in der Regel alle Tabellen mit Überschriften zu versehen.KOMA-Script bietet daher mit der Einstellung captions=tableheading die Möglichkeit, beiTabellen die Formatierung auf Überschriften zu ändern.Es sei an dieser Stelle darauf hingewiesen, dass mehrseitige Tabellen nicht als Gleitumge-

bungen gesetzt werden können. Für den automatischen Seitenumbruch von Tabellen werdenaußerdem Zusatzpakete wie longtable (siehe [Car04]) oder supertabular (siehe [BJ04]) benötigt.Mit der Einstellung captions=tablesignature wird wieder die Voreinstellung der Forma-

tierung als Tabellenunterschrift gewählt. Es sei an dieser Stelle darauf hingewiesen, dass diebeiden Werte lediglich die Formatierung ändern. Der Ort, an dem die Über- oder Unterschriftgesetzt wird, hängt bei den Gleitumgebungen von KOMA-Script allein vom Ort ab, an demdie Anweisung \caption verwendet wird. Dies ändert sich jedoch bei Verwendung des Paketsfloat mit der Anweisung \restylefloat (siehe [Lin01]).

Natürlich existiertv3.09 mit den Optionen captions=figureheading und captions=figuresignature auch die entsprechende Funktion für Abbildungen. Allerdings werden Ab-bildungen in der Regel wie im Falle von Fotos eher als Ganzes und im Falle von Diagrammenoder Graphen eher von unten links her betrachtet. In den wenigsten Fällen dürfte es dahersinnvoll sein, nur bei Abbildungen die Formatierung von Unterschriften in Überschriften zuändern.

Manchmal wird jedoch gewünscht, alle Gleitumgebungen mit Überschriften zu versehen. Da-her gibt es bei KOMA-Script die Einstellungen captions=heading und captions=signature,mit der man die Formatierungen aller Gleitumgebungen entsprechend ändern kann. Diese ent-falten ihre Wirkung auch noch, wenn sie innerhalb einer Gleitumgebung verwendet werden.Bitte beachten Sie, dass bei Verwendung des float-Pakets die Einstellungen von Unterschrif-float

ten oder Überschriften nicht mehr funktionieren, sobald Sie \restylefloat auf Tabellen oderAbbildungen anwenden. Näheres zum float-Paket und \restylefloat entnehmen Sie bitte[Lin01]. Dies gilt ebenso für \caption innerhalb von neuen Gleitumgebungen, die mit floatdefiniert wurden. Zusätzliche Unterstützung, die KOMA-Script bei Verwendung des float-Pakets bietet, finden Sie bei der Erklärung zu komaabove (siehe Seite 147). Als Alternative zufloat sei auch die Verwendung von \captionof (siehe Seite 142) und \DeclareNewTOC (sieheSeite 421) erwähnt. Darüber hinaus sei bei Verwendung von float ausdrücklich Paket scrhack(siehe Kapitel 16 ab Seite 428 in Teil II) empfohlen.

Kapitel 3: Die Hauptklassen scrbook, scrreprt, scrartcl 138

Bei KOMA-Script besteht darüber hinaus auch die Möglichkeit, mit der Einstellungcaptions=nooneline die Unterscheidung zwischen ein- und mehrzeiligen Über- bzw. Un-terschriften abzuschalten. Dies ist beispielsweise dann wichtig, wenn man keine Zentrierungwünscht. Die Voreinstellung, bei der einzeilige Über- und Unterschriften automatisch horizon-tal zentriert werden, entspricht der Einstellung captions=oneline.

Als Besonderheit bietet KOMA-Script innerhalb von Gleitumgebungen die Möglichkeit, denTitel statt als Über- oder Unterschrift neben den eigentlichen Inhalt zu setzen. Die dazunotwendige Umgebung captionbeside ist ab Seite 144 erklärt. Die Einstellungen für dieseUmgebung können ebenfalls mit der Option captions geändert werden. Die dabei möglichenWerte für die jeweilige Einstellung sind Tabelle 3.17 zu entnehmen.

Tabelle 3.17.: Mögliche Werte für Option captions zur Einstellung der Formatierung von Über- undUnterschriften in Gleitumgebungen

bottombeside, besidebottomGleitumgebungstitel der Umgebung captionbeside (siehe Abschnitt 3.20, Seite 144)werden mit der untersten Grundlinie auf Höhe der untersten Grundlinie des Inhaltsder Gleitumgebung ausgerichtet.

centeredbeside, besidecentered, middlebeside, besidemiddleGleitumgebungstitel der Umgebung captionbeside (siehe Abschnitt 3.20, Seite 144)werden zum Inhalt der Gleitumgebung vertikal zentriert ausgerichtet.

figureheading, figureabove, abovefigure, topatfigurev3.09 Bei Abbildungen wird (gegebenenfalls abweichend von captions=signature) die

Formatierung als Überschrift gewählt.

figuresignature, figurebelow, belowfigure, bottomatfigurev3.09 Bei Abbildungen wird (gegebenenfalls abweichend von captions=heading) die For-

matierung als Unterschrift gewählt.

heading, above, topGleitumgebungstitelv3.09 werden als Überschriften formatiert. Dies hat jedoch keinenEinfluss darauf, ob sie über oder unter der Gleitumgebung platziert werden. DieOption impliziert auch captions=tableheading und captions=figureheading.

innerbeside, besideinnerGleitumgebungstitel der Umgebung captionbeside (siehe Abschnitt 3.20, Seite 144)werden bei doppelseitigem Satz in der Voreinstellung innen neben dem Inhalt derGleitumgebung gesetzt. Dies entspricht im einseitigen Satz captions=leftbeside.

. . .

Kapitel 3: Die Hauptklassen scrbook, scrreprt, scrartcl 139

Tabelle 3.17.: Mögliche Werte für Option captions (Fortsetzung)

leftbeside, besideleftGleitumgebungstitel der Umgebung captionbeside (siehe Abschnitt 3.20, Seite 144)werden in der Voreinstellung links neben dem Inhalt der Gleitumgebung gesetzt.

noonelineEinzeilige Über- und Unterschriften von Gleitumgebungen werden nicht gesondert,sondern genau wie mehrzeilige behandelt.

onelineEinzeilige Über- und Unterschriften von Gleitumgebungen werden gesondert behan-delt, um sie horizontal zu zentrieren.

outerbeside, besideouterGleitumgebungstitel der Umgebung captionbeside (siehe Abschnitt 3.20, Seite 144)werden bei doppelseitigem Satz in der Voreinstellung außen neben dem Inhalt derGleitumgebung gesetzt. Dies entspricht im einseitigen Satz captions=rightbeside.

rightbeside, besiderightGleitumgebungstitel der Umgebung captionbeside (siehe Abschnitt 3.20, Seite 144)werden in der Voreinstellung rechts neben dem Inhalt der Gleitumgebung gesetzt.

signature, below, bot, bottomv3.09 Gleitumgebungstitel werden als Unterschriften formatiert. Dies hat jedoch keinen

Einfluss darauf, ob sie über oder unter der Gleitumgebung platziert werden. Die Op-tion impliziert auch captions=tablesignature und captions=figuresignature.

tableheading, tableabove, abovetable, abovetabular, topattableBei Tabellen wird (gegebenenfalls abweichend von captions=signature) die For-matierung als Überschrift gewählt.

tablesignature, belowtable, belowtabular, bottomattableBei Tabellen wird (gegebenenfalls abweichend von captions=heading) die Forma-tierung als Unterschrift gewählt.

topbeside, besidetopGleitumgebungstitel der Umgebung captionbeside (siehe Abschnitt 3.20, Seite 144)werden mit der obersten Grundlinie auf Höhe der obersten Grundlinie des Inhaltsder Gleitumgebung ausgerichtet.

Kapitel 3: Die Hauptklassen scrbook, scrreprt, scrartcl 140

\caption[Verzeichniseintrag ]{Titel }\captionbelow[Verzeichniseintrag ]{Titel }\captionabove[Verzeichniseintrag ]{Titel }

Tabellen und Abbildungen werden bei den Standardklassen mit Hilfe der Anweisung \captionmit einem Titel in Form einer Unterschrift versehen. Bei Abbildungen ist dies grundsätzlichkorrekt. Bei Tabellen wird gestritten, ob der Titel als Überschrift über oder konsistent mitder Bildunterschrift unter die Tabelle gehört. Daher bietet KOMA-Script im Gegensatz zu denStandardklassen die Anweisungen \captionbelow für Titel in Form von Unterschriften und\captionabove für Titel in Form von Überschriften.

Sowohl bei Tabellen als auch bei Abbildungen oder generell für alle Gleitumgebungen lässtsich das Verhalten von \caption mit der Option captions steuern, die am Anfang dieses Ab-schnitts zu finden ist. Aus Gründen der Kompatibilität ist voreingestellt, dass sich \captionbei allen Gleitumgebungen wie \captionbelow verhält. Es wird jedoch empfohlen, Tabellen-überschriften zu verwenden und auf die Formatierung mit captions=tableheading entspre-chend umzustellen oder bei Tabellen auf \captionabove zurück zu greifen.

Beispiel: Sie wollen mit Tabellenüberschriften statt mit Tabellenunterschriften arbeiten, weilSie teilweise Tabellen haben, die über mehr als eine Seite gehen. Mit den Standard-klassen bliebe Ihnen nur die Möglichkeit:\begin{table}\caption{Dies ist nur eine Beispieltabelle}\begin{tabular}{llll}Dies & ist & ein & Beispiel.\\\hlineBitte & lassen & Sie & den \\Inhalt & dieser & Tabelle & unbeachtet.

\end{tabular}\end{table}

Damit hätten Sie das unschöne Ergebnis:

Tabelle 30.2: Dies ist nur eine BeispieltabelleDies ist ein Beispiel.Bitte lassen Sie denInhalt dieser Tabelle unbeachtet.

Bei KOMA-Script schreiben Sie hingegen:\begin{table}\captionabove{Dies ist nur eine Beispieltabelle}\begin{tabular}{llll}Dies & ist & ein & Beispiel.\\\hlineBitte & lassen & Sie & den \\Inhalt & dieser & Tabelle & unbeachtet.

\end{tabular}\end{table}

Kapitel 3: Die Hauptklassen scrbook, scrreprt, scrartcl 141

Tabelle 3.18.: Voreinstellungen der Schrift für die Elemente derTabellen- oder Abbildungsunterschrift bzw. -überschrift Element Voreinstellung

caption \normalfontcaptionlabel \normalfont

Sie erhalten dann das gewünschte Ergebnis:

Tabelle 30.2: Dies ist nur eine Beispieltabelle

Dies ist ein Beispiel.Bitte lassen Sie denInhalt dieser Tabelle unbeachtet.

Da Sie konsequent nicht nur eine, sondern alle Tabellen mit Überschriften verse-hen, können Sie stattdessen auch die Option captions=tableheading setzen (sieheSeite 137). Dann genügt es, wenn Sie wie bei den Standardklassen \caption ver-wenden. Sie erhalten trotzdem das Ergebnis von \captionabove.

Die Schriftartv2.8p für die Beschreibung und das Label – »Abbildung« oder »Tabelle«, gefolgtvon der Nummer und einem Trennzeichen – kann über die Anweisungen \setkomafont und\addtokomafont (siehe Abschnitt 3.6, Seite 62) verändert werden. Zuständig sind hier die Ele-mente caption und captionlabel (siehe Tabelle 3.2, Seite 63). Dabei wird die Schriftart fürdas Element caption zunächst auch auf das Element captionlabel angewandt, bevor dessenspezifische Schriftart Anwendung findet. Die Vorbelegungen sind Tabelle 3.18 zu entnehmen.

Beispiel: Sie wollen, dass Tabellen- und Abbildungsbeschreibungen in einer kleineren Schrift-art gesetzt werden. Also setzen Sie beispielsweise in der Präambel Ihres Dokuments:\addtokomafont{caption}{\small}

Außerdem hätten Sie gerne, dass das Label serifenlos und fett gedruckt wird. Siesetzen also außerdem:\setkomafont{captionlabel}{\sffamily\bfseries}

Das Ergebnis wäre bei Verwendung von \addtokomafont in diesem Fall übrigensgleich.

Kapitel 3: Die Hauptklassen scrbook, scrreprt, scrartcl 142

\captionof{Objekttyp }[Verzeichniseintrag ]{Titel }\captionaboveof{Objekttyp }[Verzeichniseintrag ]{Titel }\captionbelowof{Objekttyp }[Verzeichniseintrag ]{Titel }

Ähnlich wie die Pakete caption und capt-of bietet auch KOMA-Script die Anweisung\captionofv3.05 mit der man auch außerhalb einer Gleitumgebung oder in einer fremden Gleit-umgebung einen entsprechenden Titel mit Eintrag in das jeweilige Verzeichnis setzen kann.Dabei muss im Gegensatz zu \caption die Art des Gleitobjekts als zusätzliches erstes Argu-ment angegeben werden.Darüber hinaus bietet KOMA-Script zusätzlich auch die Anweisungen \captionaboveofv3.09

und \captionbelowof. Diese dienen als Gegenstücke zu \captionabove und \captionbelow.Selbstverständlich berücksichtigtv3.09a \captionof auch die Einstellungen von Option captions

bezüglich der Formatierung des Titels als Über- oder Unterschrift. Diese Fähigkeit geht jedocheventuell durch das Laden von Paketen wie capt-of oder caption verloren. Bei Verwendung voncaption ist die Anleitung zu diesem Paket zu beachten (siehe [Som13])!

Beispiel: Angenommen, Sie wollen ein Gleitobjekt erstellen, bei dem eine Tabelle und eineAbbildung nebeneinander stehen. Da es keine gemischten Gleitobjekte gibt, ver-wenden Sie primär eine figure-Umgebung:\begin{figure}\begin{minipage}{.5\linewidth}\centering\rule{4cm}{5cm}\caption{Ein Rechteck}\label{fig:rechteck}

\end{minipage}%\begin{minipage}{.5\linewidth}\centering\captionaboveof{table}[Maße des Rechtecks ausAbbildung~\ref{fig:rechteck}]%

{Rechtecksmaße}\label{tab:rechteck}\begin{tabular}{ll}Breite: & 4\,cm\\Höhe: & 5\,cm

\end{tabular}\end{minipage}

\end{figure}

Um Abbildung und Tabelle nebeneinander zu setzen, wurden zwei minipage-Umgebungen verwendet. Wichtig ist hier das Prozentzeichen nach der erstenminipage, ohne das ein zusätzlicher Wortabstand zwischen die beiden minipage-Umgebungen gesetzt würde.

Kapitel 3: Die Hauptklassen scrbook, scrreprt, scrartcl 143

Abbildung 3.3.: Verwendungvon \captionaboveof innerhalbeiner fremden Gleitumgebung

Abbildung 3.2.: Ein Rechteck

Tabelle 3.19.: Rechteckmaße

Breite: 4 cmHöhe: 5 cm

Die Abbildungsunterschrift wurde mit \caption gesetzt. Für die Tabellenüber-schrift wurde \captionaboveof verwendet. Als erstes Argument wurde table an-gegeben. Dadurch weiß KOMA-Script, dass es sich trotz figure-Umgebung um eineTabellenüberschrift handelt.Das optionale Argument von \captionaboveof setzt den Eintrag in das Tabellen-verzeichnis. Ohne das optionale Argument würde der als letztes Argument angege-bene Titel ebenfalls in das Tabellenverzeichnis geschrieben. Während dieser Titelim Gleitobjekt selbst völlig ausreichend ist, wäre er jedoch im Tabellenverzeichniswenig aussagekräftig. Daher wird hier für das Verzeichnis ein abweichender Titelüber das optionale Argument verwendet. Das Ergebnis der Bemühungen zeigt Ab-bildung 3.3.

In gleicher Weise, wie in obigem Beispiel eine Tabelle innerhalb einer Abbildungsumgebunggesetzt und mit einem Titel versehen wird, könnte man auch eine nicht gleitende Tabelle au-ßerhalb jeder Gleitumgebung setzen. Auch dabei sollte in der Regel eine minipage verwendetwerden, um zu verhindern, dass zwischen Überschrift und Tabelle ein Seitenumbruch erfolgenkann. Zusätzlich sollte man die minipage dann noch in eine flushleft-Umgebung einbet-ten, um einerseits einen gefälligen Abstand zum Text davor und dahinter zu erreichen undandererseits den Absatzeinzug vor der minipage zu verhindern.

Kapitel 3: Die Hauptklassen scrbook, scrreprt, scrartcl 144

\begin{captionbeside}[Verzeichnistitel ]{Titel }[Anordnung ][Breite ][Offset ]...\end{captionbeside}\begin{captionbeside}[Verzeichnistitel ]{Titel }[Anordnung ][Breite ][Offset ]*...\end{captionbeside}

Nebenv2.8q den Unter- und Überschriften findet man insbesondere bei kleineren Abbildungen häu-figer Beschreibungen, die neben der Abbildung gesetzt werden. Dabei schließt normalerweisedie Unterkante der Beschreibung mit der Unterkante der Abbildung ab. Natürlich kann manmit etwas Geschick und beispielsweise zwei \parbox-Anweisungen dergleichen auch in denStandardklassen erreichen. KOMA-Script bietet jedoch eine spezielle Umgebung. Diese Umge-bung kann innerhalb der Gleitumgebungen verwendet werden. Der erste optionale ParameterVerzeichnistitel und der obligatorische Parameter Titel entsprechen genau den gleich-namigen Parametern von \caption, \captionabove oder \captionbelow. Der Titel wirdneben den Inhalt der Umgebung gesetzt.Ob der Titel rechts oder links daneben gesetzt wird, kann mit dem optionalen Parame-

ter Anordnung bestimmt werden. Es darf genau einer der folgenden Buchstaben angegebenwerden:

l – linksr – rechtsi – innen: auf rechten Seiten links, auf linken Seiten rechtso – außen: auf rechten Seiten rechts, auf linken Seiten links

Voreingestellt ist rechts neben dem Inhalt der Umgebung. Diese Voreinstellungv3.00 kann jedochmit der Option captions (siehe Seite 137) und deren Werte innerbeside, leftbeside,outerbeside und rightbeside verändert werden. Bei Verwendung der Anordnung außenoder innen werden unter Umständen zwei LATEX-Läufe benötigt, um die korrekte Anordnungzu erreichen.Normalerweise nehmen der Inhalt der Umgebung und der Titel die gesamte verfügbare

Breite ein. Es besteht jedoch die Möglichkeit, mit dem optionalen Parameter Breite eineandere Breite anzugeben. Diese kann auch größer als die Breite des Textkörpers sein.Bei Angabe einer Breite wird die genutzte Breite normalerweise bezüglich der Breite des

Textkörpers zentriert. Mit dem optionalen Argument Offset kann stattdessen eine Verschie-bung relativ zum linken Rand angegeben werden. Ein positiver Wert entspricht einer Verschie-bung nach rechts, ein negativer Wert einer Verschiebung nach links. Mit einem Offset von0 pt erfolgt die Ausgabe linksbündig.Wird hinter den optionalen Parameter Offset noch ein Stern gesetzt, so stellt der Offset

im doppelseitigen Druck auf linken Seiten eine Verschiebung relativ zum rechten Rand dar.Ein positiver Wert entspricht dann einer Verschiebung nach außen, während ein negativerWert für eine Verschiebung nach innen steht. Ein Offset von 0 pt wäre dann also bündig

Kapitel 3: Die Hauptklassen scrbook, scrreprt, scrartcl 145

Abbildung 3.4.: Eine Bildbeschreibung weder über noch unter der Abbil-dung, sondern unten daneben

KOMA-Script

zum inneren Rand. Diese Variante benötigt unter Umständen zwei LATEX-Durchläufe, um diekorrekte Verschiebung zu erreichen.Vertikal erfolgt die Ausrichtung in der Voreinstellung unten. Das bedeutet, dass die un-

tere Grundlinie des Inhalts des Gleitobjekts und die untere Grundlinie von Titel auf einerHöhe liegen. Diese Einstellungv3.00 kann mit der Option captions (siehe Seite 137) und derenWerte topbeside, centeredbeside und bottombeside verändert werden. Bei der Einstel-lung topbeside werden die oberen Grundlinien von Gleitobjektinhalt und Titel auf einerHöhe ausgerichtet, während bei centeredbeside eine Zentrierung stattfindet. In diesem Zu-sammenhang sei erwähnt, dass Abbildungen normalerweise die Grundlinie unten haben. Dieskann beispielsweise mit der Anweisung \raisebox verändert werden.

Beispiel: Ein Beispiel für die Verwendung der captionbeside-Umgebung ist in Abbildung 3.4zu finden. Gesetzt wurde diese Abbildung mit:\begin{figure}

\begin{captionbeside}%[Beispiel: Bildbeschreibung daneben, unten]%{Eine Bildbeschreibung weder über noch unterder Abbildung, sondern unten daneben}%

[i][\linewidth][%\dimexpr\marginparwidth+\marginparsep\relax]*

\fbox{%\parbox[b][5\baselineskip][c]{.25\textwidth}{%\hspace*{\fill}\KOMAScript\hspace*{\fill}\par

}%}

\end{captionbeside}\label{fig:maincls.captionbeside}

\end{figure}

Die Gesamtbreite ist also die aktuell verfügbare Breite \linewidth. Diese wirdjedoch um \marginparwidth + \marginparsep nach außen verschoben. Der Ti-tel oder die Beschreibung steht innen neben der Abbildung. Damit erscheint dieAbbildung selbst bis in die Marginalienspalte in den Rand gerückt.Die Zentrierung der Bildbeschreibung mit

Kapitel 3: Die Hauptklassen scrbook, scrreprt, scrartcl 146

Abbildung 3.5.: Eine Bildbeschreibung weder über noch unter der Abbil-dung, sondern mittig daneben

KOMA-Script

\KOMAoption{captions}{centeredbeside}

zeigt Abbildung 3.5. Das ist jedoch sicher keine empfehlswerte Lösung.Demgegenüber kann die Ausrichtung oben, die bei Abbildung 3.6 zu sehen ist,durchaus verwendet werden. Zur Verdeutlichung, wie man \raisebox zur Verschie-bung der Grundlinie nutzen kann, sei hier ein komplettes Beispiel angegeben. Einesolche Verschiebung kann man nicht nur bei einer Ersatzgrafik wie zuvor angegeben,sondern auch beispielsweise auf \includegraphics (siehe [Car17]) anwenden:\documentclass[captions=topbeside]{scrbook}\usepackage[ngerman]{babel}\usepackage{graphics}\begin{document}\chapter{Ein Beispiel}\begin{figure}\begin{captionbeside}%

[Beispiel: Bildbeschreibung daneben, oben]%{Eine Bildbeschreibung oben, neben einemBeispielbild aus Paket \texttt{mwe}}%

[i][\linewidth][%\dimexpr\marginparwidth+\marginparsep\relax

]*\raisebox{%\dimexpr\baselineskip-\totalheight\relax

}{%\includegraphics{example-image-1x1}%

}%\end{captionbeside}\label{fig:maincls.captionbesidetop}

\end{figure}\end{document}

Kapitel 3: Die Hauptklassen scrbook, scrreprt, scrartcl 147

Abbildung 3.6.: Eine Bildbeschreibung weder über noch unter der Abbil-dung, sondern oben daneben

KOMA-Script

\begin{captionofbeside}{Objekttyp }[Verzeichnistitel ]{Titel }[Anordnung ][Breite ][Offset ]...

\end{captionofbeside}\begin{captionofbeside}{Objekttyp }[Verzeichnistitel ]{Titel }[Anordnung ][Breite ]

[Offset ]*...\end{captionofbeside}

Wiev3.10 zu \caption mit \captionof eine Variante existiert, bei der der Objekttyp nicht durchdie Verwendung innerhalb einer Gleitumgebung dieses Typs bestimmt wird, so gibt es passendzur Umgebung captionbeside mit captionofbeside auch eine entsprechende Umgebung. ImUnterschied zu captionbeside ist auch hier der Objekttyp als zusätzliches, erstes Argumentanzugeben.

komaabovekomabelowBei Verwendung des float-Pakets wird das Aussehen der damit definierten Gleitumgebungenfloatallein vom float-Stil bestimmt. Dies schließt auch die Frage ein, ob mit Überschriften oder Un-terschriften gearbeitet wird. Im float-Paket gibt es keinen vordefinierten Stil, der im Aussehendem von KOMA-Script entspricht und dieselben Einstellmöglichkeiten (siehe unten) bietet.KOMA-Script definiert deshalb zusätzlich die beiden Stile komaabove und komabelow. Diesekönnen bei Verwendung des float-Pakets wie die dort definierten Stile plain, boxed oder ruledaktiviert werden. Siehe dazu [Lin01]. Beim Stil komaabove werden \caption, \captionaboveund \captionbelow als Überschrift, beim Stil komabelow als Unterschrift gesetzt.

\captionformat

Bei KOMA-Script gibt es verschiedene Eingriffsmöglichkeiten, um die Formatierung der Be-schreibung zu ändern. Die Änderung der Schriftart wurde bereits erläutert. Das oder dieTrennzeichen zwischen dem Label und dem eigentlichen Beschreibungstext sind im Makro\captionformat abgelegt. Abweichend von allen anderen \...format-Anweisungen ist hieralso nicht der Zähler, sondern nur die auf den Zähler folgenden Angaben enthalten. Die Ori-ginaldefinition lautet:\newcommand*{\captionformat}{:\ }

Kapitel 3: Die Hauptklassen scrbook, scrreprt, scrartcl 148

Auch diese kann mit \renewcommand geändert werden.

Beispiel: Aus mir unerfindlichen Gründen wollen Sie als Trennzeichen keinen Doppelpunkt,gefolgt von einem Leerzeichen, sondern einen Gedankenstrich einschließlich der not-wendigen Leerzeichen. Daher definieren Sie:\renewcommand*{\captionformat}{~--~}

Diese Definition sollten Sie beispielsweise in die Präambel Ihres Dokuments stellen.

\figureformat\tableformat

Es wurde schon darauf hingewiesen, dass \captionformat keine Formatierung für das La-bel selbst enthält. Dieses sollte nun keineswegs über Umdefinierung der Anweisungen für dieZählerausgabe, \thefigure oder \thetable, verändert werden. Eine solche Umdefinierunghätte nämlich auch Auswirkungen auf die Ausgabe von \ref oder der Verzeichnisse. Statt-dessen bietet KOMA-Script auch hier zwei \...format-Anweisungen. Diese sind wie folgtvordefiniert:\newcommand*{\figureformat}{\figurename~\thefigure\autodot}\newcommand*{\tableformat}{\tablename~\thetable\autodot}

Sie können ebenfalls mit \renewcommand eigenen Anforderungen angepasst werden.

Beispiel: Hin und wieder wird gewünscht, dass die Beschreibungstexte ganz ohne Label undnatürlich auch ohne Trennzeichen ausgegeben werden. Bei KOMA-Script genügenfolgende Definitionen, um dies zu erreichen:\renewcommand*{\figureformat}{}\renewcommand*{\tableformat}{}\renewcommand*{\captionformat}{}

Dabei ist jedoch zu beachten, dass die Nummerierung damit zwar nicht ausgegeben,aber dennoch fortgezählt wird. Dies ist insbesondere dann von Bedeutung, wenndie Umdefinierungen nur auf einzelne figure- oder table-Umgebungen angewendetwerden.

Kapitel 3: Die Hauptklassen scrbook, scrreprt, scrartcl 149

\setcapindent{Einzug }\setcapindent*{XEinzug }\setcaphanging

Wie bereits erwähnt wurde, werden in den Standardklassen die Beschreibungen nicht hängendgesetzt. Das heißt: In mehrzeiligen Beschreibungen beginnt die zweite Zeile direkt unter demLabeltext. Es gibt bei den Standardklassen auch keinen Mechanismus, dies direkt zu beein-flussen. Bei KOMA-Script werden hingegen alle Zeilen ab der zweiten so weit eingerückt, dassdiese nicht mehr unter dem Label, »Abbildung . . . :« oder »Tabelle . . . :«, sondern unter demeigentlichen Text der ersten Zeile beginnen.

Dieses Verhalten, das der Verwendung von \setcaphanging entspricht, kann bei KOMA-Script jederzeit durch Verwendung der Anweisung \setcapindent oder \setcapindent* ge-ändert werden. Dabei gibt der Parameter Einzug an, wie weit ab der zweiten Zeile eingerücktwerden soll. Soll nach dem Label und vor dem Beschreibungstext noch ein Zeilenumbrucherfolgen, so definieren Sie die Einrücktiefe XEinzug der Beschreibung stattdessen mit derSternvariante der Anweisung: \setcapindent*. Mit einem negativen Einzug erreicht manhingegen, dass vor der Beschreibung ebenfalls ein Umbruch erfolgt und nur die erste Zeile derBeschreibung, nicht jedoch die folgenden, um den Betrag von Einzug eingerückt werden.

Ob einzeilige Beschreibungen wie mehrzeilige Beschreibungen gesetzt werden oder eine Son-derbehandlung erfahren, wird über die Option captions gewählt. Siehe hierzu die Erklärungzu den Werten oneline und nooneline dieser Option auf Seite 138.

Beispiel: Die Abbildungen 3.7 bis 3.10 zeigen die Auswirkungen unterschiedlicher Einstel-lungen. Dabei wird deutlich, dass bei geringer Spaltenbreite der komplett hängendeEinzug unvorteilhaft ist. Der Quelltext der zweiten Abbildung sei hier mit abge-wandelter Unterschrift beispielhaft wiedergegeben:\begin{figure}\setcapindent{1em}\fbox{\parbox{.95\linewidth}{%

\centering\KOMAScript}}\caption{Beispiel mit teilweise hängendem Einzugab der zweiten Zeile}

\end{figure}

Wie zu sehen ist, kann die Formatierung also auch lokal innerhalb der figure-Umgebung geändert werden. Die Änderung gilt dann nur für die eine Abbildung.Nachfolgende Abbildungen werden wieder mit den Grundeinstellungen oder denglobalen Einstellungen, die Sie beispielsweise in der Dokumentpräambel vorgenom-men haben, gesetzt. Das gilt für Tabellen natürlich genauso.

Kapitel 3: Die Hauptklassen scrbook, scrreprt, scrartcl 150

KOMA-Script

Abbildung 3.7.: Mit der Standardeinstel-lung, also wie bei Verwen-dung von \setcaphanging

KOMA-Script

Abbildung 3.8.: Mit teilweise hängendemEinzug ab der zweiten Zeile durch Verwen-dung von \setcapindent{1em}

KOMA-Script

Abbildung 3.9.:Mit hängendem Einzug ab der zweitenZeile und Umbruch vor der Beschreibungdurch Verwendung von \setcapindent*{1em}

KOMA-Script

Abbildung 3.10.:Mit Einzug lediglich in der zweiten Zeile

und einem Umbruch vor der Beschreibungdurch Verwendung von \setcapindent{-1em}

\setcapwidth[Ausrichtung ]{Breite }\setcapdynwidth[Ausrichtung ]{Breite }\setcapmargin[Rand links ]{Rand }\setcapmargin*[Rand innen ]{Rand }

Mitv2.8q Hilfe dieser drei Befehle kann die Breite und Anordnung der Beschreibung beeinflusst wer-den. Normalerweise steht die gesamte Text- oder Spaltenbreite für den Text der Beschreibungzur Verfügung.Mit der Anweisung \setcapwidth kann diese Breite reduziert werden. Dabei gibt das obli-

gatorische Argument die maximale für die Beschreibung verwendete Breite an. Als optionalesArgument kann genau ein Buchstabe übergeben werden, der die horizontale Ausrichtung derBeschreibung angibt. Die möglichen Ausrichtungen finden Sie in der folgenden Liste.

l – linksbündig

c – zentriert

r – rechtsbündig

i – innen: auf rechten Seiten linksbündig, auf linken Seiten rechtsbündig

o – außen: auf rechten Seiten rechtsbündig, auf linken Seiten linksbündig

Die Ausrichtung innen und außen entspricht im einseitigen Satz linksbündig und rechtsbündig.Innerhalb von longtable-Tabellen funktioniert die Ausrichtung innen und außen nicht korrekt.Insbesondere werden Beschreibungen von Folgeseiten bei diesen Tabellen immer nach denBeschreibungen der ersten Teiltabelle ausgerichtet. Dies ist ein konzeptionelles Problem desPakets longtable.

Kapitel 3: Die Hauptklassen scrbook, scrreprt, scrartcl 151

Tabelle 3.20.: Ausrichtungen für mehrzeilige Beschreibungenvon Gleitumgebungen c zentriert

j Blocksatzl linksbündigr rechtsbündigC zentriert mit ragged2eJ Blocksatz mit ragged2eL linksbündig mit ragged2eR rechtsbündig mit ragged2e

Zuv3.20 beachten ist, dass die an \setcapwidth übergebene Breite wie bei \setlength zumZeitpunkt der Zuweisung ausgewertet wird. Will man hingegen, dass Breite erst bei der Ver-wendung ausgewertet wird, dann sollte man stattdessen \setcapdynwidth verwenden. Ent-scheidende Unterschiede gibt es beispielsweise, wenn Längen wie \linewidth oder andereAnweisungen als Argument verwendet werden.Mit der Anweisung \setcapmargin kann statt der Breite der Beschreibung ein Rand an-

gegeben werden, der neben der Beschreibung zusätzlich zum normalen Textrand eingehaltenwerden soll. Sollen der Rand rechts und links nicht identisch gewählt werden, kann mit demoptionalen Argument ein von Rand abweichender Rand links von der Beschreibung eingestelltwerden. Bei der Sternvariante \setcapmargin* wird statt Rand links im doppelseitigen SatzRand innen abweichend definiert. Hier ergibt sich bei longtable-Tabellen das gleiche Problemwie bei der Ausrichtung außen oder innen bei der Anweisung \setcapwidth. Die Verwendungvon \setcapmargin oder \setcapmargin* aktiviert außerdem captions=nooneline (sieheSeite 138) für die Beschreibungen, die mit dieser Randeinstellung gesetzt werden.Man kann übrigens auch negative Werte für Rand und Rand rechts oder Rand außen an-

geben. Dadurch erreicht man, dass die Beschreibung in den entsprechenden Rand hineinragt.

\setcaptionalignment[Gleitumgebung ]{Ausrichtung }

Normalerweisev3.25 werden mehrzeilige Beschreibungen im Blocksatz gesetzt. Dies entspricht\setcaptionalignment{j}. Manchmal wird allerdings eine davon abweichende Ausrichtunggewünscht, beispielsweise linksbündiger Flattersatz. Eine entsprechende Änderung ist mit\setcaptionalignment jederzeit möglich. Für Ausrichtung kann dabei genau einer derBuchstaben aus Tabelle 3.20 angegeben werden. Wird eine unbekannte Ausrichtung angege-ben, so resultiert dies in einer Fehlermeldung.Die vier Möglichkeiten mit Paket ragged2e stehen nur zur Verfügung, wenn das Paket vor

Verwendung von \setcaptionalignment geladen wurde. Anderenfalls werden sie auf die ent-sprechenden Möglichkeiten ohne ragged2e abgebildet. Zur Sicherheit wird in diesem Fall eineWarnung ausgegeben.

Kapitel 3: Die Hauptklassen scrbook, scrreprt, scrartcl 152

Verwendet man den Befehl ohne den optionalen Parameter, so hängt das Ergebnis davonab, ob der Aufruf innerhalb oder außerhalb einer Gleitumgebung stattfindet. Innerhalb einerGleitumgebung wird dann die Ausrichtung für diese Gleitumgebung gesetzt. Außerhalb wirdhingegen ein leerer optionaler Parameter angenommen.Beim Aufruf mit einem leeren optionalen Parameter oder außerhalb einer Gleitumgebung

auch komplett ohne optionalen Parameter wird die allgemeine Ausrichtung festgelegt. Diesewird immer dann verwendet, wenn keine Ausrichtung für den aktuellen Gleitumgebungstypdefiniert ist.Will man nur die Ausrichtung eines bestimmen Typs von Gleitumgebungen festlegen, oh-

ne Ausrichtung auch für andere Arten von Gleitumgebungen zu verändern, so gibt manden Typ der Gleitumgebung, beispielsweise figure oder table, als optionalen ParameterGleitumgebung an.

Beispiel: Sie wollen, dass Bildunterschriften auch dann vollständig zentriert unter den Bildernstehen, wenn sie mehrzeilig sind. Um das zunächst einmal nur für eine einzigeAbbildung zu testen, verwenden Sie:\begin{figure}\centering\setcaptionalignment{c}\includegraphics{example-image}\caption{\blindtext}

\end{figure}

Da Sie mit dem Ergebnis zufrieden sind, verschieben Sie die Anweisung\setcaptionalignment{c}

in die Dokumentpräambel. Daraufhin bemerken Sie allerdings, dass Ihnen dieseÄnderung für Tabellenüberschriften überhaupt nicht gefällt. Daher beschränkenSie mit\setcaptionalignment[figure]{c}

die Zentrierung auf Abbildungen.Etwas später stellen Sie fest, dass die Zentrierung doch nicht so günstig ist. Statt-dessen wollen Sie nun lieber eine linksbündige Ausrichtung im Flattersatz haben.Also ändern Sie die Anweisung erneut zu:\setcaptionalignment[figure]{l}

Allerdings gefällt Ihnen nun nicht, dass die Zeilen sehr unterschiedlich lang werden.Als Ursache machen Sie die fehlende Trennung aus, wodurch lange Wörter komplettin die nächste Zeile rutschen und so große Lücken hinterlassen. Also wollen Siezusätzlich Trennung nach Bedarf ermöglichen. Dies ist mit Hilfe des Pakets ragged2eleicht möglich. Dabei genügt es allerdings nicht, das Paket mit

Kapitel 3: Die Hauptklassen scrbook, scrreprt, scrartcl 153

\usepackage{ragged2e}

zu laden. Auch Option newcommands beim Laden des Pakets bringt keine Abhilfe.Stattdessen muss zusätzlich die Ausrichtung geändert werden:\usepackage{ragged2e}\setcaptionalignment[figure]{L}

Beachten Sie den Großbuchstabe für Ausrichtung .

origlongtable

Falls die Tabellenüberschriften des longtable-Pakets (siehe [Car04]) von den KOMA-Script-Klassen nicht umdefiniert werden sollen, kann die Option origlongtable gesetzt werden.Diese Option ist als optionales Argument von \documentclass zu verwenden. Eine Einstellungper \KOMAoptions oder \KOMAoption wird nicht unterstützt.

listof=Einstellung

Normalerweisev3.00 werden Verzeichnisse von Gleitumgebungen – wie das Tabellen- und das Ab-bildungsverzeichnis – nicht nummeriert oder in das Inhaltsverzeichnis aufgenommen. In Ab-schnitt 3.9 wurde dies bereits näher ausgeführt. Alternativ zu den dort erwähnten Einstellun-gen toc=nolistof, toc=listof und toc=listofnumbered, kann dieses Verhalten auch ausSicht der Verzeichnisse selbst gesehen werden. Daher kann man die gleichen Ergebnisse auchmit den Einstellungen listof=notoc, listof=totoc und listof=numbered erreichen.Dabei werden in der Voreinstellung für die Überschriften der Verzeichnisse die oberste ver-

fügbare Gliederungsebene unterhalb von \part verwendet. Bei scrbook und scrreprt ist das dieKapitelebene, bei scrartcl die Abschnittsebene. Mitv3.06 Hilfe der Einstellung listof=leveldownkann hingegen die nächst tiefere Gliederungsebene verwendet werden.v3.15 listof=standardlevelschaltet bei Bedarf wieder zurück auf die voreingestellte Gliederungsebene.

Beispiel: Sie wollen in einem Buch das Abbildungs- und das Tabellenverzeichnis als Unterver-zeichnisse eines gemeinsamen Verzeichnisses »Abbildungen und Tabellen« setzen.Dazu verwenden Sie einfach:\KOMAoption{listof}{leveldown}

und dann an entsprechender Stelle Ihres Dokuments:\addchap*{Abbildungs- und Tabellenverzeichnis}\listoffigures\listoftables

Näheres zur Anweisung \addchap* ist Abschnitt 3.16, Seite 113 zu entnehmen.

Normalerweisev2.8q werden die Verzeichnisse der Gleitumgebungen so formatiert, dass für dieNummer ein Raum fester Breite verwendet wird. Gleichzeitig werden alle Einträge leicht ein-gezogen. Dies entspricht der Verwendung der Einstellung listof=graduated.

Kapitel 3: Die Hauptklassen scrbook, scrreprt, scrartcl 154

Werden die Nummern sehr breit, weil beispielsweise sehr viele Tabellen verwendet werden,so reicht der vorgesehene Platz irgendwann nicht mehr aus. Vergleichbar zur Einstellung toc=flat für das Inhaltsverzeichnis bietet KOMA-Script daher die Einstellung listof=flat für dieVerzeichnisse der Gleitumgebungen. Dabei wird die Breite der Nummern automatisch ermitteltund der Platz entsprechend angepasst. Bezüglich der Nebenwirkungen und Funktionsweise gilt,was in Abschnitt 3.9, Seite 77 für die Einstellung toc=flat erklärt wurde. Es sei an dieserStelle jedoch nochmals darauf hingewiesen, dass mit der Einstellung listof=flat mehrereLATEX-Durchläufe benötigt werden, bis die Verzeichnisse ihre endgültige Form erhalten haben.Die Einstellung listof=flat wird automatisch aktiviert, falls die Einstellung listof=

entryprefixv3.06 verwendet wird. Normalerweise ist es nicht sinnvoll jeden Eintrag in eines derVerzeichnisse der Gleitumgebungen mit einem Präfix wie »Abbildung« oder »Tabelle« zu ver-senden, da natürlich im Abbildungsverzeichnis nur Abbildungen und im Tabellenverzeichnisnur Tabellen zu finden sind. Damit hat ein solcher Präfix keinen zusätzlichen Informationswertund wird in der Voreinstellung auch weggelassen. Mit der Einstellung listof=entryprefixwird ein solcher Präfix jedoch gesetzt. Dabei erhalten alle Einträge eines Verzeichnisses den-selben Präfix. Dieser richtet sich nach dem Dateianhang der Hilfsdatei, die für das Verzeichnisverwendet wird. Für das Abbildungsverzeichnis, das den Dateianhang »lof« besitzt, wird bei-spielsweise \listoflofentryname verwendet, während für das Tabellenverzeichnis, das denDateianhang »lot« besitzt, \listoflotentryname verwendet wird.Bei den Klassen scrbook und scrreprt fügt KOMA-Script in der Voreinstellung bei jedemscrbook,

scrreprt Kapitelanfang einen vertikalen Abstand in die Verzeichnisse der Gleitumgebungen ein. DiesesVerhalten, das es auch bei den Standardklassen gibt, dient dazu, diese Verzeichnisse nach Kapi-teln zu gruppieren. Es entspricht bei KOMA-Script der Einstellungv3.00 listof=chaptergapsmall.Dabei wird ein fester vertikaler Abstand von 10 pt verwendet. Mit der Einstellung listof=chaptergapline kann man stattdessen einen vertikalen Abstand von einer Zeile erreichen. Mitlistof=nochaptergap kann man den vertikalen Abstand komplett abschalten. Eine Beson-derheit stellt die Einstellung listof=chapterentry dar. Dabei wird statt des Abstandes derInhaltsverzeichniseintrag für das Kapitel in das Verzeichnis der Gleitumgebungen eingefügt.Es wird darauf hingewiesen, dass ein solcher Eintrag auch dann erfolgt, wenn das Kapitel keineGleitumgebung enthält. Eine Lösung, bei der nur Kapitel mit Gleitumgebungen im jeweiligenVerzeichnis angezeigt werden, finden Sie unter [Koh15]. Eine noch direktere Beeinflussung,was in den Verzeichnissen der Gleitumgebungen bei neuen Kapiteln geschehen soll, ist mit derOption chapteratlists zu erreichen, die in Abschnitt 3.16 auf Seite 106 erläutert wird.

Einen Überblick über alle möglichen Werte für die Einstellung von listof ist in Tabel-le 3.21 zu finden.

Kapitel 3: Die Hauptklassen scrbook, scrreprt, scrartcl 155

Tabelle 3.21.: Mögliche Werte für Option listof zur Einstellung von Form und Inhalt der Verzeichnisseder Gleitumgebungen

chapterentry, withchapterentryKapitelanfänge werden in den Verzeichnissen der Gleitumgebungen durch einen In-haltsverzeichniseintrag des Kapitels markiert.

chaptergapline, onelinechaptergapKapitelanfänge werden in den Verzeichnissen der Gleitumgebungen durch einen Ab-stand von einer Zeile markiert.

chaptergapsmall, smallchaptergapKapitelanfänge werden in den Verzeichnissen der Gleitumgebungen durch einen klei-nen Abstand markiert.

entryprefixv3.06 Jeder Verzeichniseintrag wird mit einem vom Verzeichnis abhängenden Präfix vor

der Nummer versehen. Der Präfix ist normalerweise sprachabhängig, beispielsweisebei deutschen Spracheinstellungen »Abbildung« für das Abbildungsverzeichnis und»Tabelle« für das Tabellenverzeichnis, jeweils gefolgt von einem Leerzeichen.

flat, leftDie Verzeichnisse der Gleitumgebungen erhalten eine tabellarische Form. Die Gleit-umgebungsnummern sind dabei die erste Spalte, der Titel die zweite Spalte, dieSeitenzahlen die dritte Spalte. Der Platz, der für die Gleitumgebungsnummern re-serviert wird, richtet sich nach dem benötigten Platz des vorherigen LATEX-Laufs.

graduated, indent, indentedDie Verzeichnisse der Gleitumgebungen erhalten eine hierarchische Form. Es stehtnur ein begrenzter Platz für die Gleitumgebungsnummern zur Verfügung.

indenttextentries, indentunnumbered, numberlinev3.12 Die Eigenschaft numberline (siehe Abschnitt 15.2, Seite 397) wird für die Verzeich-

nisse der Gleitumgebungen, beispielsweise das Abbildungs- und das Tabellenverzeich-nis, gesetzt. Dadurch werden nicht nummerierte Einträge linksbündig mit dem Textvon nummerierten Einträgen gleicher Ebene gesetzt. Allerdings bieten die KOMA-Script-Klassen selbst keine nicht nummerierten Einträge in diese Verzeichnisse. Dieshat daher nur Auswirkungen auf entsprechende Einträge, die nicht von den Klas-sen selbst, aber dennoch mit Hilfe von \addxcontentsline (siehe Abschnitt 15.2,Seite 393) erzeugt werden.

. . .

Kapitel 3: Die Hauptklassen scrbook, scrreprt, scrartcl 156

Tabelle 3.21.: Mögliche Werte für Option listof (Fortsetzung)

leftaligntextentries, leftalignunnumbered, nonumberlinev3.12 Die Eigenschaft numberline (siehe Abschnitt 15.2, Seite 397) wird für die Ver-

zeichnisse der Gleitumgebungen, beispielsweise das Abbildungs- und das Tabellen-verzeichnis, gelöscht. Dadurch werden nicht nummerierte Einträge linksbündig mitder Nummer von nummerierten Einträgen gleicher Ebene gesetzt. Allerdings bietendie KOMA-Script-Klassen selbst keine nicht nummerierten Einträge in diese Ver-zeichnisse. Dies hat daher nur Auswirkungen auf entsprechende Einträge, die nichtvon den Klassen selbst, aber dennoch mit Hilfe von \addxcontentsline (siehe Ab-schnitt 15.2, Seite 393) erzeugt werden.

leveldownDie Verzeichnisse werden um eine Gliederungsebene nach unten verschoben.

nochaptergap, ignorechapterKapitelanfänge werden in den Verzeichnissen der Gleitumgebungen nicht markiert.

notoc, nottotoc, plainheadingDie Verzeichnisse der Gleitumgebungen, beispielsweise das Abbildungs- und das Ta-bellenverzeichnis, erhalten keinen Eintrag im Inhaltsverzeichnis.

numbered, totocnumbered, tocnumbered, numberedtoc, numberedtotocDie Verzeichnisse der Gleitumgebungen, beispielsweise das Abbildungs- und das Ta-bellenverzeichnis, erhalten einen Eintrag im Inhaltsverzeichnis und werden numme-riert.

standardlevelDie Verzeichnisse liegen auf der üblichen Gliederungsebene.

toc, totoc, notnumberedDie Verzeichnisse der Gleitumgebungen, beispielsweise das Abbildungs- und das Ta-bellenverzeichnis, erhalten einen Eintrag im Inhaltsverzeichnis, ohne dass sie num-meriert werden.

\listoftables\listoffigures

Mit diesen Anweisungen kann ein Verzeichnis der Tabellen beziehungsweise der Abbildungenausgegeben werden. Änderungen, die Auswirkungen auf diese Verzeichnisse haben, werdenerst nach zwei LATEX-Läufen sichtbar. Die Form der Verzeichnisse kann durch die Optionlistof mit den Werten graduated und flat beeinflusst werden (siehe Seite 153). Darüber

Kapitel 3: Die Hauptklassen scrbook, scrreprt, scrartcl 157

hinaus wirken sich indirekt die Werte listof und listofnumbered für die Option toc (sieheAbschnitt 3.9, Seite 76), sowie die Werte totoc und numbered der oben erläuterten Optionlistof auf die Verzeichnisse aus.In der Regel findet man die Verzeichnisse der Gleitumgebungen, also das Tabellen- und

das Abbildungsverzeichnis, unmittelbar nach dem Inhaltsverzeichnis. In einigen Dokumentenwandern diese auch in den Anhang. Der Autor bevorzugt jedoch die Platzierung unmittelbarnach dem Inhaltsverzeichnis.

3.21. Randnotizen

Außer dem eigentlichen Textbereich, der normalerweise den Satzspiegel ausfüllt, existiert inDokumenten noch die sogenannte Marginalienspalte. In dieser können Randnotizen gesetztwerden. In diesem Dokument wird davon ebenfalls Gebrauch gemacht.

\marginpar[Randnotiz links ]{Randnotiz }\marginline{Randnotiz }

Für Randnotizen ist bei LATEX normalerweise Anweisung \marginpar vorgesehen. DieRandnotiz wird dabei im äußeren Rand gesetzt. Bei einseitigen Dokumenten wird der rechteRand verwendet. Zwar kann bei \marginpar optional eine abweichende Randnotiz angegebenwerden, falls die Randnotiz im linken Rand landet, jedoch werden Randnotizen immer imBlocksatz ausgegeben. Die Erfahrung zeigt, dass bei Randnotizen statt des Blocksatzes oftje nach Rand linksbündiger oder rechtsbündiger Flattersatz zu bevorzugen ist. KOMA-Scriptbietet hierfür die Anweisung \marginline.

Beispiel: In diesem Dokument ist an einigen Stellen die Klassenangabe scrartcl im Rand zufinden. Diese kann mit:\marginline{\texttt{scrartcl}}

erreicht werden.2

Statt der Anweisung \marginline wäre auch die Verwendung von \marginparmöglich gewesen. Tatsächlich wird bei obiger Verwendung von \marginline internnichts anders gemacht als:\marginpar[\raggedleft\texttt{scrartcl}]{\raggedright\texttt{scrartcl}}

Damit ist \marginline also nur eine abkürzende Schreibweise.

Für Experten sind in Abschnitt 21.1, Seite 501 Probleme bei der Verwendung von\marginpar dokumentiert. Diese gelten ebenso für \marginline. Darüber hinaus wird in

2Tatsächlich wurde nicht \texttt, sondern eine semantische Auszeichnung verwendet. Um nicht unnötig zuverwirren, wurde diese im Beispiel ersetzt.

Kapitel 3: Die Hauptklassen scrbook, scrreprt, scrartcl 158

Kapitel 19 ein Paket vorgestellt, mit dem sich auch Notizspalten mit eigenem Seitenumbruchrealisieren lassen. Allerdings ist das Paket scrlayer-notecolumn eher als eine Konzeptstudie undweniger als fertiges Paket zu verstehen.

3.22. Anhang

Der Anhang eines Dokuments besteht im Wesentlichen aus den Anlagen zu einem Dokument.Typische Teile eines Anhangs sind Literaturverzeichnis, Stichwortverzeichnis und Begriffsver-zeichnis. Alleine für diese Teile würde man jedoch keinen Anhang beginnen, da diese Teilenormalerweise schon von sich aus eine Auszeichnung besitzen, die sie als Anhang erkennbarmacht. Enthält der Anhang aber weitere Teile wie beispielsweise zitierte Fremddokumente,Endnoten oder Tafeln, so werden die zuvor genannten Teile ebenfalls im Anhang gesetzt.

\appendix

Der Anhang wird in den Standardklassen und den KOMA-Script-Klassen mit der Anweisung\appendix eingeleitet. Diese Anweisung schaltet unter anderem die Kapitelnummerierung aufGroßbuchstaben um und sorgt gleichzeitig dafür, dass die Regeln für die Nummerierung derGliederungsebenen nach [DUD96] eingehalten werden. Diese Regeln sind in der Beschreibungder Option numbers in Abschnitt 3.16, Seite 105 näher erläutert.Die Form der Kapitelüberschriften im Anhang wird durch die Optionen chapterprefix undscrbook,

scrreprt appendixprefix bestimmt. Näheres dazu ist Abschnitt 3.16, Seite 102 zu entnehmen.Bitte beachten Sie, dass es sich bei \appendix um eine Anweisung und nicht um eine Um-

gebung handelt! Die Anweisung erwartet auch nicht etwa ein Argument. Die Kapitel bezie-hungsweise Abschnitte des Anhangs werden ganz normal mit \chapter und \section gesetzt.

3.23. Literaturverzeichnis

Das Literaturverzeichnis erschließt externe Quellen. In der Regel wird das Literaturverzeichnismit Hilfe des Programms BIBTEX aus einer Datei mit datenbankähnlicher Struktur erzeugt.Dabei kann über den BIBTEX-Stil sowohl die Form der Einträge als auch deren Sortierung ver-ändert werden. Wird zusätzlich ein Literaturpaket, beispielsweise natbib, babelbib oder biblatexverwendet, so schwindet der Einfluss von KOMA-Script auf das Literaturverzeichnis. In die-sen Fällen ist unbedingt die Anleitung des verwendeten Pakets zu beachten! Zur generellenVerwendung eines Literaturverzeichnisses sei auf [DGS+12] verwiesen.

Kapitel 3: Die Hauptklassen scrbook, scrreprt, scrartcl 159

bibliography=Einstellung

Als Einstellungv3.00 kann zunächst einmal jeder definierte Formatierungsstil gewählt werden.Vordefiniert sind bei KOMA-Script zwei solche Formatierungsstile für das Literaturverzeichnis.Diese sind jedoch nicht zu verwechseln mit den unterschiedlichen Stilen für BIBTEX, die manmit \bibstyle auswählt. Während BIBTEX sowohl die Art der Sortierung als auch den Inhaltdes Literaturverzeichnisses bestimmt, können über die Einstellungen von KOMA-Script nurgrundlegende Eigenschaften des Literaturverzeichnisses oder einige wenige Eigenschaften derFormatierung der Einträge beeinflusst werden.Mit bibliography=oldstyle wird die kompakte Formatierung gewählt. Dabei führt die

Anweisung \newblock in den einzelnen Einträgen lediglich zu einem dehnbaren horizontalenAbstand. Der Name kommt daher, dass dies die häufigste klassische Form eines Literaturver-zeichnisses ist. Demgegenüber erreicht man die etwas modernere, offene Form mit der Einstel-lung bibliography=openstyle. Der Name kommt daher, dass hier die Anweisung \newblockeinen Absatz einfügt. Die Einträge im Literaturverzeichnis werden so stärker gegliedert. Siesind weniger kompakt und deutlich aufgelockerter oder geöffnet. Bezüglich der Möglichkeit,neue Formatierungsstile zu definieren, sei auf \newbibstyle, Abschnitt 21.9, Seite 529 ver-wiesen.Neben dem Formatierungsstil gibt es eine weitere Eigenschaft, die über Einstellung ver-

ändert werden kann. Das Literaturverzeichnis stellt eine Art von Verzeichnis dar, bei dernicht der Inhalt des vorliegenden Werks aufgelistet, sondern auf externe Inhalte verwiesenwird. Mit dieser Begründung könnte man argumentieren, dass das Literaturverzeichnis eineigenes Kapitel bzw. einen eigenen Abschnitt darstellt und somit eine Nummer verdiene.Die Einstellung bibliography=numbered führt genau dazu, einschließlich des dann fälligenEintrags im Inhaltsverzeichnis. Ich selbst bin der Meinung, dass bei dieser Argumentationauch ein klassisches, kommentiertes Quellenverzeichnis ein eigenes Kapitel wäre. Außerdemist das Literaturverzeichnis letztlich nichts, was man selbst geschrieben hat. Deshalb verdientes allenfalls einen nicht nummerierten Eintrag im Inhaltsverzeichnis, was mit der Einstellungbibliography=totoc erreicht wird. Die Voreinstellung, bei der das Literaturverzeichnis alsnicht nummeriertes Kapitel ohne eigenen Inhaltsverzeichniseintrag gesetzt wird, entsprichtbibliography=nottotoc. Siehe hierzu auch Option toc in Abschnitt 3.9, insbesondere dieWerte bibliographynumbered, bibliography und nobibliography ab Seite 76.Inv3.12 einigen Fällen wird nicht das gesamte Dokument mit einem einzigen Literaturverzeichnis

versehen, sondern jedes Kapitel eines mit scrbook oder scrreprt gesetzten Dokuments erhältsein eigenes Literaturverzeichnis. In diesem Fall ist es sinnvoll, wenn das Literaturverzeichnisselbst nicht auf Kapitel, sondern etwas tiefer auf Abschnittsebene angesiedelt wird. Dies istmit Option bibliography=leveldown zu erreichen. Diese kann beispielsweise auch verwen-det werden, wenn das Literaturverzeichnis zusammen mit anderen Verzeichnissen unter einergemeinsamen Überschrift erscheinen soll. Daher ist diese Option auch in scrartcl verfügbar.Eine Zusammenfassung möglicher Werte für Einstellung ist Tabelle 3.22 zu entnehmen.

Es ist jedoch zu beachten, dass mit \newbibstyle weitere Werte definiert werden können.

Kapitel 3: Die Hauptklassen scrbook, scrreprt, scrartcl 160

Tabelle 3.22.: Vordefinierte Werte für Option bibliography zur Einstellung der Form des Literatur-verzeichnisses

leveldownv3.12 Das Literaturverzeichnis wird um eine Gliederungsebene nach unten verschoben.

notoc, nottotoc, plainheadingDas Literaturverzeichnis erhält keinen Eintrag im Inhaltsverzeichnis und wird auchnicht nummeriert.

numbered, tocnumbered, totocnumbered, numberedtoc, numberedtotocDas Literaturverzeichnis erhält einen Eintrag im Inhaltsverzeichnis und wird num-meriert.

oldstyleEs wird die klassische, kompakte Formatierung gewählt, bei der \newblock nur einendehnbaren horizontalen Abstand darstellt.

openstyleEs wird eine untergliederte, offene Formatierung gewählt, bei der \newblock einenAbsatz darstellt.

standardlevelv3.12 Das Literaturverzeichnis liegt auf der üblichen Gliederungsebene.

toc, totoc, notnumberedDas Literaturverzeichnis erhält einen Eintrag im Inhaltsverzeichnis, ohne dass esnummeriert wird.

\setbibpreamble{Präambel }

Mit der Anweisung \setbibpreamble kann eine Präambel für das Literaturverzeichnis ge-setzt werden. Bedingung dafür ist, dass die Präambel vor der Anweisung zum Setzen desLiteraturverzeichnisses gesetzt wird. Dies muss nicht unmittelbar davor sein. Es kann alsobeispielsweise am Anfang des Dokuments erfolgen. Ebenso wie Option bibliography=totocoder bibliography=numbered kann die Anweisung aber nur erfolgreich sein, wenn nicht einPaket geladen wird, das dies durch Umdefinierung der thebibliography-Umgebung verhin-dert. Obwohl das natbib-Paket nicht freigegebene interne Makros von KOMA-Script verwen-det, konnte erreicht werden, dass \setbibpreamble auch mit der aktuellen Version von natbibfunktioniert (siehe [Dal10]).

Beispiel: Sie wollen darauf hinweisen, dass das Literaturverzeichnis nicht in der Reihenfolgeder Zitierung im Dokument, sondern alphabetisch sortiert ist. Daher setzen Siefolgende Anweisung:\setbibpreamble{Die Literaturangaben sindalphabetisch nach den Namen der Autorensortiert. Bei mehreren Autoren wird nach dem

Kapitel 3: Die Hauptklassen scrbook, scrreprt, scrartcl 161

ersten Autor sortiert.\par\bigskip}

Die Anweisung \bigskip sorgt dafür, dass zwischen der Präambel und der erstenLiteraturangabe ein großer Zwischenraum gesetzt wird.

\BreakBibliography{Unterbrechung }

Diesev3.00 Anweisung existiert nur, wenn Umgebung thebibliography nicht durch ein Paket neudefiniert wurde. In diesem Fall ist es möglich, mit dieser Anweisung das Literaturverzeichnis zuunterbrechen. Die Unterbrechung wird dann innerhalb einer Gruppe ausgegeben. Eine solcheUnterbrechung könnte beispielsweise eine Überschrift mit Hilfe von \minisec sein. Leider gibtes bisher keine Möglichkeit, diese Anweisung beispielsweise mit Hilfe eines speziellen Eintragsin der Literaturdatenbank von BIBTEX erzeugen zu lassen. Daher kann sie derzeit nur vonAnwendern verwendet werden, die das Literaturverzeichnis selbst editieren. Ihr Nutzen istdamit sehr beschränkt.

\AfterBibliographyPreamble{Anweisungen }\AtEndBibliography{Anweisungen }

Inv3.00 einigen Fällen ist es nützlich, wenn man nach der Präambel des Literaturverzeichnisses oderunmittelbar vor dem Ende des Literaturverzeichnisses noch Anweisungen ausführen kann.Dies ist mit Hilfe dieser beiden Anweisungen möglich.

Beispiel: Sie wollen, dass das Literaturverzeichnis nicht im Blocksatz, sondern im linksbün-digen Flattersatz ausgegeben wird. Dies ist einfach mit:\AfterBibliographyPreamble{\raggedright}

zu erreichen. Sie können diese Anweisung an beliebiger Stelle vor dem Literaturver-zeichnis verwenden. Es wird jedoch empfohlen, sie in die Präambel des Dokumentsoder ein eigenes Paket zu schreiben.

Die Realisierung dieser Anweisung bedarf bei Verwendung eines Pakets, das die Umgebung fürLiteraturverzeichnisse umdefiniert, der Zusammenarbeit mit dem entsprechenden Paket (sieheAbschnitt 21.2, Seite 501).

3.24. Stichwortverzeichnis

Das Stichwortverzeichnis ist auch unter den Bezeichnungen Index oder Register bekannt. Zurgenerellen Verwendung eines Stichwortverzeichnisses sei auf [DGS+12] sowie auf [Lam87] und[Keh97] verwiesen. Wird ein Paket verwendet, das selbst Anweisungen und Umgebungen fürdas Stichwortverzeichnis zur Verfügung stellt, so schwindet eventuell der Einfluss, den KOMA-Script auf dieses Verzeichnis hat. Dies gilt beispielsweise bei Verwendung von index, nichtjedoch bei Verwendung von splitidx (siehe [Koh14]).

Kapitel 3: Die Hauptklassen scrbook, scrreprt, scrartcl 162

Tabelle 3.23.: Mögliche Werte für Option index zur Einstellung des Stichwortverzeichnisses

leveldownv3.18 Der Index wird um eine Gliederungsebene nach unten verschoben.

notoc, nottotoc, plainheadingDas Stichwortverzeichnis erhält keinen Eintrag im Inhaltsverzeichnis.

numbered, tocnumbered, totocnumbered, numberedtoc, numberedtotocv3.18 Das Stichwortverzeichnis erhält einen Eintrag im Inhaltsverzeichnis und wird num-

meriert.standardlevel

v3.18 Der Index liegt auf der üblichen Gliederungsebene.toc, totoc, notnumbered

Das Stichwortverzeichnis erhält einen Eintrag im Inhaltsverzeichnis, ohne dass ernummeriert wird.

index=Einstellung

v3.00 In der Voreinstellung index=nottotoc ist das Stichwortverzeichnis ein nicht nummeriertes Ka-pitel ohne Eintrag im Inhaltsverzeichnis. Da das Stichwortverzeichnis normalerweise in einemBuch oder ähnlichen Dokument zuletzt steht, benötigt es eigentlich auch keinen Inhaltsver-zeichniseintrag. Wird dieser dennoch gewünscht, beispielsweise weil wie in dieser Anleitung miteinem mehrgliedrigen Stichwortverzeichnis gearbeitet wird, so kann dies mit der Einstellungindex=totoc erreicht werden. Sollv3.18 der Index entgegen aller Gepflogenheiten sogar nummeriertwerden, so verwendet man Option index=numbered. Siehe hierzu auch Option toc mit demWert index oder indexnumbered in Abschnitt 3.9 ab Seite 76.Werden beispielsweise mit Hilfe von splitidx (siehe [Koh14]) mehrere Stichwortverzeichnis-

se erstellt, so kann es sinnvoll sein, diese unter einer gemeinsamen Überschrift zusammenzu fassen. Um dies zu ermöglichen, kann mit index=leveldownv3.18 das Verzeichnis eine Glie-derungsebene tiefer als üblich angesiedelt werden. Bei scrbook und scrreprt ist es dann alsokein Kapitel mehr, sondern ein Abschnitt, bei scrartcl entsprechend ein Unterabschnitt. Opti-on index=standardlevelv3.18 ist das Gegenstück dazu und hebt ein eventuell zuvor verwendetesindex=leveldown wieder auf.Eine Zusammenfassung der möglichen Werte für die Einstellung von index ist in Tabel-

le 3.23 zu finden.

\setindexpreamble{Präambel }

Analog zur Präambel des Literaturverzeichnisses können Sie auch das Stichwortverzeichnismit einer Präambel versehen. Dies findet häufig dann Anwendung, wenn es mehr als einenIndex gibt oder im Index unterschiedliche Arten der Referenzierung durch unterschiedlicheHervorhebung der Seitenzahlen markiert werden.

Kapitel 3: Die Hauptklassen scrbook, scrreprt, scrartcl 163

Beispiel: Sie haben ein Dokument, in dem Begriffe sowohl definiert als auch verwendet wer-den. Die Seitenzahlen der Begriffsdefinitionen sind fett dargestellt. Natürlich möch-ten Sie gerne auf diesen Umstand hinweisen. Also setzen Sie eine entsprechendePräambel für den Index:\setindexpreamble{Alle \textbf{fett} gedrucktenSeitenzahlen sind Referenzen auf die Definitiondes jeweiligen Begriffs. Demgegenüber gebennormal gedruckte Seitenzahlen die Seiten derVerwendung des jeweiligen Begriffs wieder.\par\bigskip}

Bitte beachten Sie, dass für die erste Seite des Index der Seitenstil umgeschaltet wird.Welcher Seitenstil hierbei Verwendung findet, ist im Makro \indexpagestyle abgelegt (sieheAbschnitt 3.12, Seite 88).Für die Erstellung, Sortierung und Ausgabe des Stichwortverzeichnisses sind die üblichen

Standard-LATEX-Pakete und Zusatzprogramme zuständig. Von KOMA-Script werden genauwie von den Standardklassen lediglich die grundlegenden Makros und Umgebungen dafür zurVerfügung gestellt.

Kapitel 4: Briefe mit Klasse scrlttr2 oder Paket scrletter 164

Briefe mit Klasse scrlttr2 oder Paket scrletter

Briefe sind in vielerlei Hinsicht etwas ganz anderes als Artikel, Berichte, Bücher oder Ähnliches.Schon allein deshalb gibt es für Briefe ein eigenes Kapitel. Aber auch aus weiteren Gründenist ein eigenes Kapitel für scrlttr2 und scrletter gerechtfertigt.Die Klasse scrlttr2 wurde 2002 von Grund auf neu entwickelt. Sie hat daher auch ein komplett

anderes Bedienkonzept als alle übrigen mir bekannten Klassen. Die neue Art der Bedienungist möglicherweise etwas ungewohnt, bietet jedoch nicht nur dem geübten Anwender einigeVorteile.Das Paket scrletterv3.15 wiederum verstärkt KOMA-Script seit Version 3.15. Es stellt die gesamte

auf Briefe ausgelegte Funktionalität von scrlttr2 auch für andere Klassen bereit. Empfohlenwird die Verwendung mit einer der KOMA-Script-Klassen scrbook, scrreprt oder scrartcl, dieim vorherigen Kapitel erklärt sind. Mit geringfügigen Einschränkungen funktioniert scrletteraber auch mit den Standardklassen.Ausgangspunkt für die Entwicklung von scrletter waren einerseits Nachfragen von Anwen-

dern, die Elemente wie Gliederungsüberschriften, Gleitumgebungen oder ein Literaturverzeich-nis auch in Briefen haben wollten. Umgekehrt gab es auch Wünsche nach der Verwendung derVariablen von scrlttr2 in den übrigen KOMA-Script-Klassen. Beides ist durch eine Kombina-tion der gewünschten KOMA-Script-Klasse mit scrletter möglich.Gegenüber der Briefklasse hat das Briefpaket einige, kleine Änderungen, die notwendig

waren, um Konflikte mit den anderen Klassen zu vermeiden. Diese betreffen vor allem dieSeitenstile und sind explizit dokumentiert (siehe Abschnitt 4.13, ab Seite 224). Wo scrletternicht explizit erwähnt ist, gilt dafür alles, was für scrlttr2 dokumentiert ist, ohne Änderung.

4.1. Variablen

Neben Optionen, Anweisungen (oder Befehlen), Umgebungen, Zählern und Längen wurden inKapitel 3 für KOMA-Script bereits zusätzlich Elemente eingeführt. Eine typische Eigenschafteines Elements ist seine Schriftart und die Möglichkeit, diese zu ändern (siehe Abschnitt 4.9,Seite 188). An dieser Stelle werden nun zusätzlich Variablen eingeführt. Variablen haben einenNamen, über den sie angesprochen werden, und einen Inhalt. Der Inhalt einer Variablen kannzeitlich bzw. räumlich getrennt von ihrer Verwendung gesetzt werden, so wie der Inhalt ei-ner Anweisung getrennt von ihrer Ausführung definiert werden kann. Ein Hauptunterschiedeiner Variablen zu einer Anweisung besteht darin, dass eine Anweisung normalerweise eineAktion auslöst, während der Inhalt einer Variablen normalerweise aus einem Text besteht,der dann von einer Anweisung ausgegeben wird. Außerdem kann eine Variable zusätzlich eineBezeichnung besitzen, die ebenfalls gesetzt und ausgegeben werden kann.Dieser Abschnitt beschränkt sich bewusst auf die Einführung des Begriffs der Variablen.

Die zur Verdeutlichung verwendeten Beispiele sind ohne tiefere Bedeutung. Konkretere An-

Kapitel 4: Briefe mit Klasse scrlttr2 oder Paket scrletter 165

wendungsbeispiele gibt es bei der Erläuterung der in der Klasse und Paket bereits definiertenund von ihnen verwendeten Variablen in den nachfolgenden Abschnitten. Tabelle 4.1 gibt eineÜbersicht über alle definierten Variablen.

Tabelle 4.1.: Von scrlttr2 und scrletter unterstützte Variablen

addresseeimageAnweisungen, die zum Setzen des Port-Payé-Kopfes bei der Einstellung addrfield=backgroundimage oder der Port-Payé-Anschrift bei der Einstellung addrfield=image, verwendet werden (Abschnitt 4.10, Seite 206)

backaddressRücksendeadresse für Fensterbriefumschläge (Abschnitt 4.10, Seite 206)

backaddressseparatorTrennzeichen innerhalb der Rücksendeadresse (Abschnitt 4.10, Seite 206)

ccseparatorTrennzeichen zwischen Verteilertitel und Verteiler (Abschnitt 4.7, Seite 182)

customerGeschäftszeilenfeld »Kundennummer« (Abschnitt 4.10, Seite 214)

dateDatum (Abschnitt 4.10, Seite 212)

emailseparatorTrennzeichen zwischen E-Mail-Bezeichnung und E-Mail-Adresse (Abschnitt 4.10, Sei-te 200)

enclseparatorTrennzeichen zwischen Anlagetitel und Anlagen (Abschnitt 4.7, Seite 183)

faxseparatorTrennzeichen zwischen Faxbezeichner und Faxnummer (Abschnitt 4.10, Seite 200)

firstfootSeitenfußv3.08 des Briefbogens (Abschnitt 4.10, Seite 220)

firstheadKopfv3.08 des Briefbogens (Abschnitt 4.10, Seite 206)

. . .

Kapitel 4: Briefe mit Klasse scrlttr2 oder Paket scrletter 166

Tabelle 4.1.: Von scrlttr2 und scrletter unterstützte Variablen (Fortsetzung)

fromaddressAbsenderadresse ohne Absendername (Abschnitt 4.10, Seite 196)

frombankBankverbindung des Absenders (Abschnitt 4.10, Seite 221)

fromemailE-Mail-Adresse des Absenders (Abschnitt 4.10, Seite 200)

fromfaxFaxnummer des Absenders (Abschnitt 4.10, Seite 200)

fromlogoAnweisungen zum Setzen des Absenderlogos (Abschnitt 4.10, Seite 204)

frommobilephonev3.12 Handynummer des Absenders (Abschnitt 4.10, Seite 200)

fromnamevollständiger Absendername (Abschnitt 4.10, Seite 196)

fromphoneTelefonnummer des Absenders (Abschnitt 4.10, Seite 200)

fromurleine URL des Absenders (Abschnitt 4.10, Seite 200)

fromzipcodePostleitzahl des Absenders für den Port-Payé-Kopf bei addrfield=PP (Ab-schnitt 4.10, Seite 206)

invoiceGeschäftszeilenfeld »Rechnungsnummer« (Abschnitt 4.10, Seite 214)

locationerweiterte Absenderangabe (Abschnitt 4.10, Seite 211)

mobilephoneseparatorTrennzeichen zwischen Handybezeichner und Handynummer (Abschnitt 4.10, Sei-te 200)

. . .

Kapitel 4: Briefe mit Klasse scrlttr2 oder Paket scrletter 167

Tabelle 4.1.: Von scrlttr2 und scrletter unterstützte Variablen (Fortsetzung)

myrefGeschäftszeilenfeld »Mein Zeichen« (Abschnitt 4.10, Seite 214)

nextfootSeitenfußv3.08 im Seitenstil headings oder myheadings (Abschnitt 4.13, Seite 228)

nextheadKopfv3.08 im Seitenstil headings oder myheadings (Abschnitt 4.13, Seite 228)

phoneseparatorTrennzeichen zwischen Telefonbezeichner und Telefonnummer (Abschnitt 4.10, Sei-te 200)

placeOrt (Abschnitt 4.10, Seite 206)

placeseparatorTrennzeichen zwischen Ort und Datum (Abschnitt 4.10, Seite 215)

PPdatamatrixAnweisungen zum Setzen einer Data-Matrix bei der Einstellung addrfield=PP (Ab-schnitt 4.10, Seite 206)

PPcodeCode zur Identifizierung des Absenders bei Einstellung addrfield=PP (Ab-schnitt 4.10, Seite 206)

signatureSignatur unter Unterschrift und Grußformel (Abschnitt 4.20, Seite 238)

specialmailVersandart (Abschnitt 4.10, Seite 206)

subjectBetreff (Abschnitt 4.10, Seite 217)

subjectseparatorTrennzeichen zwischen Betrefftitel und Betreff (Abschnitt 4.10, Seite 217)

titleBrieftitel (Abschnitt 4.10, Seite 216)

. . .

Kapitel 4: Briefe mit Klasse scrlttr2 oder Paket scrletter 168

Tabelle 4.1.: Von scrlttr2 und scrletter unterstützte Variablen (Fortsetzung)

toaddressEmpfängeradresse ohne Empfängername (Abschnitt 4.10, Seite 206)

tonamevollständiger Empfängername (Abschnitt 4.10, Seite 206)

yourmailGeschäftszeilenfeld »Ihr Schreiben« (Abschnitt 4.10, Seite 214)

yourrefGeschäftszeilenfeld »Ihr Zeichen« (Abschnitt 4.10, Seite 214)

zipcodeseparatorTrennzeichen zwischen der Bezeichnung und dem Inhalt der Variablen fromzipcode(Abschnitt 4.10, Seite 206)

\setkomavar{Name }[Bezeichnung ]{Inhalt }\setkomavar*{Name }{Bezeichnung }

Mit der Anweisung \setkomavar wird der Inhalt der Variablen Name gesetzt. Dabei kannper optionalem Argument gleichzeitig auch die Bezeichnung der Variablen geändert werden.Demgegenüber kann mit der Sternvariante \setkomavar* auch nur die Bezeichnung der Va-riablen Name gesetzt werden.

Beispiel: In Briefen ist es üblich, den Absender im Briefkopf stehen zu haben. Dazu mussKOMA-Script den Absender aber erst einmal mit Namen kennen. Für »Peter Mus-terfrau« ginge das einfach mit:\setkomavar{fromname}{Peter Musterfrau}

Die voreingestellte Bezeichnung für den Namen des Absenders ist »Von«. Ange-nommen, Herr Musterfrau will aber an den Stellen, an denen KOMA-Script dieseBezeichnung verwendet, lieber »Absender« haben, so müsste er zusätzlich\setkomavar*{fromname}{Absender}

setzen oder aber die beiden Angaben zu einer Anweisung zusammenfassen:\setkomavar{fromname}[Absender]{Peter Musterfrau}

Damit schlägt er sozusagen zwei Fliegen mit einer Klappe.

Übrigens kann mit einem leeren obligatorischen Argument Inhalt der Inhalt der Varia-ble gelöscht werden. Selbstverständlich kann in gleicher Weise mit einem leeren ArgumentBezeichnung auch die Bezeichnung der Variablen gelöscht werden.

Kapitel 4: Briefe mit Klasse scrlttr2 oder Paket scrletter 169

Beispiel: Angenommen, Herr Musterfrau will gar keine Bezeichnung für den Namen des Ab-senders haben. Dann könnte er diese entweder für sich mit:\setkomavar*{fromname}{}

löschen. Er könnte aber auch wieder zwei Fliegen mit einer Klappe schlagen und\setkomavar{fromname}[]{Peter Musterfrau}

verwenden. Dadurch wird gleichzeitig der Inhalt der Variablen gesetzt und ihreBezeichnung gelöscht.

\usekomavar[Anweisung ]{Name }\usekomavar*[Anweisung ]{Name }

Inv2.9i manchen Fällen wird es notwendig sein, selbst auf den Inhalt oder die Bezeichnung einerVariablen zuzugreifen, dies also nicht allein der Klasse zu überlassen. Das gilt insbesonde-re dann, wenn Sie eigene Variablen definiert haben, die nicht zur Geschäftszeile hinzugefügtwerden. Mit der Anweisung \usekomavar können Sie auf den Inhalt der Variablen Name zu-greifen, während Sie mit der Sternvariante \usekomavar* ihre Bezeichnung erhalten. Nähereszur Definition eigener Variablen ist Abschnitt 22.2, Seite 548 zu entnehmen.

\ifkomavar{Name }{Dann-Teil }{Sonst-Teil }

Mitv3.03 dieser Anweisung kann man feststellen, ob eine Variable definiert ist. Der Dann-Teilwird nur dann ausgeführt, wenn die Variable existiert. Dabei wird der Inhalt der Variablennicht getestet, kann also auch leer sein. Der Sonst-Teil wird hingegen ausgeführt, wenn dieVariable nicht existiert. Solche Tests können beispielsweise dann sinnvoll sein, wenn eigeneVariablen in einer lco-Datei (siehe Abschnitt 4.21 ab Seite 241) definiert werden und in eineranderen lco-Datei diese Variable nur dann verwendet werden soll, wenn sie existiert.

\ifkomavarempty{Name }{Dann-Teil }{Sonst-Teil }\ifkomavarempty*{Name }{Dann-Teil }{Sonst-Teil }

Mitv2.9i Hilfe dieser Anweisungen kann man feststellen, ob der Inhalt oder die Bezeichnung einerVariablen leer ist oder nicht. Der Dann-Teil wird nur dann ausgeführt, wenn der expandierteInhalt oder die expandierte Bezeichnung der Variablen Name leer ist. Anderenfalls wird derSonst-Teil ausgeführt. Die Sternvariante der Anweisung bezieht sich dabei auf die Bezeich-nung der Variablen, während die normale Variante den Inhalt behandelt.

4.2. Pseudolängen

Längen werden bei LATEX mit den drei Anweisungen \newlength, \setlength und\addtolength verarbeitet. Sehr viele Pakete nutzen aber auch Makros, also Anweisungen,

Kapitel 4: Briefe mit Klasse scrlttr2 oder Paket scrletter 170

um Längen zu speichern. KOMA-Script erweitert dieses Verfahren um die Möglichkeit, solchein Makros gespeicherten Längen mit ähnlichen Anweisungen zu verarbeiten wie echte Längen.Diese eigentlich in Makros abgelegten Längen heißen bei KOMA-Script daher Pseudolängen.

Eine Liste aller in scrlttr2 definierten Pseudolängen findet sich in Tabelle 22.1, Seite 533.Eine grafische Darstellung der Bedeutungen der wichtigsten Pseudolängen des Briefbogens istAbbildung 22.1, Seite 538 zu entnehmen. Die verwendeten Maße sind dabei an die Voreinstel-lungen von scrlttr2 angelehnt. Nähere Beschreibungen zu den einzelnen Pseudolängen findensich in den einzelnen Abschnitten dieses Kapitels.Da der Anwender normalerweise keine eigenen Pseudolängen definieren muss, wird dieser

Teil nicht hier, sondern im Expertenteil in Abschnitt 22.1, Seite 537 behandelt. Ebenso ist dasSetzen von Pseudolängen eher dem fortgeschrittenen Anwender vorbehalten. Also wird auchdies im Abschnitt für Experten ab Seite 537 erklärt.Bitte beachten Sie unbedingt, dass die Pseudolängen zwar intern als Makros implementiert

sind, bei den Befehlen zur Nutzung der Pseudolängen jedoch nur die Namen anzugeben sind.Diese werden wie die Namen von LATEX-Zählern und im Gegensatz zu Makros oder echtenLängen ohne umgekehrten Schrägstrich geschrieben!

\useplength{Name }

Mit Hilfe dieser Anweisung wird auf den Wert der Pseudolänge mit dem angegebenen Namenzugegriffen. Dies ist eine der wenigen Benutzeranweisung rund um Pseudolängen. Natürlichkann diese Anweisung dennoch auch innerhalb einer lco-Datei (siehe Abschnitt 4.21 ab Sei-te 241) verwendet werden.

\setlengthtoplength[Faktor ]{Länge }{Pseudolänge }\addtolengthplength[Faktor ]{Länge }{Pseudolänge }

Mit der Anweisung \setlengthtoplength kann man einer echten Länge das Vielfache ei-ner Pseudolänge zuweisen. Allerdings wird hier ein Faktor nicht direkt der Pseudolängevorangestellt, sondern als optionales Argument übergeben. Man sollte diese Anweisung auchverwenden, wenn man einer Länge den negativen Wert einer Pseudolänge zuweisen will.Faktor ist dann -1. Die Anweisung \addtolengthplength arbeitet ähnlich. Nur wird die mitFaktor multiplizierte Pseudolänge zur Länge addiert.

4.3. Frühe oder späte Optionenwahl

Es gilt sinngemäß, was in Abschnitt 2.4 geschrieben wurde. Falls Sie also Abschnitt 2.4 bereitsgelesen und verstanden haben, können Sie auf Seite 172 mit Abschnitt 4.4 fortfahren.

Kapitel 4: Briefe mit Klasse scrlttr2 oder Paket scrletter 171

\documentclass[Optionenliste ]{KOMA-Script-Klasse }\usepackage[Optionenliste ]{Paket-Liste }

Bei LATEX ist vorgesehen, dass Anwender Klassenoptionen in Form einer durch Komma ge-trennten Liste einfacher Schlüsselwörter als optionales Argument von \documentclass ange-ben. Außer an die Klasse werden diese Optionen auch an alle Pakete weitergereicht, die dieseOptionen verstehen. Ebenso ist vorgesehen, dass Anwender Paketoptionen in Form einer durchKomma getrennten Liste einfacher Schlüsselwörter als optionales Argument von \usepackageangeben. KOMA-Script erweitertv3.00 den Mechanismus der Optionen für die KOMA-Script-Klassen und einige Pakete um weitere Möglichkeiten. So haben die meisten Optionen beiKOMA-Script zusätzlich einen Wert. Eine Option hat also nicht unbedingt nur die FormOption , sondern kann auch die Form Option =Wert haben. Bis auf diesen Unterschied arbei-ten \documentclass und \usepackage bei KOMA-Script wie in [Tea05b] oder jeder LATEX-Einführung, beispielsweise [DGS+12], beschrieben.

Bei Verwendung einer KOMA-Script-Klasse sollten im Übrigen beim Laden des Paketstypearea oder scrbase keine Optionen angegeben werden. Das ist darin begründet, dass dieKlasse diese Pakete bereits ohne Optionen lädt und LATEX das mehrmalige Laden eines Paketsmit unterschiedlicher Angabe von Optionen verweigert. Überhaupt ist es bei Verwendung einerKOMA-Script-Klasse nicht notwendig, eines dieser Pakete auch noch explizit zu laden.Gegenüber der nachfolgend vorgestellten Schnittstelle zu Einstellungen von Optionen hat

\documentclass einen Nachteil, der unbedingt zu beachten ist: Anweisungen, Längen, Zählerund ähnliches können darin leicht zerbrechen. So führt die Verwendung einer LATEX-Längeim Wert einer Option bei dieser Anweisung bei vielen Nicht-KOMA-Script-Klassen zu einerFehlermeldung. Wertzuweisungen mit LATEX-Längen oder LATEX-Zählern sollten daher nie per\documentclass, sondern mit den nachfolgend dokumentierten Anweisungen \KOMAoptionsoder \KOMAoption vorgenommen werden.

\KOMAoptions{Optionenliste }\KOMAoption{Option }{Werteliste }

KOMA-Scriptv3.00 bietet bei den meisten Klassen- und Paketoptionen auch die Möglichkeit, denWert der Optionen noch nach dem Laden der Klasse beziehungsweise des Pakets zu ändern.Mit der Anweisung \KOMAoptions kann man wie bei \documentclass oder \usepackage dieWerte einer Reihe von Optionen ändern. Jede Option der Optionenliste hat dabei die FormOption =Wert .

Einige Optionen besitzen auch einen Säumniswert (engl. default value). Versäumt man dieAngabe eines Wertes, verwendet man die Option also einfach in der Form Option , so wirdautomatisch dieser Säumniswert angenommen.Manche Optionen können gleichzeitig mehrere Werte besitzen. Für solche Optionen besteht

die Möglichkeit, mit \KOMAoption der einen Option nacheinander eine Reihe von Wertenzuzuweisen. Die einzelnen Werte sind dabei in der Werteliste durch Komma voneinandergetrennt.

Kapitel 4: Briefe mit Klasse scrlttr2 oder Paket scrletter 172

Soll ein Wert ein Gleichheitszeichen oder ein Komma enthalten, so ist der Wert in geschweif-te Klammern zu setzen.KOMA-Script bedient sich für die Realisierung dieser Möglichkeit der Anweisungen

\FamilyOptions und \FamilyOption mit der Familie »KOMA«. Siehe dazu Teil II, Abschnitt 12.2,ab Seite 345.Mit \KOMAoptions oder \KOMAoption gesetzte Optionen erreichen sowohl die KOMA-Script-

Klasse als auch alle bereits geladenen KOMA-Script-Pakete, die diese Optionen kennen. Isteine Option oder ein Wert insgesamt unbekannt, so wird die Option einschließlich des Wertesvon scrbase als fehlerhaft gemeldet.

4.4. Kompatibilität zu früheren Versionen von KOMA-Script

Es gilt sinngemäß, was in Abschnitt 2.5 geschrieben wurde. Allerdings existiert diese Möglich-keit bei scrlttr2 bereits seit Version 2.9t, während scrletter sie nicht bietet, sondern sozusagenscrlttr2immer von version=last ausgeht. Falls Sie also Abschnitt 2.5 bereits gelesen und verstandenhaben, können Sie in Abschnitt 4.5 auf Seite 173 fortfahren.Wer seine Dokumente im Quellcode archiviert, legt in der Regel allergrößten Wert darauf,

dass bei zukünftigen LATEX-Läufen immer wieder exakt dasselbe Ergebnis erzielt wird. Ineinigen Fällen führen aber Verbesserungen und Korrekturen an der Klasse zu Änderungen imVerhalten, inbesondere beim Umbruch. Dies ist jedoch manchmal eher unerwünscht.

version=Wertversion=firstversion=last

Seitv2.96av2.9tv3.01b Version 2.9t besteht bei scrlttr2 die Wahl, ob eine Quelldatei, soweit irgend möglich, auchscrlttr2zukünftig bei einem LATEX-Lauf zu exakt demselben Ergebnis führen soll oder ob er jeweilsentsprechend der Anpassungen der neusten Version der Klasse zu setzen ist. Zu welcher VersionKompatibilität herzustellen ist, wird dabei über die Option version festgelegt. Kompatibilitätzur ältesten unterstützten KOMA-Script-Version kann mit version=first oder version=2.9oder version=2.9t erreicht werden. Bei Angabe einer unbekannten Version als Wert wird eineWarnung ausgegeben und sicherheitshalber version=first angenommen.Mit version=last kann die jeweils neuste Version ausgewählt werden. In diesem Fall wird

also auf rückwirkende Kompatibilität verzichtet. Wird die Option ohne Wertangabe verwendet,so wird ebenfalls last angenommen.v3.01a Dies entspricht auch der Voreinstellung, solange keineobsolete Option verwendet wird.Bei der Verwendung einer obsoleten Option von KOMA-Script 2 setzt KOMA-Script 3

automatisch version=first. In der dabei ausgegebenen Warnung wird erklärt, wie man dieseKompatibilitätsumschaltung verhindern kann. Alternativ kann man auch nach der obsoletenOption selbst eine abweichende Einstellung für Option version wählen.

Kapitel 4: Briefe mit Klasse scrlttr2 oder Paket scrletter 173

Die Frage der Kompatibilität betrifft in erster Linie Fragen des Umbruchs. Neue Möglich-keiten, die sich nicht auf den Umbruch auswirken, sind auch dann verfügbar, wenn man perOption die Kompatibilität zu einer älteren Version ausgewählt hat. Die Option hat keine Aus-wirkungen auf Umbruchänderungen, die bei Verwendung einer neueren Version durch Beseiti-gung eindeutiger Fehler entstehen. Wer auch im Fehlerfall unbedingte Umbruchkompatibilitätbenötigt, sollte stattdessen mit dem Dokument auch die verwendete KOMA-Script-Versionarchivieren.

Beispiel: Die Beispielbriefe dieses Kapitels sollen alle Möglichkeiten nutzen, die in der neustenVersion von KOMA-Script zur Verfügung stehen. Dazu muss beim Laden der Klassedie Kompatibilität entsprechend gesetzt werden:\documentclass[version=last]{scrlttr2}

Hier wurde einfach mit dem symbolischen Wert last die neuste Version gewählt.

Es ist zu beachten, dass die Option version nach dem Laden der Klasse nicht mehr verän-dert werden kann. Das Setzen mit \KOMAoptions oder \KOMAoption ist daher nicht vorgesehen.

4.5. Entwurfsmodus

Für scrlttr2 gilt sinngemäß, was in Abschnitt 3.3 geschrieben wurde. Falls Sie also Abschnitt 3.3scrlttr2bereits gelesen und verstanden haben, können Sie nach dem Ende dieses Abschnitts auf Sei-te 174 mit Abschnitt 4.6 fortfahren. Das Paket scrletter bietet selbst keinen Entwurfsmodus,sondern verlässt sich diesbezüglich auf die verwendete Klasse.Viele Klassen und viele Pakete kennen neben dem normalen Satzmodus auch einen Ent-

wurfsmodus. Die Unterschiede zwischen diesen beiden sind so vielfältig wie die Klassen undPakete, die diese Unterscheidung anbieten.

draft=Ein-Aus-Wertoverfullrule=Ein-Aus-Wert

Mit Option draftv3.00 wird zwischen Dokumenten im Entwurfsstadium und fertigen Dokumen-scrlttr2ten unterschieden. Als Ein-Aus-Wert kann einer der Standardwerte für einfache Schalter ausTabelle 2.5, Seite 42 verwendet werden. Bei Aktivierung der Option werden im Falle überlan-ger Zeilen am Zeilenende kleine, schwarze Kästchen ausgegeben. Diese Kästchen erleichterndem ungeübten Auge, Absätze ausfindig zu machen, die manueller Nachbearbeitung bedürfen.Demgegenüber erscheinen in der Standardeinstellung draft=false keine solchen Kästchen.Solche Zeilen verschwinden übrigens häufig durch Verwendung des Pakets microtype [Sch13].

Dav3.25 Option draft bei verschiedenen Paketen zu allerlei unerwünschten Effekten führen kann,bietet KOMA-Script die Möglichkeit, die Markierung für überlange Zeilen auch über Optionoverfullrule zu steuern. Auch hier gilt, dass bei aktivierter Option die Markierung angezeigtwird.

Kapitel 4: Briefe mit Klasse scrlttr2 oder Paket scrletter 174

4.6. Seitenaufteilung

Eine Dokumentseite besteht aus unterschiedlichen Teilen, wie den Rändern, dem Kopf, demFuß, dem Textbereich, einer Marginalienspalte und den Abständen zwischen diesen Elementen.KOMA-Script unterscheidet dabei auch noch zwischen der Gesamtseite oder dem Papier undder sichtbaren Seite. Ohne Zweifel gehört die Aufteilung der Seite in diese unterschiedlichenTeile zu den Grundfähigkeiten einer Klasse. Bei KOMA-Script wird diese Arbeit an das Paketscrlttr2typearea delegiert. Dieses Paket kann auch zusammen mit anderen Klassen verwendet werden.Die KOMA-Script-Klassen laden typearea jedoch selbstständig. Es ist daher weder notwendignoch sinnvoll, das Paket bei Verwendung einer KOMA-Script-Klasse auch noch explizit per\usepackage zu laden. Siehe hierzu auch Abschnitt 4.3, ab Seite 170.Einige Einstellungen der KOMA-Script-Klassen haben Auswirkungen auf die Seitenauftei-

lung und umgekehrt. Diese Auswirkungen werden bei den entsprechenden Einstellungen do-kumentiert.Für die weitere Erklärung zur Wahl des Papierformats, der Aufteilung der Seite in Ränder

und Satzspiegel und die Wahl von ein- oder zweispaltigem Satz sei auf die Anleitung des Paketstypearea verwiesen. Diese ist in Kapitel 2 ab Seite 27 zu finden.Die Unterscheidung zwischen ein- und doppelseitigem Satz ist bei Briefen jedoch in der

Regel nicht sinnvoll. Da Briefe normalerweise nicht gebunden werden, betrachtet man beiBriefen jede Seite für sich. Das gilt auch dann, wenn ausnahmsweise Vorder- oder Rückseitebedruckt werden. Daher spielt bei Briefen normalerweise auch der vertikale Ausgleich keineRolle. Sollten Sie diesen trotzdem benötigen sei auf die in Abschnitt 3.4, Seite 60 erklärtenAnweisungen \raggedbottom und \flushbottom verwiesen.

4.7. Genereller Aufbau eines Briefdokuments

Der generelle Aufbau eines Briefdokuments weicht etwas vom Aufbau eines normalen Doku-ments ab. Während ein Buchdokument normalerweise nur ein Buch enthält, kann ein einzelnesBriefdokument mehrere Briefe enthalten. Wie in Abbildung 4.1 veranschaulicht wird, bestehtein Briefdokument aus einem Vorspann, den einzelnen Briefen und dem Abschluss.Der Vorspann beinhaltet dabei alle Einstellungen, die generell alle Briefe betreffen. Diese

können in den Einstellungen der einzelnen Briefe jedoch zumindest teilweise überschriebenwerden. Die einzige Einstellung, die derzeit nicht innerhalb eines einzelnen Briefes überschrie-ben werden kann, ist die Version von scrlttr2, zu der Kompatibilität erreicht werden soll (siehescrlttr2Option version in Abschnitt 4.4, Seite 172).Bei Verwendung von scrletter ändert sich lediglich, dass eine andere Klasse geladen und dafür

zusätzlich \usepackage{scrletter} noch vor den Einstellungen für alle Briefe einzufügen ist.Für das Setzen von Optionen für scrletter sei auf Abschnitt 4.3, ab Seite 170 verwiesen.

Ich empfehle, vor \begin{document} nur allgemeine Einstellungen wie das Laden von Pa-keten und das Setzen von Optionen vorzunehmen. Alle Einstellungen, die das Setzen einer

Kapitel 4: Briefe mit Klasse scrlttr2 oder Paket scrletter 175

Abbildung 4.1.: Genereller Auf-bau eines Briefdokuments mitbeliebig vielen einzelnen Brie-fen (den Aufbau eines einzelnenBriefs zeigt Abbildung 4.2)

\documentclass[...]{scrlttr2}. . .

Einstellungen für alle Briefe. . .\begin{document}. . .

Einstellungen für alle Briefe. . .

\begin{letter}{Empfänger }. . .

Inhalt eines einzelnen Briefes. . .\end{letter}

...

\end{document}

Variablen oder sonstige Textangaben beinhalten, sollten nach \begin{document} vorgenom-men werden. Dies empfiehlt sich umso mehr, wenn das Babel-Paket (siehe [BB13]) verwendetwird oder sprachabhängige Variablen von scrlttr2 oder scrletter verändert werden sollen.Der Abschluss besteht in der Regel nur aus \end{document}. Natürlich können Sie dort

aber auch zusätzliche Kommentare einfügen.Wie in Abbildung 4.2 verdeutlicht wird, bestehen die einzelnen Briefe wiederum aus einer

Einleitung, dem eigentlichen Brieftext und einem Schlussteil. In der Einleitung werden alleEinstellungen vorgenommen, die nur für diesen einen Brief gelten sollen. Entscheidend isthierbei, dass diese Einleitung immer mit \opening endet. Ebenso beginnt der Schlussteilimmer mit \closing. Gegebenenfalls können die Argumente Anrede und Grußformel derbeiden Anweisungen leer bleiben, die Anweisungen müssen jedoch gesetzt werden und habenimmer ein Argument.Es soll an dieser Stelle nicht verschwiegen werden, dass zwischen den einzelnen Briefen wei-

tere Einstellungen getroffen werden können. Diese gelten dann für alle nachfolgenden Briefe.Um Briefdokumente übersichtlich und wartbar zu halten, sollte man sich jedoch gut überle-gen, ob man zwischen die Briefe tatsächlich weitere generelle Einstellungen mit beschränkterGültigkeit setzen will. Ich kann dies nicht empfehlen. Dagegen spricht bei Verwendung vonscrletter2 nichts dagegen, vor, zwischen oder nach Briefen weitere Dokumentteile einzufügen,die nicht im Briefkontext stehen sollen. So kann man beispielsweise Anschreiben und Lebens-lauf in einem Dokument zusammenfassen.

Kapitel 4: Briefe mit Klasse scrlttr2 oder Paket scrletter 176

Abbildung 4.2.: Genereller Auf-bau eines einzelnen Briefes in-nerhalb eines Briefdokuments(siehe Abbildung 4.1)

\begin{letter}[Optionen ]{Empfänger }. . .

Einstellungen für diesen Brief. . .\opening{Anrede }

. . .Brieftext

. . .

\closing{Grußformel }\ps. . .

Postscriptum. . .\encl{Anlagen }\cc{Verteiler }\end{letter}

\begin{letter}[Optionen ]{Empfänger } . . . \end{letter}Die Briefumgebung letter ist einer der zentralen Dreh- und Angelpunkte der Briefklasseund des Briefpakets. Als Besonderheit kann man bei scrlttr2 und scrletter der Briefumgebungzusätzliche Optionen mit auf den Weg geben. Diese werden dann intern per \KOMAoptions-Anweisung ausgeführt.Der Empfänger wird als obligatorischer Parameter an die Umgebung übergeben. Dabei

dient der doppelte Backslash als Trennzeichen zwischen einzelnen Teilen der Anschrift. Dieseeinzelnen Teile werden im Anschriftfeld als einzelne Zeilen ausgegeben. Dennoch sollte derdoppelte Backslash hier nicht als fester Zeilenumbruch verstanden werden. Absätze, vertikalerLeerraum und Ähnliches sind in der Anschrift nicht erlaubt. Sie können zu unerwartetenEffekten und Fehlermeldungen führen. Dies ist übrigens bei der Standardbriefklasse genauso.

Beispiel: Angenommen, jemand wollte einen Brief an Petra Mustermann schreiben. Ein mi-nimalistisches Briefdokument dafür würde so aussehen:\documentclass[version=last]{scrlttr2}\usepackage[ngerman]{babel}\begin{document}\begin{letter}{Petra Mustermann\\

Vor dem Berg 1\\12345 Musterhausen}

\end{letter}\end{document}

Kapitel 4: Briefe mit Klasse scrlttr2 oder Paket scrletter 177

Allerdings würde dabei noch keinerlei Ausgabe entstehen. Es würde noch nichteinmal die Anschrift auf dem Briefbogen ausgegeben. Warum das so ist, erfahrenSie bei der Erklärung zur Anweisung \opening auf Seite 178.

Briefev3.27 werden immer einspaltig und ohne vertikalen Ausgleich gesetzt. Letzteres kann manmit Hilfe von \AtBeginLetter und der in Abschnitt 3.4, Seite 60 erklärten Anweisungen\flushbottom ändern.

\AtBeginLetter{Anweisungen }\AtEndLetter{Anweisungen }

Wie in [Tea06] erwähnt, gibt es bei LATEX die Möglichkeit, zu bestimmten Gelegenheitenwährend des LATEX-Laufs eines Dokuments zusätzliche Anweisungen ausführen zu lassen.Zu diesem Zweck stellt der LATEX-Kern beispielsweise die Anweisungen \AtEndOfClass und\AtBeginDocument zur Verfügung. Man nennt solche Eingriffspunkte auch hooks, also Ha-ken. Die Klasse scrlttr2 und das Paket scrletter fügen zwei weitere Haken hinzu, die mit\AtBeginLetter und \AtEndLetterv2.95 mit Inhalt versehen werden können. Wie man schon dar-an erkennt, dass die LATEX-Kern-Anweisungen für Haken nicht in [Tea05b] sondern in [Tea06]dokumentiert sind, sind diese Anweisungen eigentlich eher für Paket- und Klassenautoren ge-dacht. Bei der Briefklasse und dem Briefpaket kann es jedoch sinnvolle Anwendungen für diebeiden neuen Haken auch auf Benutzerebene geben. Das folgende Beispiel zeigt dies.

Beispiel: Angenommen, Sie haben mehrere Briefe in einem Dokument. Sie verwenden außer-dem eine eigene Anweisung, um in den Briefen einen Fragebogen zu setzen. Dabeiwerden die Fragen automatisch mit Hilfe eines Zählers nummeriert. Da KOMA-Script dieser Zähler nicht bekannt ist, würde er auch im Gegensatz etwa zur Sei-tenzahl am Anfang eines neuen Briefes nicht zurückgesetzt. Wenn jeder Brief zehnFragen beinhaltet, hätte damit die erste Frage im fünften Brief die Nummer 41 stattder Nummer 1. Sie lösen das, indem Sie KOMA-Script mitteilen, dass am Anfangjedes Briefes der Zähler zurückgesetzt werden soll:\newcounter{Frage}\newcommand{\Frage}[1]{%\par\refstepcounter{Frage}%\noindent\begin{tabularx}{\textwidth}{l@{}X}\theFrage:~ & #1\\

\end{tabularx}%}%\AtBeginLetter{\setcounter{Frage}{0}}

Damit hat dann auch die erste Frage im 1001. Brief wieder die Nummer Eins. Diehier angegebene Definition benötigt übrigens das tabularx-Paket (siehe [Car99b]).

Kapitel 4: Briefe mit Klasse scrlttr2 oder Paket scrletter 178

letter\thisletter\letterlastpage

Fürv3.19 den Fall, dass sich mehrere Briefe in einem Dokument befinden, werden die Briefe internvon KOMA-Script durchnummeriert. Hierfür ist seit Version 3.19 der Zähler letter definiert,der mit jedem \begin{letter} referenzierbar um eins erhöht wird.

Beispiel: Kommen wir auf das Beispiel zu \AtBeginLetter zurück. Statt den Zähler explizitinnerhalb von \begin{letter} zurückzusetzen, kann dies auch implizit erfolgen,indem der Zähler Frage abhängig von letter definiert wird:\newcounter{Frage}[letter]\newcommand{\Frage}[1]{%

\par\refstepcounter{Frage}%\noindent\begin{tabularx}{\textwidth}{l@{}X}\theFrage:~ & #1\\

\end{tabularx}%}%

Damit wird der Zähler automatisch zu Beginn jedes Briefs wieder auf Null zurückgesetzt, so dass die erste Frage in jedem Brief wieder mit der Nummer Eins beginnt.

Will man sich den aktuellen Wert von letter ausgeben lassen, so ist das wie gewohntmit \theletter möglich. Wie bereits erwähnt, ist der Zähler aber auch referenzierbar. Dasbedeutet, man könnte am Anfang eines Briefes mit \label{Labelname } ein Label setzen undmit \ref{Labelname } dann an beliebiger Stelle im Dokument darauf verweisen. Innerhalbdes Briefes selbst erhält man dasselbe Ergebnis auch ganz ohne Label mit \thisletter.Für Label innerhalb von Serienbriefen ist es notwendig, diesen einen über alle Briefe hinweg

eindeutigen Namen zu geben. Auch dafür kann \thisletter verwendet werden. Intern arbeitetKOMA-Script für diesen Zweck ebenfalls mit \thisletter, um auf der letzten Seite eines jedenBriefes ein Label zu setzen. Dadurch ist es möglich, mit \letterlastpage jederzeit innerhalbdes Briefes die Nummer der letzten Seite des Briefes auszugeben. Da \letterlastpage über\label und \pageref arbeitet, ist die Ausgabe allerdings erst nach mehreren LATEX-Läufen –meist zwei oder drei – gültig. Achten Sie gegebenenfalls auf entsprechende Rerun-Meldungenin der Terminal-Ausgabe oder der log-Datei.

\opening{Anrede }

Dies ist eine der wichtigsten Anweisungen in Briefen. Vordergründig wird damit die Anrede ,beispielsweise »Sehr geehrte Frau . . . «, gesetzt. Tatsächlich setzt diese Anweisung aber auchalle Elemente des Briefbogens wie die Faltmarken, den Briefkopf, die Anschrift, die Absende-rergänzung, die Geschäftszeile, den Titel, den Betreff und den Seitenfuß. Kurz gesagt: ohne

Kapitel 4: Briefe mit Klasse scrlttr2 oder Paket scrletter 179

Abbildung 4.3.: Ergebnis eines minimalistischen Briefes nurmit Anschrift und Anrede (Datum und Faltmarken ent-stammen den Voreinstellungen für DIN-Briefe)

Petra MustermannVor dem Berg 112345 Musterhausen

12. Oktober 2019

Liebe Vereinsvorsitzende,

Anrede kein Brief. Soll tatsächlich einmal ein Brief ohne Anrede gesetzt werden, so muss ebendas Argument von \opening leer bleiben.

Beispiel: Kommen wir auf das Beispiel von Seite 176 zurück. Wird dieses um eine Anredeergänzt, dann ergibt sich aus\documentclass[version=last]{scrlttr2}\usepackage[ngerman]{babel}\begin{document}\begin{letter}{%

Petra Mustermann\\Vor dem Berg 1\\12345 Musterhausen%

}\opening{Liebe Vereinsvorsitzende,}\end{letter}\end{document}

der Briefbogen von Abbildung 4.3.

Kapitel 4: Briefe mit Klasse scrlttr2 oder Paket scrletter 180

\closing{Grußfloskel }

Mit der Anweisung \closing wird in erster Linie die Grußfloskel gesetzt. Diese kann auchmehrzeilig sein. Die einzelnen Zeilen sollten dann mit doppeltem Backslash voneinander ge-trennt werden. Absätze innerhalb der Grußfloskel sind jedoch nicht gestattet.Darüber hinaus setzt diese Anweisung aber auch noch gleich den Inhalt der Variablen

signature als Signatur. Näheres zur Signatur und deren Konfiguration ist Abschnitt 4.20ab Seite 238 zu entnehmen.

Beispiel: Erweitern wir unser Beispiel um einige Zeilen Brieftext und eine Grußfloskel zu:\documentclass[version=last]{scrlttr2}\usepackage[ngerman]{babel}\begin{document}\begin{letter}{%

Petra Mustermann\\Vor dem Berg 1\\12345 Musterhausen%

}\opening{Liebe Vereinsvorsitzende,}seit einem Jahr gab es keine Mitgliederversammlungmehr. Ich erinnere daran, dass unsere Satzung einesolche jedes halbe Jahr vorsieht. Ich fordere denVorstand daher auf, umgehend eine solche inAngriff zu nehmen.\closing{In Erwartung einer Einladung}\end{letter}\end{document}

Damit sieht das Ergebnis wie in Abbildung 4.4 aus.

\ps

Diese Anweisung schaltet lediglich auf das Postskriptum um. Dazu wird ein neuer Absatz be-gonnen und ein vertikaler Abstand – in der Regel zur Signatur – eingefügt. Auf die Anweisung\ps kann beliebiger Text folgen. Dabei muss der Anwender auch selbst entscheiden, ob er denNachsatz etwa mit der Abkürzung »PS:«, die übrigens ohne Punkt gesetzt wird, beginnen will.KOMA-Script setzt diese Abkürzung weder automatisch noch optional.

Beispiel: Unser Beispielbrief, um ein Postskriptum erweitert,\documentclass[version=last]{scrlttr2}\usepackage[ngerman]{babel}\begin{document}\begin{letter}{%

Petra Mustermann\\

Kapitel 4: Briefe mit Klasse scrlttr2 oder Paket scrletter 181

Abbildung 4.4.: Ergebnis eines kleinen Briefes mit An-schrift, Anrede, Text und Grußfloskel (Datum und Faltmar-ken entstammen den Voreinstellungen für DIN-Briefe)

Petra MustermannVor dem Berg 112345 Musterhausen

12. Oktober 2019

Liebe Vereinsvorsitzende,

seit einem Jahr gab es keine Mitgliederversammlung mehr. Ich erinnere daran, dassunsere Satzung eine solche jedes halbe Jahr vorsieht. Ich fordere den Vorstand daherauf, umgehend eine solche in Angriff zu nehmen.

In Erwartung einer Einladung

Vor dem Berg 1\\12345 Musterhausen%

}\opening{Liebe Vereinsvorsitzende,}seit einem Jahr gab es keine Mitgliederversammlungmehr. Ich erinnere daran, dass unsere Satzung einesolche jedes halbe Jahr vorsieht. Ich fordere denVorstand daher auf, umgehend eine solche inAngriff zu nehmen.\closing{In Erwartung einer Einladung}\ps PS: Ich hoffe, Du nimmst mir das nicht krumm.\end{letter}\end{document}

sieht dann wie in Abbildung 4.5 aus.

Als Briefe noch von Hand geschrieben wurden, war das Postskriptum sehr beliebt. Es handeltesich bei diesen Nachsätzen ursprünglich um Angaben, die im eigentlichen Brief vergessen wurden.Bei Briefen, die mit LATEX geschrieben werden, ist es natürlich einfach, Vergessenes nachträglich inden Brief einzuarbeiten. Heutzutage verwendet man das Postskriptum dagegen eher für Hinweise,die mit dem eigentlichen Briefinhalt wenig zu tun haben.

Kapitel 4: Briefe mit Klasse scrlttr2 oder Paket scrletter 182

Abbildung 4.5.: Ergebnis eines kleinen Briefes mit An-schrift, Anrede, Text, Grußfloskel und Postskriptum (Da-tum und Faltmarken entstammen den Voreinstellungen fürDIN-Briefe)

Petra MustermannVor dem Berg 112345 Musterhausen

12. Oktober 2019

Liebe Vereinsvorsitzende,

seit einem Jahr gab es keine Mitgliederversammlung mehr. Ich erinnere daran, dassunsere Satzung eine solche jedes halbe Jahr vorsieht. Ich fordere den Vorstand daherauf, umgehend eine solche in Angriff zu nehmen.

In Erwartung einer Einladung

PS: Ich hoffe, Du nimmst mir das nicht krumm.

\cc{Verteiler }\setkomavar{ccseparator}[Bezeichnung ]{Inhalt }

Ein Verteiler kann mit der Anweisung \cc gesetzt werden. Der Verteiler wird der An-weisung dabei als Argument übergeben. Wenn der Inhalt der Variablen ccseparator nichtleer ist, wird dem Verteiler die Bezeichnung und der Inhalt dieser Variablen vorange-stellt. Der Verteiler selbst wird dann um die entsprechende Breite eingerückt ausgegeben.Es empfiehlt sich, den Verteiler \raggedright zu setzen und die einzelnen Angaben durchdoppelten Backslash voneinander zu trennen.

Beispiel: Der Beispielbrief soll dieses Mal nicht nur an die Vorsitzende, sondern mit Verteilerauch an alle Mitglieder des Vereins gehen:\documentclass[version=last]{scrlttr2}\usepackage[ngerman]{babel}\begin{document}\begin{letter}{%

Petra Mustermann\\Vor dem Berg 1\\12345 Musterhausen%

}\opening{Liebe Vereinsvorsitzende,}seit einem Jahr gab es keine Mitgliederversammlung

Kapitel 4: Briefe mit Klasse scrlttr2 oder Paket scrletter 183

Abbildung 4.6.: Ergebnis eines kleinen Briefes mit An-schrift, Anrede, Text, Grußfloskel, Postskriptum und Ver-teiler (Datum und Faltmarken entstammen den Voreinstel-lungen für DIN-Briefe)

Petra MustermannVor dem Berg 112345 Musterhausen

12. Oktober 2019

Liebe Vereinsvorsitzende,

seit einem Jahr gab es keine Mitgliederversammlung mehr. Ich erinnere daran, dassunsere Satzung eine solche jedes halbe Jahr vorsieht. Ich fordere den Vorstand daherauf, umgehend eine solche in Angriff zu nehmen.

In Erwartung einer Einladung

PS: Ich hoffe, Du nimmst mir das nicht krumm.

Verteiler: Die VereinsvorsitzendeAlle Mitglieder

mehr. Ich erinnere daran, dass unsere Satzung einesolche jedes halbe Jahr vorsieht. Ich fordere denVorstand daher auf, umgehend eine solche inAngriff zu nehmen.\closing{In Erwartung einer Einladung}\ps PS: Ich hoffe, Du nimmst mir das nicht krumm.\cc{Die Vereinsvorsitzende\\Alle Mitglieder}\end{letter}\end{document}

Das Ergebnis ist in Abbildung 4.6 zu sehen.

Vor dem Verteiler wird automatisch ein Abstand eingefügt.

\encl{Anlagen }\setkomavar{enclseparator}[Bezeichnung ]{Inhalt }

Die Anlagen sind genauso aufgebaut wie der Verteiler. Der einzige Unterschied besteht darin,dass die Einleitung hier von der Bezeichnung und dem Inhalt der Variablen enclseparatorbestimmt wird.

Beispiel: Dem Beispielbrief wird nun als Anlage noch ein Auszug aus der Satzung beigefügt.Da es nur eine Anlage gibt, wird auch die voreingestellte Bezeichnung passendgeändert:

Kapitel 4: Briefe mit Klasse scrlttr2 oder Paket scrletter 184

\documentclass[version=last]{scrlttr2}\usepackage[ngerman]{babel}\begin{document}\begin{letter}{%

Petra Mustermann\\Vor dem Berg 1\\12345 Musterhausen%

}\opening{Liebe Vereinsvorsitzende,}seit einem Jahr gab es keine Mitgliederversammlungmehr. Ich erinnere daran, dass unsere Satzung einesolche jedes halbe Jahr vorsieht. Ich fordere denVorstand daher auf, umgehend eine solche inAngriff zu nehmen.\closing{In Erwartung einer Einladung}\ps PS: Ich hoffe, Du nimmst mir das nicht krumm.\setkomavar*{enclseparator}{Anlage}\encl{Auszug aus der Satzung, in dem dieMitgliederversammlungen geregelt sind}

\cc{Die Vereinsvorsitzende\\Alle Mitglieder}\end{letter}\end{document}

Das Ergebnis ist in Abbildung 4.7 zu sehen.

4.8. Wahl der Schriftgröße für das Dokument

Für scrlttr2 gilt sinngemäß, was in Abschnitt 3.5 geschrieben wurde. Paket scrletter bietet selbstscrlttr2hingegen keine Schriftgrößenauswahl, sondern verlässt sich diesbezüglich vollständig auf dieverwendete Klasse. Falls Sie also Abschnitt 3.5 bereits gelesen und verstanden haben, könnenSie beim Beispiel am Ende dieses Abschnitts auf Seite 185 fortfahren. Wenn Sie dagegenscrletter verwenden, können Sie auch direkt zu Abschnitt 4.9 auf Seite 187 springen.

fontsize=Größe

Während von den Standardklassen und den meisten anderen Klassen nur eine sehr beschränktescrlttr2Anzahl an Schriftgrößen unterstützt wird, bietet scrlttr2 die Möglichkeit, jede beliebige Größefür die Grundschrift anzugeben. Dabei kann als Einheit für die Größe auch jede bekannte TEX-Einheit verwendet werden. Wird die Größe ohne Einheit angegeben, so wird pt als Einheitangenommen.Wird die Option innerhalb des Dokuments gesetzt, so werden ab diesem Punkt die

Grundschriftgröße und die davon abhängigen Schriftgrößen der Befehle \tiny, \scriptsize,\footnotesize, \small, \normalsize, \large, \Large, \LARGE, \huge und \Huge geändert.

Kapitel 4: Briefe mit Klasse scrlttr2 oder Paket scrletter 185

Abbildung 4.7.: Ergebnis eines kleinen Briefes mit An-schrift, Anrede, Text, Grußfloskel, Postskriptum, Anlagenund Verteiler (Datum und Faltmarken entstammen denVoreinstellungen für DIN-Briefe)

Petra MustermannVor dem Berg 112345 Musterhausen

12. Oktober 2019

Liebe Vereinsvorsitzende,

seit einem Jahr gab es keine Mitgliederversammlung mehr. Ich erinnere daran, dassunsere Satzung eine solche jedes halbe Jahr vorsieht. Ich fordere den Vorstand daherauf, umgehend eine solche in Angriff zu nehmen.

In Erwartung einer Einladung

PS: Ich hoffe, Du nimmst mir das nicht krumm.

Anlage: Auszug aus der Satzung, in dem die Mitgliederversammlungen geregelt sind

Verteiler: Die VereinsvorsitzendeAlle Mitglieder

Das kann beispielsweise dann nützlich sein, wenn ein weiterer Brief insgesamt in einer kleinerenSchriftgröße gesetzt werden soll.Es wird darauf hingewiesen, dass bei Verwendung nach dem Laden der Klasse die Auf-

teilung zwischen Satzspiegel und Rändern nicht automatisch neu berechnet wird (siehe\recalctypearea, Abschnitt 2.6, Seite 41). Wird diese Neuberechnung jedoch vorgenommen,so erfolgt sie auf Basis der jeweils gültigen Grundschriftgröße. Die Auswirkungen des Wechselsder Grundschriftgröße auf zusätzlich geladene Pakete oder die verwendete Klasse sind vondiesen Paketen und der Klasse abhängig. Dabei sind Fehler möglich, die nicht als Fehler vonKOMA-Script betrachtet werden, und auch die Klasse scrlttr2 selbst passt nicht alle Längenan eine nach dem Laden der Klasse vorgenommene Änderung der Grundschriftgröße an.Diese Option sollte keinesfalls als Ersatz für \fontsize (siehe [Tea05a]) missverstanden

werden. Sie sollte auch nicht anstelle einer der von der Grundschrift abhängigen Schriftgrö-ßenanweisungen, \tiny bis \Huge, verwendet werden! Bei scrlttr2 ist fontsize=12pt vorein-gestellt.

Beispiel: Angenommen, bei dem Verein aus dem Beispielbrief handelt es sich um die »Freundeungesunder Schriftgrößen«, weshalb er in 14 pt statt in 12 pt gesetzt werden soll.Dies kann durch eine kleine Änderung der ersten Zeile erreicht werden:\documentclass[version=last,fontsize=14pt]{scrlttr2}\usepackage[ngerman]{babel}

Kapitel 4: Briefe mit Klasse scrlttr2 oder Paket scrletter 186

\begin{document}\begin{letter}{%

Petra Mustermann\\Vor dem Berg 1\\12345 Musterhausen%

}\opening{Liebe Vereinsvorsitzende,}seit einem Jahr gab es keine Mitgliederversammlungmehr. Ich erinnere daran, dass unsere Satzung einesolche jedes halbe Jahr vorsieht. Ich fordere denVorstand daher auf, umgehend eine solche inAngriff zu nehmen.\closing{In Erwartung einer Einladung}\ps PS: Ich hoffe, Du nimmst mir das nicht krumm.\setkomavar*{enclseparator}{Anlage}\encl{Auszug aus der Satzung, in dem dieMitgliederversammlungen geregelt sind}

\cc{Die Vereinsvorsitzende\\Alle Mitglieder}\end{letter}\end{document}

Alternativ könnte die Option auch als optionales Argument von letter gesetztwerden:\documentclass[version=last]{scrlttr2}\usepackage[ngerman]{babel}\begin{document}\begin{letter}[fontsize=14pt]{%

Petra Mustermann\\Vor dem Berg 1\\12345 Musterhausen%

}\opening{Liebe Vereinsvorsitzende,}seit einem Jahr gab es keine Mitgliederversammlungmehr. Ich erinnere daran, dass unsere Satzung einesolche jedes halbe Jahr vorsieht. Ich fordere denVorstand daher auf, umgehend eine solche inAngriff zu nehmen.\closing{In Erwartung einer Einladung}\ps PS: Ich hoffe, Du nimmst mir das nicht krumm.\setkomavar*{enclseparator}{Anlage}\encl{Auszug aus der Satzung, in dem die

Mitgliederversammlungen geregelt sind}\cc{Die Vereinsvorsitzende\\Alle Mitglieder}\end{letter}\end{document}

Kapitel 4: Briefe mit Klasse scrlttr2 oder Paket scrletter 187

Petra MustermannVor dem Berg 112345 Musterhausen

12. Oktober 2019

Liebe Vereinsvorsitzende,

seit einem Jahr gab es keine Mitgliederversammlung mehr. Ich erinneredaran, dass unsere Satzung eine solche jedes halbe Jahr vorsieht. Ich for-dere den Vorstand daher auf, umgehend eine solche in Angriff zu nehmen.

In Erwartung einer Einladung

PS: Ich hoffe, Du nimmst mir das nicht krumm.

Anlage: Auszug aus der Satzung, in dem die Mitgliederversammlungengeregelt sind

Verteiler: Die VereinsvorsitzendeAlle Mitglieder

Petra MustermannVor dem Berg 112345 Musterhausen

12. Oktober 2019

Liebe Vereinsvorsitzende,

seit einem Jahr gab es keine Mitgliederversammlung mehr. Ich erinnere daran,dass unsere Satzung eine solche jedes halbe Jahr vorsieht. Ich fordere den Vor-stand daher auf, umgehend eine solche in Angriff zu nehmen.

In Erwartung einer Einladung

PS: Ich hoffe, Du nimmst mir das nicht krumm.

Anlage: Auszug aus der Satzung, in dem die Mitgliederversammlungen geregeltsind

Verteiler: Die VereinsvorsitzendeAlle Mitglieder

Abbildung 4.8.: Ergebnis eines kleinen Briefes mit Anschrift, Anrede, Text, Grußfloskel, Postskriptum,Anlagen, Verteiler und ungesund großer Schrift (Datum und Faltmarken entstammenden Voreinstellungen für DIN-Briefe); links wurde die Schriftgröße als optionales Ar-gument von letter gesetzt, rechts als optionales Argument von \documentclass

Da bei dieser späten Änderung der Schriftgröße der Satzspiegel nicht geändert wird,unterscheiden sich die beiden Ergebnisse in Abbildung 4.8.

4.9. Textauszeichnungen

Es gilt sinngemäß, was in Abschnitt 3.6 geschrieben wurde. Falls Sie also Abschnitt 3.6 bereitsgelesen und verstanden haben, können Sie sich auf Tabelle 4.2, Seite 188 beschränken undansonsten auf Seite 191 mit Abschnitt 4.10 fortfahren.LATEX verfügt über eine ganze Reihe von Anweisungen zur Textauszeichnung. Näheres zu den

normalerweise definierten Möglichkeiten ist [DGS+12], [Tea05b] und [Tea05a] zu entnehmen.

Kapitel 4: Briefe mit Klasse scrlttr2 oder Paket scrletter 188

\textsuperscript{Text }\textsubscript{Text }

Im LATEX-Kern ist bereits die Anweisung \textsuperscript definiert, mit der Text höhergestellt werden kann. Eine entsprechende Anweisung, um Text tief statt hoch zu stellen, bietetLATEX erst seit Version 2015/01/01. Für ältere LATEX-Versionen definiert KOMA-Script daher\textsubscript. Ein Anwendungsbeispiel finden Sie in Abschnitt 3.6, Seite 62.

\setkomafont{Element }{Befehle }\addtokomafont{Element }{Befehle }\usekomafont{Element }

Mit Hilfe der Anweisungen \setkomafont und \addtokomafont ist es möglich, die Befehlefestzulegen, mit denen die Schrift eines bestimmten Element s umgeschaltet wird. Theore-tisch könnten als Befehle alle möglichen Anweisungen einschließlich Textausgaben verwen-det werden. Sie sollten sich jedoch unbedingt auf solche Anweisungen beschränken, mit de-nen wirklich nur Schriftattribute umgeschaltet werden. In der Regel werden dies Befehle wie\rmfamily, \sffamily, \ttfamily, \upshape, \itshape, \slshape, \scshape, \mdseries,\bfseries, \normalfont oder einer der Befehle \Huge, \huge, \LARGE, \Large, \large,\normalsize, \small, \footnotesize, \scriptsize und \tiny sein. Die Erklärung zu diesenBefehlen entnehmen Sie bitte [DGS+12], [Tea05b] oder [Tea05a]. Auch Farbumschaltungen wie\normalcolor sind möglich (siehe [Car17] und [Ker07]). Die Verwendung anderer Anweisun-gen, inbesondere solcher, die Umdefinierungen vornehmen oder zu Ausgaben führen, ist nichtvorgesehen. Seltsames Verhalten ist in diesen Fällen möglich und stellt keinen Fehler dar.

Mit \setkomafont wird die Schriftumschaltung eines Elements mit einer völlig neuen Defi-nition versehen. Demgegenüber wird mit \addtokomafont die existierende Definition lediglicherweitert. Es wird empfohlen, beide Anweisungen nicht innerhalb des Dokuments, sondernnur in der Dokumentpräambel zu verwenden. Beispiele für die Verwendung entnehmen Siebitte den Abschnitten zu den jeweiligen Elementen. Namen und Bedeutung der einzelnen Ele-mente sind in Tabelle 4.2 aufgelistet. Die Voreinstellungen sind den jeweiligen Abschnitten zuentnehmen.Mit der Anweisung \usekomafont kann die aktuelle Schriftart auf die für das angegebe-

ne Element umgeschaltet werden. Ein allgemeines Beispiel für die Anwendung sowohl von\setkomafont als auch \usekomafont finden Sie in Abschnitt 3.6, Seite 63.

Tabelle 4.2.: Elemente, deren Schrift bei der Klasse scrlttr2 oder dem Paket scrletter mit \setkomafontund \addtokomafont verändert werden kann

addresseeName und Anschrift im Anschriftfenster (Abschnitt 4.10, Seite 206)

. . .

Kapitel 4: Briefe mit Klasse scrlttr2 oder Paket scrletter 189

Tabelle 4.2.: Elemente, deren Schrift verändert werden kann (Fortsetzung)

backaddressRücksendeadresse für einen Fensterbriefumschlag (Abschnitt 4.10, Seite 206)

descriptionlabelLabel, also das optionale Argument von \item, in einer description-Umgebung(Abschnitt 4.16, Seite 235)

foldmarkFaltmarke auf dem Briefpapier; ermöglicht Änderung der Linienfarbe (Ab-schnitt 4.10, Seite 192)

footnoteMarke und Text einer Fußnote (Abschnitt 4.15, Seite 231)

footnotelabelMarke einer Fußnote; Anwendung erfolgt nach dem Element footnote (Ab-schnitt 4.15, Seite 231)

footnotereferenceReferenzierung der Fußnotenmarke im Text (Abschnitt 4.15, Seite 231)

footnoteruleLiniev3.07 über dem Fußnotenapparat (Abschnitt 4.15, Seite 233)

fromaddressAbsenderadresse im Briefkopf (Abschnitt 4.10, Seite 196)

fromnameName des Absenders im Briefkopf abweichend von fromaddress (Abschnitt 4.10,Seite 196)

fromruleLinie im Absender im Briefkopf; gedacht für Farbänderungen (Abschnitt 4.10, Sei-te 196)

labelinglabelLabel, also das optionale Argument der \item-Anweisung, und Trennzeichen, al-so das optionale Argument der labeling-Umgebung, in einer labeling-Umgebung(siehe Abschnitt 4.16, Seite 235)

. . .

Kapitel 4: Briefe mit Klasse scrlttr2 oder Paket scrletter 190

Tabelle 4.2.: Elemente, deren Schrift verändert werden kann (Fortsetzung)

labelingseparatorTrennzeichen, also das optionale Argument der labeling-Umgebung, in einerlabeling-Umgebung; Anwendung erfolgt nach dem Element labelinglabel (sie-he Abschnitt 4.16, Seite 235)

pagefootwird nach dem Element pageheadfoot für den mit Variable nextfoot definiertenSeitenfuß verwendet oder wenn das Paket scrlayer-scrpage geladen ist (Kapitel 5,Seite 262)

pageheadalternative Bezeichnung für pageheadfoot

pageheadfootSeitenkopf und Seitenfuß bei allen von KOMA-Script definierten Seitenstilen (Ab-schnitt 3.12, Seite 227)

pagenumberSeitenzahl im Kopf oder Fuß der Seite (Abschnitt 3.12, Seite 227)

paginationalternative Bezeichnung für pagenumber

placeanddatev3.12 Ort und Datum, falls statt einer Geschäftszeile nur eine Datumszeile verwendet wird

(Abschnitt 4.10, Seite 215)

refnameBezeichnung der Felder in der Geschäftszeile (Abschnitt 4.10, Seite 214)

refvalueWerte der Felder in der Geschäftszeile (Abschnitt 4.10, Seite 214)

specialmailVersandart im Anschriftfenster (Abschnitt 4.10, Seite 206)

lettersubjectv3.17 Betreff in der Brieferöffnung (Abschnitt 4.10, Seite 217)

lettertitlev3.17 Titel in der Brieferöffnung (Abschnitt 4.10, Seite 216)

. . .

Kapitel 4: Briefe mit Klasse scrlttr2 oder Paket scrletter 191

Tabelle 4.2.: Elemente, deren Schrift verändert werden kann (Fortsetzung)

toaddressAbweichung vom Element addressee für die Anschrift (ohne Name) des Empfängersim Anschriftfeld (Abschnitt 4.10, Seite 206)

tonameAbweichung vom Element addressee für den Namen des Empfängers im Anschrift-feld (Abschnitt 4.10, Seite 206)

\usefontofkomafont{Element }\useencodingofkomafont{Element }\usesizeofkomafont{Element }\usefamilyofkomafont{Element }\useseriesofkomafont{Element }\useshapeofkomafont{Element }

Manchmalv3.12 werden in der Schrifteinstellung eines Elements auch Dinge vorgenommen, die mitder Schrift eigentlich gar nichts zu tun haben, obwohl dies ausdrücklich nicht empfohlen wird.Soll dann nur die Schrifteinstellung, aber keine dieser zusätzlichen Einstellungen ausgeführtwerden, so kann statt \usekomafont die Anweisung \usefontofkomafont verwendet werden.Diese Anweisung übernimmt nur die Schriftgröße und den Grundlinienabstand, die Codierung(engl. encoding), die Familie (engl. family), die Strichstärke oder Ausprägung (engl. font series)und die Form oder Ausrichtung (engl. font shape).Mit den übrigen Anweisungen können auch einzelne Schriftattribute übernommen werden.

Dabei übernimmt \usesizeofkomafont sowohl die Schriftgröße als auch den Grundlinienab-stand.Diese Befehle sollten jedoch nicht als Legitimation dafür verstanden werden, in die Schrift-

einstellungen der Elemente beliebige Anweisungen einzufügen. Das kann nämlich sehr schnellzu Fehlern führen (siehe Abschnitt 21.5, Seite 505).

4.10. Briefbogen

Der Briefbogen ist die erste Seite und damit das Aushängeschild jedes Briefes. Im geschäft-lichen Bereich handelt es sich dabei oft um einen Vordruck, auf dem viele Elemente, wieein Briefkopf mit Absenderinformationen und Logo, bereits enthalten sind. Bei KOMA-Scriptsind diese Elemente frei positionierbar. Damit ist es nicht nur möglich, einen Briefbogen direktnachzubilden, sondern auch vorgesehene Felder, wie die Anschrift, unmittelbar auszufüllen. Diefreie Positionierbarkeit wird über Pseudolängen (siehe Abschnitt 4.2 ab Seite 169) erreicht.Eine schematische Darstellung des Briefbogens und der dafür verwendeten Variablen ist in

Kapitel 4: Briefe mit Klasse scrlttr2 oder Paket scrletter 192

Tabelle 4.3.: Kombi-nierbare Werte für dieKonfiguration der Falt-marken mit der Optionfoldmarks

B untere, horizontale Faltmarke am linken Rand aktivierenb untere, horizontale Faltmarke am linken Rand deaktivierenH alle horizontalen Faltmarken am linken Rand aktivierenh alle horizontalen Faltmarken am linken Rand deaktivierenL linke, vertikale Faltmarke am oberen Rand aktivierenl linke, vertikale Faltmarke am oberen Rand deaktivierenM mittlere, horizontale Faltmarke am linken Rand aktivierenm mittlere, horizontale Faltmarke am linken Rand deaktivierenP Locher- bzw. Seitenmittenmarke am linken Rand aktivierenp Locher- bzw. Seitenmittenmarke am linken Rand deaktivierenT obere, horizontale Faltmarke am linken Rand aktivierent obere, horizontale Faltmarke am linken Rand deaktivierenV alle vertikalen Faltmarken am oberen Rand aktivierenv alle vertikalen Faltmarken am oberen Rand deaktivieren

Abbildung 4.9 zu finden. Dabei sind die Namen der Variablen zur besseren Unterscheidungvon Anweisungen und deren Argumenten fett gedruckt.Folgeseiten sind vom Briefbogen zu unterscheiden. Folgeseiten im Sprachgebrauch dieser

Anleitung sind alle Briefseiten abgesehen von der ersten.

foldmarks=Einstellung

Falt- oder Falzmarken sind kleine horizontale Striche am linken und kleine vertikale Stricheam oberen Rand. KOMA-Script unterstützt für den Briefbogen derzeit drei konfigurierbarehorizontale und eine konfigurierbare vertikale Faltmarke. Dazu wird noch eine horizontaleLoch- oder Seitenmittenmarke unterstützt, die nicht in der Vertikalen verschoben werdenkann.Mit der Option foldmarks können Faltmarken für eine vertikale Zwei-, Drei- oder Viertei-

lung und eine horizontale Zweiteilung aktiviert oder deaktiviert werden. Die einzelnen Teilemüssen dabei nicht äquidistant sein. Die Positionen von drei der vier horizontalen und dervertikalen Marke sind über Pseudolängen konfigurierbar (siehe Abschnitt 22.1.1 ab Seite 541).Über die Option foldmarks können entweder mit den Standardwerten für einfache Schal-

ter, die in Tabelle 2.5, Seite 42 angegeben sind, alle konfigurierten Faltmarken am linkenund oberen Rand ein- und ausgeschaltet werden, oderv2.97e es kann durch die Angabe eines odermehrerer Buchstaben aus Tabelle 4.3 die Verwendung der einzelnen Faltmarken gezielt kon-figuriert werden. Auch in diesem Fall werden die Faltmarken nur dann angezeigt, wenn dieFaltmarken nicht mit false, off oder no generell abgeschaltet wurden. Die genaue Positionder Faltmarken ist von den Einstellungen des Anwenders beziehungsweise der lco-Dateien(siehe Abschnitt 4.21 ab Seite 241) abhängig. Voreingestellt sind true und TBMPL.

Kapitel 4: Briefe mit Klasse scrlttr2 oder Paket scrletter 193

firstheadfromname, fromaddress, fromphone, fromfax, fromemail, fromurl

firstfoot

backaddressspecialmail

\begin{letter}{Name und Adresse}location

yourref, yourmail, myref, customer, invoice, place, date

title

subject

\opening{Anrede}

Brieftext

\closing{Floskel}

signature

Abbildung 4.9.: Schematische Darstellung des Briefbogens mit den wichtigsten Anweisungen und Va-riablen für die skizzierten Elemente

Kapitel 4: Briefe mit Klasse scrlttr2 oder Paket scrletter 194

Beispiel: Angenommen, Sie wollen alle Faltmarken außer der Lochermarke abschalten. Wenndie Voreinstellung zuvor noch nicht geändert wurde, können Sie das Abschalten wiefolgt erreichen:\KOMAoptions{foldmarks=blmt}

Besteht die Möglichkeit, dass die Voreinstellung bereits geändert wurde, so solltenSie lieber auf Nummer Sicher gehen. Unser Beispiel ist dann entsprechend abzuän-dern.\documentclass[foldmarks=true,foldmarks=blmtP,version=last]{scrlttr2}

\usepackage[ngerman]{babel}\begin{document}\begin{letter}{%

Petra Mustermann\\Vor dem Berg 1\\12345 Musterhausen%

}\opening{Liebe Vereinsvorsitzende,}seit einem Jahr gab es keine Mitgliederversammlungmehr. Ich erinnere daran, dass unsere Satzung einesolche jedes halbe Jahr vorsieht. Ich fordere denVorstand daher auf, umgehend eine solche inAngriff zu nehmen.\closing{In Erwartung einer Einladung}\ps PS: Ich hoffe, Du nimmst mir das nicht krumm.\setkomavar*{enclseparator}{Anlage}\encl{Auszug aus der Satzung, in dem dieMitgliederversammlungen geregelt sind}

\cc{Die Vereinsvorsitzende\\Alle Mitglieder}\end{letter}\end{document}

Das Ergebnis ist in Abbildung 4.10 zu sehen.

Überv2.97c das Element foldmark kann die Farbe der Faltmarken geändert werden. Dazu werden dieAnweisungen \setkomafont und \addtokomafont (siehe Abschnitt 4.9, Seite 188) verwendet.Voreingestellt ist keine Änderung.

enlargefirstpage=Ein-Aus-Wert

Die erste Seite eines Briefes fällt aufgrund der vielen Konsultationselemente, wie dem Briefkopfoder der Anschrift, immer aus dem normalen Satzspiegel. Von scrlttr2 werden Mechanismen be-reitgestellt, um die Höhe und vertikale Ausrichtung von Kopf und Fuß der ersten Seite unabhängigvon den Folgeseiten zu bestimmen. Würde dadurch der Fuß der ersten Seite in den Textbereich

Kapitel 4: Briefe mit Klasse scrlttr2 oder Paket scrletter 195

Abbildung 4.10.: Ergebnis eines kleinen Briefes mit An-schrift, Anrede, Text, Grußfloskel, Postskriptum, Anlagen,Verteiler und Lochermarke (das Datum entstammt den Vor-einstellungen für DIN-Briefe)

Petra MustermannVor dem Berg 112345 Musterhausen

12. Oktober 2019

Liebe Vereinsvorsitzende,

seit einem Jahr gab es keine Mitgliederversammlung mehr. Ich erinnere daran, dassunsere Satzung eine solche jedes halbe Jahr vorsieht. Ich fordere den Vorstand daherauf, umgehend eine solche in Angriff zu nehmen.

In Erwartung einer Einladung

PS: Ich hoffe, Du nimmst mir das nicht krumm.

Anlage: Auszug aus der Satzung, in dem die Mitgliederversammlungen geregelt sind

Verteiler: Die VereinsvorsitzendeAlle Mitglieder

ragen, so wird der Textbereich der ersten Seite automatisch mit Hilfe von \enlargethispageverkleinert.Soll der Textbereich auch automatisch mit \enlargethispage vergrößert werden, falls der

Fuß der ersten Seite dies erlaubt, so kann das mit dieser Option erreicht werden. Es passt dannbestenfalls etwas mehr Text auf die erste Seite. Siehe hierzu auch die Erklärung zur Pseudolän-ge firstfootvpos auf Seite 547. Als Ein-Aus-Wert kann dabei einer der Standardwerte füreinfache Schalter aus Tabelle 2.5, Seite 42 verwendet werden. Voreingestellt ist false.

firsthead=Ein-Aus-Wert

Beiv2.97e KOMA-Script kann mit der Option firsthead gewählt werden, ob der Briefkopf auf demBriefbogen überhaupt gesetzt werden soll. Als Ein-Aus-Wert kann dabei einer der Standard-werte für einfache Schalter aus Tabelle 2.5, Seite 42 verwendet werden. In der Voreinstellungist der Briefkopf aktiviert.

fromalign=Methode

Die Option fromalign bestimmt, wo der Absender auf der ersten Seite platziert werden soll.Neben verschiedenen Platzierungen im Briefkopf gibt es auchv2.97e die Möglichkeit, den Absender inder Absenderergänzung unterzubringen. Gleichzeitig dient diese Option als zentraler Schalter,um die Erweiterungen der Briefkopfgestaltung überhaupt zu aktivieren oder zu deaktivieren.Sind die Erweiterungen deaktiviert, so bleiben die übrigen nachfolgend angegebenen Optionen

Kapitel 4: Briefe mit Klasse scrlttr2 oder Paket scrletter 196

Tabelle 4.4.: Mögliche Werte für Option fromalign zur Platzierung des Absenders auf dem Briefbogen

center, centered, middleAbsender wird innerhalb des Briefkopfes zentriert; ein Logo wird gegebenenfalls amAnfang der erweiterten Absenderangabe platziert; die Erweiterungen der Briefkopf-gestaltung werden aktiviert.

false, no, offStandardgestalt für den Absender wird verwendet; die Erweiterungen der Briefkopf-gestaltung werden deaktiviert.

leftAbsender steht linksbündig im Briefkopf; ein Logo wird gegebenenfalls rechtsbündigplatziert; die Erweiterungen der Briefkopfgestaltung werden aktiviert.

locationleft, leftlocationAbsender steht linksbündig in der Absenderergänzung; ein Logo wird gegebenenfallsdarüber platziert; der Briefkopf wird automatisch deaktiviert, kann aber über Optionfirsthead wieder aktiviert werden.

locationright, rightlocation, locationAbsender steht rechtsbündig in der Absenderergänzung; ein Logo wird gegebenenfallsdarüber platziert; der Briefkopf wird automatisch deaktiviert, kann aber über Optionfirsthead wieder aktiviert werden.

rightAbsender steht rechtsbündig im Briefkopf; ein Logo wird gegebenenfalls linksbündigplatziert; die Erweiterungen der Briefkopfgestaltung werden aktiviert.

ohne Wirkung. Mögliche Werte für fromalign sind Tabelle 4.4 zu entnehmen. Voreingestelltist der Wert left.

fromrule=Position\setkomavar{fromname}[Bezeichnung ]{Inhalt }\setkomavar{fromaddress}[Bezeichnung ]{Inhalt }

Der Name des Absenders wird über die Variable fromname bestimmt. Im Briefkopf wird dabeidie Bezeichnung (siehe auch Tabelle 4.6, Seite 201) nicht gesetzt.Optional kann mit Einstellung fromrule=aftername im erweiterten Briefkopf auf den Na-

men eine horizontale Linie folgen. Alternativ kann die Linie mit fromrule=afteraddressauch unterhalb des kompletten Absenders gesetzt werden. Eine Übersicht über alle möglichenEinstellungen für die Linie bietet Tabelle 4.5. Die Länge der Linie wird über die Pseudolängefromrulewidth bestimmt.In der Voreinstellung ist die Linie im erweiterten Briefkopf nicht aktiviert. Im Standard-

briefkopf wird die Linie immer nach dem Namen gesetzt.

Kapitel 4: Briefe mit Klasse scrlttr2 oder Paket scrletter 197

Tabelle 4.5.: Mögliche Werte für Opti-on fromrule zur Platzierung einer ho-rizontalen Linie im Absender des er-weiterten Briefkopfes von scrlttr2 undscrletter

afteraddress, below, on, true, yesLinie unterhalb des kompletten Absenders

afternameLinie direkt unter dem Namen des Absenders

false, no, offkeine Linie

Unter dem Namen folgt die Anschrift des Absenders. Diese wird über die Variablefromaddress bestimmt. Im Briefkopf wird dabei die Bezeichnung (siehe auch Tabelle 4.6,Seite 201) nicht gesetzt.Die Schrift, die für den kompletten Absender verwendet wird, kann über das Element

fromaddress eingestellt werden. Abweichungen davon können für den Absendernamen überdas Element fromname und für die mit fromrule gesetzte Linie über das Element fromruleeingestellt werden. In der Voreinstellung erfolgt keinerlei Schriftumschaltung. Bei der Linieist die Möglichkeit der Schriftumschaltung hauptsächlich dazu gedacht, die Farbe der Linieändern zu können, um etwa Grau anstelle von Schwarz zu verwenden. Siehe hierzu [Ker07].

Beispiel: Geben wir nun dem Absender aus den bisherigen Beispielen einen Namen.\documentclass[foldmarks=true,foldmarks=blmtP,fromalign=false,version=last]{scrlttr2}

\usepackage[ngerman]{babel}\begin{document}\setkomavar{fromname}{Peter Musterfrau}\setkomavar{fromaddress}{Hinter dem Tal 2\\

54321 Musterheim}\setkomavar{fromphone}{0\,12\,34~56\,78}\setkomavar{fromemail}{[email protected]}\setkomavar{fromlogo}{\includegraphics{musterlogo}}\begin{letter}{%

Petra Mustermann\\Vor dem Berg 1\\12345 Musterhausen%

}\opening{Liebe Vereinsvorsitzende,}seit einem Jahr gab es keine Mitgliederversammlungmehr. Ich erinnere daran, dass unsere Satzung einesolche jedes halbe Jahr vorsieht. Ich fordere denVorstand daher auf, umgehend eine solche inAngriff zu nehmen.\closing{In Erwartung einer Einladung}\ps PS: Ich hoffe, Du nimmst mir das nicht krumm.

Kapitel 4: Briefe mit Klasse scrlttr2 oder Paket scrletter 198

Peter Musterfrau

Hinter dem Tal 254321 Musterheim

Peter Musterfrau, Hinter dem Tal 2, 54321 Musterheim

Petra MustermannVor dem Berg 112345 Musterhausen

12. Oktober 2019

Liebe Vereinsvorsitzende,

seit einem Jahr gab es keine Mitgliederversammlung mehr. Ich erinnere daran, dassunsere Satzung eine solche jedes halbe Jahr vorsieht. Ich fordere den Vorstand daherauf, umgehend eine solche in Angriff zu nehmen.

In Erwartung einer Einladung

Peter Musterfrau

PS: Ich hoffe, Du nimmst mir das nicht krumm.

Anlage: Auszug aus der Satzung, in dem die Mitgliederversammlungen geregelt sind

Verteiler: Die VereinsvorsitzendeAlle Mitglieder

Peter MusterfrauHinter dem Tal 254321 Musterheim

Peter Musterfrau, Hinter dem Tal 2, 54321 Musterheim

Petra MustermannVor dem Berg 112345 Musterhausen

12. Oktober 2019

Liebe Vereinsvorsitzende,

seit einem Jahr gab es keine Mitgliederversammlung mehr. Ich erinnere daran, dassunsere Satzung eine solche jedes halbe Jahr vorsieht. Ich fordere den Vorstand daherauf, umgehend eine solche in Angriff zu nehmen.

In Erwartung einer Einladung

Peter Musterfrau

PS: Ich hoffe, Du nimmst mir das nicht krumm.

Anlage: Auszug aus der Satzung, in dem die Mitgliederversammlungen geregelt sind

Verteiler: Die VereinsvorsitzendeAlle Mitglieder

Abbildung 4.11.: Ergebnis eines kleinen Briefes mit Absender, Anschrift, Anrede, Text, Grußfloskel,Signatur, Postskriptum, Anlagen und Verteiler (Datum und Faltmarken entstammenden Voreinstellungen für DIN-Briefe); links der Standardbriefkopf mit fromalign=false, rechts der erweiterte Briefkopf mit fromalign=center

\setkomavar*{enclseparator}{Anlage}\encl{Auszug aus der Satzung, in dem die

Mitgliederversammlungen geregelt sind}\cc{Die Vereinsvorsitzende\\Alle Mitglieder}\end{letter}\end{document}

Dabei wird zunächst einmal nicht der erweiterte Briefkopf, sondern nur der Stan-dardbriefkopf verwendet. Das Ergebnis ist in Abbildung 4.11 links zu sehen. Im Ver-gleich dazu ist rechts daneben das gleiche Beispiel, jedoch mit Option fromalign=center, also mit den aktivierten Erweiterungen für den Briefkopf, abgebildet. Wiezu sehen ist, hat diese Variante zunächst einmal keine Linie.In Abbildung 4.11 taucht nun auch erstmals eine Signatur unter dem Gruß auf.Diese wird automatisch aus dem Absendername gewonnen. Wie sie konfiguriertwerden kann, ist in Abschnitt 4.20 ab Seite 238 zu finden.Nun soll der Brief mit aktivierter Erweiterung für den Briefkopf mit Hilfe der Option

Kapitel 4: Briefe mit Klasse scrlttr2 oder Paket scrletter 199

fromrule auch noch eine Linie unter dem Namen erhalten:\documentclass[foldmarks=true,foldmarks=blmtP,

fromalign=center,fromrule=aftername,version=last]{scrlttr2}

\usepackage[ngerman]{babel}\begin{document}\setkomavar{fromname}{Peter Musterfrau}\setkomavar{fromaddress}{Hinter dem Tal 2\\

54321 Musterheim}\begin{letter}{%

Petra Mustermann\\Vor dem Berg 1\\12345 Musterhausen%

}\opening{Liebe Vereinsvorsitzende,}seit einem Jahr gab es keine Mitgliederversammlungmehr. Ich erinnere daran, dass unsere Satzung einesolche jedes halbe Jahr vorsieht. Ich fordere denVorstand daher auf, umgehend eine solche inAngriff zu nehmen.\closing{In Erwartung einer Einladung}\ps PS: Ich hoffe, Du nimmst mir das nicht krumm.\setkomavar*{enclseparator}{Anlage}\encl{Auszug aus der Satzung, in dem die

Mitgliederversammlungen geregelt sind}\cc{Die Vereinsvorsitzende\\Alle Mitglieder}\end{letter}\end{document}

Das Ergebnis ist in Abbildung 4.12 rechts zu sehen. Im Vergleich dazu ist linksdaneben das gleiche Beispiel noch einmal mit dem Standardbriefkopf und ohneReaktion auf die zusätzliche Option.

Ein wichtiger Hinweis betrifft noch die Absenderadresse: Innerhalb der Absenderadressewerden einzelne Teilangaben durch doppelten Backslash voneinander getrennt. Solche Teilan-gaben sind beispielsweise Straße und Hausnummer, Postleitzahl und Ort oder eine Länderanga-be. Dieser doppelte Backslash wird je nach Verwendung der Absenderadresse unterschiedlichinterpretiert und ist nicht zwangsläufig als Zeilenumbruch zu verstehen. Absätze, vertikaleAbstände und Ähnliches sind innerhalb der Absenderangaben normalerweise nicht gestattet.Man muss KOMA-Script schon sehr genau kennen, um solche Mittel gegebenenfalls sinnvollim Absender einsetzen zu können. Außerdem sollte man in dem Fall unbedingt die Variablenfür Rücksendeadresse (siehe Variable backaddress, Seite 206) und Signatur (siehe Variablesignature, Seite 238) selbst setzen.

Kapitel 4: Briefe mit Klasse scrlttr2 oder Paket scrletter 200

Peter Musterfrau

Hinter dem Tal 254321 Musterheim

Peter Musterfrau, Hinter dem Tal 2, 54321 Musterheim

Petra MustermannVor dem Berg 112345 Musterhausen

12. Oktober 2019

Liebe Vereinsvorsitzende,

seit einem Jahr gab es keine Mitgliederversammlung mehr. Ich erinnere daran, dassunsere Satzung eine solche jedes halbe Jahr vorsieht. Ich fordere den Vorstand daherauf, umgehend eine solche in Angriff zu nehmen.

In Erwartung einer Einladung

Peter Musterfrau

PS: Ich hoffe, Du nimmst mir das nicht krumm.

Anlage: Auszug aus der Satzung, in dem die Mitgliederversammlungen geregelt sind

Verteiler: Die VereinsvorsitzendeAlle Mitglieder

Peter Musterfrau

Hinter dem Tal 254321 Musterheim

Peter Musterfrau, Hinter dem Tal 2, 54321 Musterheim

Petra MustermannVor dem Berg 112345 Musterhausen

12. Oktober 2019

Liebe Vereinsvorsitzende,

seit einem Jahr gab es keine Mitgliederversammlung mehr. Ich erinnere daran, dassunsere Satzung eine solche jedes halbe Jahr vorsieht. Ich fordere den Vorstand daherauf, umgehend eine solche in Angriff zu nehmen.

In Erwartung einer Einladung

Peter Musterfrau

PS: Ich hoffe, Du nimmst mir das nicht krumm.

Anlage: Auszug aus der Satzung, in dem die Mitgliederversammlungen geregelt sind

Verteiler: Die VereinsvorsitzendeAlle Mitglieder

Abbildung 4.12.: Ergebnis eines kleinen Briefes mit Absender, Trennlinie, Anschrift, Anrede, Text,Grußfloskel, Signatur, Postskriptum, Anlagen, Verteiler und Lochermarke (das Da-tum entstammt den Voreinstellungen für DIN-Briefe); links der Standardbriefkopfmit fromalign=false, rechts der erweiterte Briefkopf mit fromalign=center

symbolicnames=Wertfromphone=Ein-Aus-Wertfrommobilephone=Ein-Aus-Wertfromfax=Ein-Aus-Wertfromemail=Ein-Aus-Wertfromurl=Ein-Aus-Wert\setkomavar{fromphone}[Bezeichnung ]{Inhalt }\setkomavar{frommobilephone}[Bezeichnung ]{Inhalt }\setkomavar{fromfax}[Bezeichnung ]{Inhalt }\setkomavar{fromemail}[Bezeichnung ]{Inhalt }\setkomavar{fromurl}[Bezeichnung ]{Inhalt }\setkomavar{phoneseparator}[Bezeichnung ]{Inhalt }\setkomavar{mobilephoneseparator}[Bezeichnung ]{Inhalt }\setkomavar{faxseparator}[Bezeichnung ]{Inhalt }\setkomavar{emailseparator}[Bezeichnung ]{Inhalt }\setkomavar{urlseparator}[Bezeichnung ]{Inhalt }

Mit Hilfe der fünf Optionen fromphone, frommobilephonev3.12 , fromfax, fromemail und fromurlkann bestimmt werden, ob die Telefonnummer, die Mobiltelefonnummer, die Faxnummer, die

Kapitel 4: Briefe mit Klasse scrlttr2 oder Paket scrletter 201

Tabelle 4.6.: Vordefinierte Bezeichnungen der Variablen für die Absenderangaben im Briefkopf (dieBezeichnungen und Inhalte der verwendeten Variablen für Trennzeichen ist Tabelle 4.7 zuentnehmen)

fromemail\usekomavar*{emailseparator}\usekomavar{emailseparator}

fromfax\usekomavar*{faxseparator}\usekomavar{faxseparator}

frommobilephone\usekomavar*{mobilephoneseparator}\usekomavar{mobilephoneseparator}

fromname\headfromname

fromphone\usekomavar*{phoneseparator}\usekomavar{phoneseparator}

fromurl\usekomavar*{urlseparator}\usekomavar{urlseparator}

E-Mail-Adresse und die URL im Absender gesetzt werden soll. Als Ein-Aus-Wert kann dabeieiner der Standardwerte für einfache Schalter aus Tabelle 2.5, Seite 42 verwendet werden.Voreingestellt ist jeweils false. Die Inhalte selbst werden über die gleichnamigen Variablenbestimmt. Die Voreinstellungen für die dabei verwendeten Bezeichnungen sind Tabelle 4.6 zuentnehmen, die verwendeten Trennzeichen, die zwischen der Bezeichnung und dem Inhalteiner Variablen eingefügt werden, Tabelle 4.7.Mitv3.12 Option symbolicnames kann diese Voreinstellung auf einen Schlag geändert werden.

Die Option versteht als Wert die Ein-Aus-Werte für einfache Schalter, wie sie in Tabelle 2.5,Seite 42 angegeben sind. Diev3.27 Aktivierung der Option entspricht dabei dem Wert marvosym,wodurch statt der sprachabhängigen Bezeichner \emailname, \faxname, \mobilephonenameund \phonename Symbole aus dem marvosym-Paket verwendet werden. Gleichzeitig entfällt derDoppelpunkt bei der Definition der Trennzeichen. Für die URL entfallen in diesem Fall sowohlder sprachabhängige Bezeichner als auch das Trennzeichen. Mit symbolicnames=fontawsomeoder symbolicnames=awesome werden stattdessen Symbole von Paket fontawesome verwendet.Dabei wird auch für die URL ein passendes Symbol aktiviert. Es ist zu beachten, dass dasPaket marvosym oder fontawesome gegebenenfalls selbst in der Dokumentpräambel zu ladenist, falls mit der Option erst nach \begin{document} die Verwendung eines dieser Paketeaktiviert wird.

Beispiel: Herr Musterfrau aus unserem Beispiel hat auch Telefon und eine E-Mail-Adresse.Diese möchte er ebenfalls im Briefkopf haben. Gleichzeitig soll die Trennlinie nunnach dem Briefkopf stehen. Also gibt er die entsprechenden Optionen an und setztauch die zugehörigen Variablen:

Kapitel 4: Briefe mit Klasse scrlttr2 oder Paket scrletter 202

Tabelle 4.7.: Vordefinierte Bezeichnungen und Inhalte der Trennzeichen für die Absenderangaben imBriefkopf ohne Option symbolicnumbers

Name Bezeichnung Inhaltemailseparator \emailname :˜faxseparator \faxname :˜mobilephoneseparator \mobilephonename \usekomavar{phoneseparator}phoneseparator \phonename :˜urlseparator \wwwname :˜

\documentclass[foldmarks=true,foldmarks=blmtP,fromalign=false,fromrule=afteraddress,fromphone,fromemail,version=last]{scrlttr2}

\usepackage[ngerman]{babel}\begin{document}\setkomavar{fromname}{Peter Musterfrau}\setkomavar{fromaddress}{Hinter dem Tal 2\\

54321 Musterheim}\setkomavar{fromphone}{0\,12\,34~56\,78}\setkomavar{fromemail}{[email protected]}\begin{letter}{%

Petra Mustermann\\Vor dem Berg 1\\12345 Musterhausen%

}\opening{Liebe Vereinsvorsitzende,}seit einem Jahr gab es keine Mitgliederversammlungmehr. Ich erinnere daran, dass unsere Satzung einesolche jedes halbe Jahr vorsieht. Ich fordere denVorstand daher auf, umgehend eine solche inAngriff zu nehmen.\closing{In Erwartung einer Einladung}\ps PS: Ich hoffe, Du nimmst mir das nicht krumm.\setkomavar*{enclseparator}{Anlage}\encl{Auszug aus der Satzung, in dem die

Mitgliederversammlungen geregelt sind}\cc{Die Vereinsvorsitzende\\Alle Mitglieder}\end{letter}\end{document}

Das Ergebnis aus Abbildung 4.13 links ist jedoch ernüchternd. Die Optionen werdenignoriert. Das liegt daran, dass diese zusätzlichen Variablen und Optionen nur im

Kapitel 4: Briefe mit Klasse scrlttr2 oder Paket scrletter 203

Peter Musterfrau

Hinter dem Tal 254321 Musterheim

Peter Musterfrau, Hinter dem Tal 2, 54321 Musterheim

Petra MustermannVor dem Berg 112345 Musterhausen

12. Oktober 2019

Liebe Vereinsvorsitzende,

seit einem Jahr gab es keine Mitgliederversammlung mehr. Ich erinnere daran, dassunsere Satzung eine solche jedes halbe Jahr vorsieht. Ich fordere den Vorstand daherauf, umgehend eine solche in Angriff zu nehmen.

In Erwartung einer Einladung

Peter Musterfrau

PS: Ich hoffe, Du nimmst mir das nicht krumm.

Anlage: Auszug aus der Satzung, in dem die Mitgliederversammlungen geregelt sind

Verteiler: Die VereinsvorsitzendeAlle Mitglieder

Peter MusterfrauHinter dem Tal 254321 Musterheim

Telefon: 0 12 34 56 78E-Mail: [email protected]

Peter Musterfrau, Hinter dem Tal 2, 54321 Musterheim

Petra MustermannVor dem Berg 112345 Musterhausen

12. Oktober 2019

Liebe Vereinsvorsitzende,

seit einem Jahr gab es keine Mitgliederversammlung mehr. Ich erinnere daran, dassunsere Satzung eine solche jedes halbe Jahr vorsieht. Ich fordere den Vorstand daherauf, umgehend eine solche in Angriff zu nehmen.

In Erwartung einer Einladung

Peter Musterfrau

PS: Ich hoffe, Du nimmst mir das nicht krumm.

Anlage: Auszug aus der Satzung, in dem die Mitgliederversammlungen geregelt sind

Verteiler: Die VereinsvorsitzendeAlle Mitglieder

Abbildung 4.13.: Ergebnis eines kleinen Briefes mit erweitertem Absender, Trennlinie, Anschrift, An-rede, Text, Grußfloskel, Signatur, Postskriptum, Anlagen, Verteiler und Lochermarke(das Datum entstammt den Voreinstellungen für DIN-Briefe); links der Standardbrief-kopf mit fromalign=false, rechts der erweiterte Briefkopf mit fromalign=center

erweiterten Briefkopf verwendet werden. Es muss also, wie in Abbildung 4.13, rechtsdie Option fromalign verwendet werden:\documentclass[foldmarks=true,foldmarks=blmtP,

fromalign=center,fromrule=afteraddress,fromphone,fromemail,version=last]{scrlttr2}

\usepackage[ngerman]{babel}\begin{document}\setkomavar{fromname}{Peter Musterfrau}\setkomavar{fromaddress}{Hinter dem Tal 2\\

54321 Musterheim}\setkomavar{fromphone}{0\,12\,34~56\,78}\setkomavar{fromemail}{[email protected]}\begin{letter}{%

Petra Mustermann\\Vor dem Berg 1\\12345 Musterhausen%

Kapitel 4: Briefe mit Klasse scrlttr2 oder Paket scrletter 204

}\opening{Liebe Vereinsvorsitzende,}seit einem Jahr gab es keine Mitgliederversammlungmehr. Ich erinnere daran, dass unsere Satzung einesolche jedes halbe Jahr vorsieht. Ich fordere denVorstand daher auf, umgehend eine solche inAngriff zu nehmen.\closing{In Erwartung einer Einladung}\ps PS: Ich hoffe, Du nimmst mir das nicht krumm.\setkomavar*{enclseparator}{Anlage}\encl{Auszug aus der Satzung, in dem die

Mitgliederversammlungen geregelt sind}\cc{Die Vereinsvorsitzende\\Alle Mitglieder}\end{letter}\end{document}

Den Vergleich zweier weiterer Alternativen mit linksbündigem Absender durchEinstellung fromalign=left und rechtsbündigem Absender durch Einstellungfromalign=right zeigt Abbildung 4.14.

fromlogo=Ein-Aus-Wert\setkomavar{fromlogo}[Bezeichnung ]{Inhalt }

Mit der Option fromlogo kann bestimmt werden, ob ein Logo im Briefkopf gesetzt werden soll.Als Ein-Aus-Wert kann dabei einer der Standardwerte für einfache Schalter aus Tabelle 2.5,Seite 42 verwendet werden. Voreingestellt ist false, also kein Logo. Das Logo selbst wird überdie Variable fromlogo definiert. Die Bezeichnung für das Logo ist in der Voreinstellung leerund wird von KOMA-Script auch nicht verwendet (siehe auch Tabelle 4.6, Seite 201).

Beispiel: Herr Musterfrau findet es besonders schick, wenn er seine Briefe mit einem Logoversieht. Sein Logo hat er als Grafikdatei gespeichert, die er gerne mit Hilfe derAnweisung \includegraphics laden würde. Dazu bindet er zusätzlich das Paketgraphics (siehe [Car17]) ein.

\documentclass[foldmarks=true,foldmarks=blmtP,fromrule=afteraddress,fromphone,fromemail,fromlogo,version=last]{scrlttr2}

\usepackage[ngerman]{babel}\usepackage{graphics}\begin{document}\setkomavar{fromname}{Peter Musterfrau}\setkomavar{fromaddress}{Hinter dem Tal 2\\

54321 Musterheim}\setkomavar{fromphone}{0\,12\,34~56\,78}

Kapitel 4: Briefe mit Klasse scrlttr2 oder Paket scrletter 205

Peter MusterfrauHinter dem Tal 254321 MusterheimTelefon: 0 12 34 56 78E-Mail: [email protected]

Peter Musterfrau, Hinter dem Tal 2, 54321 Musterheim

Petra MustermannVor dem Berg 112345 Musterhausen

12. Oktober 2019

Liebe Vereinsvorsitzende,

seit einem Jahr gab es keine Mitgliederversammlung mehr. Ich erinnere daran, dassunsere Satzung eine solche jedes halbe Jahr vorsieht. Ich fordere den Vorstand daherauf, umgehend eine solche in Angriff zu nehmen.

In Erwartung einer Einladung

Peter Musterfrau

PS: Ich hoffe, Du nimmst mir das nicht krumm.

Anlage: Auszug aus der Satzung, in dem die Mitgliederversammlungen geregelt sind

Verteiler: Die VereinsvorsitzendeAlle Mitglieder

Peter MusterfrauHinter dem Tal 2

54321 MusterheimTelefon: 0 12 34 56 78

E-Mail: [email protected]

Peter Musterfrau, Hinter dem Tal 2, 54321 Musterheim

Petra MustermannVor dem Berg 112345 Musterhausen

12. Oktober 2019

Liebe Vereinsvorsitzende,

seit einem Jahr gab es keine Mitgliederversammlung mehr. Ich erinnere daran, dassunsere Satzung eine solche jedes halbe Jahr vorsieht. Ich fordere den Vorstand daherauf, umgehend eine solche in Angriff zu nehmen.

In Erwartung einer Einladung

Peter Musterfrau

PS: Ich hoffe, Du nimmst mir das nicht krumm.

Anlage: Auszug aus der Satzung, in dem die Mitgliederversammlungen geregelt sind

Verteiler: Die VereinsvorsitzendeAlle Mitglieder

Abbildung 4.14.: Ergebnis eines kleinen Briefes mit erweitertem Absender, Trennlinie, Anschrift, An-rede, Text, Grußfloskel, Signatur, Postskriptum, Anlagen, Verteiler und Lochermarke(das Datum entstammt den Voreinstellungen für DIN-Briefe); links mit linksbündi-gem Kopf durch fromalign=left, rechts mit Option fromalign=right und damitrechtsbündigem Kopf

\setkomavar{fromemail}{[email protected]}\setkomavar{fromlogo}{\includegraphics{musterlogo}}\begin{letter}{%

Petra Mustermann\\Vor dem Berg 1\\12345 Musterhausen%

}\opening{Liebe Vereinsvorsitzende,}seit einem Jahr gab es keine Mitgliederversammlungmehr. Ich erinnere daran, dass unsere Satzung einesolche jedes halbe Jahr vorsieht. Ich fordere denVorstand daher auf, umgehend eine solche inAngriff zu nehmen.\closing{In Erwartung einer Einladung}\ps PS: Ich hoffe, Du nimmst mir das nicht krumm.\setkomavar*{enclseparator}{Anlage}\encl{Auszug aus der Satzung, in dem die

Kapitel 4: Briefe mit Klasse scrlttr2 oder Paket scrletter 206

Mitgliederversammlungen geregelt sind}\cc{Die Vereinsvorsitzende\\Alle Mitglieder}\end{letter}\end{document}

Das Ergebnis ist in Abbildung 4.15, Seite 207 links oben zu sehen. Die beidenanderen Bilder in dieser Abbildung zeigen das Ergebnis bei rechtsbündigem undbei zentriertem Absender.

\setkomavar{firsthead}[Bezeichnung ]{Inhalt }

In vielen Fällen reichen die Möglichkeiten aus, die scrlttr2 über Optionen und obige Variablenfür die Gestaltung des Briefkopfes bietet. In einigen Fällen will man jedoch den Briefkopf freiergestalten können. In diesen Fällen muss man auf die Möglichkeiten der vordefinierten Briefköp-fe, die über die oben erwähnten Option ausgewählt werden können, verzichten. Stattdessengestaltet man sich seinen Briefkopf frei. Dazu definiert man den gewünschten Aufbau überden Inhalt der Variablen firsthead. Dabei können beispielsweise mit Hilfe der \parbox-Anweisung (siehe [Tea05b]) mehrere Boxen neben- und untereinander gesetzt werden. Einemversierten Anwender sollte es so möglich sein, seinen eigenen Briefkopf zu gestalten. Natürlichkann und sollte man dabei auch Zugriffe auf andere Variablen mit Hilfe von \usekomavarnehmen. Die Bezeichnung der Variablen firsthead wird von KOMA-Script nicht verwendet.

addrfield=Modusbackaddress=Wertpriority=Priorität\setkomavar{toname}[Bezeichnung ]{Inhalt }\setkomavar{toaddress}[Bezeichnung ]{Inhalt }\setkomavar{backaddress}[Bezeichnung ]{Inhalt }\setkomavar{backaddressseparator}[Bezeichnung ]{Inhalt }\setkomavar{specialmail}[Bezeichnung ]{Inhalt }\setkomavar{fromzipcode}[Bezeichnung ]{Inhalt }\setkomavar{zipcodeseparator}[Bezeichnung ]{Inhalt }\setkomavar{place}[Bezeichnung ]{Inhalt }\setkomavar{PPcode}[Bezeichnung ]{Inhalt }\setkomavar{PPdatamatrix}[Bezeichnung ]{Inhalt }\setkomavar{addresseeimage}[Bezeichnung ]{Inhalt }

Mit der Option addrfield kann gewählt werden, ob ein Anschriftfeld gesetzt werden soll odernicht. Voreingestellt ist mit true die Verwendung eines Anschriftfeldes. Die Option verstehtdie in Tabelle 4.8v3.03 angegebenen Werte für den Modus . Bei den Werten true, topalignedv3.17 , PPund backgroundimage werden Name und Adresse des Empfängers, die im Anschriftfeld gesetzt

Kapitel 4: Briefe mit Klasse scrlttr2 oder Paket scrletter 207

Peter MusterfrauHinter dem Tal 254321 MusterheimTelefon: 0 12 34 56 78E-Mail: [email protected] MPeter Musterfrau, Hinter dem Tal 2, 54321 Musterheim

Petra MustermannVor dem Berg 112345 Musterhausen

12. Oktober 2019

Liebe Vereinsvorsitzende,

seit einem Jahr gab es keine Mitgliederversammlung mehr. Ich erinnere daran, dassunsere Satzung eine solche jedes halbe Jahr vorsieht. Ich fordere den Vorstand daherauf, umgehend eine solche in Angriff zu nehmen.

In Erwartung einer Einladung

Peter Musterfrau

PS: Ich hoffe, Du nimmst mir das nicht krumm.

Anlage: Auszug aus der Satzung, in dem die Mitgliederversammlungen geregelt sind

Verteiler: Die VereinsvorsitzendeAlle Mitglieder

Peter MusterfrauHinter dem Tal 254321 Musterheim

Telefon: 0 12 34 56 78E-Mail: [email protected]

Peter Musterfrau, Hinter dem Tal 2, 54321 Musterheim

Petra MustermannVor dem Berg 112345 Musterhausen

M

12. Oktober 2019

Liebe Vereinsvorsitzende,

seit einem Jahr gab es keine Mitgliederversammlung mehr. Ich erinnere daran, dassunsere Satzung eine solche jedes halbe Jahr vorsieht. Ich fordere den Vorstand daherauf, umgehend eine solche in Angriff zu nehmen.

In Erwartung einer Einladung

Peter Musterfrau

PS: Ich hoffe, Du nimmst mir das nicht krumm.

Anlage: Auszug aus der Satzung, in dem die Mitgliederversammlungen geregelt sind

Verteiler: Die VereinsvorsitzendeAlle Mitglieder

Abbildung 4.15.: Ergebnis eines kleinen Briefes mit erwei-tertem Absender, Logo, Trennlinie, Anschrift, Anrede, Text,Grußfloskel, Signatur, Postskriptum, Anlagen, Verteiler undLochermarke (das Datum entstammt den Voreinstellungenfür DIN-Briefe); links, oben mit linksbündigem Absender,rechts daneben mit zentriertem Absender und rechts mitrechtsbündigem Absender

M

Peter MusterfrauHinter dem Tal 2

54321 MusterheimTelefon: 0 12 34 56 78

E-Mail: [email protected]

Peter Musterfrau, Hinter dem Tal 2, 54321 Musterheim

Petra MustermannVor dem Berg 112345 Musterhausen

12. Oktober 2019

Liebe Vereinsvorsitzende,

seit einem Jahr gab es keine Mitgliederversammlung mehr. Ich erinnere daran, dassunsere Satzung eine solche jedes halbe Jahr vorsieht. Ich fordere den Vorstand daherauf, umgehend eine solche in Angriff zu nehmen.

In Erwartung einer Einladung

Peter Musterfrau

PS: Ich hoffe, Du nimmst mir das nicht krumm.

Anlage: Auszug aus der Satzung, in dem die Mitgliederversammlungen geregelt sind

Verteiler: Die VereinsvorsitzendeAlle Mitglieder

Kapitel 4: Briefe mit Klasse scrlttr2 oder Paket scrletter 208

Tabelle 4.8.: Mögliche Werte für Option addrfield zur Auswahl der Art der Anschrift

backgroundimage, PPbackgroundimage, PPBackgroundImage, PPBackGroundImage,ppbackgroundimage, ppBackgroundImage, ppBackGroundImage

Es wird eine Anschrift mit einer in Variable addresseeimage abgelegten Hinter-grundgrafik als Port-Payé-Kopf (P. P.-Kopf), aber ohne Rücksendeadresse und Ver-sandart gesetzt.

false, off, noEs wird keine Anschrift gesetzt.

image, Image, PPimage, PPImage, ppimage, ppImageEine in Variable addresseeimage abgelegte Abbildung wird als Anschrift mit Port-Payé gesetzt. Adressinformationen und Angaben für Rücksendeadresse, Versandartoder Priorität werden ignoriert.

PP, pp, PPexplicite, PPExplicite, ppexplicite, ppExpliciteEs wird eine Anschrift mit explizit über die Variablen fromzipcode, place undPPcode ausgefülltem Port-Payé-Kopf (P. P.-Kopf), gegebenenfalls mit Priorität undüber Variable PPdatamatrix gesetzter Data-Matrix, aber ohne Rücksendeadresseund Versandart gesetzt.

topaligned, alignedtopv3.17

Es wird eine Anschrift mit Rücksendeadresse und Versandart oder Priorität gesetzt.Die Anschrift wird dabei unter der Versandart nicht vertikal zentriert.

true, on, yesEs wird eine Anschrift mit Rücksendeadresse und Versandart oder Priorität gesetzt.

werden, über das Argument der Umgebung letter (siehe Abschnitt 4.7, Seite 176) bestimmt.Diese Angaben werden außerdem in die Variablen toname und toaddress kopiert.Die voreingestellten Schriftarten könnenv2.97c über die Anweisungen \setkomafont und

\addtokomafont (siehe Abschnitt 4.9, ab Seite 188) verändert werden. Dabei existieren dreiElemente. Zunächst gibt es das Element addressee, das generell für die Anschrift zuständigist. Dazu gibt es die Elemente toname und toaddress, die sich nur auf den Namen bzw. dieAdresse des Empfängers beziehen. Für toname und toaddress können also Abweichungen vonder Einstellung für addressee definiert werden.

Im Anschriftfeld wird in der Voreinstellung addrfield=true zusätzlich noch die unterstri-chene Rücksendeadresse gesetzt. Mit Option backaddress kann gewählt werden, ob und inwelcher Form die Rücksendeadresse für Fensterbriefumschläge im Anschriftfeld gesetzt wer-den soll. Die Option versteht dazu einerseits die Standardwerte für einfache Schalter, diein Tabelle 2.5, Seite 42 angegeben sind. Dabei bleibt der Stil der Rücksendeadresse unver-ändert. Beim Einschalten der Rücksendeadresse kann andererseitsv2.96 gleichzeitig auch der Stilder Rücksendeadresse gewählt werden. So aktiviert der Wert underlined die unterstrichene

Kapitel 4: Briefe mit Klasse scrlttr2 oder Paket scrletter 209

Tabelle 4.9.: Voreinstellun-gen für die Schrift der Ele-mente des Anschriftfensters

Element Voreinstellungaddresseebackaddress \sffamilyPPdata \sffamilyPPlogo \sffamily\bfseriespriority \fontsize{10pt}{10pt}\sffamily\bfseriesprioritykey \fontsize{24.88pt}{24.88pt}\selectfontspecialmailtoaddresstoname

Rücksendeadresse, während plain den Stil ohne Unterstreichung auswählt. Voreingestellt istunderlined, also das Setzen der unterstrichenen Rücksendeadresse.

Die Rücksendeadresse selbst wird über den Inhalt der Variable backaddress bestimmt.Voreingestellt ist hier der über fromname angegebene Name und die über fromaddress an-gegebene Adresse, wobei der Doppelbackslash in diesem Fall durch den Inhalt der Varia-blen backaddressseparator ersetzt wird. Für diese ist ein Komma, gefolgt von einem nichtumbrechbaren Leerzeichen vordefiniert. Die Bezeichnung der Variablen backaddress wirdvon KOMA-Script nicht genutzt. Die Schriftart der Rücksendeadresse ist über das Elementbackaddress konfigurierbar. Voreingestellt ist hierbei \sffamily (siehe Tabelle 4.9). Vor derAnwendung der konfigurierten Schriftumschaltung wird noch \scriptsize ausgeführt.

Während die Adresse in der Voreinstellung addrfield=truev3.17 im für die Anschrift verfügbarenPlatz vertikal zentriert wird, entfällt die Zentrierung mit addrfield=topaligned. Sie wirddann oben bündig im verfügbaren Platz gesetzt.Zwischen Rücksendeadresse und Empfängeradresse kann bei der Standardeinstellung

addrfield=true noch eine optionale Versandart gesetzt werden. Diese wird genau danngesetzt, wenn die Variable specialmail einen Inhalt hat und priority=manualv3.03 gewähltwird, was der Voreinstellung entspricht. Die Bezeichnung von specialmail wird durchscrlttr2 nicht genutzt. Die Ausrichtung wird mit Hilfe der Pseudolängen specialmailindentund specialmailrightindent (siehe Seite 544) festgelegt. Die voreingestellte Schriftart desElementsv2.97c specialmail, die Sie Tabelle 4.9 entnehmen können, kann mit Hilfe der Anweisun-gen \setkomafont und \addtokomafont (siehe Abschnitt 4.9, Seite 188) verändert werden.Wirdv3.03 hingegen mit priority=A oder priority=B (siehe Tabelle 4.10) eine internationale

Priorität ausgewählt, so wird diese bei addrfield=true als Versandart und bei addrfield=PP an entsprechender Stelle im Port-Payé-Kopf gesetzt. Dabei wird die Grundschrift überdas Element priority und die davon abweichende Schrift für den Prioritätsschlüssel, »A«oder »B«, über das Element prioritykey bestimmt. Die voreingestellten Schriftarten derbeiden Elemente, die Sie Tabelle 4.9 entnehmen können, kann mit Hilfe der Anweisungen\setkomafont und \addtokomafont (siehe Abschnitt 4.9, Seite 188) verändert werden.

Kapitel 4: Briefe mit Klasse scrlttr2 oder Paket scrletter 210

Tabelle 4.10.: Mögliche Werte für Option priority zur Auswahl einer internationalen Priorität imAdressfeld

false, off, no, manualEs wird keine Priorität gesetzt.

B, b, economy, Economy, ECONOMY, B-ECONOMY, B-Economy, b-economyEs wird die internationale Priorität B-Economy gesetzt. Bei addrfield=true erfolgtdies anstelle der Versandart.

A, a, priority, Priority, PRIORITY, A-PRIORITY, A-Priority, a-priorityEs wird die internationale Priorität A-Priority gesetzt. Bei addrfield=true erfolgtdies anstelle der Versandart.

Beiv3.03 addrfield=PP wird im Port-Payé-Kopf die Postleitzahl aus der Variablen fromzipcodeund der Ort aus der Variablen place gesetzt. Dabei wird der Postleitzahl, also demInhalt von fromzipcode, die Bezeichnung der Variablen fromzipcode, gefolgt vom Inhaltvon zipcodeseparator vorangestellt. Für diese Bezeichnung hängt die Voreinstellung vonder verwendeten lco-Datei (siehe Abschnitt 4.21 ab Seite 241) ab. Für den Inhalt vonzipcodeseparator ist hingegen »\,--\,« voreingestellt.Darüberv3.03 hinaus wird bei addrfield=PP im Port-Payé-Kopf auch noch ein Code gesetzt,

der den Absender eindeutig identifiziert. Dieser ist in Variable PPcode abgelegt. Rechts vonder Anschrift kann zusätzlich eine Data-Matrix gesetzt werden, die in Variable PPdatamatrixabgelegt ist.Postleitzahlv3.03 , Ort und Code werden in der Voreinstellung mit einer Schrift der Größe 8 pt ge-

setzt. Dabei wird die Schrift des Elements PPdata verwendet. Dessen Voreinstellung ist Tabel-le 4.9 zu entnehmen und kann mit Hilfe der Anweisungen \setkomafont und \addtokomafont(siehe Abschnitt 4.9, Seite 188) verändert werden.Für den Port-Payé-Schriftzug »P.P.« kommt dagegen die Schrift des Elements PPlogo zur

Anwendung. Dessen Voreinstellung ist ebenfalls Tabelle Tabelle 4.9 zu entnehmen.Bei den beiden Einstellungen addrfield=backgroundimagev3.03 und addrfield=image wird ei-

ne Abbildung in das Adressfenster gesetzt. Diese ist im Inhalt der Variablen addresseeimageabgelegt. Die Bezeichnung dieser Variablen wird von KOMA-Script nicht genutzt. Wäh-rend bei Einstellung addrfield=image außer der Abbildung nichts gesetzt wird, wird beiaddrfield=backgroundimage zusätzlich noch die Anschrift aus dem obligatorischen Argu-ment der letter-Umgebung ausgegeben.

Die Anordnung des Port-Payé-Kopfes wird ebenso wie die Anordnung der Port-Payé-Anschrift über die Pseudolängen toaddrindent (siehe Seite 543) sowie PPheadwidth undPPheadheight (siehe Seite 544) bestimmt. Für die Anordnung der Data-Matrix ist die Pseu-dolänge PPdatamatrixvskip (siehe Seite 544) zuständig.Es wird an dieser Stelle ausdrücklich darauf hingewiesen, dass KOMA-Script selbst kei-

Kapitel 4: Briefe mit Klasse scrlttr2 oder Paket scrletter 211

Tabelle 4.11.: Mögliche Werte für Optionlocfield zur Wahl der Breite des Feldes fürdie Absenderergänzung bei scrlttr2

narrowschmales Feld für Absenderergänzungen

widebreites Feld für Absenderergänzungen

ne externen Abbildungen setzen kann, sollen also über die Variablen addresseeimage oderPPdatamatrix externe Abbildungen gesetzt werden, so ist beispielsweise das Grafikpaketgraphics oder graphicx zu laden und in den Variablen dessen Anweisung \includegraphicszu verwenden.

locfield=Einstellung

Neben dem Anschriftfeld setzt scrlttr2 noch ein Feld mit erweiterter Absenderangabe. DerInhalt ist frei wählbar. Je nach Einstellung der oben erklärten Option fromalign wird esaußerdem für das Logo des Absenders oder den Absender selbst mitverwendet. Die Breitedieses Feldes kann beispielsweise in einer lco-Datei (siehe Abschnitt 4.21) gesetzt werden.Wird dort die Breite 0 gesetzt, so kann über die Option locfield zwischen zwei unterschied-lichen Voreinstellungen für die Breite dieses Feldes gewählt werden. Dies ist bei der Mehrzahlder lco-Dateien der Fall, die KOMA-Script beiliegen. Siehe hierzu auch die Erklärungen zurPseudolänge locwidth in Abschnitt 22.1.4, Seite 545. Mögliche Werte für die Option sindTabelle 4.11 zu entnehmen. Voreingestellt ist narrow.

\setkomavar{location}[Bezeichnung ]{Inhalt }

Der Inhalt der Absenderergänzung, soweit er nicht durch Logo oder den Absender selbst belegtist, wird mit der Variablen location festgelegt. Für den Inhalt dieser Variablen dürfen auchFormatierungsanweisungen, wie \raggedright, verwendet werden. Die Bezeichnung dieserVariablen wird von KOMA-Script nicht genutzt.

Beispiel: Herr Musterfrau möchte ein paar zusätzliche Informationen zu seiner Mitgliedschaftangeben. Er wählt dazu die Absenderergänzung:\documentclass[foldmarks=true,foldmarks=blmtP,fromphone,fromemail,fromlogo,version=last]{scrlttr2}

\usepackage[ngerman]{babel}\usepackage{graphics}\begin{document}\setkomavar{fromname}{Peter Musterfrau}\setkomavar{fromaddress}{Hinter dem Tal 2\\

54321 Musterheim}\setkomavar{fromphone}{0\,12\,34~56\,78}\setkomavar{fromemail}{[email protected]}

Kapitel 4: Briefe mit Klasse scrlttr2 oder Paket scrletter 212

\setkomavar{fromlogo}{\includegraphics{musterlogo}}\setkomavar{location}{\raggedright

Mitglied Nr.~4711\\seit dem 11.09.2001\\Vorsitzender in den Jahren 2003--2005}

\begin{letter}{%Petra Mustermann\\Vor dem Berg 1\\12345 Musterhausen%

}\opening{Liebe Vereinsvorsitzende,}seit einem Jahr gab es keine Mitgliederversammlungmehr. Ich erinnere daran, dass unsere Satzung einesolche jedes halbe Jahr vorsieht. Ich fordere denVorstand daher auf, umgehend eine solche inAngriff zu nehmen.\closing{In Erwartung einer Einladung}\ps PS: Ich hoffe, Du nimmst mir das nicht krumm.\setkomavar*{enclseparator}{Anlage}\encl{Auszug aus der Satzung, in dem die

Mitgliederversammlungen geregelt sind}\cc{Die Vereinsvorsitzende\\Alle Mitglieder}\end{letter}\end{document}

Das entsprechende Feld neben der Anschrift wird dann wie in Abbildung 4.16 ge-setzt.

numericaldate=Ein-Aus-Wert

Mit dieser Option kann zwischen der sprachabhängigen Standarddarstellung des Datums undeinem ebenfalls sprachabhängigen, kurzen, rein nummerischen Datum umgeschaltet werden.Die Standarddarstellung wird nicht von KOMA-Script bereitgestellt. Sie kann wahlweise voneinem Paket wie ngerman, babel oder auch isodate stammen. Das kurze nummerische Datumwird hingegen von scrlttr2 selbst erzeugt. Die Option versteht die Standardwerte für einfa-che Schalter, die in Tabelle 2.5, Seite 42 angegeben sind. Voreingestellt ist mit false dieVerwendung der Standarddarstellung.

\setkomavar{date}[Bezeichnung ]{Inhalt }

Das Datum in der gewählten Darstellung wird im Inhalt der Variablen date abgelegt. DieEinstellung von numericaldate hat keine Auswirkung, wenn diese Variable überschriebenwird. Gesetzt wird das Datum normalerweise als Teil der Geschäftszeile. Wenn die Geschäfts-zeile ansonsten leer bleibt wird allerdings nur eine Datumszeile, bestehend aus dem Ort und

Kapitel 4: Briefe mit Klasse scrlttr2 oder Paket scrletter 213

Abbildung 4.16.: Ergebnis eines kleinen Briefes mit erwei-tertem Absender, Logo, Anschrift, Absenderergänzung, An-rede, Text, Grußfloskel, Signatur, Postskriptum, Anlagen,Verteiler und Lochermarke (das Datum entstammt den Vor-einstellungen für DIN-Briefe)

Peter MusterfrauHinter dem Tal 254321 MusterheimTelefon: 0 12 34 56 78E-Mail: [email protected] MPeter Musterfrau, Hinter dem Tal 2, 54321 Musterheim

Petra MustermannVor dem Berg 112345 Musterhausen

Mitglied Nr. 4711seit dem 11.09.2001Vorsitzender in denJahren 2003–2005

12. Oktober 2019

Liebe Vereinsvorsitzende,

seit einem Jahr gab es keine Mitgliederversammlung mehr. Ich erinnere daran, dassunsere Satzung eine solche jedes halbe Jahr vorsieht. Ich fordere den Vorstand daherauf, umgehend eine solche in Angriff zu nehmen.

In Erwartung einer Einladung

Peter Musterfrau

PS: Ich hoffe, Du nimmst mir das nicht krumm.

Anlage: Auszug aus der Satzung, in dem die Mitgliederversammlungen geregelt sind

Verteiler: Die VereinsvorsitzendeAlle Mitglieder

dem Datum, gesetzt. Trotzdem haben auch in diesem Fall die Einstellungen der nachfolgendbeschriebenen Option refline Auswirkungen auf diese Datumszeile. Weitere Informationenzum Ort finden Sie in der Beschreibung zur Variablen placeseparator auf Seite 215.

refline=Einstellung

Insbesondere bei Geschäftsbriefen findet sich häufig eine Zeile mit Angaben wie Namens-kürzeln, Durchwahl, Kunden- und Rechnungsnummer oder zur Bezugnahme auf ein früheresSchreiben. Diese Zeile wird in dieser Anleitung Geschäftszeile genannt.Bei scrlttr2 und scrletter können Kopf, Fuß, Anschrift und das Feld mit der Absenderergän-

zung links und rechts aus dem normalen Satzspiegel herausragen. Über refline=wide kanngewählt werden, dass dies auch für die Geschäftszeile gelten soll. Die Geschäftszeile enthältnormalerweise zumindest das Datum, kann aber auch weitere Angaben aufnehmen. Mögli-che Werte für diese Option sind Tabelle 4.12 zu entnehmen. Voreingestellt sind narrow unddaterightv3.09 .

Kapitel 4: Briefe mit Klasse scrlttr2 oder Paket scrletter 214

Tabelle 4.12.: Mögliche Werte für Option refline zur Konfiguration der Geschäftszeile

dateleftv3.09 Das Datum steht automatisch links in der Geschäftszeile.

daterightv3.09 Das Datum steht automatisch rechts in der Geschäftszeile.

narrowDie Breite der Geschäftszeile richtet sich nach dem Satzspiegel.

nodatev3.09 Das Datum wird nicht automatisch in die Geschäftszeile gesetzt.

wideDie Breite der Geschäftszeile richtet sich nach Anschrift und Absenderergänzung.

\setkomavar{yourref}[Bezeichnung ]{Inhalt }\setkomavar{yourmail}[Bezeichnung ]{Inhalt }\setkomavar{myref}[Bezeichnung ]{Inhalt }\setkomavar{customer}[Bezeichnung ]{Inhalt }\setkomavar{invoice}[Bezeichnung ]{Inhalt }

Typische Felder der Geschäftszeile werden über die fünf Variablen yourref, yourmail, myref,customer und invoice verwaltet. Ihre Bedeutung ist Tabelle 4.1, Seite 165 zu entnehmen.Jede dieser Variablen hat auch eine vordefinierte Bezeichnung , die in Tabelle 4.13 zu findenist. Wie weitere Variablen zur Geschäftszeile hinzugefügt werden können, ist in Abschnitt 22.2ab Seite 548 erklärt.Schriftart und Farbev2.97c der Feldbezeichnung und des Feldinhalts können über die beiden Ele-

mente refname und refvalue geändert werden. Dazu werden die Anweisungen \setkomafontund \addtokomafont (siehe Abschnitt 4.9, Seite 188) verwendet. Die Voreinstellungen der bei-den Elemente sind Tabelle 4.14 zu entnehmen.Tabelle 4.13.: Vordefinierte Bezeichnun-gen der typischen Variablen der Ge-schäftszeile unter Verwendung sprachab-hängiger Anweisungen

Name Bezeichnung bei deutscher Spracheyourref \yourrefname Ihr Zeichenyourmail \yourmailname Ihr Schreiben vommyref \myrefname Unser Zeichencustomer \customername Kundennummerinvoice \invoicename Rechnungsnummerdate \datename Datum

Kapitel 4: Briefe mit Klasse scrlttr2 oder Paket scrletter 215

Tabelle 4.14.: Voreinstellungen für die Schrift der Elemen-te der Geschäftszeile Element Voreinstellung

refname \sffamily\scriptsizerefvalue

\setkomavar{placeseparator}[Bezeichnung ]{Inhalt }

Sind bis auf date alle Variablen der Geschäftszeile leer, so wird keine eigentliche Geschäftszeilegesetzt. Stattdessen werden dann nur Ort und Datum ausgegeben. Dabei bestimmt der Inhaltder Variablen place den Ort. Für das Trennzeichen, das in diesem Fall nach dem Ort gesetztwird, ist der Inhalt der Variablen placeseparator zuständig. Der vordefinierte Inhalt desTrennzeichens ist dabei ein Komma, gefolgt von einem nicht umbrechbaren Leerzeichen. Ist derOrt leer, so wird auch das Trennzeichen nicht gesetzt. Der vordefinierte Inhalt der Variablendate ist \today und hängt von der Einstellung der Option numericaldate ab (siehe Seite 212).Seit Version 3.09v3.09 werden Ort und Datum nicht mehr zwingend rechtsbündig ausgegeben.

Stattdessen findet auch im Falle der Datumszeile die Datumseinstellung von Option refline,wie sie in Tabelle 4.12 angegeben ist, Anwendung.Fallsv3.12 statt der Geschäftszeile eine solche Datumszeile mit Ort gesetzt wird, so findet nicht

die Schrifteinstellung des Elements refvalue Anwendung. Stattdessen wird in diesem Falldas Element placeanddate verwendet, dessen leere Voreinstellung wie gewohnt mit Hilfe derAnweisungen \setkomafont und \addtokomafont (siehe Abschnitt 4.9, Seite 188) geändertwerden kann.

Beispiel: Herr Musterfrau setzt nun auch die Variable für den Ort:\documentclass[foldmarks=true,foldmarks=blmtP,

fromphone,fromemail,fromlogo,version=last]{scrlttr2}

\usepackage[ngerman]{babel}\usepackage{graphics}\begin{document}\setkomavar{fromname}{Peter Musterfrau}\setkomavar{fromaddress}{Hinter dem Tal 2\\

54321 Musterheim}\setkomavar{fromphone}{0\,12\,34~56\,78}\setkomavar{fromemail}{[email protected]}\setkomavar{fromlogo}{\includegraphics{musterlogo}}\setkomavar{location}{\raggedrightMitglied Nr.~4711\\seit dem 11.09.2001\\Vorsitzender in den Jahren 2003--2005}

\setkomavar{date}{29. Februar 2011}\setkomavar{place}{Musterheim}\begin{letter}{%

Kapitel 4: Briefe mit Klasse scrlttr2 oder Paket scrletter 216

Petra Mustermann\\Vor dem Berg 1\\12345 Musterhausen%

}\opening{Liebe Vereinsvorsitzende,}seit einem Jahr gab es keine Mitgliederversammlungmehr. Ich erinnere daran, dass unsere Satzung einesolche jedes halbe Jahr vorsieht. Ich fordere denVorstand daher auf, umgehend eine solche inAngriff zu nehmen.\closing{In Erwartung einer Einladung}\ps PS: Ich hoffe, Du nimmst mir das nicht krumm.\setkomavar*{enclseparator}{Anlage}\encl{Auszug aus der Satzung, in dem dieMitgliederversammlungen geregelt sind}

\cc{Die Vereinsvorsitzende\\Alle Mitglieder}\end{letter}\end{document}

Damit erscheint vor dem Datum, wie in Abbildung 4.17, Seite 217 zu sehen, derOrt, gefolgt von den automatischen Trennzeichen vor dem Datum. Dieses Datumwurde im Beispielcode über Variable date ebenfalls explizit gesetzt, damit bei einemspäteren LATEX-Durchlauf des Briefes das ursprüngliche Datum erhalten bleibt undnicht etwa automatisch das Datum des LATEX-Laufs verwendet wird.

\setkomavar{title}[Bezeichnung ]{Inhalt }

Bei KOMA-Script kann ein Brief zusätzlich mit einem Titel versehen werden. Der Titel wirdzentriert in der Schriftgröße \LARGE unterhalb der Geschäftszeile ausgegeben.

Die Schriftart für das Elementv3.17 lettertitle kann mit den Anweisungen \setkomafontund \addtokomafont (siehe Abschnitt 4.9 ab Seite 188) geändert werden. Dabei sindauch Größenangaben erlaubt. Die Größe \LARGE wird der Schriftauswahl innerhalb vonKOMA-Script immer vorangestellt und ist daher auch nicht Teil der Voreinstellung\normalcolor\sffamily\bfseries. Bei scrlttr2 kann als Alias für lettertitle auch titlescrlttr2verwendet werden. Bei Verwendung von scrletter mit einer KOMA-Script-Klasse ist das nichtmöglich, da bei diesen Klassen bereits ein Element title mit abweichender Einstellung fürden Dokumenttitel existiert.

Beispiel: Angenommen, Sie schreiben eine Mahnung. Sie setzen einen entsprechenden Titel:\setkomavar{title}{Mahnung}

Damit sollte der Empfänger die Mahnung als solche erkennen.

Während der Inhalt der Variablen, wie im Beispiel gezeigt, den Titel definiert, wird dieBezeichnung der Variablen title von KOMA-Script nicht genutzt.

Kapitel 4: Briefe mit Klasse scrlttr2 oder Paket scrletter 217

Abbildung 4.17.: Ergebnis eines kleinen Briefes mit erwei-tertem Absender, Logo, Anschrift, Absenderergänzung, Ort,Datum, Anrede, Text, Grußfloskel, Signatur, Postskriptum,Anlagen, Verteiler und Lochermarke

Peter MusterfrauHinter dem Tal 254321 MusterheimTelefon: 0 12 34 56 78E-Mail: [email protected] MPeter Musterfrau, Hinter dem Tal 2, 54321 Musterheim

Petra MustermannVor dem Berg 112345 Musterhausen

Mitglied Nr. 4711seit dem 11.09.2001Vorsitzender in denJahren 2003–2005

Musterheim, 29. Februar 2011

Liebe Vereinsvorsitzende,

seit einem Jahr gab es keine Mitgliederversammlung mehr. Ich erinnere daran, dassunsere Satzung eine solche jedes halbe Jahr vorsieht. Ich fordere den Vorstand daherauf, umgehend eine solche in Angriff zu nehmen.

In Erwartung einer Einladung

Peter Musterfrau

PS: Ich hoffe, Du nimmst mir das nicht krumm.

Anlage: Auszug aus der Satzung, in dem die Mitgliederversammlungen geregelt sind

Verteiler: Die VereinsvorsitzendeAlle Mitglieder

subject=Einstellung\setkomavar{subject}[Bezeichnung ]{Inhalt }\setkomavar{subjectseparator}[Bezeichnung ]{Inhalt }

Um einen Betreff zu setzen, legt man den Inhalt der Variablen subject entsprechend fest. MitOption subject=titled kann dann zum einen gewählt werden, dass der Betreff mit einem Ti-tel versehen werden soll oder nicht. Der Titel wird über die Bezeichnung der Variablen subjectbestimmt (siehe Tabelle 4.15). Der vordefinierte Inhalt des Trennzeichens subjectseparatorbesteht aus einem Doppelpunkt, gefolgt von einem Leerzeichen.Zum anderen kann über subject=afteropening gewählt werden, dass der Betreff abwei-

chend von der Voreinstellung subject=beforeopening erst nach der Anrede gesetzt werdensoll. Eine andere Formatierung kann mit subject=underlined und subject=centered odersubject=rightv2.97c eingestellt werden. Mögliche Werte für Option subject sind Tabelle 4.16zu entnehmen. Es wird ausdrücklich darauf hingewiesen, dass bei der Einstellung subject=

Tabelle 4.15.: Vordefinierte Be-zeichnungen der Variablen fürden Betreff

Name Bezeichnungsubject \usekomavar*{subjectseparator}%

\usekomavar{subjectseparator}subjectseparator \subjectname

Kapitel 4: Briefe mit Klasse scrlttr2 oder Paket scrletter 218

Tabelle 4.16.: Mögliche Wertefür Option subject zur Plat-zierung und Formatierung einesBetreffs bei scrlttr2

afteropeningBetreff nach der Anrede setzen

beforeopeningBetreff vor der Anrede setzen

centeredBetreff zentrieren

leftBetreff linksbündig setzen

rightBetreff rechtsbündig setzen

titledBetreff mit Titel versehen

underlinedBetreff unterstreichen (Hinweis im Text beachten!)

untitledBetreff nicht mit Titel versehen

underlined der Betreff komplett in eine Zeile passen muss! Voreingestellt sind subject=left,subject=beforeopening und subject=untitled.Der Betreff wird in einer eigenen Schriftart gesetzt. Um diese zu ändern, verwenden Sie

die Anweisungen \setkomafont und \addtokomafont (siehe Abschnitt 4.9 ab Seite 188). Fürdas Elementv3.17 lettersubject ist als Schrift \normalcolor\bfseries voreingestellt. Bei Klassescrlttr2 kann als Alias für lettersubject auch subject verwendet werden. Bei Verwendungscrlttr2von Paket scrletter mit einer KOMA-Script-Klasse ist das nicht möglich, da bei diesen Klassenbereits ein Element subject mit abweichender Einstellung für den Dokumenttitel existiert.

Beispiel: Herr Musterfrau setzt nun auch den Betreff. Als eher traditioneller veranlagterMensch möchte er außerdem, dass der Betreff mit einer entsprechenden Spitzmarkeversehen wird, und setzt deshalb auch die zugehörige Option:\documentclass[foldmarks=true,foldmarks=blmtP,fromphone,fromemail,fromlogo,subject=titled,version=last]{scrlttr2}

\usepackage[ngerman]{babel}\usepackage{graphics}\begin{document}\setkomavar{fromname}{Peter Musterfrau}\setkomavar{fromaddress}{Hinter dem Tal 2\\

54321 Musterheim}\setkomavar{fromphone}{0\,12\,34~56\,78}\setkomavar{fromemail}{[email protected]}

Kapitel 4: Briefe mit Klasse scrlttr2 oder Paket scrletter 219

\setkomavar{fromlogo}{\includegraphics{musterlogo}}\setkomavar{location}{\raggedright

Mitglied Nr.~4711\\seit dem 11.09.2001\\Vorsitzender in den Jahren 2003--2005}

\setkomavar{date}{29. Februar 2011}\setkomavar{place}{Musterheim}\setkomavar{subject}{Mitgliederversammlung vermisst}\begin{letter}{%

Petra Mustermann\\Vor dem Berg 1\\12345 Musterhausen%

}\opening{Liebe Vereinsvorsitzende,}seit einem Jahr gab es keine Mitgliederversammlungmehr. Ich erinnere daran, dass unsere Satzung einesolche jedes halbe Jahr vorsieht. Ich fordere denVorstand daher auf, umgehend eine solche inAngriff zu nehmen.\closing{In Erwartung einer Einladung}\ps PS: Ich hoffe, Du nimmst mir das nicht krumm.\setkomavar*{enclseparator}{Anlage}\encl{Auszug aus der Satzung, in dem die

Mitgliederversammlungen geregelt sind}\cc{Die Vereinsvorsitzende\\Alle Mitglieder}\end{letter}\end{document}

Das Ergebnis ist in Abbildung 4.18 zu sehen.

firstfoot=Ein-Aus-Wert

Diesev2.97e Option bestimmt, ob der Briefbogenfuß überhaupt gesetzt wird. Das Abschalten mitfirstfoot=false hat Auswirkungen wenn gleichzeitig Option enlargefirstpage (siehe Sei-te 194) verwendet wird, da sich dadurch die Seite logisch nach unten verlängert. Zwischendem Ende des Satzspiegels und dem Seitenende bleibt dann nur der normale Abstand zwi-schen Satzspiegel und Seitenfuß.Die Option versteht die Standardwerte für einfache Schalter, die in Tabelle 2.5, Seite 42

angegeben sind. Voreingestellt ist das Setzen des Briefbogenfußes.

Kapitel 4: Briefe mit Klasse scrlttr2 oder Paket scrletter 220

Abbildung 4.18.: Ergebnis eines kleinen Briefes mit erwei-tertem Absender, Logo, Anschrift, Absenderergänzung, Ort,Datum, Betreff, Anrede, Text, Grußfloskel, Signatur, Post-skriptum, Anlagen, Verteiler und Lochermarke

Peter MusterfrauHinter dem Tal 254321 MusterheimTelefon: 0 12 34 56 78E-Mail: [email protected] MPeter Musterfrau, Hinter dem Tal 2, 54321 Musterheim

Petra MustermannVor dem Berg 112345 Musterhausen

Mitglied Nr. 4711seit dem 11.09.2001Vorsitzender in denJahren 2003–2005

Musterheim, 29. Februar 2011

Betrifft: Mitgliederversammlung vermisst

Liebe Vereinsvorsitzende,

seit einem Jahr gab es keine Mitgliederversammlung mehr. Ich erinnere daran, dassunsere Satzung eine solche jedes halbe Jahr vorsieht. Ich fordere den Vorstand daherauf, umgehend eine solche in Angriff zu nehmen.

In Erwartung einer Einladung

Peter Musterfrau

PS: Ich hoffe, Du nimmst mir das nicht krumm.

Anlage: Auszug aus der Satzung, in dem die Mitgliederversammlungen geregelt sind

Verteiler: Die VereinsvorsitzendeAlle Mitglieder

\setkomavar{firstfoot}[Bezeichnung ]{Inhalt }

Der Fuß der ersten Seite ist in der Voreinstellung leer. Es besteht jedoch die Möglichkeit, überden Inhalt der Variablenv3.08 firstfoot einen neue Festlegung zu treffen. Die Bezeichnung derVariablen wird von KOMA-Script nicht genutzt.

Beispiel: Sie wollen den Inhalt der Variablen frombank, also die Bankverbindung im Fuß derersten Seite ausgeben. Der doppelte Backslash soll dabei durch ein Komma ersetztwerden:\setkomavar{firstfoot}{%\parbox[b]{\linewidth}{%\centering\def\\{, }\usekomavar{frombank}%

}%}

Natürlich können Sie für das Trennzeichen auch eine eigene Variable definieren. Ichüberlasse dem Leser dies als Übung.Will man eine Art Brieffuß als Gegengewicht zum Briefkopf verwenden, so kanndieser beispielsweise wie folgt definiert werden:\setkomavar{firstfoot}{%\parbox[t]{\textwidth}{\footnotesize

\begin{tabular}[t]{l@{}}%

Kapitel 4: Briefe mit Klasse scrlttr2 oder Paket scrletter 221

\multicolumn{1}{@{}l@{}}{Gesellschafter:}\\Hugo Mayer\\Bernd Müller

\end{tabular}%\hfill\begin{tabular}[t]{l@{}}%\multicolumn{1}{@{}l@{}}{Geschäftsführung:}\\Liselotte Mayer\\[1ex]\multicolumn{1}{@{}l@{}}{Gerichtsstand:}\\Hinterdupfeldingen

\end{tabular}%\ifkomavarempty{frombank}{}{%

\hfill\begin{tabular}[t]{l@{}}%\multicolumn{1}{@{}l@{}}{%\usekomavar*{frombank}:}\\

\usekomavar{frombank}\end{tabular}%}%

}%}

Das Beispiel stammt ursprünglich von Torsten Krüger. Es wird empfohlen, einesolche Definition für die mehrfache Verwendung in unterschiedlichen Dokumentenin einer eigenen lco-Datei abzulegen. Mit\setkomavar{frombank}{IBAN DE21~87654321~13456789\\

bei der HansWurstBank\\BIC GRMLDEHD000}

kann die Bankverbindung dann im Dokument passend dazu gesetzt werden.

Im Beispiel wurde ein mehrzeiliger Fuß gesetzt. Bei einer Kompatibilitätseinstellung abVersion 2.9u (siehe version in Abschnitt 4.4, Seite 172) reicht der Platz dafür in der Regelnicht aus. Sie sollten dann firstfootvpos (siehe Seite 547) entsprechend verringern.

\setkomavar{frombank}[Bezeichnung ]{Inhalt }

Die im vorherigen Beispiel verwendete Variable frombank nimmt derzeit eine Sonderstellungein. Sie wird intern bisher nicht verwendet. Sie kann jedoch vom Anwender verwendet werden,um die Bankverbindung in das Absenderergänzungsfeld (siehe Variable location, Seite 211)oder wie im Beispiel in den Fuß zu setzen.

Kapitel 4: Briefe mit Klasse scrlttr2 oder Paket scrletter 222

4.11. Absatzauszeichnung

In der Einleitung zu Abschnitt 3.10 ab Seite 82 wird dargelegt, warum der Absatzeinzuggegenüber dem Absatzabstand vorzuziehen ist. Die Elemente, auf die sich diese Argumentebeziehen, beispielsweise Abbildungen, Tabellen, Listen, abgesetzte Formeln und auch neue Sei-ten, sind in Standardbriefen eher selten. Auch sind Briefe normalerweise nicht so umfänglich,dass ein nicht erkannter Absatz sich schwerwiegend auf die Lesbarkeit auswirkt. Die Argu-mente sind daher bei Standardbriefen eher schwach. Dies dürfte ein Grund dafür sein, dassder Absatzabstand bei Briefen eher gebräuchlich ist. Es bleiben damit für Standardbriefe imWesentlichen zwei Vorteile des Absatzeinzugs. Zum einen hebt sich ein solcher Brief aus derMasse hervor und zum anderen durchbricht man damit nicht nur für Briefe das einheitlicheErscheinungsbild aller Dokumente aus einer Quelle, die so genannte Corporate Identity. Überdiese Überlegungen hinaus gilt sinngemäß, was in Abschnitt 3.10 geschrieben wurde. Falls Siealso Abschnitt 3.10 bereits gelesen und verstanden haben, können Sie nach dem Ende die-ses Abschnitts auf Seite 223 mit Abschnitt 4.12 fortfahren. Dies gilt ebenso, wenn Sie nichtmit Klasse scrlttr2, sondern mit Paket scrletter arbeiten. Das Paket bietet keine eigenen Ein-scrlttr2stellungen für die Absatzauszeichnung, sondern verlässt sich dabei ganz auf die verwendeteKlasse.

parskip=Methode

Bei Briefen findet man häufiger ein Layout mit Absatzabstand anstelle des voreingestelltenAbsatzeinzugs. Die KOMA-Script-Klasse scrlttr2 bietet mit der Option parskip eine Reihe vonscrlttr2Möglichkeiten, um dies zu erreichen. Die Methode setzt sich dabei aus zwei Teilen zusammen.Der erste Teil ist entweder full oder half, wobei full für einen Absatzabstand von einerZeile und half für einen Absatzabstand von einer halben Zeile steht. Der zweite Teil ist einesder Zeichen »*«, »+«, »-« und kann auch entfallen. Lässt man das Zeichen weg, so wird inder letzten Zeile des Absatzes am Ende mindestens ein Geviert, das ist 1 em, frei gelassen. Mitdem Pluszeichen wird am Zeilenende mindestens ein Drittel und mit dem Stern mindestens einViertel einer normalen Zeile frei gelassen. Mit der Minus-Variante werden keine Vorkehrungenfür die letzte Zeile eines Absatzes getroffen.

Die Einstellung kann jederzeit geändert werden. Wird sie innerhalb des Dokuments geändert,so wird implizit die Anweisung \selectfontv3.08 ausgeführt. Änderungen der Absatzauszeichnunginnerhalb eines Absatzes werden erst am Ende des Absatzes sichtbar.Neben den sich so ergebenden acht Kombinationen ist es noch möglich, als Methode die

Werte für einfache Schalter aus Tabelle 2.5, Seite 42 zu verwenden. Das Einschalten der Optionentspricht dabei full ohne angehängtes Zeichen für den Freiraum der letzten Absatzzeile, alsomit mindestens einem Geviert Freiraum am Ende des Absatzes. Das Ausschalten der Optionschaltet hingegen wieder auf Absatzeinzug von einem Geviert um. Dabei darf die letzte Zeileeines Absatzes auch bis zum rechten Rand reichen. Einen Überblick über alle möglichen Wertefür Methode bietet Tabelle 3.7 auf Seite 83.

Kapitel 4: Briefe mit Klasse scrlttr2 oder Paket scrletter 223

Wird ein Absatzabstand verwendet, so verändert sich auch der Abstand vor, nach und inner-halb von Listenumgebungen. Dadurch wird verhindert, dass diese Umgebungen oder Absätzeinnerhalb dieser Umgebungen stärker vom Text abgesetzt werden als die Absätze des normalenTextes voneinander.Voreingestellt ist bei KOMA-Script parskip=false. Hierbei gibt es keinen Absatzabstand,

sondern einen Absatzeinzug von 1 em.

4.12. Erkennung von rechten und linken Seiten

Es gilt sinngemäß, was in Abschnitt 3.11 geschrieben wurde. Falls Sie also Abschnitt 3.11bereits gelesen und verstanden haben, können Sie in Abschnitt 4.13 auf Seite 224 fortfahren.Bei doppelseitigen Dokumenten wird zwischen linken und rechten Seiten unterschieden. Da-

bei hat eine linke Seite immer eine gerade Nummer und eine rechte Seite immer eine ungeradeNummer. In der Regel werden Briefe einseitig gesetzt. Sollen Briefe mit einseitigem Layout je-doch auf Vorder- und Rückseite gedruckt oder ausnahmsweise tatsächlich doppelseitige Briefeerstellt werden, kann unter Umständen das Wissen, ob man sich auf einer Vorder- oder einerRückseite befindet, nützlich sein.

\ifthispageodd{Dann-Teil }{Sonst-Teil }

Will man bei KOMA-Script feststellen, ob ein Text auf einer geraden oder einer ungeradenSeite ausgegeben wird, so verwendet man die Anweisung \ifthispageodd. Dabei wird dasArgument Dann-Teil nur dann ausgeführt, wenn man sich aktuell auf einer ungeraden Seitebefindet. Anderenfalls kommt das Argument Sonst-Teil zur Anwendung.

Beispiel: Angenommen, Sie wollen einfach nur ausgeben, ob ein Text auf einer geraden oderungeraden Seite ausgegeben wird. Sie könnten dann beispielsweise mit der EingabeDies ist eine Seite mit\ifthispageodd{un}{}gerader Seitenzahl.

die AusgabeDies ist eine Seite mit ungerader Seitenzahl.

erhalten. Beachten Sie, dass in diesem Beispiel das Argument Sonst-Teil leergeblieben ist.

Da die Anweisung \ifthispageodd mit einem Mechanismus arbeitet, der einem Label undeiner Referenz darauf sehr ähnlich ist, werden nach jeder Textänderung mindestens zwei LATEX-Durchläufe benötigt. Erst dann ist die Entscheidung korrekt. Im ersten Durchlauf wird für dieEntscheidung eine Heuristik verwendet.Näheres zur Problematik der Erkennung von linken und rechten Seiten oder geraden und

ungeraden Seitennummern ist für Experten in Abschnitt 21.1, Seite 501 zu finden.

Kapitel 4: Briefe mit Klasse scrlttr2 oder Paket scrletter 224

4.13. Kopf und Fuß bei vordefinierten Seitenstilen

Eine der allgemeinen Eigenschaften eines Dokuments ist der Seitenstil. Bei LATEX verstehtman unter dem Seitenstil in erster Linie den Inhalt der Kopf- und Fußzeilen. Wie bereits inAbschnitt 4.10 erwähnt, werden Kopf und Fuß des Briefbogens als Elemente des Briefbogensbetrachtet und unterliegen damit nicht den Einstellungen für den Seitenstil. Es geht alsohier im Wesentlichen um den Seitenstil der weiteren Briefseiten nach dem Briefbogen. Beieinseitigen Briefen ist das der Seitenstil des Zweitbogens. Bei doppelseitigen Briefen ist auchder Seitenstil aller Rückseiten betroffen.

\letterpagestyle

Derv3.19 für Briefe voreingestellte Seitenstil wird durch den Inhalt dieser Anweisung bestimmt. Inder Voreinstellung von scrlttr2 ist die Anweisung leer definiert. Das bedeutet, dass der Seitenstilscrlttr2von Briefen dem des restlichen Dokuments entspricht. Dies ist deshalb sinnvoll, weil scrlttr2für reine Briefdokumente gedacht ist und es dafür einfacher ist, den Seitenstil wie gewohntmit \pagestyle global einzustellen.

Da sowohl Seitenstil plain als auch der Stil headings anderer Klassen vom gewünschtenSeitenstil für Briefe abweicht, ist für das Paket scrletter der Seitenstil plain.letter in derscrletterAnweisung \letterpagestyle gespeichert. Damit werden alle Briefe mit dem zum Seitenstilletter gehörenden plain-Seitenstil gesetzt unabhängig davon, was für das restliche Dokumentals Seitenstil eingestellt ist.

Beispiel: Sie wollen auch bei Verwendung von Paket scrletter, dass die Briefe in dem Seitenstilgesetzt werden, der für das Dokument selbst mit \pagestyle eingestellt wurde.Dazu schreiben sie die Anweisung\renewcommand*{\letterpagestyle}{}

in die Dokumentpräambel. Dabei ist übrigens der Stern bei \renewcommand* wich-tig!

Natürlich haben die Anweisung \pagestyle und \thispagestyle innerhalb eines Briefes Vor-rang vor dem innerhalb von \begin{letter} über \letterpagestyle eingestellten Seitenstil.

headsepline=Ein-Aus-Wertfootsepline=Ein-Aus-Wert

Mit diesen Optionen kann bei scrlttr2 eingestellt werden, ob eine Trennlinie unter dem Kopfscrlttr2oder über dem Fuß von Folgeseiten gewünscht wird. Als Ein-Aus-Wert kann einer der Stan-dardwerte für einfache Schalter aus Tabelle 2.5, Seite 42 verwendet werden. Ein Aktivierender Option headsepline schaltet die Linie unter dem Kopf ein. Ein Aktivieren der Optionfootsepline schaltet die Linie über dem Fuß ein. Die Deaktivierung der Optionen schaltetdie jeweilige Linie aus.

Kapitel 4: Briefe mit Klasse scrlttr2 oder Paket scrletter 225

Beim Seitenstil empty (siehe später in diesem Abschnitt) haben die Optionen headseplineund footsepline selbstverständlich keine Auswirkung. Bei diesem Seitenstil soll ja auf Sei-tenkopf und Seitenfuß ausdrücklich verzichtet werden.Typografisch betrachtet hat eine solche Linie immer die Auswirkung, dass der Kopf oder

Fuß optisch näher an den Text heranrückt. Dies bedeutet nun nicht, dass Kopf oder Fußräumlich weiter vom Textkörper weggerückt werden müssten. Stattdessen sollten sie dann beider Berechnung des Satzspiegels als zum Textkörper gehörend betrachtet werden. Dies wird beiscrlttr2 dadurch erreicht, dass bei Verwendung der Klassenoption headsepline automatischdie Paketoption headinclude mit gleichem Wert an das typearea-Paket weitergereicht wird.Entsprechendes gilt bei footsepline für footinclude.

Die Optionen führen selbst keine automatische Neuberechnung des Satzspiegels aus. ZurNeuberechnung des Satzspiegels siehe Option DIV mit den Werten last oder current (sieheSeite 38) oder die Anweisung \recalctypearea (siehe Seite 41) in Kapitel 2.Das Paket scrlayer-scrpage (siehe Kapitel 5) bietet weitere Einflussmöglichkeiten für Linien

im Kopf und Fuß und kann auch mit scrlttr2 kombiniert werden. Das Paket scrletter verwendethingegen automatisch zur Definition der Seitenstile letter und plain.letter.Die von scrletter definierten Seitenstile letter und plain.letter unterliegen den Regelnscrletter

von scrlayer-scrpage. Dies betrifft insbesondere das Setzen der Linien in Kopf und Fuß desplain-Seitenstils plain.letter. Siehe dazu in Abschnitt 5.5, Seite 278 und Seite 279 dieOptionen headsepline und plainheadsepline. Auch Einstellungen wie automark sind fürden Seitenstil letter von einiger Bedeutung.

pagenumber=Position

Mit Hilfe dieser Option kann bestimmt werden, ob und wo eine Seitenzahl auf Folgeseiten ge-setzt werden soll. Die Option wirkt sich bei scrlttr2 auf die Seitenstile headings, myheadingsscrlttr2und plain und bei scrletter auf letter und plain.letter aus. Sie beeinflusst außerdem diescrletterVoreinstellung der Seitenstile des Pakets scrlayer-scrpage, soweit sie vor dem Laden des Pa-kets gesetzt wird (siehe Kapitel 5). Es gibt Werte, die sich nur auf die horizontale Positionauswirken, Werte, die nur die vertikale Position beeinflussen, und Werte, die zugleich die ver-tikale und die horizontale Position festlegen. Mögliche Werte sind Tabelle 4.17 zu entnehmen.Voreingestellt ist botcenter.

\pagestyle{Seitenstil }\thispagestyle{lokaler Seitenstil }

Bei Briefen mit scrlttr2 wird zwischen vier verschiedenen Seitenstilen unterschieden. Dagegenscrlttr2definiert scrletter nur zwei eigene Seitenstile.scrletter

empty ist der Seitenstil, bei dem Kopf- und Fußzeile von Folgeseiten vollständig leer bleiben.Dieser Seitenstil wird auch automatisch für die erste Briefseite verwendet, da auf dieserSeite Kopf und Fuß über \opening (siehe Abschnitt 4.10, Seite 178) mit anderen Mittelngesetzt werden.

Kapitel 4: Briefe mit Klasse scrlttr2 oder Paket scrletter 226

Tabelle 4.17.: Mögliche Werte für Option pagenumber zur Positionierung der Paginierung innerhalbder Seitenstile

bot, footSeitenzahl im Fuß ohne Änderung der horizontalen Position

botcenter, botcentered, botmittle, footcenter, footcentered, footmiddleSeitenzahl zentriert innerhalb des Fußes

botleft, footleftSeitenzahl links im Fuß

botright, footrightSeitenzahl rechts im Fuß

center, centered, middleSeitenzahl zentriert ohne Änderung der vertikalen Position

false, no, offkeine Seitenzahl

head, topSeitenzahl im Kopf ohne Änderung der horizontalen Position

headcenter, headcentered, headmiddle, topcenter, topcentered, topmiddleSeitenzahl zentriert innerhalb des Kopfes

headleft, topleftSeitenzahl links im Kopf

headright, toprightSeitenzahl rechts im Kopf

leftSeitenzahl links ohne Änderung der vertikalen Position

rightSeitenzahl rechts ohne Änderung der vertikalen Position

headings ist bei scrlttr2 der Seitenstil für automatische Kolumnentitel auf Folgeseiten. Dabeiscrlttr2werden als automatisch gesetzte Marken der Absendername aus der Variablen fromnameund der Betreff aus der Variablen subject verwendet (siehe Abschnitt 4.10, Seite 196und Seite 217). Wo genau diese Marken und die Seitenangabe ausgegeben werden, hängtvon der oben erklärten Option pagenumber und dem Inhalt der Variablen nextheadund nextfoot ab. Der Autor kann die Marken aber auch noch nach \opening manuellbeeinflussen. Hierzu stehen wie üblich die Anweisungen \markboth und \markright, beiVerwendung von scrlayer-scrpage auch \markleft (siehe Abschnitt 5.5, Seite 275), zurVerfügung.Da scrletter intern scrlayer-scrpage verwendet, wird ein eventuell von der Klasse bereitge-scrletterstellter Seitenstil headings als Alias von scrheadings umdefiniert. Näheres zu diesem

Kapitel 4: Briefe mit Klasse scrlttr2 oder Paket scrletter 227

Seitenstil ist in Kapitel 5 auf Seite 258 zu erfahren.

letter Da der Seitenstil headings im allgemeinen bereits von den Klassen belegt ist, definiertdas Paket scrletter stattdessen einen Seitenstil letter. Dies geschieht mit Hilfe vonscrletterscrlayer-scrpage aus Kapitel 5, Seite 252. Bei der Einstellung automark=true übernimmtletter dann die Rolle, die bei scrlttr2 von headings ausgefüllt wird. Bei automark=false übernimmt letter dagegen die Rolle von myheadings.Durch die Verwendung von scrlayer-scrpage kann das veraltete Paket scrpage2 oder dasmit KOMA-Script wenig kompatible Paket fancyhdr nicht zusammen mit scrletter ver-wendet werden.

myheadings ist bei scrlttr2 der Seitenstil für manuelle Kolumnentitel auf Folgeseiten. Im Un-scrlttr2terschied zu headings müssen die Marken vom Anwender gesetzt werden. Er verwendetdazu die Anweisungen \markboth und \markright. Bei Verwendung von scrlayer-scrpagesteht außerdem \markleft zur Verfügung.Beim Paket scrletter übernimmt der Seitenstil letter ebenfalls die Rolle vonscrlettermyheadings.

plain ist bei scrlttr2 der voreingestellte Seitenstil, bei dem auf Folgeseiten keinerlei Kolum-scrlttr2nentitel verwendet, sondern nur eine Seitenangabe ausgegeben wird. Wo diese gesetztwird, hängt von der oben erklärten Option pagenumber ab.Da scrletter intern scrlayer-scrpage verwendet, wird der Seitenstil plain als Alias vonscrletterplain.scrheadings umdefiniert. Näheres zu diesem Seitenstil ist in Kapitel 5 auf Sei-te 258 zu erfahren.

plain.letter Da der Seitenstil plain im allgemeinen bereits von den Klassen belegt ist,definiert das Paket scrletter stattdessen einen Seitenstil plain.letter. Dies geschiehtscrlettermit Hilfe von scrlayer-scrpage. Durch diese Verwendung von scrlayer-scrpage kann dasveraltete Pakete scrpage2 oder das mit KOMA-Script wenig kompatible Paket fancyhdrnicht zusammen mit scrletter verwendet werden.

Die Form der Seitenstile wird außerdem durch die oben erklärten Optionen headseplineund footsepline beeinflusst. Der Seitenstil ab der aktuellen Seite wird mit \pagestyle um-geschaltet. Demgegenüber verändert \thispagestyle nur den Seitenstil der aktuellen Seite.KOMA-Script verwendet \thispagestyle{empty} selbst innerhalb von \opening für die ersteBriefseite.Um die Schriftart von Kopf und Fuß der Seite oder der Seitenangabe zu ändern, verwenden

Sie die Benutzerschnittstelle, die in Abschnitt 4.9 beschrieben ist. Für den Kopf und den Fußist dabei das gleiche Element zuständig, das Sie wahlweise mit pageheadfoot oder pageheadbenennen können. Für den Fußv3.00 ist zusätzlich auch noch das Element pagefoot zuständig, dasnach pageheadfoot in mit Variable nextfoot oder per Paket scrlayer-scrpage (siehe Kapitel 5,

Kapitel 4: Briefe mit Klasse scrlttr2 oder Paket scrletter 228

Seite 262) definierten Seitenstilen zur Anwendung kommt. Das Element für die Seitenzahlinnerhalb des Kopfes oder Fußes heißt pagenumber. Die Voreinstellungen sind in Tabelle 3.8,Seite 87 zu finden. Beachten Sie dazu auch das Beispiel aus Abschnitt 3.12, Seite 87.

\markboth{linke Marke }{rechte Marke }\markright{rechte Marke }

In den meisten Fällen werden die Möglichkeiten, die KOMA-Script über Optionen und Varia-blen für die Gestaltung des Seitenkopfes und -fußes auf Folgeseiten zur Verfügung stellt, voll-kommen ausreichen. Dies gilt umso mehr, als man zusätzlich mit \markboth und \markrightdie Möglichkeit hat, die Angaben zu ändern, die scrlttr2 oder scrletter in den Kopf setzt. DieAnweisungen \markboth und \markright können insbesondere mit dem Seitenstil myheadingsverwendet werden. Bei Verwendung des Pakets scrlayer-scrpage gilt dies natürlich auch für denSeitenstil scrheadings. Dort steht außerdem die Anweisung \markleft zur Verfügung (sieheAbschnitt 5.5, Seite 275).

\setkomavar{nexthead}[Bezeichnung ]{Inhalt }\setkomavar{nextfoot}[Bezeichnung ]{Inhalt }

In einigen wenigen Fällen will man jedoch den Kopf oder Fuß der Folgeseiten ähnlich demBriefbogen freier gestalten. In diesen Fällen muss auf die vordefinierten Möglichkeiten, die peroben erklärter Option pagenumber auswählbar sind, verzichtet werden. Stattdessen gestaltetman sich den Kopf und Fuß der Folgeseiten bei scrlttr2 im Seitenstil headings oder myheadingsscrlttr2und bei scrletter im Seitenstil letter frei. Dazu setzt man den gewünschten Aufbau als Inhaltscrletterder Variablenv3.08 nexthead beziehungsweise nextfoot. Innerhalb des Inhalts von nexthead undnextfoot können beispielsweise mit Hilfe der \parbox-Anweisung (siehe [Tea05b]) mehrereBoxen neben- und untereinander gesetzt werden. Einem versierten Anwender sollte es so mög-lich sein, eigene Seitenköpfe und -füße zu gestalten. Natürlich kann und sollte im Wert mitHilfe von \usekomavar auch auf weitere Variablen zugegriffen werden. Die Bezeichnung wirdvon KOMA-Script bei beiden Variablen nicht genutzt.

4.14. Vakatseiten

Es gilt sinngemäß, was in Abschnitt 3.13 geschrieben wurde. Falls Sie also Abschnitt 3.13bereits gelesen und verstanden haben, können Sie auf Seite 230 mit Abschnitt 4.15 fortfahren.

Vakatseiten sind Seiten, die beim Satz eines Dokuments absichtlich leer bleiben. Bei LATEXwerden sie jedoch in der Voreinstellung mit dem aktuell gültigen Seitenstil gesetzt. KOMA-Script bietet hier diverse Erweiterungen.

Vakatseiten findet man hauptsächlich in Büchern. Da es bei Büchern üblich ist, dass Kapitelauf einer rechten Seite beginnen, muss in dem Fall, dass das vorherige Kapitel ebenfalls aufeiner rechten Seite endet, eine leere linke Seite eingefügt werden. Aus dieser Erklärung ergibtsich auch, dass Vakatseiten normalerweise nur im doppelseitigen Satz existieren.

Kapitel 4: Briefe mit Klasse scrlttr2 oder Paket scrletter 229

Vakatseiten sind bei Briefen eher unüblich. Das liegt nicht zuletzt daran, dass wahrhaftdoppelseitige Briefe recht selten sind, da Briefe normalerweise nicht gebunden werden. Trotz-dem unterstützt KOMA-Script auch für den Fall von doppelseitigen Briefen Einstellungen fürVakatseiten. Da die hier vorgestellten Anweisungen aber in Briefen kaum Verwendung fin-den, finden Sie hier keine Beispiele. Bei Bedarf orientieren Sie sich bitte an den Beispielen inAbschnitt 3.13 ab Seite 92.

cleardoublepage=Seitenstilcleardoublepage=current

Mit Hilfe dieser Optionv3.00 kann man den Seitenstil der Vakatseite bestimmen,die bei Bedarf von den Anweisungen \cleardoublepage, \cleardoubleoddpage oder\cleardoubleevenpage eingefügt wird, um bis zur gewünschten Seite zu umbrechen. AlsSeitenstil sind dabei alle bereits definierten Seitenstile (siehe Abschnitt 4.13 ab Seite 224und Kapitel 5 ab Seite 252) verwendbar. Daneben ist auch cleardoublepage=current mög-lich. Dieser Fall entspricht der Voreinstellung von KOMA-Script bis Version 2.98c und führtdazu, dass die Vakatseite mit dem Seitenstil erzeugt wird, der beim Einfügen gerade aktuell ist.Ab Version 3.00v3.00 werden in der Voreinstellung entsprechend der typografischen Gepflogenhei-ten Vakatseiten mit dem Seitenstil empty erzeugt, wenn man nicht Kompatibilität zu früherenKOMA-Script-Versionen eingestellt hat (siehe Option version, Abschnitt 4.4, Seite 172).

\clearpage\cleardoublepage\cleardoublepageusingstyle{Seitenstil }\cleardoubleemptypage\cleardoubleplainpage\cleardoublestandardpage\cleardoubleoddpage\cleardoubleoddpageusingstyle{Seitenstil }\cleardoubleoddemptypage\cleardoubleoddplainpage\cleardoubleoddstandardpage\cleardoubleevenpage\cleardoubleevenpageusingstyle{Seitenstil }\cleardoubleevenemptypage\cleardoubleevenplainpage\cleardoubleevenstandardpage

Im LATEX-Kern existiert die Anweisung \clearpage, die dafür sorgt, dass alle noch nichtausgegebenen Gleitumgebungen ausgegeben werden und anschließend eine neue Seite begon-nen wird. Außerdem existiert die Anweisung \cleardoublepage, die wie \clearpage arbeitet,durch die aber im doppelseitigen Layout (siehe Option twoside in Abschnitt 2.6, Seite 42) eine

Kapitel 4: Briefe mit Klasse scrlttr2 oder Paket scrletter 230

neue rechte Seite begonnen wird. Dazu wird gegebenenfalls eine linke Vakatseite im aktuellenSeitenstil ausgegeben.Bei KOMA-Script arbeitet \cleardoubleoddstandardpagev3.00 genau in der soeben für die

Standardklassen beschriebenen Art und Weise. Die Anweisung \cleardoubleoddplainpageändert demgegenüber den Seitenstil der leeren linken Seite zusätzlich auf plain, um den Seiten-kopf zu unterdrücken. Analog dazu wird bei der Anweisung \cleardoubleoddemptypage derSeitenstil empty verwendet, um sowohl Seitenkopf als auch Seitenfuß auf der leeren linken Seitezu unterdrücken. Die Seite ist damit vollständig leer. Will man für die Vakatseite einen eige-nen Seitenstil vorgeben, so ist dieser als Argument von \cleardoubleoddpageusingstyleanzugeben. Dabei kann jeder bereits definierte Seitenstil (siehe auch Kapitel 5) verwendetwerden.Die Arbeitsweise der Anweisungen \cleardoublestandardpage, \cleardoubleemptypage,

\cleardoubleplainpage und der ein Argument erwartenden Anweisung\cleardoublepageusingstyle entspricht bei der Klasse scrlttr2 ebenso wie die Standard-Anweisung \cleardoublepage den entsprechenden, zuvor erklärten Anweisungen. Dieübrigen Anweisungen sind bei scrlttr2 nur aus Gründen der Vollständigkeit definiert. Nähereszu diesen ist bei Bedarf Abschnitt 3.13, Seite 93 zu entnehmen.Im doppelseitigen Satz führt \cleardoubleoddpage immer zur nächsten linken Seite,

\cleardoubleevenpage zur nächsten rechten Seite. Eine gegebenenfalls einzufügenden Va-katseite wird mit dem über Option cleardoublepage festgelegten Seitenstil ausgegeben.

4.15. Fußnoten

Es gilt sinngemäß, was in Abschnitt 3.14 geschrieben wurde. Falls Sie also Abschnitt 3.14bereits gelesen und verstanden haben, können Sie auf Seite 233 mit Seite 233 fortfahren. Wirdkeine KOMA-Script-Klasse verwendet, stützt sich scrletter auf das Paket scrextend. Siehe daherscrletterbei Verwendung von scrletter ebenfalls Abschnitt 10.11 ab Seite 307.

Die Anweisungen zum Setzen von Fußnoten sind in jeder LATEX-Einführung, beispielsweise[DGS+12], zu finden. KOMA-Script bietet darüber hinaus aber auch noch die Möglichkeit, dieForm der Fußnoten zu verändern.

footnotes=Einstellung\multfootsep

Fußnotenv3.00 werden im Text in der Voreinstellung mit kleinen, hochgestellten Ziffern markiert.Werden in der Voreinstellung footnotes=nomultiple zu einer Textstelle mehrere Fußnotenhintereinander gesetzt, so entsteht der Eindruck, dass es sich nicht um zwei einzelne Fußnoten,sondern um eine einzige Fußnote mit hoher Nummer handele.Mit footnotes=multiple werden Fußnoten, die unmittelbar aufeinander folgen, stattdessen

mit einem Trennzeichen aneinander gereiht. Das in \multfootsep definierte Trennzeichen istals

Kapitel 4: Briefe mit Klasse scrlttr2 oder Paket scrletter 231

\newcommand*{\multfootsep}{,}

definiert. Es ist also mit einem Komma vorbelegt. Dieses kann umdefiniert werden.Der gesamte Mechanismus ist kompatibel zu footmisc, Version 5.3d bis 5.5b (siehe [Fai11])

implementiert. Er wirkt sich sowohl auf Fußnotenmarkierungen aus, die mit \footnote gesetztwurden, als auch auf solche, die direkt mit \footnotemark ausgegeben werden.Es ist jederzeit möglich, mit \KOMAoptions oder \KOMAoption auf die Voreinstellung

footnotes=nomultiple zurückzuschalten. Bei Problemen mit anderen Paketen, die Einflussauf die Fußnoten nehmen, sollte die Option jedoch nicht verwendet und die Einstellung auchnicht innerhalb des Dokuments umgeschaltet werden.

Eine Zusammenfassung möglicher Werte für die Einstellung von footnotes bietet Tabel-le 3.11, Seite 95.

\footnote[Nummer ]{Text }\footnotemark[Nummer ]\footnotetext[Nummer ]{Text }\multiplefootnoteseparator

Fußnoten werden bei KOMA-Script genau wie bei den Standardklassen mit der Anwei-sung \footnote oder den paarweise zu verwendenden Anweisungen \footnotemark und\footnotetext erzeugt. Genau wie bei den Standardklassen ist es möglich, dass innerhalbeiner Fußnote ein Seitenumbruch erfolgt. Dies geschieht in der Regel dann, wenn die zugehöri-ge Fußnotenmarkierung so weit unten auf der Seite gesetzt wird, dass keine andere Wahl bleibt,als die Fußnote auf die nächste Seite zu umbrechen. Im Unterschiedv3.00 zu den Standardklassenbietet KOMA-Script aber zusätzlich die Möglichkeit, Fußnoten, die unmittelbar aufeinanderfolgen, automatisch zu erkennen und durch ein Trennzeichen auseinander zu rücken. Siehehierzu die zuvor dokumentierte Option footnotes.

Will man dieses Trennzeichen stattdessen von Hand setzen, so erhält man es durch Aufrufvon \multiplefootnoteseparator. Diese Anweisung sollten Anwender jedoch nicht umdefi-nieren, da sie neben dem Trennzeichen auch die Formatierung des Trennzeichen, beispielsweisedie Wahl der Schriftgröße und das Hochstellen, enthält. Das Trennzeichen selbst ist in der zu-vor erklärten Anweisung \multfootsep gespeichert.Beispiele und ergänzende Hinweise sind Abschnitt 3.14 ab Seite 96 zu entnehmen.

\footref{Referenz }

Manchmalv3.00 hat man in einem Dokument eine Fußnote, zu der es im Text mehrere Verwei-se geben soll. Die ungünstige Lösung dafür wäre die Verwendung von \footnotemark unterAngabe der gewünschten Nummer. Ungünstig an dieser Lösung ist, dass man die Nummerkennen muss und sich diese jederzeit ändern kann. KOMA-Script bietet deshalb die Mög-lichkeit, den \label-Mechanismus auch für Verweise auf Fußnoten zu verwenden. Man setztdabei in der entsprechenden Fußnote eine \label-Anweisung und kann dann mit \footref

Kapitel 4: Briefe mit Klasse scrlttr2 oder Paket scrletter 232

alle weiteren Fußnotenmarken für diese Fußnote im Text setzen. Da die Fußnotenmarken mitHilfe des \label-Mechanismus gesetzt werden, werden nach Änderungen, die sich auf die Fuß-notennummerierung auswirken, gegebenenfalls zwei LATEX-Durchläufe benötigt, bis die mit\footref gesetzten Marken korrekt sind.Ein Beispiel zur Verwendung von \footref finden Sie in Abschnitt 3.14 auf Seite 97.

\deffootnote[Markenbreite ]{Einzug }{Absatzeinzug }{Markendefinition }\deffootnotemark{Markendefinition }\thefootnotemark

KOMA-Script setzt Fußnoten etwas anders als die Standardklassen. Die Fußnotenmarkierungim Text, also die Referenzierung der Fußnote, erfolgt wie bei den Standardklassen durch kleinehochgestellte Zahlen. Genauso werden die Markierungen auch in der Fußnote selbst wieder-gegeben. Sie werden dabei rechtsbündig in einem Feld der Breite Markenbreite gesetzt. Dieerste Zeile der Fußnote schließt direkt an das Feld der Markierung an.Alle weiteren Zeilen werden um den Betrag von Einzug eingezogen ausgegeben. Wird der op-

tionale Parameter Markenbreite nicht angegeben, dann entspricht er dem Wert von Einzug .Sollte die Fußnote aus mehreren Absätzen bestehen, dann wird die erste Zeile eines Absatzeszusätzlich mit dem Einzug der Größe Absatzeinzug versehen.

Abbildung 3.1 auf Seite 98 veranschaulicht die verschiedenen Parameter. Die Voreinstellungin den KOMA-Script-Klassen entspricht folgender Definition:\deffootnote[1em]{1.5em}{1em}{%\textsuperscript{\thefootnotemark}%

}

Dabei wird mit Hilfe von \textsuperscript sowohl die Hochstellung als auch die Wahl einerkleineren Schrift erreicht. Die Anweisung \thefootnotemark liefert die aktuelle Fußnotenmar-ke ohne jegliche Formatierung.Auf die Fußnote einschließlich der Markierung findet außerdem die für das Element footnote

eingestellte Schriftart Anwendung. Die Schriftart der Markierung kann jedoch mit Hilfe derAnweisungen \setkomafont und \addtokomafont (siehe Abschnitt 4.9, Seite 188) für dasElement footnotelabel davon abweichend eingestellt werden. Siehe hierzu auch Tabelle 3.2,Seite 63. Voreingestellt ist jeweils keine Umschaltung der Schrift. Bitte missbrauchen Sie dasElement nicht für andere Zwecke, beispielsweise zur Verwendung von Flattersatz in den Fuß-noten (siehe dazu auch \raggedfootnote, Seite 233).Die Fußnotenmarkierung im Text wird getrennt von der Markierung vor der Fußnote defi-

niert. Dies geschieht mit der Anweisung \deffootnotemark. Voreingestellt ist hier:\deffootnotemark{\textsuperscript{\thefootnotemark}}

Dabei findet die Schriftart für das Element footnotereference Anwendung (siehe Tabel-le 4.2, Seite 188). Die Markierungen im Text und in der Fußnote selbst sind also identisch.

Kapitel 4: Briefe mit Klasse scrlttr2 oder Paket scrletter 233

Die Schriftart kann mit den Anweisungen \setkomafont und \addtokomafont (siehe Ab-schnitt 4.9, Seite 188) jedoch geändert werden.Beispiele finden Sie in Abschnitt 3.14, Seite 98.

\setfootnoterule[Höhe ]{Länge }

Üblicherweisev3.06 wird zwischen dem Textbereich und dem Fußnotenapparat eine Trennlinie ge-setzt, die jedoch normalerweise nicht über die gesamte Breite des Satzspiegels geht. Mit Hilfedieser Anweisung kann die genaue Länge und die Höhe oder Dicke der Linie bestimmt werden.Dabei werden Höhe und Länge erst beim Setzen der Linie selbst abhängig von \normalsizeausgewertet. Der optionale Parameter Höhe kann komplett entfallen und wird dann nicht ge-ändert. Ist das Argument Höhe oder Länge leer, so wird die jeweilige Größe ebenfalls nichtgeändert. Es gibt sowohl beim Setzen als auch bei Verwendung der Größen für unplausibleWerte eine Warnung.Die Farbev3.07 der Linie kann über das Element footnoterule mit Hilfe der Anweisungen

\setkomafont und \addtokomafont (siehe Abschnitt 4.9, Seite 188) eingestellt werden. Vor-eingestellt ist hierbei keinerlei Änderung von Schrift oder Farbe. Um die Farbe ändern zukönnen, muss außerdem ein Farbpaket wie xcolor geladen sein.

\raggedfootnote

Inv3.23 der Voreinstellung werden die Fußnoten bei KOMA-Script genau wie bei den Standardklas-sen im Blocksatz gesetzt. Es ist aber auch möglich die Formatierung abweichend vom restlichenDokument zu ändern. Dazu ist \raggedfootnote umzudefinieren. Gültige Definitionen wä-ren \raggedright, \raggedleft, \centering, \relax oder entsprechend der Voreinstellungeine leere Definition. Auch die Ausrichtungsbefehle des Pakets ragged2e sind zulässig (siehe[Sch09]).

Beispiel: Angenommen Sie verwenden Fußnoten ausschließlich, um Hinweise auf sehr langeLinks anzugeben, deren Umbruch im Blocksatz zu schlechten Ergebnissen führen.Dann könnten Sie in der Dokumentpräambel mit\let\raggedfootnote\raggedright

für die Fußnoten einfach auf linksbündigen Flattersatz umschalten.

4.16. Listen

Es gilt sinngemäß, was in Abschnitt 3.18 geschrieben wurde. Falls Sie also Abschnitt 3.18bereits gelesen und verstanden haben, können Sie auf Seite 237 mit Abschnitt 4.17 fortfahren.Das Paket scrletter definiert selbst keine Listenumgebungen, sondern überlässt diese der ver-scrletterwendeten Klasse. Ist dies keine KOMA-Script-Klasse, so lädt es scrextend. Allerdings werdenvom Paket scrextend nur die Umgebungen labeling, addmargin und addmargin* definiert.

Kapitel 4: Briefe mit Klasse scrlttr2 oder Paket scrletter 234

Alle anderen Listenumgebungen bleiben der Verantwortung der verwendeten Klasse überlas-sen.LATEX und die Standardklassen bieten verschiedene Umgebungen für Listen. All diese Um-

gebungen bietet KOMA-Script selbstverständlich auch, teilweise jedoch mit leichten Abwand-lungen oder Erweiterungen. Grundsätzlich gilt, dass Listen – auch unterschiedlicher Art – biszu einer Tiefe von vier Listen geschachtelt werden können. Eine tiefere Schachtelung wäre auchaus typografischen Gründen kaum sinnvoll, da genau genommen schon mehr als drei Ebenennicht mehr überblickt werden können. Ich empfehle in solchen Fällen, die eine große Liste inmehrere kleinere Listen aufzuteilen.Da Listen zu den Standardelementen von LATEX gehören, wurde in diesem Abschnitt auf

Beispiele verzichtet. Sie finden solche in Abschnitt 3.18 ab Seite 126 oder in jeder LATEX-Einführung.

\begin{itemize}\item . . ....

\end{itemize}\labelitemi\labelitemii\labelitemiii\labelitemiv

scrlttr2Die einfachste Form einer Liste ist die Stichpunkt- oder itemize-Liste. Bei den KOMA-Script-Klassen werden je nach Ebene folgende Aufzählungszeichen zur Einleitung eines Listenelementsverwendet: »•«, »–«, »∗« und »·«. Die Definition der Zeichen für die einzelnen Ebenen sindin den Makros \labelitemi, \labelitemii, \labelitemiii und \labelitemiv abgelegt. Siekönnen diese leicht mit \renewcommand umdefinieren. Die einzelnen Stichpunkte werden mit\item eingeleitet.

Kapitel 4: Briefe mit Klasse scrlttr2 oder Paket scrletter 235

\begin{enumerate}\item . . ....

\end{enumerate}\theenumi\theenumii\theenumiii\theenumiv\labelenumi\labelenumii\labelenumiii\labelenumiv

scrlttr2Die nummerierte Liste ist ebenfalls sehr häufig zu finden und bereits vom LATEX-Kern vor-gesehen. Die Nummerierung erfolgt je nach Ebene in unterschiedlicher Art: mit arabischenZahlen, mit Kleinbuchstaben, mit kleinen römischen Zahlen und mit Großbuchstaben. DieArt der Nummerierung wird dabei über die Makros \theenumi bis \theenumiv festgelegt.Das Format der Ausgabe wird von den Makros \labelenumi bis \labelenumiv bestimmt.Dabei folgt auf den Wert der zweiten Ebene, der in Kleinbuchstaben ausgegeben wird, einerunde Klammer, während die Werte aller anderen Ebenen von einem Punkt gefolgt werden.Die einzelnen Stichpunkte werden wieder mit \item eingeleitet.

\begin{description}\item[Stichwort ] . . ....

\end{description}scrlttr2

Eine weitere Listenform ist die Stichwortliste. Sie dient in erster Linie der Beschreibung ein-zelner Begriffe. Diese werden als optionale Parameter bei \item angegeben. Die Schriftartv2.8p , diefür die Hervorhebung des Stichworts verwendet wird, kann außerdem bei den KOMA-Script-Klassen mit Hilfe der Anweisungen \setkomafont und \addtokomafont (siehe Abschnitt 4.9,Seite 188) für das Element descriptionlabel (siehe Tabelle 4.2, Seite 188) geändert werden.In der Voreinstellung wird \sffamily\bfseries verwendet.

\begin{labeling}[Trennzeichen ]{längstes Schlüsselwort }\item[Stichwort ] . . ....

\end{labeling}

Eine andere Form der Stichwortliste ist nur bei den KOMA-Script-Klassen und scrextendvorhanden: die labeling-Umgebung. Im Unterschied zur zuvor vorgestellten Umgebungdescription kann bei labeling ein Muster angegeben werden, dessen Länge die Einrück-tiefe bei allen Stichpunkten ergibt. Darüber hinaus kann zwischen Stichpunkt und Beschrei-bungstext ein optionales Trennzeichen festgelegt werden. Die Schriftartv3.02 , die für die Hervorhe-bung des Schlüsselworts verwendet wird, kann mit Hilfe der Anweisungen \setkomafont und

Kapitel 4: Briefe mit Klasse scrlttr2 oder Paket scrletter 236

\addtokomafont (siehe Abschnitt 4.9, Seite 188) für das Element labelinglabel (siehe Ta-belle 4.2, Seite 188) geändert werden. Für die davon abweichende Schriftart der Trennzeichenist das Element labelingseparator (siehe ebenfalls Tabelle 4.2, Seite 188) zuständig.Gedacht war die Umgebung ursprünglich für Strukturen wie »Voraussetzung, Aussage, Be-

weis« oder »Gegeben, Gesucht, Lösung«, wie man sie in Vorlesungsskripten häufiger findet.Inzwischen findet die Umgebung aber ganz unterschiedliche Anwendungen. So wurde die Um-gebung für Beispiele in dieser Anleitung mit Hilfe der labeling-Umgebung definiert.

\begin{verse} . . . \end{verse}scrlttr2

Die verse-Umgebung wird normalerweise nicht als Listenumgebung wahrgenommen, da hiernicht mit \item gearbeitet wird. Stattdessen wird wie innerhalb der flushleft-Umgebungmit festen Zeilenumbrüchen gearbeitet. Intern handelt es sich jedoch sowohl bei den Stan-dardklassen als auch bei KOMA-Script durchaus um eine Listenumgebung.

Die verse-Umgebung findet hauptsächlich für Gedichte Anwendung. Dabei werden die Zei-len links und rechts eingezogen. Einzelne Verse werden mit einem festen Zeilenumbruch, alsomit \\ beendet. Strophen werden ganz normal als Absatz gesetzt, also durch eine Leerzeilegetrennt. Häufig findet stattdessen auch \medskip oder \bigskip Verwendung. Will man ver-hindern, dass am Ende eines Verses ein Seitenumbruch erfolgt, so verwendet man ganz normal\\* anstelle von \\.

\begin{quote} . . . \end{quote}scrlttr2

Dies ist intern ebenfalls eine Listenumgebung und sowohl bei den Standardklassen als auchbei KOMA-Script zu finden. Der Inhalt der Umgebung wird im Blocksatz mit beidseitigemEinzug gesetzt. Die Umgebung wird häufig verwendet, um längere Zitate abzusetzen. Dabeiwerden Absätze innerhalb der Umgebung durch einen vertikalen Abstand gekennzeichnet.

\begin{quotation} . . . \end{quotation}scrlttr2

Diese Umgebung ist mit quote vergleichbar. Während bei quote Absätze durch vertikalenAbstand gekennzeichnet werden, wird bei quotation mit horizontalem Einzug der ersten Zeileeines Absatzes gearbeitet. Dies gilt auch für den ersten Absatz einer quotation-Umgebung.Wollen Sie dort den Einzug verhindern, müssen Sie die \noindent-Anweisung voranstellen.

\begin{addmargin}[linker Einzug ]{Einzug } . . . \end{addmargin}\begin{addmargin*}[innerer Einzug ]{Einzug } . . . \end{addmargin*}Wie bei quote und quotation handelt es sich bei addmargin um eine Umgebung, die denRand verändert. Im Unterschied zu den beiden erstgenannten Umgebungen kann der Anwenderjedoch bei addmargin wählen, um welchen Wert der Rand verändert werden soll. Des Weiterenverändert die Umgebung den Absatzeinzug und den Absatzabstand nicht. Es wird auch keinzusätzlicher vertikaler Abstand vor und nach der Umgebung eingefügt.

Kapitel 4: Briefe mit Klasse scrlttr2 oder Paket scrletter 237

Ist nur das obligatorische Argument Einzug angegeben, so wird der Inhalt der Umgebungrechts und links um diesen Wert eingezogen. Ist das optionale Argument linker Einzughingegen angegeben, so wird links abweichend von Einzug der Wert linker Einzug zumRand addiert.Die Sternvariante addmargin* unterscheidet sich nur im doppelseitigen Satz von der Vari-

ante ohne Stern, wobei der Unterschied auch nur dann auftritt, wenn das optionale Argumentinnerer Einzug verwendet wird. Dabei wird dann der Wert von innerer Einzug zum in-neren Randanteil der Seite addiert. Dies ist bei rechten Seiten der linke Rand der Seite, beilinken Seiten jedoch der rechte Rand der Seite. Einzug gilt dann für den jeweils anderen Rand.Bei beiden Varianten der Umgebung sind für alle Parameter auch negative Werte erlaubt.

Damit kann man erreichen, dass die Umgebung in den Rand hineinragt.Ob eine Seite eine linke oder eine rechte Seite ist, kann übrigens beim ersten LATEX-

Durchlauf nicht zuverlässig festgestellt werden. Siehe dazu die Erklärungen zu den Anweisun-gen \ifthispageodd (Abschnitt 4.12, Seite 223) und \ifthispagewasodd (Abschnitt 21.1,Seite 501).

4.17. Mathematik

Die KOMA-Script-Klassen stellen keine eigenen Umgebungen für mathematische Formeln,Gleichungssysteme oder ähnliche Elemente der Mathematik bereit. Stattdessen stützt sichKOMA-Script im Bereich der Mathematik voll und ganz auf den LATEX-Kern. Da jedoch Ma-thematik in Form von nummerierten Gleichungen und Formeln in Briefen eher ungewöhnlichist, unterstützt KOMA-Script dies nicht aktiv. Daher gibt es auch nicht die Optionen leqnound fleqn, die in Abschnitt 3.19, Seite 135 für scrbook, scrreprt und scrartcl dokumentiertsind.

4.18. Gleitumgebungen für Tabellen und Abbildungen

Gleitumgebungen für Tabellen und Abbildungen sind in Briefen normalerweise fehl am Platz.Daher werden sie von scrlttr2 auch nicht unterstützt. Wenn solche dennoch benötigt werden,deutet dies häufig auf einen Missbrauch der Briefklasse hin. In solchen Fällen ist stattdessen zuraten, eine der KOMA-Script-Klassen aus Kapitel 3 mit dem Paket scrletter zu kombinieren.In diesem Fall können Gleitumgebungen, wie für die Klasse dokumentiert, auch in Briefenverwendet werden. Die Möglichkeiten zur Definition eigener Gleitumgebungen mit Hilfe vontocbasic, wie sie in Kapitel 15 dokumentiert sind, können ebenfalls genutzt werden.

4.19. Randnotizen

Es gilt sinngemäß, was in Abschnitt 3.21 geschrieben wurde. Falls Sie also Abschnitt 3.21bereits gelesen und verstanden haben, können Sie auf Seite 238 mit Abschnitt 4.20 fortfahren.

Kapitel 4: Briefe mit Klasse scrlttr2 oder Paket scrletter 238

Außer dem eigentlichen Textbereich, der normalerweise den Satzspiegel ausfüllt, existiertin Dokumenten noch die sogenannte Marginalienspalte. In dieser können Randnotizen gesetztwerden. Bei Briefen sind Randnotizen allerdings eher unüblich und sollten äußerst sparsameingesetzt werden.

\marginpar[Randnotiz links ]{Randnotiz }\marginline{Randnotiz }

Für Randnotizen ist bei LATEX normalerweise Anweisung \marginpar vorgesehen. DieRandnotiz wird dabei im äußeren Rand gesetzt. Bei einseitigen Dokumenten wird der rechteRand verwendet. Zwar kann bei \marginpar optional eine abweichende Randnotiz angegebenwerden, falls die Randnotiz im linken Rand landet, jedoch werden Randnotizen immer imBlocksatz ausgegeben. Die Erfahrung zeigt, dass bei Randnotizen statt des Blocksatzes oftje nach Rand linksbündiger oder rechtsbündiger Flattersatz zu bevorzugen ist. KOMA-Scriptbietet hierfür die Anweisung \marginline.Ein ausführliches Beispiel hierzu finden Sie in Abschnitt 3.21, Seite 157.Für Experten sind in Abschnitt 21.1, Seite 501 Probleme bei der Verwendung von

\marginpar dokumentiert. Diese gelten ebenso für \marginline. Darüber hinaus wird inKapitel 19 ein Paket vorgestellt, mit dem sich auch Notizspalten mit eigenem Seitenumbruchrealisieren lassen. Allerdings ist das Paket scrlayer-notecolumn eher als eine Konzeptstudie undweniger als fertiges Paket zu verstehen.

4.20. Schlussgruß

Dass der Schlussgruß mit \closing gesetzt wird, wurde bereits in Abschnitt 4.7, Seite 180erklärt. Unter dem Schlussgruß wird häufig noch eine Signatur, eine Art Erläuterung zurUnterschrift, gesetzt. Die Unterschrift wiederum findet Platz zwischen dem Schlussgruß undder Signatur.

\setkomavar{signature}[Bezeichnung ]{Inhalt }

Die Variable signature nimmt eine Art Erläuterung zur Unterschrift auf. Ihr Inhalt ist mit\usekomavar{fromname} vordefiniert. Eine solche Erläuterung kann auch mehrzeilig sein. Dieeinzelnen Zeilen sollten dann mit doppeltem Backslash voneinander getrennt werden. Absätzeinnerhalb der Erläuterung sind jedoch nicht gestattet.

Kapitel 4: Briefe mit Klasse scrlttr2 oder Paket scrletter 239

\raggedsignature

Grußfloskel und Erläuterung der Unterschrift werden innerhalb einer Box gesetzt. Die Breitedieser Box wird durch die längste Zeile innerhalb von Grußfloskel und Erläuterung bestimmt.Wo genau diese Box platziert wird, ist durch die Pseudolängen sigindent und

sigbeforevskip (siehe Abschnitt 22.1.7, Seite 547) bestimmt. Durch den Befehl\raggedsignature wird die Ausrichtung innerhalb der Box bestimmt. In den vordefinier-ten lco-Dateien ist die Anweisung entweder auf \centering (alle außer KOMAold) oder auf\raggedright (KOMAold) gesetzt. Um innerhalb der Box beispielsweise eine linksbündige oderrechtsbündige Ausrichtung zu erhalten, kann der Befehl in gleicher Weise umdefiniert werdenwie \raggedsection (siehe das entsprechende Beispiel in Abschnitt 3.16, Seite 116).

Beispiel: Herr Musterfrau will sich nun wirklich wichtig machen und deshalb in der Si-gnatur nochmals darauf hinweisen, dass er selbst auch mal Vereinsvorsitzenderwar. Deshalb ändert er die Variable signature. Außerdem will er, dass die Si-gnatur linksbündig unter dem Schlussgruß steht, und definiert daher auch noch\raggedsignature um:

\documentclass[foldmarks=true,foldmarks=blmtP,fromphone,fromemail,fromlogo,subject=titled,version=last]{scrlttr2}

\usepackage[ngerman]{babel}\usepackage{graphics}\begin{document}\setkomavar{fromname}{Peter Musterfrau}\setkomavar{signature}{Peter Musterfrau\\(ehemaliger Vorsitzender)}

\renewcommand*{\raggedsignature}{\raggedright}\setkomavar{fromaddress}{Hinter dem Tal 2\\

54321 Musterheim}\setkomavar{fromphone}{0\,12\,34~56\,78}\setkomavar{fromemail}{[email protected]}\setkomavar{fromlogo}{\includegraphics{musterlogo}}\setkomavar{location}{\raggedrightMitglied Nr.~4711\\seit dem 11.09.2001\\Vorsitzender in den Jahren 2003--2005}

\setkomavar{date}{29. Februar 2011}\setkomavar{place}{Musterheim}\setkomavar{subject}{Mitgliederversammlung vermisst}\begin{letter}{%

Petra Mustermann\\Vor dem Berg 1\\12345 Musterhausen%

Kapitel 4: Briefe mit Klasse scrlttr2 oder Paket scrletter 240

Abbildung 4.19.: Ergebnis eines kleinen Briefes mit erwei-tertem Absender, Logo, Anschrift, Absenderergänzung, Ort,Datum, Betreff, Anrede, Text, Grußfloskel, geänderter Si-gnatur, Postskriptum, Anlagen, Verteiler und Lochermarke

Peter MusterfrauHinter dem Tal 254321 MusterheimTelefon: 0 12 34 56 78E-Mail: [email protected] MPeter Musterfrau, Hinter dem Tal 2, 54321 Musterheim

Petra MustermannVor dem Berg 112345 Musterhausen

Mitglied Nr. 4711seit dem 11.09.2001Vorsitzender in denJahren 2003–2005

Musterheim, 29. Februar 2011

Betrifft: Mitgliederversammlung vermisst

Liebe Vereinsvorsitzende,

seit einem Jahr gab es keine Mitgliederversammlung mehr. Ich erinnere daran, dassunsere Satzung eine solche jedes halbe Jahr vorsieht. Ich fordere den Vorstand daherauf, umgehend eine solche in Angriff zu nehmen.

In Erwartung einer Einladung

Peter Musterfrau(ehemaliger Vorsitzender)

PS: Ich hoffe, Du nimmst mir das nicht krumm.

Anlage: Auszug aus der Satzung, in dem die Mitgliederversammlungen geregelt sind

Verteiler: Die VereinsvorsitzendeAlle Mitglieder

}\opening{Liebe Vereinsvorsitzende,}seit einem Jahr gab es keine Mitgliederversammlungmehr. Ich erinnere daran, dass unsere Satzung einesolche jedes halbe Jahr vorsieht. Ich fordere denVorstand daher auf, umgehend eine solche inAngriff zu nehmen.\closing{In Erwartung einer Einladung}\ps PS: Ich hoffe, Du nimmst mir das nicht krumm.\setkomavar*{enclseparator}{Anlage}\encl{Auszug aus der Satzung, in dem die

Mitgliederversammlungen geregelt sind}\cc{Die Vereinsvorsitzende\\Alle Mitglieder}\end{letter}\end{document}

Das Ergebnis ist in Abbildung 4.19 zu sehen.

Das vorausgehende Beispiel zeigt die wichtigsten, aber nicht alle möglichen Elemente einesBriefes. Es kann jedoch sehr gut als allgemeines Muster dienen.

Kapitel 4: Briefe mit Klasse scrlttr2 oder Paket scrletter 241

4.21. Letter-Class-Option-Dateien

Normalerweise wird man Einstellungen wie den Absender nicht in jedem Brief neu wählen,sondern diverse Parameter für bestimmte Gelegenheiten immer wieder verwenden. Ganz Ähn-liches gilt für die verwendeten Briefköpfe und den Fußbereich der ersten Seite. Es ist deshalbsinnvoll, diese Einstellungen in einer eigenen Datei zu speichern. KOMA-Script bietet hierfürdie lco-Dateien an. Die Endung lco steht für letter class option, also Briefklassenoption.Dennoch finden diese Dateien für scrletter ebenso Anwendung.In lco-Dateien können alle Anweisungen verwendet werden, die auch an der Stelle im Doku-

ment verwendet werden könnten, an der sie mit \LoadLetterOption geladen werden. Außer-dem können interne Anweisungen verwendet werden, die für Paketautoren freigegeben sind.Bei scrlttr2 und scrletter sind dies insbesondere die Anweisungen \newplength, \setplengthund \addtoplength (siehe Abschnitt 22.1).KOMA-Script liegen bereits einige lco-Dateien bei. Die Dateien DIN.lco, DINmtext.lco,

SNleft.lco, SN.lco, UScommercial9, UScommercial9DW und NF.lcov3.04 dienen dazu, scrlttr2 undscrletter an verschiedene Normen anzupassen. Sie können von angehenden Experten sehr gut alsVorlage für eigene Parametersätze verwendet werden. Die Datei KOMAold.lco dient hingegendazu, die Kompatibilität zu scrlettr zu verbessern. Diese Klasse wurde schon vor über 15 Jahrenaus KOMA-Script entfernt. Es wird daher nicht mehr näher darauf eingegangen. Da hierbeiauch auf Anweisungen zurückgegriffen wird, die nicht für Paketautoren freigegeben sind, sollteman sie nicht als Vorlage für eigene lco-Dateien verwenden. Eine Liste aller vordefiniertenlco-Dateien ist in Tabelle 4.18, Seite 245 zu finden.Wenn Sie einen Parametersatz für eine Briefnorm, die bisher nicht von KOMA-Script unter-

stützt wird, erstellt haben, so sind Sie ausdrücklich gebeten, diesen Parametersatz an dieSupportadresse von KOMA-Script zu schicken. Bitte geben Sie dabei auch die Erlaubniszur Weiterverbreitung unter den Lizenzbedingungen von KOMA-Script (siehe dazu die Dateilppl-de.txt im KOMA-Script-Paket). Wenn Sie zwar über die notwendigen Maße aus einerbisher nicht unterstützen Briefnorm verfügen, sich jedoch nicht in der Lage sehen, selbst einepassende lco-Datei zu erstellen, so können Sie sich ebenfalls mit dem KOMA-Script-Autor inVerbindung setzen. Beispiele für teilweise sehr komplexe lco-Dateien finden sich unter ande-rem unter [KDP] und in [Koh03].

\LoadLetterOption{Name }\LoadLetterOptions{Liste von Namen }

Bei scrlttr2 können lco-Dateien direkt über \documentclass geladen werden. Dazu gibt manscrlttr2den Namen der lco-Datei ohne die Endung als Option an. Das Laden der lco-Datei erfolgtdann direkt nach der Klasse. Das Paket scrletter bietet diese Möglichkeit nicht! Hier bleibt nurlco-Dateien über \LoadLetterOption oder \LoadLetterOptionsv3.14 zu laden. Für scrlttr2 wirddies ebenfalls ausdrücklich empfohlen!\LoadLetterOption und \LoadLetterOptions können auch zu einem späteren Zeitpunkt,

Kapitel 4: Briefe mit Klasse scrlttr2 oder Paket scrletter 242

selbst nach \begin{document} und sogar innerhalb einer anderen lco-Datei verwendet wer-den. Der Name der lco-Datei wird in diesen Fällen ebenfalls ohne Endung übergeben. Wäh-rend als Argument von \LoadLetterOption der Name von genau einer lco-Datei erwartetwird, versteht \LoadLetterOptions eine durch Komma separierte Liste von Namen . Die zuden Namen gehörenden lco-Dateien werden dann in der Reihenfolge der Angabe in der Listegeladen.

Beispiel: Peter Musterfrau erstellt auch ein Dokument, in dem mehrere Briefe enthalten sind.Die Mehrzahl der Briefe soll nach DIN erstellt werden. Also beginnt er (siehe auchden Tipp auf Seite 244):\documentclass{scrlttr2}

Allerdings soll bei einem Brief stattdessen die Variante DINmtext verwendet wer-den. Bei dieser steht das Adressfeld weiter oben, damit mehr Text auf die ersteSeite passt. Dafür ist die Faltung so angepasst, dass das Adressfeld bei DIN C6/5-Umschlägen trotzdem in das Adressfenster passt. Sie erreichen das so:\begin{letter}{%

Petra Mustermann\\Vor dem Berg 1\\12345 Musterhausen}

\LoadLetterOption{DINmtext}\opening{Hallo,}

Da der Aufbau der ersten Seite erst mit \opening wirklich beginnt, genügt es, wenndie lco-Datei vor \opening geladen wird. Dies muss also nicht vor \begin{letter}erfolgen. Die Änderungen durch das Laden der lco-Datei sind dann auch lokal zudem entsprechenden Brief.

Wirdv2.97 eine lco-Datei über \documentclass geladen, so darf sie nicht den Namen einerOption haben.

Beispiel: Da Herr Musterfrau regelmäßig Briefe mit immer gleichen Einstellungen schreibt,findet er es ziemlich lästig, diese Angaben immer wieder in jeden neuen Brief ko-pieren zu müssen. Zu seiner Erleichterung schreibt er deshalb eine lco-Datei, dieihm die Arbeit erleichtert:\ProvidesFile{ich.lco}[2008/06/11 lco

(Peter Musterfrau)]\KOMAoptions{foldmarks=true,foldmarks=blmtP,fromphone,fromemail,fromlogo,subject=titled}

\setkomavar{fromname}{Peter Musterfrau}\setkomavar{signature}{Peter Musterfrau\\(ehemaliger Vorsitzender)}

\renewcommand*{\raggedsignature}{\raggedright}

Kapitel 4: Briefe mit Klasse scrlttr2 oder Paket scrletter 243

\setkomavar{fromaddress}{Hinter dem Tal 2\\54321 Musterheim}

\setkomavar{fromphone}{0\,12\,34~56\,78}\setkomavar{fromemail}{[email protected]}\setkomavar{fromlogo}{%\includegraphics{musterlogo}}

\setkomavar{location}{\raggedrightMitglied Nr.~4711\\seit dem 11.09.2001\\Vorsitzender in den Jahren 2003--2005}

\setkomavar{place}{Musterheim}\setkomavar{frombank}{Bank freundlichen Gru\ss es}

Damit schrumpft sein Brief aus dem letzten Beispiel erheblich zusammen:\documentclass[version=last,ich]{scrlttr2}\usepackage[ngerman]{babel}\usepackage{graphics}\begin{document}\setkomavar{date}{29. Februar 2011}\setkomavar{subject}{Mitgliederversammlung vermisst}\begin{letter}{%

Petra Mustermann\\Vor dem Berg 1\\12345 Musterhausen%

}\opening{Liebe Vereinsvorsitzende,}seit einem Jahr gab es keine Mitgliederversammlungmehr. Ich erinnere daran, dass unsere Satzung einesolche jedes halbe Jahr vorsieht. Ich fordere denVorstand daher auf, umgehend eine solche inAngriff zu nehmen.\closing{In Erwartung einer Einladung}\ps PS: Ich hoffe, Du nimmst mir das nicht krumm.\setkomavar*{enclseparator}{Anlage}\encl{Auszug aus der Satzung, in dem dieMitgliederversammlungen geregelt sind}

\cc{Die Vereinsvorsitzende\\Alle Mitglieder}\end{letter}\end{document}

Das Ergebnis ändert sich jedoch nicht, wie Abbildung 4.20 zeigt.

Bitte beachten Sie, dass im Beispiel in der Bankverbindung der Datei ich.lco für »ß« dieTEX-Schreibweise »\ss« verwendet wurde. Dies hat seinen Grund darin, dass während desLadens der Klasse weder ein Paket zur Sprachumschaltung, beispielsweise für die neue, deut-sche Rechtschreibung mit \usepackage[ngerman]{babel}, noch bei älteren LATEX-Versionen

Kapitel 4: Briefe mit Klasse scrlttr2 oder Paket scrletter 244

Abbildung 4.20.: Ergebnis eines kleinen Briefes mit erwei-tertem Absender, Logo, Anschrift, Absenderergänzung, Ort,Datum, Betreff, Anrede, Text, Grußfloskel, geänderter Si-gnatur, Postskriptum, Anlagen, Verteiler und Lochermarkebei Verwendung einer lco-Datei

Peter MusterfrauHinter dem Tal 254321 MusterheimTelefon: 0 12 34 56 78E-Mail: [email protected] MPeter Musterfrau, Hinter dem Tal 2, 54321 Musterheim

Petra MustermannVor dem Berg 112345 Musterhausen

Mitglied Nr. 4711seit dem 11.09.2001Vorsitzender in denJahren 2003–2005

Musterheim, 29. Februar 2011

Betrifft: Mitgliederversammlung vermisst

Liebe Vereinsvorsitzende,

seit einem Jahr gab es keine Mitgliederversammlung mehr. Ich erinnere daran, dassunsere Satzung eine solche jedes halbe Jahr vorsieht. Ich fordere den Vorstand daherauf, umgehend eine solche in Angriff zu nehmen.

In Erwartung einer Einladung

Peter Musterfrau(ehemaliger Vorsitzender)

PS: Ich hoffe, Du nimmst mir das nicht krumm.

Anlage: Auszug aus der Satzung, in dem die Mitgliederversammlungen geregelt sind

Verteiler: Die VereinsvorsitzendeAlle Mitglieder

ein Paket für die Eingabecodierung, beispielsweise mit \usepackage[utf8]{inputenc} fürmoderne Editoren, geladen ist.In Tabelle 4.18 finden Sie eine Liste aller vordefinierten lco-Dateien. Falls Sie einen Drucker

verwenden, der einen sehr großen unbedruckbaren Rand links oder rechts besitzt, werden Siemit der Option SN möglicherweise Probleme bekommen. Da die Schweizer Norm SN 101 130vorsieht, dass das Adressfeld 8mm vom rechten Papierrand gesetzt wird, werden bei Schwei-zer Briefen auch die Kopfzeile und die Absenderergänzung mit einem entsprechend geringenAbstand zum Papierrand gesetzt. Dies betrifft ebenfalls die Geschäftszeile bei der Einstel-lung refline=wide (siehe Abschnitt 4.10, Seite 213). Sollten Sie damit ein Problem haben,erstellen Sie sich eine eigene lco-Datei, die zunächst SN lädt und in der toaddrhpos (sieheAbschnitt 22.1.3, Seite 542) dann auf einen kleineren Wert gesetzt wird. Verringern Sie dannaußerdem toaddrwidth entsprechend.

Die lco-Datei DIN wird übrigens immer als erste lco-Datei automatisch geladen, damit allePseudolängen mehr oder weniger sinnvoll vordefiniert sind. Es ist daher nicht notwendig diesevoreingestellte Datei selbst zu laden.

Kapitel 4: Briefe mit Klasse scrlttr2 oder Paket scrletter 245

Tabelle 4.18.: Vordefinierte lco-Dateien

DINParametersatz für Briefe im Format A4 nach DIN 676; geeignet für Fensterbriefum-schläge in den Formaten C4, C5, C6 und C6/5 (C6 lang)

DINmtextParametersatz für Briefe im Format A4 nach DIN 676, wobei die Alternative für mehrText auf der ersten Briefseite verwendet wird; nur geeignet für Fensterbriefumschlägein den Formaten C6 und C6/5 (C6 lang)

KakuLLParametersatz für japanische Briefe im Format A4; geeignet für japanische Fenster-briefumschläge des Typs Kaku A4, bei denen das Fenster in etwa 90mm breit, 45mmhoch, 25mm vom linken und 24mm vom oberen Rand entfernt ist (siehe dazu auchden Anhang der englischen KOMA-Script-Anleitung)

KOMAoldParametersatz für Briefe im Format A4 mit Annäherung an das Aussehen von Briefender obsoleten Briefklasse scrlettr; geeignet für Fensterbriefumschläge in den FormatenC4, C5, C6 und C6/5 (C6 lang); es werden einige zusätzliche Anweisungen zur Ver-besserung der Kompatibilität mit der obsoleten Briefklasse scrlettr definiert; scrlttr2verhält sich mit dieser lco-Datei möglicherweise nicht genau wie bei Verwendungder übrigen lco-Dateien

NFParametersatz für französische Briefe nach NF Z 11-001; geeignet für Fensterbrief-umschläge im Format DL (110mm auf 220mm) mit einem Fenster von 45mm Breiteund 100mm Höhe ca. jeweils 20mm entfernt vom rechten unteren Rand; diese Dateiwurde ursprünglich von Jean-Marie Pacquet entwickelt, der auf [Pac] neben einerErweiterung auch eine LyX-Einbindung bereitstellt.

NipponEHParametersatz für japanische Briefe im Format A4; geeignet für japanische Fenster-briefumschläge der Typen Chou oder You 3 oder 4, bei denen das Fenster in etwa90mm breit, 55mm hoch, 22mm vom linken und 12mm vom oberen Rand entferntist (siehe dazu auch den Anhang der englischen KOMA-Script-Anleitung)

. . .

Kapitel 4: Briefe mit Klasse scrlttr2 oder Paket scrletter 246

Tabelle 4.18.: Vordefinierte lco-Dateien (Fortsetzung)

NipponELParametersatz für japanische Briefe im Format A4; geeignet für japanische Fenster-briefumschläge der Typen Chou oder You 3 oder 4, bei denen das Fenster in etwa90mm breit, 45mm hoch, 22mm vom linken und 12mm vom oberen Rand entferntist (siehe dazu auch den Anhang der englischen KOMA-Script-Anleitung)

NipponLHParametersatz für japanische Briefe im Format A4; geeignet für japanische Fenster-briefumschläge der Typen Chou oder You 3 oder 4, bei denen das Fenster in etwa90mm breit, 55mm hoch, 25mm vom linken und 12mm vom oberen Rand entferntist (siehe dazu auch den Anhang der englischen KOMA-Script-Anleitung)

NipponLLParametersatz für japanische Briefe im Format A4; geeignet für japanische Fenster-briefumschläge der Typen Chou oder You 3 oder 4, bei denen das Fenster in etwa90mm breit, 45mm hoch, 25mm vom linken und 12mm vom oberen Rand entferntist (siehe dazu auch den Anhang der englischen KOMA-Script-Anleitung)

NipponRLParametersatz für japanische Briefe im Format A4; geeignet für japanische Fenster-briefumschläge der Typen Chou oder You 3 oder 4, bei denen das Fenster in etwa90mm breit, 45mm hoch, 22mm vom rechten und 28mm vom oberen Rand entferntist (siehe dazu auch den Anhang der englischen KOMA-Script-Anleitung)

SNParametersatz für Schweizer Briefe nach SN 010 130 mit Anschrift rechts; geeignetfür Schweizer Fensterbriefumschläge in den Formaten C4, C5, C6 und C6/5 (C6 lang)

SNleftParametersatz für Schweizer Briefe mit Anschrift links; geeignet für Schweizer Fens-terbriefumschläge mit dem Fenster links in den Formaten C4, C5, C6 und C6/5 (C6lang)

. . .

Kapitel 4: Briefe mit Klasse scrlttr2 oder Paket scrletter 247

Tabelle 4.18.: Vordefinierte lco-Dateien (Fortsetzung)

UScommercial9Parametersatz für US-amerikanische Briefe im Format letter; geeignet für US-amerikanische Fensterbriefumschläge der Größe commercial No. 9 mit einem An-schriftfenster der Breite 4 1/2 in und Höhe 1 1/8 in an einer Position 7/8 in von linksund 1/2 in von unten ohne Rücksendeadresse im Fenster; bei Faltung zunächst ander Mittelmarke und dann an der oberen Faltmarke kann auch Papier im Formatlegal verwendet werden, führt dann jedoch zu einer Papiergrößen-Warnung

UScommercial9DWParametersatz für US-amerikanische Briefe im Format letter; geeignet für US-amerikanische Fensterbriefumschläge der Größe commercial No. 9 mit einem An-schriftfenster der Breite 3 5/8 in und Höhe 1 1/8 in an einer Position 3/4 in von linksund 1/2 in von unten mit einem Absenderfenster der Breite 3 1/2 in und Höhe 7/8 inan einer Position 5/16 in von links und 2 1/2 in von unten, jedoch ohne Rücksende-adresse im Fenster; bei Faltung zunächst an der Mittelmarke und dann an der oberenFaltmarke kann auch Papier im Format legal verwendet werden, führt dann jedochzu einer Papiergrößen-Warnung

Beachten Sie bitte noch, dass es nicht möglich ist, innerhalb einer lco-Datei mittels\PassOptionsToPackage Optionen an Pakete zu übergeben, die von der Klasse bereits ge-laden sind. Normalerweise betrifft dies nur die Pakete typearea, scrlfile, scrbase und keyval.

4.22. Adressdateien und Serienbriefe

Als besonders lästig wird bei Briefen immer das Eintippen der Adressen und das Erstellen vonSerienbriefen betrachtet. KOMA-Script bietet hierfür eine minimalistische Unterstützung.

\adrentry{Name }{Vorname }{Adresse }{Tel. }{F1}{F2}{Kommentar }{Kürzel }

Mit scrlttr2 und scrletter können Adressdateien ausgewertet werden. Dies ist beispielsweise fürSerienbriefe sehr nützlich. Eine Adressdatei muss die Endung .adr haben und besteht auseiner Reihe von \adrentry-Einträgen. Ein solcher Eintrag besteht aus acht Elementen undkann beispielsweise wie folgt aussehen:\adrentry{Maier}

{Herbert}{Wiesenweg 37\\ 09091 Blumental}{0\,23\,34 / 91\,12\,74}{Bauunternehmer}{}

Kapitel 4: Briefe mit Klasse scrlttr2 oder Paket scrletter 248

{kauft alles}{MAIER}

Die Elemente fünf und sechs, F1 und F2 , können frei bestimmt werden. Denkbar wären ne-ben Hinweisen auf das Geschlecht oder akademische Grade auch der Geburtstag oder dasEintrittsdatum in einen Verein. Um das Überschreiben von TEX- oder LATEX-Anweisungen zuvermeiden, ist es empfehlenswert, für Kürzel ausschließlich Großbuchstaben zu verwenden.

Beispiel: Herr Maier gehört zu Ihren engeren Geschäftspartnern. Da Sie eine rege Korre-spondenz mit ihm pflegen, ist es Ihnen auf Dauer zu mühsam, jedesmal alle Emp-fängerdaten aufs Neue einzugeben. KOMA-Script nimmt Ihnen diese Arbeit ab.Angenommen, Sie haben Ihre Kundenkontakte in der Datei partner.adr gespei-chert und Sie möchten Herrn Maier einen Brief schreiben, dann sparen Sie sich vielTipparbeit, wenn Sie Folgendes eingeben:\input{partner.adr}\begin{letter}{\MAIER}Der Brief ...

\end{letter}

Achten Sie bitte darauf, dass Ihr TEX-System auch auf die .adr-Dateien zugrei-fen kann, da sonst eine Fehlermeldung von \input verursacht wird. Entweder Sielegen die Brief- und Adressdateien im selben Verzeichnis an, oder Sie binden einAdressverzeichnis fest in Ihr TEX-System ein.

\addrentry{Name }{Vorname }{Adresse }{Telefon }{F1}{F2}{F3}{F4}{Kürzel }

Bevor Klagen aufkommen, dass insgesamt nur zwei freie Felder zu wenig seien: KOMA-Scriptverfügt alternativ über die Anweisung \addrentry. Mit dem zusätzlichen »d« im Namen sindhier auch zwei weitere freie Felder hinzugekommen, dafür ist jedoch der Kommentar entfallen.Ansonsten kann die Anweisung genau wie \adrentry verwendet werden.

In einer adr-Datei können die beiden Anweisungen \adrentry und \addrentry nebeneinan-der verwendet werden. Ich weise jedoch darauf hin, dass Zusatzpakete wie das adrconv-Paketvon Axel Kielhorn eventuell nicht auf die Verwendung von \addrentry ausgelegt sind. Hiermuss der Anwender gegebenenfalls selbst entsprechende Erweiterungen vornehmen.Neben dem vereinfachten Zugriff auf Kundendaten können die .adr-Dateien auch für Se-

rienbriefe genutzt werden. So ist es ohne die komplizierte Anbindung an Datenbanksystememöglich, solche Massenpostsendungen zu erstellen.

Beispiel: Sie wollen einen Serienbrief an alle Mitglieder Ihres Anglervereins schicken, um zurnächsten Mitgliederversammlung einzuladen.\documentclass{scrlttr2}\usepackage[ngerman]{babel}\usepackage[utf8]{inputenc}

Kapitel 4: Briefe mit Klasse scrlttr2 oder Paket scrletter 249

\begin{document}\renewcommand*{\adrentry}[8]{%\begin{letter}{#2 #1\\#3}\opening{Liebe Vereinsmitglieder,}unsere nächste Mitgliederversammlung findet amMontag, dem 12.~August 2002, statt.

Folgende Punkte müssen besprochen werden...\closing{Petri Heil,}

\end{letter}}

\input{mitglieder.adr}\end{document}

Sind in Ihrer adr-Datei auch \addrentry-Anweisungen enthalten, müssen Sie dafüreine entsprechende Definition vor dem Einladen der Adressdatei ergänzen:\renewcommand*{\addrentry}[9]{%

\adrentry{#1}{#2}{#3}{#4}{#5}{#6}{#7}{#9}%}

Bei diesem Beispiel wird kein Gebrauch von dem zusätzlichen freien Feld gemachtund deshalb \addrentry mit Hilfe von \adrentry definiert.

Natürlich kann der Briefinhalt auch von den Adressatenmerkmalen abhängig gemacht wer-den. Als Bedingungsfelder können die frei bestimmbaren Elemente fünf oder sechs eines\adrentry-Eintrages oder die frei bestimmbaren Elemente fünf bis acht eines \addrentry-Eintrags genutzt werden.

Beispiel: Angenommen, Sie verwenden das Element fünf, um das Geschlecht eines Vereins-mitgliedes zu hinterlegen (m/w) und das sechste Element weist auf einen Rückstandder Mitgliedsbeiträge hin. Wollen Sie nun alle säumigen Mitglieder anschreiben undpersönlich anreden, so hilft Ihnen folgendes Beispiel weiter:\renewcommand*{\adrentry}[8]{\ifdim #6pt>0pt\relax

% #6 ist ein Betrag (Gleitkommazahl) größer 0.% Es werden also die Säumigen erfasst.\begin{letter}{#2 #1\\#3}\if #5m \opening{Lieber #2,} \fi\if #5w \opening{Liebe #2,} \fi

Leider mussten wir feststellen, dass du mitder Zahlung deiner Mitgliedsbeiträge imRückstand bist.

Kapitel 4: Briefe mit Klasse scrlttr2 oder Paket scrletter 250

Wir möchten Dich bitten, den offenen Betragvon #6~EUR auf das Vereinskonto einzuzahlen.\closing{Petri Heil,}

\end{letter}\fi

}

Es ist also möglich, den Brieftext auf bestimmte Empfängermerkmale gezielt abzustimmenund so den Eindruck eines persönlichen Schreibens zu erwecken. Die Anwendungsbreite istlediglich durch die maximale Anzahl von zwei freien \adrentry-Elementen beziehungsweisevier freien \addrentry-Elementen begrenzt.

\adrchar{Anfangsbuchstaben }\addrchar{Anfangsbuchstaben }

Es ist auch möglich, die Informationen einer .adr-Datei in Adressverzeichnisse oder Telefon-listen umzuwandeln. Sie benötigen dazu zusätzlich das adrconv-Paket von Axel Kielhorn (siehe[Kie10]). In diesem Paket sind interaktive LATEX-Dokumente enthalten, mit deren Hilfe sehreinfach entsprechende Listen erstellt werden können.Damit die Listen alphabetisch sortiert ausgegeben werden, muss bereits die Adressdatei

sortiert gewesen sein. Es empfiehlt sich dabei, vor jedem neuen Anfangsbuchstaben eine An-weisung \adrcharmit diesem Buchstaben als Argument einzufügen. scrlttr2 und scrletter selbstignorieren diese Anweisung ebenso wie \addrchar.

Beispiel: Angenommen Sie haben folgende, eher winzige Adressdatei für die ein Adressbucherstellt werden soll:\adrchar{E}\adrentry{Engel}{Gabriel}

{Wolke 3\\12345 Himmelreich}{000\,01\,02\,03}{}{}{Erzengel}{GABRIEL}

\adrentry{Engel}{Michael}{Wolke 3a\\12345 Himmelreich}{000\,01\,02\,04}{}{}{Erzengel}{MICHAEL}

\adrchar{K}\adrentry{Kohm}{Markus}

{Freiherr-von-Drais-Stra\ss e 66\\68535 Edingen-Neckarhausen}

{+49~62\,03~1\,??\,??}{}{}{\"Uberhaupt kein Engel}{KOMA}

Kapitel 4: Briefe mit Klasse scrlttr2 oder Paket scrletter 251

Diese verarbeiten Sie nun unter Verwendung des Dokuments adrdir.tex aus[Kie10]. Ein Problem dabei ist, dass adrdir.tex bis einschließlich Version 1.3 so-wohl das veraltete Paket scrpage als auch veraltete Schriftbefehle verwendet, dievon KOMA-Script schon seit einiger Zeit nicht mehr unterstützt werden. SolltenSie entsprechende Fehlermeldungen erhalten und keine neuere Version installierenkönnen, finden Sie unter [Fel17] eine Lösung für dieses Problem.Eine Seite des Ergebnisses sieht dann etwa so aus:

EEngel, Gabriel

Wolke 312345 Himmelreich(Erzengel)

GABRIEL000 01 02 03

Engel, MichaelWolke 3a12345 Himmelreich(Erzengel)

MICHAEL000 01 02 04

Dabei wird der Buchstabe in der Kopfzeile von \adrchar erzeugt, wenn man dieFrage »Namen in der Kopfzeile?« verneint. Siehe dazu die Definition in adrdir.tex.

Kapitel 5: Kopf- und Fußzeilen mit scrlayer-scrpage 252

Kopf-v3.12 und Fußzeilen mit scrlayer-scrpage

Bis KOMA-Script 3.11b war das Paket scrpage2 das Mittel der Wahl, wenn es darum ging,den Kopf und den Fuß der Seite über das hinaus zu verändern, was die KOMA-Script-Klassenmit den Seitenstilen headings, myheadings, plain und empty boten. Seit 2013 ist das Paketscrlayer als neuer, grundlegender Baustein in KOMA-Script enthalten. Dieses Paket bietet einEbenenmodell sowie ein darauf basierendes Seitenstil-Modell an. Für die direkte Verwendung durchden durchschnittlichen Anwender ist die Schnittstelle dieses Pakets jedoch fast schon zu flexibelund damit einhergehend auch nicht leicht zu durchschauen. Näheres zu dieser Schnittstelle istKapitel 17 in Teil II zu entnehmen. Einige wenige Möglichkeiten, die eigentlich zu scrlayer gehörenund deshalb in jenem Kapitel noch einmal aufgegriffen werden, sind jedoch auch in diesem Kapiteldokumentiert, da sie für die Verwendung von scrlayer-scrpage ebenfalls benötigt werden.Viele Anwender sind bereits mit den Anweisungen aus scrpage2 vertraut. Deshalb wurde mit

scrlayer-scrpage ein Paket geschaffen, das basierend auf scrlayer eine mit scrpage2 weitgehendkompatible und gleichzeitig stark erweiterte Anwender-Schnittstelle bereitstellt. Wer bereits mitscrpage2 vertraut ist und dort keine unsauberen Rückgriffe auf interne Anweisungen getätigt hat,kann daher in der Regel scrpage2 recht einfach durch scrlayer-scrpage ersetzen. Das gilt mit dergenannten Einschränkung auch für die meisten Beispiele in LATEX-Büchern oder im Internet.Neben scrlayer-scrpage oder scrpage2 wäre auch fancyhdr (siehe [vO04]) grundsätzlich ge-

eignet, um Kopf und Fuß der Seiten zu konfigurieren. Allerdings unterstützt dieses Paketdiverse Möglichkeiten von KOMA-Script, angefangen von Änderungen der Schrift über dasElemente-Modell (siehe \setkomafont, \addtokomafont und \usekomafont in Abschnitt 5.3,ab Seite 255) bis hin zum konfigurierbaren Format der Gliederungsnummern in Kolumnentiteln(siehe Option numbers und beispielsweise Anweisung \chaptermarkformat in Abschnitt 3.16,Seite 105 und Seite 120), nicht. Daher wird für die Verwendung mit den KOMA-Script-Klassendas neue Paket scrlayer-scrpage empfohlen. Bei Problemen damit kann auch auf scrpage2 zu-rückgegriffen werden. Natürlich kann scrlayer-scrpage auch mit anderen Klassen, beispielsweiseden Standardklassen verwendet werden.Über die in diesem Kapitel erklärten Möglichkeiten hinaus bietet das Paket scrlayer-scrpage

weiteres, das jedoch nur für einige, wenige Anwender von Interesse sein dürfte und daher inKapitel 18 von Teil II ab Seite 471 ausgeführt wird. Dennoch: Falls die hier in Teil I doku-mentierten Möglichkeiten für Sie nicht ausreichen, sei Ihnen auch jenes Kapitel nahegelegt.

5.1. Frühe oder späte Optionenwahl

Es gilt sinngemäß, was in Abschnitt 2.4 geschrieben wurde. Falls Sie also Abschnitt 2.4 bereitsgelesen und verstanden haben, können Sie auf Seite 254 mit Abschnitt 5.2 fortfahren.

Kapitel 5: Kopf- und Fußzeilen mit scrlayer-scrpage 253

\documentclass[Optionenliste ]{KOMA-Script-Klasse }\usepackage[Optionenliste ]{Paket-Liste }

Bei LATEX ist vorgesehen, dass Anwender Klassenoptionen in Form einer durch Komma ge-trennten Liste einfacher Schlüsselwörter als optionales Argument von \documentclass ange-ben. Außer an die Klasse werden diese Optionen auch an alle Pakete weitergereicht, die dieseOptionen verstehen. Ebenso ist vorgesehen, dass Anwender Paketoptionen in Form einer durchKomma getrennten Liste einfacher Schlüsselwörter als optionales Argument von \usepackageangeben. KOMA-Script erweitertv3.00 den Mechanismus der Optionen für die KOMA-Script-Klassen und einige Pakete um weitere Möglichkeiten. So haben die meisten Optionen beiKOMA-Script zusätzlich einen Wert. Eine Option hat also nicht unbedingt nur die FormOption , sondern kann auch die Form Option =Wert haben. Bis auf diesen Unterschied arbei-ten \documentclass und \usepackage bei KOMA-Script wie in [Tea05b] oder jeder LATEX-Einführung, beispielsweise [DGS+12], beschrieben.

Gegenüber der nachfolgend vorgestellten Schnittstelle zu Einstellungen von Optionen hat\documentclass einen Nachteil, der unbedingt zu beachten ist: Anweisungen, Längen, Zählerund ähnliches können darin leicht zerbrechen. So führt die Verwendung einer LATEX-Längeim Wert einer Option bei dieser Anweisung bei vielen Nicht-KOMA-Script-Klassen zu einerFehlermeldung, noch bevor der Wert an ein KOMA-Script-Paket übergeben wird, es alsodie Kontrolle darüber übernehmen könnte. Wertzuweisungen mit LATEX-Längen oder LATEX-Zählern sollten daher nie per \documentclass, sondern mit den nachfolgend dokumentiertenAnweisungen \KOMAoptions oder \KOMAoption vorgenommen werden.

\KOMAoptions{Optionenliste }\KOMAoption{Option }{Werteliste }

KOMA-Scriptv3.00 bietet bei den meisten Klassen- und Paketoptionen auch die Möglichkeit, denWert der Optionen noch nach dem Laden der Klasse beziehungsweise des Pakets zu ändern.Mit der Anweisung \KOMAoptions kann man wie bei \documentclass oder \usepackage dieWerte einer Reihe von Optionen ändern. Jede Option der Optionenliste hat dabei die FormOption =Wert .

Einige Optionen besitzen auch einen Säumniswert (engl. default value). Versäumt man dieAngabe eines Wertes, verwendet man die Option also einfach in der Form Option , so wirdautomatisch dieser Säumniswert angenommen.Manche Optionen können gleichzeitig mehrere Werte besitzen. Für solche Optionen besteht

die Möglichkeit, mit \KOMAoption der einen Option nacheinander eine Reihe von Wertenzuzuweisen. Die einzelnen Werte sind dabei in der Werteliste durch Komma voneinandergetrennt.Soll ein Wert ein Gleichheitszeichen oder ein Komma enthalten, so ist der Wert in geschweif-

te Klammern zu setzen.KOMA-Script bedient sich für die Realisierung dieser Möglichkeit der Anweisungen

\FamilyOptions und \FamilyOption mit der Familie »KOMA«. Siehe dazu Teil II, Abschnitt 12.2,

Kapitel 5: Kopf- und Fußzeilen mit scrlayer-scrpage 254

ab Seite 345.Mit \KOMAoptions oder \KOMAoption gesetzte Optionen erreichen sowohl die KOMA-Script-

Klasse als auch alle bereits geladenen KOMA-Script-Pakete, die diese Optionen kennen. Isteine Option oder ein Wert insgesamt unbekannt, so wird die Option einschließlich des Wertesvon scrbase als fehlerhaft gemeldet.

5.2. Höhe von Kopf und Fuß

Vermutlich, weil der Fuß bei den Standardklassen kaum besetzt ist und zudem als \mbox immereinzeilig ist, gibt es bei LATEX keine definierte Höhe des Fußes. Zwar ist der Abstand von derletzten Grundlinie des Textblocks zur Grundlinie des Fußes mit \footskip durchaus definiert.Wenn allerdings der Fuß höher als eine Zeile wird, dann ist nicht hinreichend festgelegt, wie sichdiese Höhe niederschlägt bzw. ob \footskip den Abstand zur obersten oder untersten Grundliniedes Fußes darstellt.Obwohl auch der Kopf bei den Seitenstilen der Standardklassen in einer horizontalen Box ausge-

geben wird und damit immer einzeilig ist, hat LATEX für die Kopfhöhe tatsächlich selbst eine Längezur Einstellung ihrer Höhe vorgesehen. Dies erklärt sich vermutlich daraus, dass diese Höhe zurBestimmung des Anfangs des Textbereichs benötigt wird.

\footheight\headheightautoenlargeheadfoot=Ein-Aus-Wert

Das Paket scrlayer führt als neue Länge \footheight analog zur Höhe \headheight ein.Gleichzeitig interpretiert scrlayer-scrpage \footskip so, dass es den Abstand der letztenGrundlinie des Textbereichs von der ersten Standard-Grundlinie des Fußes darstellt. Das Pakettypearea betrachtet dies in gleicher Weise, so dass die dortigen Optionen zum Setzen der Höhedes Fußes (siehe die Optionen footheight und footlines in Abschnitt 2.6, Seite 47) und zurBerücksichtigung des Fußes bei der Berechnung des Satzspiegels (siehe Option footinclude indemselben Abschnitt, Seite 43) sehr gut zum Setzen der Werte für scrlayer verwendet werdenkönnen und auch das gewünschte Ergebnis liefern.Wird das Paket typearea nicht verwendet, so sollte man gegebenenfalls die Höhe von Kopf

und Fuß über entsprechende Werte für die Längen einstellen. Zumindest für den Kopf bietetaber beispielsweise auch das Paket geometry Einstellmöglichkeiten.Wurde der Kopf oder der Fuß für den tatsächlich verwendeten Inhalt zu klein gewählt,

so versucht scrlayer-scrpage in der Voreinstellung die Längen selbst entsprechend anzupassen.Gleichzeitig wird eine entsprechende Warnung ausgegeben, die auch Ratschläge für passen-de Einstellungen enthält. Die automatischen Änderungen haben dann ab dem Zeitpunkt, andem ihre Notwendigkeit erkannt wurde, Gültigkeit und werden nicht automatisch aufgeho-ben, wenn beispielsweise der Inhalt von Kopf oder Fuß wieder kleiner wird. Über Optionv3.25

autoenlargeheadfoot kann dieses Verhalten jedoch geändert werden. Die Option versteht

Kapitel 5: Kopf- und Fußzeilen mit scrlayer-scrpage 255

die Werte für einfache Schalter aus Tabelle 2.5, Seite 42. In der Voreinstellung ist die Optionaktiviert. Wird sie deaktiviert, so werden Kopf und Fuß nicht mehr automatisch vergrößert,sondern nur noch eine Warnung mit Hinweisen für passende Einstellungen ausgegeben.

5.3. Textauszeichnungen

Es gilt sinngemäß, was in Abschnitt 3.6 geschrieben wurde. Falls Sie also Abschnitt 3.6 bereitsgelesen und verstanden haben, können Sie sich auf Tabelle 5.1, Seite 256 beschränken undansonsten auf Seite 258 mit Abschnitt 5.4 fortfahren.

\setkomafont{Element }{Befehle }\addtokomafont{Element }{Befehle }\usekomafont{Element }

Mit Hilfe der Anweisungen \setkomafont und \addtokomafont ist es möglich, die Befehlefestzulegen, mit denen die Schrift eines bestimmten Element s umgeschaltet wird. Theore-tisch könnten als Befehle alle möglichen Anweisungen einschließlich Textausgaben verwen-det werden. Sie sollten sich jedoch unbedingt auf solche Anweisungen beschränken, mit de-nen wirklich nur Schriftattribute umgeschaltet werden. In der Regel werden dies Befehle wie\rmfamily, \sffamily, \ttfamily, \upshape, \itshape, \slshape, \scshape, \mdseries,\bfseries, \normalfont oder einer der Befehle \Huge, \huge, \LARGE, \Large, \large,\normalsize, \small, \footnotesize, \scriptsize und \tiny sein. Die Erklärung zu diesenBefehlen entnehmen Sie bitte [DGS+12], [Tea05b] oder [Tea05a]. Auch Farbumschaltungen wie\normalcolor sind möglich (siehe [Car17] und [Ker07]). Die Verwendung anderer Anweisun-gen, inbesondere solcher, die Umdefinierungen vornehmen oder zu Ausgaben führen, ist nichtvorgesehen. Seltsames Verhalten ist in diesen Fällen möglich und stellt keinen Fehler dar.

Mit \setkomafont wird die Schriftumschaltung eines Elements mit einer völlig neuen Defi-nition versehen. Demgegenüber wird mit \addtokomafont die existierende Definition lediglicherweitert. Es wird empfohlen, beide Anweisungen nicht innerhalb des Dokuments, sondern nurin der Dokumentpräambel zu verwenden. Beispiele für die Verwendung entnehmen Sie bitteden Abschnitten zu den jeweiligen Elementen. Namen und Bedeutung der einzelnen Elementeund deren Voreinstellungen sind in Tabelle 5.1 aufgelistet. Die angegebenen Voreinstellungengelten nur, wenn das jeweilige Element beim Laden von scrlayer-scrpage nicht bereits definiertist. Beispielsweise definieren die KOMA-Script-Klassen pageheadfoot und es gilt dann dievon scrlayer-scrpage vorgefundene Einstellung.

Mit der Anweisung \usekomafont kann die aktuelle Schriftart auf diejenige umgeschaltetwerden, die für das angegebene Element definiert ist.

Kapitel 5: Kopf- und Fußzeilen mit scrlayer-scrpage 256

Tabelle 5.1.: Elemente, deren Schrift bei scrlayer-scrpage mit \setkomafont und \addtokomafont ver-ändert werden kann, einschließlich der jeweiligen Voreinstellung, falls die Elemente beimLaden von scrlayer-scrpage nicht bereits definiert sind

footbotlineLinie unter dem Fuß eines mit scrlayer-scrpage definierten Seitenstils (siehe Ab-schnitt 5.5, Seite 279). Das Element wird nach \normalfont und nach den Elementenpageheadfoot und pagefoot angewandt. Es wird empfohlen, dieses Element ledig-lich für Farbänderungen zu verwenden.Voreinstellung: leer

footseplineLinie über dem Fuß eines mit scrlayer-scrpage definierten Seitenstils (siehe Ab-schnitt 5.5, Seite 279). Das Element wird nach \normalfont und nach den Elementenpageheadfoot und pagefoot angewandt. Es wird empfohlen, dieses Element ledig-lich für Farbänderungen zu verwenden.Voreinstellung: leer

headseplineLinie unter dem Kopf eines mit scrlayer-scrpage definierten Seitenstils (siehe Ab-schnitt 5.5, Seite 279). Das Element wird nach \normalfont und nach den Elemen-ten pageheadfoot und pagehead angewandt. Es wird empfohlen, dieses Elementlediglich für Farbänderungen zu verwenden.Voreinstellung: leer

headtoplineLinie über dem Kopf eines mit scrlayer-scrpage definierten Seitenstils (siehe Ab-schnitt 5.5, Seite 279). Das Element wird nach \normalfont und nach den Elementenpageheadfoot und pagehead angewandt. Es wird empfohlen, dieses Element ledig-lich für Farbänderungen zu verwenden.Voreinstellung: leer

pagefootInhalt eines Fußes eines mit scrlayer-scrpage definierten Seitenstils (siehe Ab-schnitt 5.4, Seite 262). Das Element wird nach \normalfont und nach dem Elementpageheadfoot angewandt.Voreinstellung: leer

. . .

Kapitel 5: Kopf- und Fußzeilen mit scrlayer-scrpage 257

Tabelle 5.1.: Elemente, deren Schrift verändert werden kann (Fortsetzung)

pageheadInhalt eines Kopfes eines mit scrlayer-scrpage definierten Seitenstils (siehe Ab-schnitt 5.4, Seite 259). Das Element wird nach \normalfont und nach Elementpageheadfoot angewandt.Voreinstellung: leer

pageheadfootInhalt eines Kopfes oder Fußes eines mit scrlayer-scrpage definierten Seitenstils (sieheAbschnitt 5.4, Seite 259). Das Element wird nach \normalfont angewandt.Voreinstellung: \normalcolor\slshape

pagenumberDie mit \pagemark gesetzte Paginierung (siehe Abschnitt 5.4, Seite 273). Bei eineretwaigen Umdefinierung von \pagemark ist dafür zu sorgen, dass die Umdefinierungauch ein \usekomafont{pagenumber} enthält!Voreinstellung: \normalfont

\usefontofkomafont{Element }\useencodingofkomafont{Element }\usesizeofkomafont{Element }\usefamilyofkomafont{Element }\useseriesofkomafont{Element }\useshapeofkomafont{Element }

Manchmalv3.12 werden in der Schrifteinstellung eines Elements auch Dinge vorgenommen, die mitder Schrift eigentlich gar nichts zu tun haben, obwohl dies ausdrücklich nicht empfohlen wird.Soll dann nur die Schrifteinstellung, aber keine dieser zusätzlichen Einstellungen ausgeführtwerden, so kann statt \usekomafont die Anweisung \usefontofkomafont verwendet werden.Diese Anweisung übernimmt nur die Schriftgröße und den Grundlinienabstand, die Codierung(engl. encoding), die Familie (engl. family), die Strichstärke oder Ausprägung (engl. font series)und die Form oder Ausrichtung (engl. font shape).Mit den übrigen Anweisungen können auch einzelne Schriftattribute übernommen werden.

Dabei übernimmt \usesizeofkomafont sowohl die Schriftgröße als auch den Grundlinienab-stand.Diese Befehle sollten jedoch nicht als Legitimation dafür verstanden werden, in die Schrift-

einstellungen der Elemente beliebige Anweisungen einzufügen. Das kann nämlich sehr schnellzu Fehlern führen (siehe Abschnitt 21.5, Seite 505).

Kapitel 5: Kopf- und Fußzeilen mit scrlayer-scrpage 258

5.4. Verwendung vordefinierter Seitenstile

Die einfachste Möglichkeit, mit scrlayer-scrpage zu seinem Wunschdesign für Kopf und Fuß derSeite zu gelangen, ist die Verwendung eines vorgefertigten Seitenstils.

\pagestyle{scrheadings}\pagestyle{plain.scrheadings}

Das Paket scrlayer-scrpage stellt zwei Seitenstile zur Verfügung, die nach eigenen Wünschenumgestaltet werden können. Als erstes wäre der Seitenstil scrheadings zu nennen. Dieserist als Seitenstil mit Kolumnentitel vorgesehen. Er ähnelt in der Voreinstellung dem Seiten-stil headings der Standard- oder der KOMA-Script-Klassen. Was genau im Kopf und Fußausgegeben wird, ist über die nachfolgend beschriebenen Befehle und Optionen einstellbar.Als zweites ist der Seitenstil plain.scrheadings zu nennen. Dieser ist als Seitenstil ohne

Kolumnentitel vorgesehen. Er ähnelt in der Voreinstellung dem Seitenstil plain der Standard-oder der KOMA-Script-Klassen. Was genau im Kopf und Fuß ausgegeben wird, ist auch hierüber die nachfolgend beschriebenen Befehle und Optionen einstellbar.Natürlich kann auch scrheadings als Seitenstil ohne Kolumnentitel und

plain.scrheadings als Seitenstil mit Kolumnentitel konfiguriert werden. Es ist jedochzweckmäßig, sich an die vorgenannte Konvention zu halten. Die beiden Seitenstile be-einflussen sich nämlich in gewisser Weise gegenseitig. Sobald einer der Seitenstile einmalausgewählt wurde, ist scrheadings auch unter dem Namen headings und der Seitenstilplain.scrheadings auch unter dem Namen plain aktivierbar. Das hat den Vorteil, dass beiKlassen, die automatisch zwischen headings und plain umschalten, durch einmalige Auswahlvon scrheadings oder plain.scrheadings nun zwischen diesen beiden Stilen umgeschaltetwird. Direkte Anpassungen der entsprechenden Klassen sind nicht erforderlich. Die beidenSeitenstile stellen also quasi ein Paar dar, das als Ersatz für headings und plain verwendetwerden kann. Sollten weitere solche Paare benötigt werden, so sei auf Abschnitt 18.2 in Teil IIverwiesen.

\lehead[Inhalt plain.scrheadings ]{Inhalt scrheadings }\cehead[Inhalt plain.scrheadings ]{Inhalt scrheadings }\rehead[Inhalt plain.scrheadings ]{Inhalt scrheadings }\lohead[Inhalt plain.scrheadings ]{Inhalt scrheadings }\cohead[Inhalt plain.scrheadings ]{Inhalt scrheadings }\rohead[Inhalt plain.scrheadings ]{Inhalt scrheadings }

Was bei scrheadings und plain.scrheadings in den Kopf der Seite geschrieben wird, ist mitHilfe dieser Befehle einstellbar. Dabei setzt das optionale Argument jeweils den Inhalt einesElements in plain.scrheadings, während das obligatorische Argument jeweils einen Inhaltin scrheadings setzt.

Kapitel 5: Kopf- und Fußzeilen mit scrlayer-scrpage 259

\lehead \rehead\cehead \lohead \rohead\cohead

\ihead\chead\ohead

666 6 6 6

Abbildung 5.1.: Die Bedeutung der Befehle zum Setzen der Inhalte des Kopfes eines Seitenstils für dieSeitenköpfe einer schematischen Doppelseite

Die Inhalte für gerade, also linke Seiten werden mit den Befehlen \lehead, \cehead und\rehead gesetzt. Das »e« an zweiter Stelle des Befehlsnamens steht dabei für »even« (engl.für »gerade«).Die Inhalte für ungerade, also rechte Seiten werden mit den Befehlen \lohead, \cohead und

\rohead gesetzt. Das »o« an zweiter Stelle des Befehlsnamens steht dabei für »odd« (engl.für »ungerade«).Es sei an dieser Stelle noch einmal darauf hingewiesen, dass im einseitigen Satz nur rechte

Seiten existieren und diese von LATEX unabhängig von ihrer Nummer als ungerade Seitenbezeichnet werden.Jeder Kopf eines Seitenstils besitzt ein linksbündiges Element, das mit \lehead respektive

\lohead gesetzt werden kann. Das »l« am Anfang des Befehlsnamens steht hier für »leftaligned« (engl. für »linksbündig«).Ebenso besitzt jeder Kopf eines Seitenstils ein zentriert gesetztes Element, das mit \cehead

respektive \cohead gesetzt werden kann. Das »c« am Anfang des Befehlsnamens steht hierfür »centered« (engl. für »zentriert«).Entsprechend besitzt jeder Kopf eines Seitenstil auch ein rechtsbündiges Element, das mit

\rehead respektive \rohead gesetzt werden kann. Das »r« am Anfang des Befehlsnamenssteht hier für »right aligned« (engl. für »rechtsbündig«).Diese Elemente besitzen jedoch nicht jedes für sich eine Schriftzuordnung mit Hilfe der Be-

fehle \setkomafont und \addtokomafont (siehe Abschnitt 5.3, Seite 255), sondern alle zusam-men über das Element pagehead. Vor diesem wird außerdem noch das Element pageheadfootangewandt. Die Voreinstellungen für diese beiden Elemente sind Tabelle 5.1, Seite 256 zu ent-nehmen.In Abbildung 5.1 ist die Bedeutung der einzelnen Befehle für den Kopf der Seiten im dop-

pelseitigen Modus noch einmal skizziert.

Beispiel: Angenommen, Sie verfassen einen kurzen Artikel und wollen, dass im Kopf der Sei-ten links der Name des Autors und rechts der Titel des Artikels steht. Sie schreibendaher beispielsweise:\documentclass{scrartcl}

Kapitel 5: Kopf- und Fußzeilen mit scrlayer-scrpage 260

\usepackage{scrlayer-scrpage}\lohead{Peter Musterheinzel}\rohead{Seitenstile mit \KOMAScript}\pagestyle{scrheadings}\begin{document}\title{Seitenstile mit \KOMAScript}\author{Peter Musterheinzel}\maketitle\end{document}

Doch, was ist das? Auf der ersten Seite erscheint nur eine Seitenzahl im Fuß, derKopf hingegen bleibt leer!Die Erklärung dafür ist einfach: Die Klasse scrartcl schaltet wie auch die Standard-klasse article für die Seite mit dem Titelkopf in der Voreinstellung auf den Seitenstilplain. Nach der Anweisung \pagestyle{scrheadings} in der Präambel unseresBeispiels führt dies tatsächlich zur Verwendung des Seitenstils plain.scrheadingsfür die Seite mit dem Titelkopf. Dieser Seitenstil ist bei Verwendung einer KOMA-Script-Klasse mit leerem Kopf und Seitenzahl im Fuß vorkonfiguriert. Da im Beispieldas optionale Argument von \lohead und \rohead gar nicht verwendet wird, bleibtder Seitenstil plain.scrheadings unverändert. Das Ergebnis ist für die erste Seitealso tatsächlich korrekt.Fügen Sie jetzt im Beispiel nach \maketitle so viel Text ein, dass eine zweiteSeite ausgegeben wird. Sie können dazu auch einfach \usepackage{lipsum} inder Dokumentpräambel und \lipsum nach \maketitle ergänzen. Wie Sie sehenwerden, enthält der Kopf der zweiten Seite nun, genau wie gewünscht, den Namendes Autors und den Titel des Dokuments.Zum Vergleich sollten Sie zusätzlich das optionale Argument der Anweisungen\lohead und \rohead mit einem Inhalt versehen. Ändern Sie das Beispiel dazuwie folgt ab:\documentclass{scrartcl}\usepackage{scrlayer-scrpage}\lohead[Peter Musterheinzel]

{Peter Musterheinzel}\rohead[Seitenstile mit \KOMAScript]

{Seitenstile mit \KOMAScript}\pagestyle{scrheadings}\usepackage{lipsum}\begin{document}\title{Seitenstile mit \KOMAScript}\author{Peter Musterheinzel}\maketitle\lipsum

Kapitel 5: Kopf- und Fußzeilen mit scrlayer-scrpage 261

\end{document}

Jetzt haben Sie den Kopf auch auf der ersten Seite direkt über dem Titelkopfselbst. Das kommt daher, dass Sie mit den beiden optionalen Argumenten denSeitenstil plain.scrheadings nun ebenfalls entsprechend konfiguriert haben. WieSie am Ergebnis vermutlich auch erkennen, ist es jedoch besser, diesen Seitenstilunverändert zu lassen, da der Kolumnentitel über dem Titelkopf doch eher störendist.Alternativ zur Konfigurierung von plain.scrheadings hätte man bei Verwendungeiner KOMA-Script-Klasse übrigens auch den Seitenstil für Seiten mit Titelkopfändern können. Siehe dazu \titlepagestyle in Abschnitt 3.12, Seite 88.

Sie sollten niemals die Überschrift oder die Nummer einer Gliederungsebene mit Hilfe einerdieser Anweisungen als Kolumnentitel in den Kopf der Seite setzen. Aufgrund der Asynchro-nizität von Seitenaufbau und Seitenausgabe kann sonst die falsche Nummer oder die falscheÜberschrift im Kolumnentitel ausgegeben werden. Stattdessen ist der Mark-Mechanismus,idealer Weise in Verbindung mit den Automatismen aus dem nächsten Abschnitt, zu verwen-den.

\lehead*[Inhalt plain.scrheadings ]{Inhalt scrheadings }\cehead*[Inhalt plain.scrheadings ]{Inhalt scrheadings }\rehead*[Inhalt plain.scrheadings ]{Inhalt scrheadings }\lohead*[Inhalt plain.scrheadings ]{Inhalt scrheadings }\cohead*[Inhalt plain.scrheadings ]{Inhalt scrheadings }\rohead*[Inhalt plain.scrheadings ]{Inhalt scrheadings }

Die Sternvariantenv3.14 der zuvor erklärten Befehle unterscheiden sich von der Form ohne Sternlediglich bei Weglassen des optionalen Arguments [Inhalt plain.scrheadings ]. Währenddie Form ohne Stern in diesem Fall den Inhalt von plain.scrheadings unangetastet lässt,wird bei der Sternvariante dann das obligatorische Argument Inhalt scrheadings auch fürplain.scrheadings verwendet. Sollen also beide Argumente gleich sein, so kann man einfachdie Sternvariante mit nur einem Argument verwenden.

Beispiel: Mit der Sternform von \lohead und \rohead lässt sich das Beispiel aus der vorhe-rigen Erklärung etwas verkürzen:\documentclass{scrartcl}\usepackage{scrlayer-scrpage}\lohead*{Peter Musterheinzel}\rohead*{Seitenstile mit \KOMAScript}\pagestyle{scrheadings}\usepackage{lipsum}\begin{document}\title{Seitenstile mit \KOMAScript}

Kapitel 5: Kopf- und Fußzeilen mit scrlayer-scrpage 262

\author{Peter Musterheinzel}\maketitle\lipsum\end{document}

\lefoot[Inhalt plain.scrheadings ]{Inhalt scrheadings }\cefoot[Inhalt plain.scrheadings ]{Inhalt scrheadings }\refoot[Inhalt plain.scrheadings ]{Inhalt scrheadings }\lofoot[Inhalt plain.scrheadings ]{Inhalt scrheadings }\cofoot[Inhalt plain.scrheadings ]{Inhalt scrheadings }\rofoot[Inhalt plain.scrheadings ]{Inhalt scrheadings }

Was bei scrheadings und plain.scrheadings in den Fuß der Seite geschrieben wird, ist mitHilfe dieser Befehle einstellbar. Dabei setzt das optionale Argument jeweils den Inhalt einesElements in plain.scrheadings, während das obligatorische Argument jeweils einen Inhaltin scrheadings setzt.Die Inhalte für gerade, also linke Seiten werden mit den Befehlen \lefoot, \cefoot und

\refoot gesetzt. Das »e« an zweiter Stelle des Befehlsnamens steht dabei für »even« (engl.für »gerade«).Die Inhalte für ungerade, also rechte Seiten werden mit den Befehlen \lofoot, \cofoot und

\rofoot gesetzt. Das »o« an zweiter Stelle des Befehlsnamens steht dabei für »odd« (engl.für »ungerade«).Es sei an dieser Stelle noch einmal darauf hingewiesen, dass im einseitigen Satz nur rechte

Seiten existieren und diese von LATEX unabhängig von ihrer Nummer als ungerade Seitengezeichnet werden.Jeder Fuß eines Seitenstils besitzt ein linksbündiges Element, das mit \lefoot respektive

\lofoot gesetzt werden kann. Das »l« am Anfang des Befehlsnamens steht hier für »leftaligned« (engl. für »linksbündig«).Ebenso besitzt jeder Fuß eines Seitenstils ein zentriert gesetztes Element, das mit \cefoot

respektive \cofoot gesetzt werden kann. Das »c« am Anfang des Befehlsnamens steht hierfür »centered« (engl. für »zentriert«).Entsprechend besitzt jeder Fuß eines Seitenstil auch ein rechtsbündiges Element, das mit

\refoot respektive \rofoot gesetzt werden kann. Das »r« am Anfang des Befehlsnamenssteht hier für »right aligned« (engl. für »rechtsbündig«).Diese Elemente besitzen jedoch nicht jedes für sich eine Schriftzuordnung mit Hilfe der Be-

fehle \setkomafont und \addtokomafont (siehe Abschnitt 5.3, Seite 255), sondern alle zusam-men über das Element pagefoot. Vor diesem wird außerdem noch das Element pageheadfootangewandt. Die Voreinstellungen für diese beiden Elemente sind Tabelle 5.1, Seite 256 zu ent-nehmen.In Abbildung 5.2 ist die Bedeutung der einzelnen Befehle für den Fuß der Seiten im doppel-

seitigen Modus noch einmal skizziert.

Kapitel 5: Kopf- und Fußzeilen mit scrlayer-scrpage 263

Beispiel: Kommen wir zu dem Beispiel des kurzen Artikels zurück. Angenommen Sie wollennun links im Fuß zusätzlich den Verlag angegeben haben. Daher ergänzen Sie dasBeispiel zu:\documentclass{scrartcl}\usepackage{scrlayer-scrpage}\lohead{Peter Musterheinzel}\rohead{Seitenstile mit \KOMAScript}\lofoot{Verlag Naseblau, Irgendwo}\pagestyle{scrheadings}\usepackage{lipsum}\begin{document}\title{Seitenstile mit \KOMAScript}\author{Peter Musterheinzel}\maketitle\lipsum\end{document}

Der Verlag wird Ihnen aber nicht auf der Seite mit dem Titelkopf ausgegeben. DieBegründung ist dieselbe wie beim Beispiel zu \lohead. Ebenso ist die Lösung, umden Verlag auch auf diese Seite zu bekommen, entsprechend:\lofoot[Verlag Naseblau, Irgendwo]

{Verlag Naseblau, Irgendwo}

Jetzt soll statt der schrägen Schrift in Kopf und Fuß eine aufrechte, aber kleinereSchrift verwendet werden:\setkomafont{pageheadfoot}{\small}

Darüber hinaus, soll der Kopf, nicht jedoch der Fuß fett gesetzt werden:\setkomafont{pagehead}{\bfseries}

Bei dieser Anweisung ist wichtig, dass sie nach dem Laden von scrpage-scrlayererfolgt, weil davor pagehead und pageheadfoot dasselbe Element bezeichnen. Erstdurch Laden von scrpage-scrlayer werden daraus zwei unabhängige Elemente.

\lefoot \refoot\cefoot \lofoot \rofoot\cofoot

\ifoot\cfoot\ofoot

??? ? ? ?

Abbildung 5.2.: Die Bedeutung der Befehle zum Setzen der Inhalte des Fußes eines Seitenstils für dieSeitenfüße einer schematischen Doppelseite.

Kapitel 5: Kopf- und Fußzeilen mit scrlayer-scrpage 264

Ergänzen Sie nun das Beispiel einmal durch ein weiteres \lipsum und fügen Siegleichzeitig Option twoside beim Laden von scrartcl hinzu. Zum einen wandert dieSeitenzahl im Fuß nun von der Mitte nach außen. Das liegt an der geänderten Vor-einstellung für scrheadings und plain.scrheadings für doppelseitige Dokumentemit einer KOMA-Script-Klasse.Gleichzeitig verschwinden aber auch Autor, Dokumenttitel und Verlag von Seite 2.Diese finden sich erst auf Seite 3 wieder. Das liegt daran, dass wir bisher nur Befehlefür ungerade Seiten verwendet haben. Zu erkennen ist das am »o« für odd an derzweiten Stelle der Befehlsnamen.Nun könnten wir die Befehle einfach kopieren und in der Kopie dieses »o« durchein »e« für even ersetzen. Allerdings ist es bei doppelseitigen Dokumenten meistsinnvoller, wenn die Elemente spiegelverkehrt verwendet werden, dass also Elemen-te, die auf linken Seiten links stehen, auf rechten Seiten rechts platziert werden undumgekehrt. Daher vertauschen wir auch noch beim ersten Buchstaben »l« mit »r«und umgekehrt:\documentclass[twoside]{scrartcl}\usepackage{scrlayer-scrpage}\lohead{Peter Musterheinzel}\rohead{Seitenstile mit \KOMAScript}\lofoot[Verlag Naseblau, Irgendwo]

{Verlag Naseblau, Irgendwo}\rehead{Peter Musterheinzel}\lehead{Seitenstile mit \KOMAScript}\refoot[Verlag Naseblau, Irgendwo]

{Verlag Naseblau, Irgendwo}\pagestyle{scrheadings}\setkomafont{pageheadfoot}{\small}\setkomafont{pagehead}{\bfseries}\usepackage{lipsum}\begin{document}\title{Seitenstile mit \KOMAScript}\author{Peter Musterheinzel}\maketitle\lipsum\lipsum\end{document}

Da es etwas umständlich ist, die Angaben bei doppelseitigen Dokumenten wie im letztenBeispiel immer getrennt für linke und rechte Seiten zu machen, wird nachfolgend eine schönereLösung für diesen Standardfall eingeführt.Sie sollten niemals die Überschrift oder die Nummer einer Gliederungsebene mit Hilfe einer

dieser Anweisungen als Kolumnentitel in den Fuß der Seite setzen. Aufgrund der Asynchronizi-tät von Seitenaufbau und Seitenausgabe kann sonst die falsche Nummer oder die falsche Über-

Kapitel 5: Kopf- und Fußzeilen mit scrlayer-scrpage 265

schrift im Kolumnentitel ausgegeben werden. Stattdessen ist der Mark-Mechanismus, idealerWeise in Verbindung mit den Automatismen aus dem nächsten Abschnitt, zu verwenden.

\lefoot*[Inhalt plain.scrheadings ]{Inhalt scrheadings }\cefoot*[Inhalt plain.scrheadings ]{Inhalt scrheadings }\refoot*[Inhalt plain.scrheadings ]{Inhalt scrheadings }\lofoot*[Inhalt plain.scrheadings ]{Inhalt scrheadings }\cofoot*[Inhalt plain.scrheadings ]{Inhalt scrheadings }\rofoot*[Inhalt plain.scrheadings ]{Inhalt scrheadings }

Die Sternvariantenv3.14 der zuvor erklärten Befehle unterscheiden sich von der Form ohne Sternlediglich bei Weglassen des optionalen Arguments [Inhalt plain.scrheadings ]. Währenddie Form ohne Stern in diesem Fall den Inhalt von plain.scrheadings unangetastet lässt,wird bei der Sternvariante dann das obligatorische Argument Inhalt scrheadings auch fürplain.scrheadings verwendet. Sollen also beide Argumente gleich sein, so kann man einfachdie Sternvariante mit nur einem Argument verwenden.

Beispiel: Mit der Sternform von \lofoot und \rofoot lässt sich das Beispiel aus der vorhe-rigen Erklärung etwas verkürzen:\documentclass[twoside]{scrartcl}\usepackage{scrlayer-scrpage}\lohead{Peter Musterheinzel}\rohead{Seitenstile mit \KOMAScript}\lofoot*{Verlag Naseblau, Irgendwo}\rehead{Peter Musterheinzel}\lehead{Seitenstile mit \KOMAScript}\refoot*{Verlag Naseblau, Irgendwo}\pagestyle{scrheadings}\setkomafont{pageheadfoot}{\small}\setkomafont{pagehead}{\bfseries}\usepackage{lipsum}\begin{document}\title{Seitenstile mit \KOMAScript}\author{Peter Musterheinzel}\maketitle\lipsum\lipsum\end{document}

Kapitel 5: Kopf- und Fußzeilen mit scrlayer-scrpage 266

\ohead[Inhalt plain.scrheadings ]{Inhalt scrheadings }\chead[Inhalt plain.scrheadings ]{Inhalt scrheadings }\ihead[Inhalt plain.scrheadings ]{Inhalt scrheadings }\ofoot[Inhalt plain.scrheadings ]{Inhalt scrheadings }\cfoot[Inhalt plain.scrheadings ]{Inhalt scrheadings }\ifoot[Inhalt plain.scrheadings ]{Inhalt scrheadings }

Um Kopf und Fuß im doppelseitigen Layout zu konfigurieren, müsste man mit den zuvorerklärten Befehlen die linken und die rechten Seiten getrennt voneinander konfigurieren. Meistist es jedoch so, dass linke und rechte Seite mehr oder weniger symmetrisch zueinander sind.Ein Element das auf linken Seiten links steht, steht auf rechten Seiten rechts und umgekehrt.Mittig bleibt mittig.Zur Vereinfachung der Einstellungen für diesen Standardfall gibt es bei scrlayer-scrpage so-

zusagen Abkürzungen. Der Befehl \ohead entspricht einem Aufruf sowohl von \lehead alsauch \rohead. Der Befehl \chead entspricht sowohl \cehead als auch \cohead. Und Befehl\ihead entspricht \rehead und \lohead. Gleiches gilt für die Anweisungen des Fußes. In Ab-bildung 5.1 auf Seite 259 und Abbildung 5.2 auf Seite 263 werden auch diese Beziehungenskizziert.

Beispiel: Das letzte Beispiel lässt sich so vereinfachen:\documentclass[twoside]{scrartcl}\usepackage{scrlayer-scrpage}\ihead{Peter Musterheinzel}\ohead{Seitenstile mit \KOMAScript}\ifoot[Verlag Naseblau, Irgendwo]

{Verlag Naseblau, Irgendwo}\pagestyle{scrheadings}\setkomafont{pageheadfoot}{\small}\setkomafont{pagehead}{\bfseries}\usepackage{lipsum}\begin{document}\title{Seitenstile mit \KOMAScript}\author{Peter Musterheinzel}\maketitle\lipsum\lipsum\end{document}

Im einseitigen Layout können diese Befehle auch als Synonym für die entsprechenden Befehlefür rechte Seiten verwendet werden, da dann alle Seiten rechte Seiten sind.Erlauben Sie mir noch einmal einen wichtigen Hinweis: Sie sollten niemals die Überschrift

oder die Nummer einer Gliederungsebene mit Hilfe einer dieser Anweisungen als Kolumnentitelin den Kopf oder Fuß der Seite setzen. Aufgrund der Asynchronizität von Seitenaufbau undSeitenausgabe kann sonst die falsche Nummer oder die falsche Überschrift im Kolumnentitel

Kapitel 5: Kopf- und Fußzeilen mit scrlayer-scrpage 267

ausgegeben werden. Stattdessen ist der Mark-Mechanismus, idealer Weise in Verbindung mitden Automatismen aus dem nächsten Abschnitt, zu verwenden.

\ohead*[Inhalt plain.scrheadings ]{Inhalt scrheadings }\chead*[Inhalt plain.scrheadings ]{Inhalt scrheadings }\ihead*[Inhalt plain.scrheadings ]{Inhalt scrheadings }\ofoot*[Inhalt plain.scrheadings ]{Inhalt scrheadings }\cfoot*[Inhalt plain.scrheadings ]{Inhalt scrheadings }\ifoot*[Inhalt plain.scrheadings ]{Inhalt scrheadings }

Die Sternvariantenv3.14 der zuvor erklärten Befehle unterscheiden sich von der Form ohne Sternlediglich bei Weglassen des optionalen Arguments [Inhalt plain.scrheadings ]. Währenddie Form ohne Stern in diesem Fall den Inhalt von plain.scrheadings unangetastet lässt,wird bei der Sternvariante dann das obligatorische Argument Inhalt scrheadings auch fürplain.scrheadings verwendet. Sollen also beide Argumente gleich sein, so kann man einfachdie Sternvariante mit nur einem Argument verwenden.

Beispiel: Mit der Sternform von \ifoot lässt sich das Beispiel aus der vorherigen Erklärungweiter verkürzen:\documentclass[twoside]{scrartcl}\usepackage{scrlayer-scrpage}\ihead{Peter Musterheinzel}\ohead{Seitenstile mit \KOMAScript}\ifoot*{Verlag Naseblau, Irgendwo}\pagestyle{scrheadings}\setkomafont{pageheadfoot}{\small}\setkomafont{pagehead}{\bfseries}\usepackage{lipsum}\begin{document}\title{Seitenstile mit \KOMAScript}\author{Peter Musterheinzel}\maketitle\lipsum\lipsum\end{document}

pagestyleset=Einstellung

In den zurückliegenden Beispielen wurde bereits mehrfach auf die Voreinstellung derSeitenstile scrheadings und plain.scrheadings hingewiesen. Tatsächlich unterstütztscrlayer-scrpage derzeit zwei unterschiedliche Voreinstellungen. Diese sind von Hand über Op-tion pagestyleset auswählbar.Mit der Einstellung KOMA-Script wird die Voreinstellung gewählt, die auch automatisch

eingestellt wird, falls die Option nicht angegeben ist und eine KOMA-Script-Klasse erkannt

Kapitel 5: Kopf- und Fußzeilen mit scrlayer-scrpage 268

wurde. Dabei werden für scrheadings im doppelseitigen Satz Kolumnentitel außen im Kopfund Seitenzahlen außen im Fuß gesetzt. Im einseitigen Satz wird der Kolumnentitel stattdessenmittig im Kopf und die Seitenzahl mittig im Fuß platziert. Für die automatischen Kolumnen-titel werden Groß- und Kleinbuchstaben wie vorgefunden verwendet. Dies entspricht Optionmarkcase=used. Für plain.scrheadings entfallen die Kolumnentitel. Die Seitenzahlen wer-den jedoch identisch platziert.Wird allerdings scrlttr2 als Klasse erkannt, so werden die Voreinstellungen an die Seitenstile

jener Klasse angelehnt. Siehe dazu Abschnitt 4.13, ab Seite 224.Mit der Einstellung standard wird die Voreinstellung gewählt, die den Standard-Klassen

entspricht. Diese wird auch automatisch eingestellt, falls die Option nicht angegeben ist undkeine KOMA-Script-Klasse erkannt wurde. Dabei wird für scrheadings im doppelseitigenSatz der Kolumnentitel im Kopf innen und die Seitenzahl – ebenfalls im Kopf – außen ausge-richtet platziert. Im einseitigen Satz werden dieselben Einstellungen verwendet. Da hierbei nurrechte Seiten existieren, steht der Kolumnentitel dann immer linksbündig im Kopf, die Seiten-zahl entsprechend rechtsbündig. Die automatischen Kolumnentitel werden – trotz erheblichertypografischer Bedenken – entsprechend markcase=upper in Großbuchstaben umgewandelt.Von scrheadings deutlich abweichend hat plain.scrheadings die Seitenzahl im einseitigenSatz mittig im Fuß. Im Unterschied zum Seitenstil plain der Standardklassen entfällt die Sei-tenzahl im doppelseitigen Modus. Die Standardklassen setzen die Seitenzahl stattdessen mittigim Fuß, was im doppelseitigen Satz nicht zum übrigen Stil der Seiten passt. Der Kolumnentitelentfällt bei plain.scrheadings.Es ist zu beachten, dass mit der Verwendung dieser Option gleichzeitig der Seitenstil

scrheadings aktiviert wird.

5.5. Beeinflussung von Seitenstilen

In Abschnitt 5.4 wurde erklärt, wie die Seitenstile scrheadings und plain.scrheadingsgrundlegend vordefiniert sind und wie diese Vorbelegung grundsätzlich geändert werden kann.Es fehlen jedoch noch Informationen, wie beispielsweise die Kolumnentitel zustande kommen,wie man die Breite des Kopfes und Fußes verändern kann und wie man Linien über oder unterKopf oder Fuß setzen kann. Obwohl dies eigentlich Fähigkeiten des Pakets scrlayer sind, werdensie nachfolgend erläutert, da diese grundlegenden Eigenschaften von scrlayer einen wichtigenTeil der Möglichkeiten von scrlayer-scrpage ausmachen.

Kapitel 5: Kopf- und Fußzeilen mit scrlayer-scrpage 269

\automark[Gliederungsebene der rechten Marke ]{Gliederungsebene der linken Marke}\automark*[Gliederungsebene der rechten Marke ]{Gliederungsebene der linken Marke }\manualmark

Bei den Standardklassen und auch bei den KOMA-Script-Klassen fällt die Entscheidung, ob mitlebenden oder statischen Kolumnentiteln gearbeitet werden soll, über die Wahl des entsprechendenSeitenstils. Wie bereits in Abschnitt 3.12 erklärt, erhält man bei Wahl von headings lebendeKolumnentitel. Unter lebenden Kolumnentiteln versteht man die Wiederholung eines für die Seiteoder die Kolumne markanten Textes meist im Kopf, seltener im Fuß der Seite.Bei den Artikel-Klassen article oder scrartcl wird für den lebenden Kolumnentitel im einseiti-article,

scrartcl gen Modus die Abschnittsüberschrift, also das obligatorische oder das optionale Argument von\section verwendet. Diese wird als rechte Marke behandelt. Im doppelseitigen Satz wird dieselbeÜberschrift als linke Marke verwendet und gleichzeitig die Unterabschnittsüberschrift als rechteMarke. Ausgegeben wird die linke Marke, wie der Name schon sagt, auf der linken Seite, währenddie rechte Marke auf rechten Seiten – im einseitigen Modus also auf allen Seiten – ausgegebenwird. Beim Setzen der linken Marke für den Abschnitt werden von den Klassen in der Voreinstellungaußerdem auch immer die rechten Marken gelöscht.Bei den Bericht- und Buch-Klassen wird eine Ebene höher begonnen. Im einseitigen Modus wirdreport,

scrreprt,book,

scrbook

also die Kapitelüberschrift als rechte Marke gesetzt. Im doppelseitigen Satz wird die Kapitelüber-schrift als linke Marke und die Abschnittsüberschrift als rechte Marke gesetzt.Verwendet man hingegen als Seitenstil myheadings, so existieren zwar die Marken im Kopf

genauso und auch die Seitenzahlen werden gleich platziert, allerdings werden die Marken nichtautomatisch durch die Überschriften gesetzt. Man kann sie dann nur manuell über die später indiesem Abschnitt dokumentierten Anweisungen \markright und \markboth befüllen.Genau diese Unterscheidung wurde bei scrlayer aufgehoben. Statt die Unterscheidung zwi-

schen automatischen und manuellen Kolumnentiteln über den Seitenstil vorzunehmen, gibt esdie beiden Anweisungen \automark und \manualmark.Mit \manualmark wird dabei auf manuelle Marken umgeschaltet. Es deaktiviert also das au-

tomatische Setzen der Marken. Demgegenüber kann mit \automark und \automark* festgelegtwerden, welche Gliederungsebenen für das automatische Setzen der Marke verwendet wer-den sollen. Das optionale Argument gibt dabei die Gliederungsebene der rechten Markean, während das obligatorische Argument die Gliederungsebene der linken Marke ist. AlsArgument werden jeweils die Namen der Gliederungsebenen angegeben, also part, chapter,section, subsection, subsubsection, paragraph oder subparagraph.Normalerweise sollte die höhere Ebene die linke Marke setzen, während die tiefere Ebene für

die rechte Marke zu verwenden ist. Diese übliche Konvention ist jedoch keine Pflicht, sondernlediglich sinnvoll.Es ist zu beachten, dass nicht alle Klassen Kolumnentitel für alle Ebenen ermöglichen. So

setzen die Standardklassen beispielsweise nie Kolumnentitel für \part. Die KOMA-Script-Klassen unterstützen hingegen alle Ebenen.Der Unterschied zwischen \automark und \automark* liegt darin, dass \automark alle

Kapitel 5: Kopf- und Fußzeilen mit scrlayer-scrpage 270

vorherigen Befehle zum automatischen Setzen der Marken aufhebt, während die Stern-Version\automark* lediglich die Aktionen für die angegebenen Gliederungsebenen ändert.

Beispiel: Angenommen Sie wollen, dass wie üblich auf den linken Seiten eines Buches dieKapitelüberschriften als automatische Kolumnentitel verwendet werden und aufden rechten Seiten die Abschnittsüberschriften. Allerdings soll auf rechte Seiten solange ebenfalls die Kapitelüberschrift verwendet werden, bis der erste Abschnitt auf-taucht. Dazu wird zuerst scrlayer-scrpage geladen und der Seitenstil scrheadingsaktiviert. Das Dokument beginnt also mit:\documentclass{scrbook}\usepackage{scrlayer-scrpage}\pagestyle{scrheadings}

Als nächstes wird dafür gesorgt, dass die Kapitelüberschriften sowohl die linke alsauch die rechte Marke setzen:\automark[chapter]{chapter}

Dann sollen die Abschnittsüberschriften zusätzlich die rechten Marken setzen:\automark*[section]{}

Hier findet die Stern-Version Anwendung, da die vorherige \automark-Anweisungweiterhin wirksam bleiben soll. Außerdem bleibt das Argument für dieGliederungsebene der linken Marke leer, weil diese Marke unverändert bleibensoll.Alles, was jetzt noch fehlt, ist ein wenig Dokumentinhalt:\usepackage{lipsum}\begin{document}\chapter{Kapitel}\lipsum[1-20]\section{Abschnitt}\lipsum[21-40]\end{document}

Dabei ist das Paket lipsum mit seiner Anweisung \lipsum sehr nützlich.Wenn Sie dieses Beispiel einmal testen, werden Sie sehen, dass die Kapitelanfangs-seite wie üblich ohne Kolumnentitel ist, da sie automatisch im plain-Seitenstilplain.scrheadings gesetzt wird (siehe dazu Anweisung \chapterpagestyle aufSeite 88). Seite 2 bis 4 tragen als Kolumnentitel die Kapitelüberschrift. Nachdem aufSeite 4 eine Abschnittsüberschrift ausgegeben wurde, ändert sich der Kolumnentitelauf Seite 5 in die Abschnittsüberschrift. Ab dann werden die beiden Überschriftenim Kopf wechselweise ausgegeben, auf linken Seiten die Kapitelüberschrift, auf rech-ten Seiten die Abschnittsüberschrift.

Kapitel 5: Kopf- und Fußzeilen mit scrlayer-scrpage 271

automarkautooneside=Ein-Aus-WertmanualmarkAußer mit den zuvor erklärten Befehlen kann auch direkt mit den beiden Optionen manualmarkund automark zwischen automatischen und manuellen Kolumnentiteln hin- und hergeschaltetwerden. Dabei verwendet automark bei Klassen mit \chapter-Anweisung immer die Vorein-stellung \automark[section]{chapter} und bei anderen Klassen \automark[subsection←↩]{section}.

Im einseitigen Modus will man in der Regel, dass nur die höheren Ebenen den Kolumnenti-tel vorgeben. Diese Voreinstellung entspricht einer aktiven Option autooneside. Die Optionversteht die Werte für einfache Schalter, die in Tabelle 2.5 auf Seite 42 angegeben sind. Wirddie Option deaktiviert, so wirken sich im einseitigen Satz sowohl das optionale als auch dasobligatorische Argument auf den Kolumnentitel aus.

Beispiel: Angenommen, Sie wollen im einseitigen Modus eines Berichts eine ganz ähnlicheVerwendung des Kolumnentitels erreichen wie im vorherigen Beispiel. Konkret sollso lange die Kapitelüberschrift verwendet werden, bis ein Abschnitt gesetzt wird.Ab dann soll nur noch die Abschnittsüberschrift verwendet werden. Dazu wird dasBeispiel wie folgt abgewandelt:\documentclass{scrreprt}\usepackage[autooneside=false]{scrlayer-scrpage}\pagestyle{scrheadings}\automark[section]{chapter}\usepackage{lipsum}\begin{document}\chapter{Kapitel}\lipsum[1-20]\section{Abschnitt}\lipsum[21-40]\end{document}

Wie zu sehen ist, wird in diesem Fall keine ergänzende \automark*-Anweisungbenötigt. Sie sollten zum Vergleich die Option autooneside auch einmal auf truesetzen oder sie entfernen. Ein Unterschied ist dann ab Seite 4 im Kolumnentitel imKopf der Seiten zu sehen.

Das Laden des Pakets selbst hat übrigens noch keine Auswirkung darauf, ob mit automa-tischen Kolumnentiteln gearbeitet wird oder nicht. Erst die explizite Verwendung einer derOptionen automark oder manualmark oder einer der beiden Anweisungen \automark oder\manualmark schafft hier klare Verhältnisse.Bei Bedarf finden Sie weitere Hintergründe und Beispiele zur Verwendung dieser Befehle

und Optionen mit dem auf scrlayer basierenden Paket scrlayer-scrpage in Abschnitt 5.5, abSeite 269.

Kapitel 5: Kopf- und Fußzeilen mit scrlayer-scrpage 272

draft=Ein-Aus-Wert

Die KOMA-Script-Option versteht die Standardwerte für einfache Schalter, die in Tabelle 2.5auf Seite 42 angegeben sind. Ist die Option aktiviert, so werden alle Elemente der Seitenstilezusätzlich mit Maßlinien versehen. Dies kann während der Entwurfsphase manchmal nützlichsein. Falls diese Option global gesetzt wurde, die Maßlinien aber nicht gewünscht sind, kanndie Option auch nur für das Paket deaktiviert werden, indem man draft=false als optionalesArgument von \usepackage beim Laden des Pakets angibt.

\MakeMarkcase{Text }

Die automatischen, nicht jedoch die manuellen Kolumnentitel verwenden \MakeMarkcase fürihre Ausgabe. Ist die Anweisung beim Laden von scrlayer nicht definiert, so wird sie in derVoreinstellung derart definiert, dass sie ihr Argument Text unverändert ausgibt. Diese Vor-einstellung kann jedoch entweder durch Umdefinierung von \MakeMarkcase oder durch dienachfolgend dokumentierte Option markcase geändert werden. Je nach Einstellung wird dasArgument dann beispielsweise in Groß- oder Kleinbuchstaben umgewandelt.

markcase=Wert

Wie bereits früher erläutert, kann man bei scrlayer zwischen manuellen und automatischen Ko-lumnentiteln wählen. Bei den automatischen Kolumnentiteln werden dabei die entsprechendenMarken über die Gliederungsbefehle gesetzt. In manchen Kulturkreisen ist es im Gegensatzzur Typografie des deutschsprachigen Raums üblich, die Kolumnentitel in Großbuchstaben zusetzen. Die Standardklassen machen genau dies in der Voreinstellung. Das Paket scrlayer un-terstützt das optional ebenfalls. Hierzu gibt man als Option markcase=upper an. Im Endeffektführt das zu einer Umdefinierung von \MakeMarkcase.Leider führt die von LATEX für Versalsatz vorgesehene Anweisung \MakeUppercase zu keinem

guten Ergebnis, da weder gesperrt noch ausgeglichen wird. Dies liegt teilweise sicher daran,dass für typografisch korrekten Versalsatz eine Glyphenanalyse notwendig ist, um die konkre-te Form der Buchstaben und ihrer Kombinationen in den Ausgleich der Sperrung einfließenzu lassen. Der KOMA-Script-Autor empfiehlt daher, auf Versalsatz für die Kolumnentitel zuverzichten. Dies ist normalerweise mit markcase=used möglich. Allerdings fügen einige Klas-sen selbst beispielsweise bei den Kolumnentitel für Verzeichnisse ein \MakeUppercase odersogar die TEX-Anweisung \uppercase ein. Für diese Fälle gibt es auch noch die Einstellungmarkcase=noupper, mit deren Hilfe \MakeUppercase und \uppercase für die Kolumnentitellokal deaktiviert werden können.Alle für markcase möglichen Werte sind noch einmal in Tabelle 5.2 zusammengefasst.

Kapitel 5: Kopf- und Fußzeilen mit scrlayer-scrpage 273

Tabelle 5.2.: Mögliche Werte für Option markcase zur Wahl von Groß-/Kleinschreibung in automati-schen Kolumnentiteln

lowerdefiniert \MakeMarkcase so um, dass automatische Kolumnentitel mit Hilfe von\MakeLowercase in Kleinbuchstaben gewandelt werden (Minuskelsatz).

upperdefiniert \MakeMarkcase so um, dass automatische Kolumnentitel mit Hilfe von\MakeUppercase in Großbuchstaben gewandelt werden (Versalsatz).

useddefiniert \MakeMarkcase so um, dass für automatische Kolumnentitel keine automa-tische Veränderung der Groß-/Kleinschreibung durchgeführt wird.

ignoreuppercase, nouppercase, ignoreupper, noupperdefiniert nicht nur \MakeMarkcase so um, dass für automatische Kolumnentitel keineautomatische Veränderung der Groß-/Kleinschreibung durchgeführt wird, sonderndeaktiviert zusätzlich lokal für alle Ebenen aller Seitenstile \MakeUppercase und\uppercase.

\leftmark\rightmark\headmark\pagemark

Will man von den vordefinierten Seitenstilen abweichen, so muss man in der Regel auch selbstentscheiden können, wo die Marken gesetzt werden sollen. Mit \leftmark platziert man dielinke Marke. Diese wird dann bei der Ausgabe der Seite durch den entsprechenden Inhaltersetzt.Dementsprechend kann man mit \rightmark die rechte Marke platzieren, die dann bei der

Ausgabe der Seite durch den entsprechenden Inhalt ersetzt wird. Für einige Feinheiten dabeisei auch auf die weiterführenden Erklärungen zu \rightmark in Abschnitt 21.1, Seite 501verwiesen.Mit \headmark kann man sich das Leben erleichtern. Diese Erweiterung von scrlayer ent-

spricht je nachdem, ob die aktuelle Seite eine linke oder rechte ist, \leftmark oder \rightmark.Die Anweisung \pagemark hat genau genommen nichts mit den Marken von TEX zu tun.

Sie dient dazu, eine formatierte Seitenzahl zu platzieren. Bei ihrer Ausgabe wird dann auchdie Schrifteinstellung für das Element pagenumber verwendet. Diese kann mit Hilfe der An-weisungen \setkomafont und \addtokomafont verändert werden (siehe auch Abschnitt 3.6,Seite 62).

Beispiel: Angenommen, Sie wollen, dass auch im einseitigen Modus der Kolumnentitel immeram linken Rand und die Seitenzahl immer am rechten Rand ausgerichtet wird. Beide

Kapitel 5: Kopf- und Fußzeilen mit scrlayer-scrpage 274

sollen im Kopf platziert werden. Das folgende, vollständige Minimalbeispiel liefertgenau dies:\documentclass{scrreprt}\usepackage{blindtext}\usepackage[automark]{scrlayer-scrpage}\pagestyle{scrheadings}\ihead{\headmark}\ohead*{\pagemark}\chead{}\cfoot[]{}\begin{document}\blinddocument\end{document}

Das Paket blindtext mit seiner Anweisung \blinddocument wird hier für die kom-fortable Erzeugung eines Beispieldokumentinhalts verwendet.Mit den Anweisungen \ihead und \ohead* werden die gewünschten Marken plat-ziert. Dabei wird die Seitenzahl durch die Sternform \ohead* auch für den aufKapitelanfangsseiten verwendeten Seitenstil plain.scrheadings konfiguriert.Da die Seitenstile bereits mit Marken in der Mitte von Kopf oder Fuß vor-definiert sind, werden diese beiden Elemente mit \chead und \cfoot gelöscht.Hierzu werden leere Argumente verwendet. Alternativ dazu hätte man auch\clearpairofpagestyles vor \ihead verwenden können. Diese Anweisung wirdjedoch erst in Abschnitt 18.2 auf Seite 476 erklärt werden.

Bitte beachten Sie, dass das leere optionale Argument bei \cfoot im Beispiel nicht gleich-bedeutend mit dem Weglassen dieses optionalen Arguments ist. Sie sollten das einmal selbstausprobieren und dabei den Fuß der ersten Seite beobachten.Fortgeschrittene Anwender finden ab Seite 473 weitere Marken-Anweisungen.

\partmarkformat\chaptermarkformat\sectionmarkformat\subsectionmarkformat\subsubsectionmarkformat\paragraphmarkformat\subparagraphmarkformat

Diese Anweisungen werden von den KOMA-Script-Klassen und auch von scrlayer intern übli-cherweise verwendet, um die Gliederungsnummern der automatischen Kolumnentitel zu for-matieren. Dabei wird auch der \autodot-Mechanismus der KOMA-Script-Klassen unterstützt.Bei Bedarf können diese Anweisungen umdefiniert werden, um eine andere Formatierung derNummern zu erreichen.

Kapitel 5: Kopf- und Fußzeilen mit scrlayer-scrpage 275

Beispiel: Wollen Sie auf Abschnittsebene Kolumnentitel ohne Gliederungsnummer, geht dasbeispielsweise so:\renewcommand*{\sectionmarkformat}{}

zu erreichen.

\partmark{Text }\chaptermark{Text }\sectionmark{Text }\subsectionmark{Text }\subsubsectionmark{Text }\paragraphmark{Text }\subparagraphmark{Text }

Diese Anweisungen werden intern von den meisten Klassen verwendet, um die Marken ent-sprechend der Gliederungsbefehle zu setzen. Dabei wird als Argument lediglich der Text, nichtjedoch die Nummer erwartet. Die Nummer wird stattdessen automatisch über den aktuellenZählerstand ermittelt, falls mit nummerierten Überschriften gearbeitet wird.

Allerdings verwenden nicht alle Klassen in allen Gliederungsebenen eine solche Anweisung.Beispielsweise rufen die Standardklassen \partmark bei \part nicht auf.Falls diese Anweisungen vom Anwender umdefiniert werden, sollte er unbedingt darauf

achten, vor dem Setzen der Nummer ebenfalls über secnumdepth zu prüfen, ob die Nummernauszugeben sind. Dies gilt auch, wenn der Anwender secnumdepth selbst nicht verändert, weilPakete und Klassen sich eventuell auf die Wirkung von secnumdepth verlassen!

Das Paket scrlayer definiert diese Anweisungen außerdem bei jedem Aufruf von \automarkoder \manualmark oder den entsprechenden Optionen teilweise neu, um so die gewünschtenautomatischen oder manuellen Kolumnentitel zu erreichen.

\markleft{linke Marke }\markright{rechte Marke }\markboth{linke Marke }{rechte Marke }

Unabhängig davon, ob gerade mit manuellen oder automatischen Kolumnentiteln gearbeitetwird, kann man jederzeit die linke Marke oder rechte Marke mit einer dieser Anweisungensetzen. Dabei ist zu beachten, dass die resultierende linke Marke in \leftmark die letzteauf der entsprechenden Seite gesetzte Marke ist, während die resultierende rechte Marke in\rightmark die erste auf der entsprechenden Seite gesetzte Marke ausgibt. Näheres dazuist den weiterführenden Erklärungen zu \rightmark in Abschnitt 21.1, Seite 501 oder zu\rightfirstmark in Abschnitt 17.6, Seite 466 zu entnehmen.Wird mit manuellen Kolumnentiteln gearbeitet, so bleiben die Marken gültig, bis sie durch

erneute Verwendung der entsprechenden Anweisung explizit ersetzt werden. Bei automati-schen Kolumnentiteln können Marken hingegen je nach Konfigurierung des Automatismusihre Gültigkeit mit einer der nächsten Gliederungsüberschriften verlieren.

Kapitel 5: Kopf- und Fußzeilen mit scrlayer-scrpage 276

Auch im Zusammenhang mit den Sternvarianten der Gliederungsbefehle können diese An-weisungen nützlich sein.

Beispiel: Angenommen, Sie schreiben noch vor dem Inhaltsverzeichnis ein Vorwort über meh-rere Seiten, das jedoch im Inhaltsverzeichnis nicht auftauchen soll. Da Sie aberTrennlinien im Kopf verwenden, soll der Kolumnentitel das Vorwort dennoch zei-gen:\documentclass[headsepline]{book}\usepackage[automark]{scrlayer-scrpage}\pagestyle{scrheadings}\usepackage{blindtext}\begin{document}\chapter*{Vorwort}\markboth{Vorwort}{Vorwort}\blindtext[20]\tableofcontents\blinddocument\end{document}

Zunächst erscheint das Ergebnis wunschgemäß. Vielleicht erst beim zweiten Blickfällt aber auf, dass der Kolumnentitel »Vorwort« im Gegensatz zu den übrigenKolumnentiteln nicht im Versalsatz erscheint. Das ist jedoch leicht zu ändern:\documentclass[headsepline]{book}\usepackage[automark]{scrlayer-scrpage}\pagestyle{scrheadings}\usepackage{blindtext}\begin{document}\chapter*{Vorwort}\markboth{\MakeMarkcase{Vorwort}}

{\MakeMarkcase{Vorwort}}\blindtext[20]\tableofcontents\blinddocument\end{document}

Wie zu sehen ist, wurde \MakeMarkcase verwendet, um auch den manuell korri-gierten Kolumnentitel des Vorworts entsprechend der automatischen Kolumnentiteldes restlichen Dokuments anzupassen.Verschieben Sie nun einmal \tableofcontents vor das Vorwort und entfernen Siedie \markboth-Anweisung. Sie werden entdecken, dass das Vorwort als Kolumnenti-tel nun »CONTENTS« trägt. Das liegt an einer Eigenart von \chapter* (siehe auch inAbschnitt 3.16 auf Seite 112). Soll hier stattdessen kein Kolumnentitel erscheinen,so ist dies sehr einfach mit \markboth mit zwei leeren Argumenten zu erreichen:

Kapitel 5: Kopf- und Fußzeilen mit scrlayer-scrpage 277

\documentclass[headsepline]{book}\usepackage[automark]{scrlayer-scrpage}\pagestyle{scrheadings}\usepackage{blindtext}\begin{document}\tableofcontents\chapter*{Vorwort}\markboth{}{}\blindtext[20]\blinddocument\end{document}

headwidth=Breite :Offset :Offsetfootwidth=Breite :Offset :Offset

In der Voreinstellung sind Kopf und Fuß genauso breit wie der Satzspiegel. Mit Hilfe dieserbeiden KOMA-Script-Optionen lässt sich das jedoch ändern. Die Breite ist dabei die ge-wünschte Breite des Kopfes beziehungsweise Fußes. Der Offset gibt an, wie weit der Kopfrespektive Fuß in Richtung des äußeren Randes – im einseitigen Satz entsprechend in Richtungdes rechten Randes – verschoben werden soll. Dabei sind alle dreiv3.14 Werte optional, können alsoauch weggelassen werden. Falls ein Wert weggelassen wird, kann auch ein zugehöriger Dop-pelpunkt links davon entfallen. Ist nur ein Offset angegeben, so wird dieser sowohl für linkeals auch für rechte Seiten verwendet. Ansonsten wird im doppelseitigen Satz der erste Offsetfür ungerade, also rechte Seiten und der zweite für gerade, also linke Seiten verwendet. Istinsgesamt nur ein Wert und kein Doppelpunkt angegeben, so handelt es sich um die Breite .Sowohl für Breite als auch für Offset kann jeder gültige Längenwert aber auch jede LATEX-

Länge oder TEX-Länge oder TEX-Abstand eingesetzt werden. Darüber hinaus sind für beidesauch ε-TEX-Längenausdrücke mit den Grundrechenarten +, -, *, / und runden Klammernerlaubt. Näheres zu solchen Längenausdrücken ist [Tea98, Abschnitt 3.5] zu entnehmen. FürBreite sind außerdem einige symbolische Werte zulässig. Diese sind Tabelle 5.3 zu entnehmen.

Die Voreinstellung für Breite ist die Breite des Textbereichs. Die Voreinstellung für Offsethängt von der gewählten Breite ab. In der Regel wird im einseitigen Satz die Hälfte desUnterschieds zwischen Breite und der Breite des Textbereichs verwendet. Damit wird derKopf über dem Textbereich zentriert. Im doppelseitigen Satz wird hingegen nur ein Dritteldes Unterschieds zwischen Breite und der Breite des Textbereichs verwendet. Ist Breitejedoch die Breite des Textbereichs zuzüglich der Marginalienspalte, so ist die Voreinstellungvon Offset immer Null. Falls Ihnen das zu kompliziert ist, sollten Sie den gewünschten Offseteinfach selbst angeben.

Kapitel 5: Kopf- und Fußzeilen mit scrlayer-scrpage 278

Tabelle 5.3.: Erlaubte symbolische Werte für Breite bei den Optionen headwidth und footwidth

footdie aktuelle Breite des Fußes

footbotlinedie aktuelle Länge der horizontalen Linie unterhalb des Fußes

footseplinedie aktuelle Länge der horizontalen Linie zwischen dem Textbereich und dem Fuß

headdie aktuelle Breite des Kopfes

headseplinedie aktuelle Länge der horizontalen Linie zwischen dem Kopf und dem Textbereich

headtoplinedie aktuelle Länge der horizontalen Linie über dem Kopf

marginpardie Breite der Marginalienspalte einschließlich des Abstandes zwischen dem Textbe-reich und der Marginalienspalte

pagedie Breite der Seite unter Berücksichtigung einer eventuell mit Hilfe des Paketstypearea definierten Bindekorrektur (siehe Option BCOR in Abschnitt 2.6, Seite 34)

paperdie Breite des Papiers ohne Berücksichtigung einer etwaigen Bindekorrektur

textdie Breite des Textbereichs

textwithmarginpardie Breite des Textbereichs einschließlich der Marginalienspalte und natürlich desAbstandes zwischen den beiden (Achtung: Nur in diesem Fall ist die Voreinstellungfür Offset Null)

headtopline=Dicke :Längeheadsepline=Dicke :Längefootsepline=Dicke :Längefootbotline=Dicke :Länge

Während die KOMA-Script-Klassen nur eine Trennlinie unter dem Kopf und eine weitere überdem Fuß unterstützen und man diese nur wahlweise ein- und ausschalten kann, erlaubt dasPaket scrlayer-scrpage auch noch eine Linie über dem Kopf und unter dem Fuß, und man kannbei diesen beiden sowohl die Länge als auch die Dicke konfigurieren.Beide Werte sind optional. Lässt man die Dicke weg, so wird 0,4 pt angenommen, also eine

Haarlinie produziert. Verzichtet man auf eine Angabe der Länge , so wird die Breite des Kopfes

Kapitel 5: Kopf- und Fußzeilen mit scrlayer-scrpage 279

respektive des Fußes als gewünschter Wert angenommen. Wird beides weggelassen, so kannauch der Doppelpunkt entfallen. Wird nur ein Wert ohne Doppelpunkt angegeben, so ist diesdie Dicke .Natürlich darf die Länge nicht nur kürzer als die aktuelle Breite des Kopfes respektive

des Fußes sein. Sie darf auch länger sein. Siehe dazu auch die Optionen ilines, clines undolines, die später in diesem Abschnitt erklärt werden.Neben der Dicke und der Länge kann man auch die Farben der Linien ändern. Zunächst

richtet sich diese natürlich nach der Farbe, die für den Kopf und den Fuß eingestellt ist.Davon unabhängig werden aber auch noch die Einstellungen für die gleich benannten Elementeheadtopline, headsepline, footsepline und footbotline angewendet. Diese können mitden Anweisungen \setkomafont und \addtokomafont geändert werden (siehe Abschnitt 5.3,ab Seite 255). In der Voreinstellung sind die Einstellungen für diese Elemente leer, so dass siezu keiner Änderung der Schrift oder Farbe führen. Änderungen der Schrift sind im Gegensatzzu Farbänderungen an dieser Stelle ohnehin nicht sinnvoll und werden daher nicht empfohlen.

plainheadtopline=Ein-Aus-Wertplainheadsepline=Ein-Aus-Wertplainfootsepline=Ein-Aus-Wertplainfootbotline=Ein-Aus-Wert

Mit diesen Optionen können die Einstellungen für die Linien auch für den plain-Seitenstilübernommen werden. Als Ein-Aus-Wert stehen die Standardwerte für einfache Schalter, diein Tabelle 2.5 auf Seite 42 angegeben sind, zur Verfügung. Bei aktivierter Option werden dieentsprechenden Linieneinstellungen übernommen. Bei deaktivierter Option wird die entspre-chende Linie im plain-Seitenstil hingegen nicht angezeigt.

ilinesclinesolinesWie bereits zuvor erklärt wurde, können Trennlinien für den Kopf oder Fuß konfiguriert wer-den, die länger oder kürzer als die Breite des Kopfes beziehungsweise des Fußes sind. Bisherblieb die Frage offen, wie diese Linien dann ausgerichtet werden. In der Voreinstellung sindsie im einseitigen Satz linksbündig und im doppelseitigen Satz bündig mit dem Anfang desinneren Randes. Dies entspricht Option ilines. Alternativ können sie jedoch mit Optionclines auch horizontal bezüglich der Breite des Kopfes beziehungsweise Fußes zentriert wer-den. Ebenso ist mit Hilfe von Option olines eine Ausrichtung am äußeren beziehungsweiserechten Rand möglich.

Kapitel 6: Der Wochentag mit scrdate 280

Der Wochentag mit scrdate

Ursprünglich sollte das Paket scrdate lediglich den Wochentag zum aktuellen Datum liefern.Inzwischen bietet es dies und etwas mehr für jedes beliebige Datum im Gregorianischen Ka-lender.

\CenturyPart{Jahr }\DecadePart{Jahr }

Diev3.05a Anweisung \CenturyPart ergibt den Wert der Jahrhundert-Stellen eines Jahres. Die An-weisung \DecadePart ergibt hingegen den Wert der übrigen Stellen, also der Einer und Zehner.Dabei darf die Jahreszahl beliebig viele Stellen aufweisen. Der Wert kann direkt zur Zuweisungan einen Zähler oder für Berechnungen mit Hilfe von \numexpr verwendet werden. Für dieAusgabe als arabische Zahl ist \the voran zu stellen.

Beispiel: Sie wollen berechnen, in welchem Jahrhundert das aktuelle Jahr liegt und diesausgeben.Das Jahr \the\year\ ist das Jahr\the\DecadePart{\year} des\the\numexpr \CenturyPart{\year}+1\relax.Jahrhunderts.

Als Ergebnis erhalten Sie:Das Jahr 2019 ist das Jahr 19 des 21. Jahrhunderts.

Bitte beachten Sie, dass hier die Zählweise verwendet wird, bei der das Jahr 2000 das Jahr 0– also das erste Jahr – des 21. Jahrhunderts ist. Bei Bedarf kann aber, wie im Beispiel für dieOrdnungszahl gezeigt, mit \numexpr eine Korrektur herbeigeführt werden.

\DayNumber{Jahr }{Monat }{Tag }\ISODayNumber{ISO-Datum }

Diesev3.05a beiden Anweisungen geben den Wert der Nummer des Wochentags zu einem Da-tum zurück. Sie unterscheiden sich nur in der Art der Angabe des Datums. Während bei\DayNumber Jahr, Monat und Tag des gewünschten Datums eigene Parameter sind, wird bei\ISODayNumber das Datum in ISO-Schreibweise, Jahr -Monat -Tag angegeben. Dabei spieltes keine Rolle, ob Monat und Tag ein- oder zweistellig angegeben werden. Der Wert kann di-rekt zur Zuweisung an einen Zähler oder für Berechnungen mit Hilfe von \numexpr verwendetwerden. Für die Ausgabe als arabische Zahl ist \the voran zu stellen.

Beispiel: Sie wollen die Nummer des Wochentags des 1. Mai 2027 wissen.

Kapitel 6: Der Wochentag mit scrdate 281

Der 1.~Mai~2027 hat die Wochentagsnummer\the\ISODayNumber{2027-5-1}.

Als Ergebnis erhalten Sie:Der 1. Mai 2027 hat die Wochentagsnummer 6.

Als Besonderheit ist es sogar möglich, von einem vorgegebenen Datum eine gewünschteAnzahl an Tagen in die Zukunft oder Vergangenheit zu gehen.

Beispiel: Sie wollen die Nummer des Wochentags wissen, den wir in 12 Tagen haben und denwir 24 Tage vor dem 24. Dezember 2027 gehabt haben werden.In 12~Tagen haben wir die Wochentagsnummer\the\DayNumber{\year}{\month}{\day+12} und24~Tage vor dem 24.~Dezember~2027 wird esdie Nummer \the\ISODayNumber{2027-12-24-24}gewesen sein.

Als Ergebnis erhalten Sie beispielsweise:In 12 Tagen haben wir die Wochentagsnummer 4 und 24 Tage vor dem24. Dezember 2027 wird es die Nummer 2 gewesen sein.

Die Wochentage werden dabei wie folgt nummeriert: Sonntag=0, Montag=1, Dienstag=2,Mittwoch=3, Donnerstag=4, Freitag=5 und Samstag=6.

\DayNameByNumber{Wochentagsnummer }\DayName{Jahr }{Monat }{Tag }\ISODayName{ISO-Datum }

Üblicherweisev3.05a ist man weniger an der Nummer eines Wochentags als dem Namen des Wochen-tags interessiert. Daher liefert die Anweisung \DayNameByNumber den Namen des Wochentagszu einer Wochentagsnummer zurück, die man beispielsweise mit einer der beiden zuvor erklär-ten Anweisungen \DayNumber oder \ISODayNumber bestimmt hat. Die beiden Anweisungen\DayName und \ISODayName liefern entsprechend den Wochentag zu einem bestimmten Datum.

Beispiel: Sie wollen den Wochentag des 24. Dezembers 2027 wissen.Bitte zahlen Sie bis zum \ISODayName{2027-12-24},den 24.\,12.~2027, die Summe von \dots

Als Ergebnis erhalten Sie:Bitte zahlen Sie bis zum Freitag, den 24. 12. 2027, die Summe von . . .

Als Besonderheit ist es auch hier möglich, in gewissem Umfang Berechnungen anzustellen:

Kapitel 6: Der Wochentag mit scrdate 282

Beispiel: Sie wollen den Wochentag wissen, den wir in 12 Tagen haben und den wir 24 Tagevor dem 24. Dezember 2027 hatten.In 12~Tagen haben wir einen\DayName{\year}{\month}{\day+12} und24~Tage vor dem 24.~Dezember~2027 ist ein\ISODayName{2027-12-24-24}, während zwei Wochenund drei Tage nach einem Mittwoch ein\DayNameByNumber{3+2*7+3} folgt.

Als Ergebnis erhalten Sie beispielsweise:In 12 Tagen haben wir einen Donnerstag und 24 Tage vor dem 24. De-zember 2027 ist ein Dienstag, während zwei Wochen und drei Tage nacheinem Mittwoch ein Samstag folgt.

\ISOToday\IsoToday\todaysname\todaysnumber

In den bisherigen Beispielen dieses Abschnitts wurde das aktuelle Datum immer recht um-ständlich über die TEX-Register \year, \month, \day bestimmt. Die Anweisungen \ISOTodayv3.05a

und \IsoToday liefern direkt das aktuelle Datum in ISO-Schreibweise. Sie unterscheiden sichlediglich darin, dass \ISOTodayMonat und Tag immer zweistellig ausgibt, während \IsoTodayMonat und Tag bei Werten kleiner 10 einstellig ausgibt. Die Anweisung \todaysname bietetdirekt den aktuellen Wochentag, während \todaysnumber den Wert des aktuellen Wochentagsliefert. Näheres zur Verwendung dieses Wertes ist den obigen Erklärungen zu den Anweisungen\DayNumber und \ISODayNumber zu entnehmen.

Beispiel: Ich will Ihnen zeigen, an was für einem Wochentag dieses Dokument gesetzt wurde.Dazu schreibe ich:Dieses Dokument entstand an einem \todaysname.

Das Ergebnis lautet:Dieses Dokument entstand an einem Samstag.

Wenn Sie den Namen des Tages in Kleinbuchstaben benötigen, weil das in der entsprechen-den Sprache innerhalb des Satzes so üblich ist, können Sie das erreichen, obwohl die Namen derWochentage in scrdate alle groß geschrieben sind. Greifen Sie mit\MakeLowercase{\todaysname}

einfach auf die LATEX-Anweisung \MakeLowercase zurück. Diese wandelt ihr Argument kom-plett in Kleinbuchstaben. Natürlich funktioniert dieser Tipp auch für obige Anweisungen\DayNameByNumber, \DayName und \ISODayName.

Kapitel 6: Der Wochentag mit scrdate 283

\nameday{Name }

So wie mit \date die Ausgabe von \today direkt geändert werden kann, setzt \nameday dieAusgabe von \todaysname auf den Wert Name .

Beispiel: Sie setzen mit \date das aktuelle Datum auf einen festen Wert. Für die Ausgabedes zugehörigen Wochentags interessiert es nur, dass dieser Tag ein Werktag war.Daher schreiben Sie\nameday{Werktag}

und erhalten so mit dem Satz aus dem vorherigen Beispiel zu \todaysname:Dieses Dokument entstand an einem Werktag.

Für \ISOToday und \IsoToday existieren keine entsprechenden Anweisungen.

\newdaylanguage{Sprache }{Montag }{Dienstag }{Mittwoch }{Donnerstag }{Freitag }{Samstag }{Sonntag }

Das scrdate-Paket beherrscht derzeit die folgenden Sprachen:

• Dänisch (danish),

• Deutsch (austrianv3.08b , german, naustrian, ngerman, nswissgerman, swissgermanv3.13 ),

• Englisch (americanv3.13 , australian, british, canadian, english, newzealand,UKenglish, ukenglish, USenglish, usenglish),

• Finnisch (finnish),

• Französisch (acadian, canadien, francaisv3.13 , french),

• Italienisch (italian),

• Kroatisch (croatian),

• Niederländisch (dutch),

• Norwegisch (norsk),

• Polnisch (polishv3.13 ),

• Schwedisch (swedish),

• Slowakisch (slovak),

• Spanisch (spanish),

• Tschechisch (czechv3.13 ).

Kapitel 6: Der Wochentag mit scrdate 284

Es kann aber auch für andere Sprachen konfiguriert werden. Dazu gibt man als erstes Argu-ment von \newdaylanguage den Namen der Sprache an und als weitere Parameter die Namender entsprechenden Wochentage.Bei der aktuellen Version ist es auch egal, ob scrdate vor oder nach ngerman, babel oder ähn-

lichen Paketen geladen wird, in jedem Falle wird die korrekte Sprache gewählt, vorausgesetztdiese wird unterstützt.Etwas genauer ausgedrückt: Solange die Sprachauswahl in einer zu babel kompatiblen Form

erfolgt und die Sprache scrdate bekannt ist, wird die Sprache korrekt gewählt. Ist dies nicht derFall, werden (US-)englische Ausdrücke verwendet.Natürlich ist es sinnvoll Definitionen für bisher nicht unterstützte Sprachen an den KOMA-

Script-Autor zu melden. In diesem Fall stehen die Chancen gut, dass künftige KOMA-Script-Versionen die Sprache ebenfalls unterstützen werden.

Kapitel 7: Die aktuelle Zeit mit scrtime 285

Die aktuelle Zeit mit scrtime

Mit Hilfe dieses Pakets kann die Frage nach der aktuellen Zeit beantwortet werden. SeitVersion 3.05 unterstützt das Paket auch die von den KOMA-Script-Klassen und diversenanderen KOMA-Script-Paketen bekannten Möglichkeiten zur Angabe von Optionen. Siehedazu beispielsweise Abschnitt 2.4.

\thistime[Trennung ]\thistime*[Trennung ]

\thistime liefert die aktuelle Zeit in Stunden und Minuten. In der Ausgabe wird zwischenden Stunden und Minuten das optionale Argument Trennung gesetzt. Voreingestellt ist dasZeichen »:«.\thistime* funktioniert fast genau wie \thistime. Der einzige Unterschied besteht darin,

dass im Gegensatz zu \thistime bei \thistime* die Minutenangaben bei Werten kleiner 10nicht durch eine vorangestellte Null auf zwei Stellen erweitert wird.

Beispiel: Die ZeileIhr Zug geht um \thistime\ Uhr.

liefert als Ergebnis beispielsweise eine Zeile wieIhr Zug geht um 17:02 Uhr.

oderIhr Zug geht um 23:09 Uhr.

Demgegenüber liefert die ZeileBeim nächsten Ton ist es \thistime*[\ Uhr,\ ]Minuten und 42 Sekunden.

als mögliches Ergebnis etwas wieBeim nächsten Ton ist es 8 Uhr, 41 Minuten und 42 Sekunden.

oderBeim nächsten Ton ist es 23 Uhr, 9 Minuten und 42 Sekunden.

Kapitel 7: Die aktuelle Zeit mit scrtime 286

\settime{Wert }

\settime setzt die Ausgabe von \thistime und \thistime* auf einen festen Wert . An-schließend wird das optionale Argument von \thistime bzw. \thistime* ignoriert, da ja diekomplette Zeichenkette, die \thistime bzw. \thistime* nun liefert, hiermit explizit festgelegtwurde.

12h=Ein-Aus-Wert

Mit der Option 12hv3.05a kann gewählt werden, ob die Zeit bei \thistime und \thistime* im12-Stunden- oder 24-Stunden-Format ausgegeben werden soll. Als Ein-Aus-Wert kann dabeieiner der Standardwerte für einfache Schalter aus Tabelle 2.5, Seite 42 verwendet werden.Wird die Option ohne Wert-Angabe verwendet, so wird der Wert true angenommen, also aufdas 12-Stunden-Format geschaltet. Voreingestellt ist hingegen das 24-Stunden-Format.Die Option kann wahlweise als Klassenoption bei \documentclass, als Paketoption bei

\usepackage oder auch nach dem Laden von scrtime per \KOMAoptions oder \KOMAoption(siehe beispielsweise Abschnitt 2.4, Seite 32) gesetzt werden. Sie verliert jedoch bei einemAufruf von \settime ihre Gültigkeit. Die Uhrzeit wird nach Verwendung dieser Anweisungnur noch mit dem dort angegebenen Wert im dort verwendeten Format ausgegeben.

Rein aus Gründen der Kompatibilität zu früheren Versionen von scrtime wird bei\documentclass und \usepackage auch noch die Option 24h zur Umschaltung auf das 24-Stunden-Format unterstützt. Deren Verwendung wird jedoch nicht mehr empfohlen.

Kapitel 8: Adressdateien mit scraddr erschließen 287

Adressdateien mit scraddr erschließen

Das Paket scraddr ist eine kleine Beigabe zur Briefklasse und zum Briefpaket von KOMA-Script. Ziel ist, die Benutzung von Adressdateien zu vereinfachen und ihre Anwendung flexiblerzu gestalten.

8.1. Befehle

Im Grunde stellt das Paket nur einen Lademechanismus für Adressdateien bereit, die aus\adrentry- und neueren \addrentry-Einträgen bestehen, wie sie in Kapitel 4 ab Seite 247beschrieben sind.

\InputAddressFile{Dateiname }

Der Befehl \InputAddressFile ist der zentrale Ladebefehl von scraddr. Er erwartet als ob-ligatorisches Argument den Namen der einzulesenden Adressdatei. Wird diese Datei nichtgefunden, wird ein Fehler ausgegeben.Für jeden Eintrag dieser Adressdatei wird eine Reihe von Makros generiert, die es ermög-

lichen, auf die Daten der Adressdatei zuzugreifen. Es soll an dieser Stelle nicht verschwiegenwerden, dass dies bei großen Adressdateien sehr viel TEX-Speicher kostet.

\adrentry{Name }{Vorname }{Adresse }{Tel. }{F1}{F2}{Kommentar }{Kürzel }\addrentry{Name }{Vorname }{Adresse }{Tel. }{F1}{F2}{F3}{F4}{Kürzel }\adrchar{Anfangsbuchstaben }\addrchar{Anfangsbuchstaben }

Der Aufbau der Adresseinträge in der Adressdatei wurde in Abschnitt 4.22 ab Seite 247 aus-führlich besprochen. Die ebenfalls dort erwähnte Unterteilung der Adressdatei mit Hilfe von\adrchar oder \addrchar hat für scraddr keine Bedeutung und wird vom Paket ignoriert.

Kapitel 8: Adressdateien mit scraddr erschließen 288

\Name{Kürzel }\FirstName{Kürzel }\LastName{Kürzel }\Address{Kürzel }\Telephone{Kürzel }\FreeI{Kürzel }\FreeII{Kürzel }\Comment{Kürzel }\FreeIII{Kürzel }\FreeIV{Kürzel }

Die englischen Namen der Zugriffsbefehle folgen den Bezeichnungen der Argumente von\adrentry und \addrentry. Die Auswahl des Adresseintrags erfolgt anhand des Kürzels imletzten Argument eines Eintrags, das heißt Argument Nummer 8 für \adrentry-Einträge be-ziehungsweise Argument Nummer 9 für \addrentry-Einträge. Das bedeutet auch, dass diesesArgument nicht leer sein darf. Um eine sichere Funktionsweise zu garantieren, empfiehlt es sich,das Kürzel nur als Folge von Buchstaben aufzubauen, wobei jedoch keine Umlaute benutztwerden dürfen.Weiterhin ist zu beachten, dass bei mehrmaligem Auftreten eines Kürzels in den Einträgen

die Angaben beim letzten Auftreten die gültigen sind.

8.2. Anwendung

Um das Paket benutzen zu können, ist eine gültige Adressdatei zu erstellen. Diese, hierlotr.adr genannt, könnte beispielsweise folgendermaßen aussehen:

\addrentry{Beutlin}{Frodo}%{Der Bühl\\ Beutelsend/Hobbingen im Auenland}{}%{Bilbo Beutlin}{Rauchen von Pfeifenkraut}%{der Ringträger}{Bilbos Erbe}{FRODO}

\adrentry{Gamdschie}{Samweis}%{Beutelhaldenweg 3\\Hobbingen im Auenland}{}%{Rosie Kattun}{Knullen}%{des Ringträgers treuester Gefährte}{SAM}

\adrentry{Bombadil}{Tom}%{Im Alten Wald}{}%{Goldbeere}{trällern von Nonsensliedern}%{Meister von Wald, Wasser und Berg}{TOM}

Das vierte Argument, die Telefonnummer, wurde hier leer gelassen, da es in Auenland keineTelefone gibt. Wie zu sehen ist, sind also auch leere Angaben möglich. Dagegen ist es nichterlaubt, ein Argument einfach komplett weg zu lassen.Mit dem oben beschriebenen Ladebefehl lesen wir die Adressdatei in unser Briefdokument

ein:

Kapitel 8: Adressdateien mit scraddr erschließen 289

\InputAddressFile{lotr}

Mit Hilfe der vorgestellten Makros können wir dann einen Brief an den alten Tom Bomba-dil schreiben, in dem wir ihn fragen, ob er sich noch an zwei Gefährten aus alter Zeit erinnernkann.\begin{letter}{\Name{TOM}\\\Address{TOM}}\opening{Lieber \FirstName{TOM} \LastName{TOM},}

oder \FreeIII{TOM}, wie Dich Deine geliebte \FreeI{TOM}nennt. Kannst Du Dich noch an einen Herrn\LastName{FRODO}, genauer gesagt \Name{FRODO}, denn es gabja auch noch den Herrn \FreeI{FRODO}, erinnern. Er war\Comment{FRODO} im dritten Zeitalter und \FreeIV{FRODO}.Begleitet wurde er von \Name{SAM}, \Comment{SAM}.

Beider Vorlieben waren sehr weltlich. Der\FirstName{FRODO} genoss das \FreeII{FRODO}, sein Gefährteschätzte eine gute Mahlzeit mit \FreeII{SAM}.

Weißt du noch? Mithrandir hat Dir bestimmt viel von ihnenerzählt.\closing{"‘O Frühling und Sommerzeit

und danach wieder Frühling!\\O Wind auf dem Wasserfallund Lachen des Laubes!"’}

\end{letter}

Die in diesem Beispiel in \opening verwendete Zusammensetzung aus \FirstName{Kürzel }und \LastName{Kürzel } kann auch direkt mittels \Name{Kürzel } erhalten werden.Das fünfte und sechste Argument von \adrentry und \addrentry steht zur freien Verfü-

gung. Mit den Makros \FreeI und \FreeII kann auf diese Inhalte zugegriffen werden. Imvorliegenden Fall wurde das fünfte Argument für die Person benutzt, die der Person des Ein-trags am nächsten steht. Das sechste Argument enthält im Beispiel die besondere Vorliebeder jeweiligen Person. Das siebente Argument ist ebenfalls ein freier Eintrag. Der Zugriff er-folgt per \Comment oder \FreeIII. Der Zugriff auf das vierte freie Argument mittels \FreeIVist nur für \addrentry-Einträge gültig. Bei \adrentry-Einträgen ist seine Verwendung nichtzulässig. Näheres hierzu findet sich im nächsten Abschnitt.

8.3. Paketoptionen für Warnungen

Wie im vorherigen Abschnitt erwähnt, ist die Benutzung des Zugriffsbefehls \FreeIV bei\adrentry-Einträgen nicht zulässig. Wie scraddr darauf reagiert, ist allerdings durch Paketop-tionen konfigurierbar. Bitte beachten Sie, dass dieses Paket die erweiterte Optionenschnittstelle

Kapitel 8: Adressdateien mit scraddr erschließen 290

mit \KOMAoptions und \KOMAoption nicht unterstützt. Die Optionen sind also entweder alsglobale Optionen bei \documentclass oder als lokale Optionen bei \usepackage anzugeben.

adrFreeIVemptyadrFreeIVshowadrFreeIVwarnadrFreeIVstop

Diese vier Optionen erlauben die Auswahl aus vier verschiedenen Reaktionen zwischen Igno-rieren bis Abbruch falls bei einem \adrentry-Eintrag der Zugriffsbefehl \FreeIV verwendetwird:

adrFreeIVempty – Der Befehl \FreeIV wird einfach ignoriert.

adrFreeIVshow – Es wird die Warnung: »(entry FreeIV undefined at Kürzel )«, in den Textgeschrieben.

adrFreeIVwarn – In der Log-Datei erscheint eine Warnung.

adrFreeIVstop – Der LATEX-Lauf wird mit einer Fehlermeldung unterbrochen.

Wird für das Paket keine Option angegeben, so ist adrFreeIVshow voreingestellt.

Kapitel 9: Adressdateien aus Adressdatenbanken 291

Adressdateien aus Adressdatenbanken

In früheren Versionen von KOMA-Script war das Paket addrconv ein fester Bestandteil desKOMA-Script-Systems. Die hauptsächliche Verflechtung mit KOMA-Script bestand darin,dass mit Hilfe dieses Pakets aus Adressdatenbanken im BIBTEX-Format Adressdateien fürdie KOMA-Script-Briefklasse oder für das scraddr-Paket erstellt werden konnten.

@address{HMUS,name = {Hans Mustermann},title = {Mag. art.},city = {Heimstatt},zip = 01234,country = {Germany},street = {Mauerstra{\ss}e 1},phone = {01234 / 5 67 89},note = {Alles nur Erfindung},key = {HMUS},

}

Aus Einträgen wie dem oben stehenden können mit Hilfe von BIBTEX und verschiedenenBIBTEX-Stilen die Adressdateien erstellt werden. Weiterhin gibt es spezielle LATEX-Dateien, diees ermöglichen, aus den Adressdateien Telefon- und Adressverzeichnisse zu erstellen.Das Paket addrconv war aber eigentlich ein eigenständiger Teil, der auch noch über die Be-

lange von KOMA-Script hinaus Möglichkeiten bietet. Deshalb ist addrconv bereits seit einigerZeit nicht mehr in KOMA-Script enthalten. Das Paket adrconv, nur ein »d«, ersetzt addrconvvollständig. Es muss, falls nicht bereits in Ihrer TEX-Distribution enthalten, von [Kie10] sepa-rat bezogen und installiert werden.

Kapitel 10: Fähigkeiten von KOMA-Script-Klassen mit scrextend 292

Grundlegende Fähigkeiten der KOMA-Script-Klassen mit Hilfe desPakets scrextend anderen Klassen erschließen

Es gibt einige Möglichkeiten, die allen KOMA-Script-Klassen gemeinsam sind. Dies betrifftin der Regel nicht nur die Klassen scrbook, scrreprt und scrartcl, die als Ersatz für die Stan-dardklassen book, report und article für Bücher, Berichte und Artikel gedacht sind, sondern inweiten Teilen auch die KOMA-Script-Klasse scrlttr2, die als Nachfolger von scrlettr für Briefegedacht ist. Diese grundlegenden Möglichkeiten, die in den genannten Klassen zu finden sind,werden von KOMA-Script ab Version 3.00 auch vom Paket scrextend bereitgestellt. DiesesPaket sollte nicht mit KOMA-Script-Klassen verwendet werden. Es ist ausschließlich zur Ver-wendung mit anderen Klassen gedacht. Der Versuch, das Paket mit einer KOMA-Script-Klassezu laden, wird von scrextend erkannt und mit einer Warnung abgelehnt.

Dass scrletter nicht nur mit KOMA-Script-Klassen, sondern auch mit den Standardklassenverwendet werden kann, liegt übrigens teilweise an scrextend. Stellt scrletter nämlich fest, dasses nicht mit einer KOMA-Script-Klasse verwendet wird, so lädt es automatisch scrextend.Damit stehen dann alle unbedingt benötigten Möglichkeiten der KOMA-Script-Klassen zurVerfügung.Es gibt natürlich keine Garantie, dass scrextend mit jeder beliebigen Klasse zusammenar-

beitet. Es ist primär für die Erweiterung der Standardklassen und davon abgeleiteten Klassengedacht. In jedem Fall sollten Benutzer zunächst prüfen, ob die verwendete Klasse nicht selbstentsprechende Möglichkeiten bereitstellt.Neben den in diesem Kapitel beschriebenen Möglichkeiten gibt es einige weitere, die jedoch

hauptsächlich für Klassen- und Paketautoren gedacht sind. Diese sind in Kapitel 12, ab Sei-te 339 zu finden. Das dort dokumentierte Paket scrbase wird von allen KOMA-Script-Klassenund dem Paket scrextend verwendet.Auch das Paket scrlfile aus Kapitel 13 ab Seite 372 wird von allen KOMA-Script-Klassen

und dem Paket scrextend geladen. Daher stehen auch dessen Möglichkeiten bei Verwendungvon scrextend zur Verfügung.Im Unterschied dazu wird das ebenfalls für Klassen- und Paketautoren gedachte Paket

tocbasic (siehe Kapitel 15 ab Seite 388) nur von den Klassen scrbook, scrreprt und scrartclgeladen, so dass die dort definierten Möglichkeiten auch nur in diesen Klassen und nicht inscrextend zu finden sind. Natürlich kann tocbasic aber auch zusammen mit scrextend verwendetwerden.

10.1. Frühe oder späte Optionenwahl

Es gilt sinngemäß, was in Abschnitt 2.4 geschrieben wurde. Falls Sie also Abschnitt 2.4 bereitsgelesen und verstanden haben, können Sie auf Seite 294 mit Abschnitt 10.2 fortfahren.

Kapitel 10: Fähigkeiten von KOMA-Script-Klassen mit scrextend 293

\documentclass[Optionenliste ]{KOMA-Script-Klasse }\usepackage[Optionenliste ]{Paket-Liste }

Bei LATEX ist vorgesehen, dass Anwender Klassenoptionen in Form einer durch Komma ge-trennten Liste einfacher Schlüsselwörter als optionales Argument von \documentclass ange-ben. Außer an die Klasse werden diese Optionen auch an alle Pakete weitergereicht, die dieseOptionen verstehen. Ebenso ist vorgesehen, dass Anwender Paketoptionen in Form einer durchKomma getrennten Liste einfacher Schlüsselwörter als optionales Argument von \usepackageangeben. KOMA-Script erweitertv3.00 den Mechanismus der Optionen für einige Pakete um wei-tere Möglichkeiten. So haben die meisten Optionen bei KOMA-Script zusätzlich einen Wert.Eine Option hat also nicht unbedingt nur die Form Option , sondern kann auch die FormOption =Wert haben. Bis auf diesen Unterschied arbeiten \documentclass und \usepackagebei KOMA-Script wie in [Tea05b] oder jeder LATEX-Einführung, beispielsweise [DGS+12], be-schrieben.Gegenüber der nachfolgend vorgestellten Schnittstelle zu Einstellungen von Optionen hat

\documentclass einen Nachteil, der unbedingt zu beachten ist: Anweisungen, Längen, Zählerund ähnliches können darin leicht zerbrechen. So führt die Verwendung einer LATEX-Längeim Wert einer Option bei dieser Anweisung bei vielen Nicht-KOMA-Script-Klassen zu einerFehlermeldung, noch bevor der Wert an ein KOMA-Script-Paket übergeben wird, es alsodie Kontrolle darüber übernehmen könnte. Wertzuweisungen mit LATEX-Längen oder LATEX-Zählern sollten daher nie per \documentclass, sondern mit den nachfolgend dokumentiertenAnweisungen \KOMAoptions oder \KOMAoption vorgenommen werden.

\KOMAoptions{Optionenliste }\KOMAoption{Option }{Werteliste }

KOMA-Scriptv3.00 bietet bei den meisten Paketoptionen auch die Möglichkeit, den Wert der Op-tionen noch nach dem Laden des Pakets zu ändern. Mit der Anweisung \KOMAoptions kannman wie bei \documentclass oder \usepackage die Werte einer Reihe von Optionen ändern.Jede Option der Optionenliste hat dabei die Form Option =Wert .Einige Optionen besitzen auch einen Säumniswert (engl. default value). Versäumt man die

Angabe eines Wertes, verwendet man die Option also einfach in der Form Option , so wirdautomatisch dieser Säumniswert angenommen.Manche Optionen können gleichzeitig mehrere Werte besitzen. Für solche Optionen besteht

die Möglichkeit, mit \KOMAoption der einen Option nacheinander eine Reihe von Wertenzuzuweisen. Die einzelnen Werte sind dabei in der Werteliste durch Komma voneinandergetrennt.Soll ein Wert ein Gleichheitszeichen oder ein Komma enthalten, so ist der Wert in geschweif-

te Klammern zu setzen.KOMA-Script bedient sich für die Realisierung dieser Möglichkeit der Anweisungen

\FamilyOptions und \FamilyOption mit der Familie »KOMA«. Siehe dazu Teil II, Abschnitt 12.2,ab Seite 345.

Kapitel 10: Fähigkeiten von KOMA-Script-Klassen mit scrextend 294

Mit \KOMAoptions oder \KOMAoption gesetzte Optionen erreichen auch alle bereits gelade-nen KOMA-Script-Pakete, die diese Optionen kennen. Ist eine Option oder ein Wert insgesamtunbekannt, so wird die Option einschließlich des Wertes von scrbase als fehlerhaft gemeldet.

10.2. Kompatibilität zu früheren Versionen von KOMA-Script

Es gilt sinngemäß, was in Abschnitt 2.5 geschrieben wurde. Falls Sie also Abschnitt 2.5 bereitsgelesen und verstanden haben, können Sie in Abschnitt 10.3 auf Seite 295 fortfahren.Wer seine Dokumente im Quellcode archiviert, legt in der Regel allergrößten Wert darauf,

dass bei zukünftigen LATEX-Läufen immer wieder exakt dasselbe Ergebnis erzielt wird. Ineinigen Fällen führen aber Verbesserungen und Korrekturen am Paket zu Änderungen imVerhalten, inbesondere beim Umbruch. Dies ist jedoch manchmal eher unerwünscht.

version=Wertversion=firstversion=last

Beiv2.96av2.9tv3.01b scrextend besteht die Wahl, ob eine Quelldatei, soweit irgend möglich, auch zukünftig beieinem LATEX-Lauf zu exakt demselben Ergebnis führen soll oder ob er jeweils entsprechendder Anpassungen der neusten Version zu setzen ist. Zu welcher Version Kompatibilität herzu-stellen ist, wird dabei über die Option version festgelegt. Kompatibilität zur ältesten unter-stützten KOMA-Script-Version kann mit version=first oder version=2.9 oder version=2.9t erreicht werden. Bei Angabe einer unbekannten Version als Wert wird eine Warnungausgegeben und sicherheitshalber version=first angenommen.

Mit version=last kann die jeweils neuste Version ausgewählt werden. In diesem Fall wirdalso auf rückwirkende Kompatibilität verzichtet. Wird die Option ohne Wertangabe verwendet,so wird ebenfalls last angenommen.v3.01a Dies entspricht auch der Voreinstellung, solange keineobsolete Option verwendet wird.Die Frage der Kompatibilität betrifft in erster Linie Fragen des Umbruchs. Neue Möglich-

keiten, die sich nicht auf den Umbruch auswirken, sind auch dann verfügbar, wenn man perOption die Kompatibilität zu einer älteren Version ausgewählt hat. Die Option hat keine Aus-wirkungen auf Umbruchänderungen, die bei Verwendung einer neueren Version durch Beseiti-gung eindeutiger Fehler entstehen. Wer auch im Fehlerfall unbedingte Umbruchkompatibilitätbenötigt, sollte stattdessen mit dem Dokument auch die verwendete KOMA-Script-Versionarchivieren.Es ist zu beachten, dass die Option version nach dem Laden des Pakets scrextend nicht

mehr verändert werden kann. Das Setzen mit \KOMAoptions oder \KOMAoption ist für dieseOption daher nicht vorgesehen.

Kapitel 10: Fähigkeiten von KOMA-Script-Klassen mit scrextend 295

Tabelle 10.1.: Übersicht über die optional verfügbaren, erweiterten Möglichkeiten von scrextend

titledie Titelseiten werden auf die Möglichkeiten der KOMA-Script-Klassen erweitert;dies betrifft neben den Anweisungen für die Titelseiten auch die Option titlepage(siehe Abschnitt 10.7, ab Seite 298)

10.3. Optionale, erweiterte Möglichkeiten

Das Paket scrextend kennt optional verfügbare, erweiterte Möglichkeiten. Das sind Möglich-keiten, die in der Grundeinstellung nicht vorhanden sind, aber zusätzlich ausgewählt werdenkönnen. Diese sind beispielsweise deshalb optional, weil sie potentiell in Konflikt mit denMöglichkeiten der Standardklassen oder häufig benutzter Pakete stehen.

extendedfeature=Möglichkeit

Mit dieser Option kann eine optionale Möglichkeit von scrextend ausgewählt werden. DieseOption steht nur während des Ladens von scrextend zur Verfügung. Anwender geben dieseOption daher als optionales Argument von \usepackage{scrextend} an. Eine Übersicht überdie verfügbaren optionalen Möglichkeiten bietet Tabelle 10.1.

10.4. Entwurfsmodus

Es gilt sinngemäß, was in Abschnitt 3.3 geschrieben wurde. Falls Sie also Abschnitt 3.3 bereitsgelesen und verstanden haben, können Sie nach dem Ende dieses Abschnitts auf Seite 296 mitAbschnitt 10.5 fortfahren.Viele Klassen und viele Pakete kennen neben dem normalen Satzmodus auch einen Ent-

wurfsmodus. Die Unterschiede zwischen diesen beiden sind so vielfältig wie die Klassen undPakete, die diese Unterscheidung anbieten. So führt der Entwurfsmodus einiger Pakete auchzu Änderungen der Ausgabe, die sich auf den Umbruch des Dokuments auswirken. Das ist beiscrextend jedoch nicht der Fall.

draft=Ein-Aus-Wertoverfullrule=Ein-Aus-WertMit Option draft wird zwischen Dokumenten im Entwurfsstadium und fertigen Dokumen-ten unterschieden. Als Ein-Aus-Wert kann einer der Standardwerte für einfache Schalter ausTabelle 2.5, Seite 42 verwendet werden. Bei Aktivierung der Option werden im Falle überlan-ger Zeilen am Zeilenende kleine, schwarze Kästchen ausgegeben. Diese Kästchen erleichterndem ungeübten Auge, Absätze ausfindig zu machen, die manueller Nachbearbeitung bedürfen.Demgegenüber erscheinen in der Standardeinstellung draft=false keine solchen Kästchen.Solche Zeilen verschwinden übrigens häufig durch Verwendung des Pakets microtype [Sch13].

Kapitel 10: Fähigkeiten von KOMA-Script-Klassen mit scrextend 296

Dav3.25 Option draft bei verschiedenen Paketen zu allerlei unerwünschten Effekten führen kann,bietet KOMA-Script die Möglichkeit, die Markierung für überlange Zeilen auch über Optionoverfullrule zu steuern. Auch hier gilt, dass bei aktivierter Option die Markierung angezeigtwird.

10.5. Wahl der Schriftgröße für das Dokument

Es gilt sinngemäß, was in Abschnitt 3.5 geschrieben wurde. Falls Sie also Abschnitt 3.5 bereitsgelesen und verstanden haben, können Sie direkt zu Abschnitt 10.6 auf Seite 296 springen.

fontsize=Größe

Während von den Standardklassen und den meisten anderen Klassen nur eine sehr beschränkteAnzahl an Schriftgrößen unterstützt wird, bietet KOMA-Script die Möglichkeit, jede beliebigeGröße für die Grundschrift anzugeben. Dabei kann als Einheit für die Größe auch jede be-kannte TEX-Einheit verwendet werden. Wird die Größe ohne Einheit angegeben, so wird ptals Einheit angenommen.Wird die Option innerhalb des Dokuments gesetzt, so werden ab diesem Punkt die

Grundschriftgröße und die davon abhängigen Schriftgrößen der Befehle \tiny, \scriptsize,\footnotesize, \small, \normalsize, \large, \Large, \LARGE, \huge und \Huge geändert.Das kann beispielsweise dann nützlich sein, wenn der Anhang insgesamt in einer kleinerenSchriftgröße gesetzt werden soll.Es wird darauf hingewiesen, dass bei Verwendung nach einem eventuellen Laden von typearea

die Aufteilung zwischen Satzspiegel und Rändern nicht automatisch neu berechnet wird (siehe\recalctypearea, Abschnitt 2.6, Seite 41). Wird diese Neuberechnung jedoch vorgenommen,so erfolgt sie auf Basis der jeweils gültigen Grundschriftgröße. Die Auswirkungen des Wechselsder Grundschriftgröße auf zusätzlich geladene Pakete oder die verwendete Klasse sind vondiesen Paketen und der Klasse abhängig. Es können also Fehler auftreten, die nicht als Fehlervon KOMA-Script angesehen werden.Diese Option sollte keinesfalls als Ersatz für \fontsize (siehe [Tea05a]) missverstanden

werden. Sie sollte auch nicht anstelle einer der von der Grundschrift abhängigen Schriftgrö-ßenanweisungen, \tiny bis \Huge, verwendet werden!

10.6. Textauszeichnungen

Es gilt sinngemäß, was in Abschnitt 3.6 geschrieben wurde. Falls Sie also Abschnitt 3.6 bereitsgelesen und verstanden haben, können Sie auf Seite 298 mit Abschnitt 10.7 fortfahren. Fürdiesen Fall sei jedoch darauf hingewiesen dass von scrextend aus Tabelle 3.2, Seite 63 nurdie Elemente für den Dokumenttitel, den schlauen Spruch, die Fußnoten und die labeling-Umgebung unterstützt werden. Das Element disposition ist zwar auch vorhanden, wirdjedoch von scrextend ebenfalls nur für den Dokumenttitel verwendet.

Kapitel 10: Fähigkeiten von KOMA-Script-Klassen mit scrextend 297

LATEX verfügt über eine ganze Reihe von Anweisungen zur Textauszeichnung. Neben derWahl der Schriftart gehören dazu auch Befehle zur Wahl einer Textgröße oder der Textaus-richtung. Näheres zu den normalerweise definierten Möglichkeiten ist [DGS+12], [Tea05b] und[Tea05a] zu entnehmen.

\textsuperscript{Text }\textsubscript{Text }

Im LATEX-Kern ist bereits die Anweisung \textsuperscript definiert, mit der Text höhergestellt werden kann. Eine entsprechende Anweisung, um Text tief statt hoch zu stellen, bietetLATEX erst seit Version 2015/01/01. Für ältere LATEX-Versionen definiert KOMA-Script daher\textsubscript. Ein Anwendungsbeispiel finden Sie in Abschnitt 3.6, Seite 62.

\setkomafont{Element }{Befehle }\addtokomafont{Element }{Befehle }\usekomafont{Element }

Mit Hilfe der Anweisungen \setkomafont und \addtokomafont ist es möglich, die Befehlefestzulegen, mit denen die Schrift eines bestimmten Element s umgeschaltet wird. Theore-tisch könnten als Befehle alle möglichen Anweisungen einschließlich Textausgaben verwen-det werden. Sie sollten sich jedoch unbedingt auf solche Anweisungen beschränken, mit de-nen wirklich nur Schriftattribute umgeschaltet werden. In der Regel werden dies Befehle wie\rmfamily, \sffamily, \ttfamily, \upshape, \itshape, \slshape, \scshape, \mdseries,\bfseries, \normalfont oder einer der Befehle \Huge, \huge, \LARGE, \Large, \large,\normalsize, \small, \footnotesize, \scriptsize und \tiny sein. Die Erklärung zu diesenBefehlen entnehmen Sie bitte [DGS+12], [Tea05b] oder [Tea05a]. Auch Farbumschaltungen wie\normalcolor sind möglich (siehe [Car17] und [Ker07]). Die Verwendung anderer Anweisun-gen, inbesondere solcher, die Umdefinierungen vornehmen oder zu Ausgaben führen, ist nichtvorgesehen. Seltsames Verhalten ist in diesen Fällen möglich und stellt keinen Fehler dar.

Mit \setkomafont wird die Schriftumschaltung eines Elements mit einer völlig neuen Defi-nition versehen. Demgegenüber wird mit \addtokomafont die existierende Definition lediglicherweitert. Es wird empfohlen, beide Anweisungen nicht innerhalb des Dokuments, sondern nurin der Dokumentpräambel zu verwenden. Beispiele für die Verwendung entnehmen Sie bitteden Abschnitten zu den jeweiligen Elementen. Namen und Bedeutung der einzelnen Elementesind in Tabelle 3.2, Seite 63 aufgelistet. Allerdings werden davon in scrextend nur die Elemen-te für den Dokumenttitel, den schlauen Spruch, die Fußnoten und die labeling-Umgebungbehandelt. Das Element disposition ist zwar auch verfügbar, wird jedoch von scrextendebenfalls nur für den Dokumenttitel verwendet.Mit der Anweisung \usekomafont kann die aktuelle Schriftart auf die für das angegebene

Element umgeschaltet werden.Beispiel: Angenommen, Sie wollen, dass der Titel in Serifenschrift und rot gesetzt wird. Das

erreichen Sie einfach mit:

Kapitel 10: Fähigkeiten von KOMA-Script-Klassen mit scrextend 298

\setkomafont{title}{%\color{red}%

}

Für die Anweisung \color{red} wird das Paket color oder xcolor benötigt. Die zu-sätzliche Angabe von \normalfont ist in diesem Beispiel deshalb nicht notwendig,weil diese Anweisung bereits in der Definition des Titels enthalten ist. Das Bei-spiel setzt voraus, dass extendedfeature=title gesetzt ist (siehe Abschnitt 10.3,Seite 295).

\usefontofkomafont{Element }\useencodingofkomafont{Element }\usesizeofkomafont{Element }\usefamilyofkomafont{Element }\useseriesofkomafont{Element }\useshapeofkomafont{Element }

Manchmalv3.12 werden in der Schrifteinstellung eines Elements auch Dinge vorgenommen, die mitder Schrift eigentlich gar nichts zu tun haben, obwohl dies ausdrücklich nicht empfohlen wird.Soll dann nur die Schrifteinstellung, aber keine dieser zusätzlichen Einstellungen ausgeführtwerden, so kann statt \usekomafont die Anweisung \usefontofkomafont verwendet werden.Diese Anweisung übernimmt nur die Schriftgröße und den Grundlinienabstand, die Codierung(engl. encoding), die Familie (engl. family), die Strichstärke oder Ausprägung (engl. font series)und die Form oder Ausrichtung (engl. font shape).Mit den übrigen Anweisungen können auch einzelne Schriftattribute übernommen werden.

Dabei übernimmt \usesizeofkomafont sowohl die Schriftgröße als auch den Grundlinienab-stand.

10.7. Dokumenttitel

Es gilt sinngemäß, was in Abschnitt 3.7 geschrieben wurde. Falls Sie also Abschnitt 3.7 be-reits gelesen und verstanden haben, können Sie auf Seite 303 mit Abschnitt 10.8 fortfahren.Die Möglichkeiten von scrextend zum Dokumenttitel gehören jedoch zu den optionalen, er-weiterten Möglichkeiten und stehen daher nur zur Verfügung, wenn beim Laden des Paketsextendedfeature=title gewählt wurde (siehe Abschnitt 10.3, Seite 295).

Darüber hinaus kann scrextend nicht mit einer KOMA-Script-Klasse zusammen verwendetwerden. In allen Beispielen aus Abschnitt 3.7 muss daher bei Verwendung von scrextend\documentclass{scrbook}

durch\documentclass{book}\usepackage[extendedfeature=title]{scrextend}

Kapitel 10: Fähigkeiten von KOMA-Script-Klassen mit scrextend 299

ersetzt werden.Bei Dokumenten wird zwischen zwei Arten von Titeln unterschieden. Zum einen gibt es die

Titelseiten. Hierbei steht der Dokumenttitel zusammen mit einigen zusätzlichen Informationenwie dem Autor auf einer eigenen Seite. Neben der Haupttitelseite kann es weitere Titelseiten,etwa Schmutztitel, Verlagsinformationen, Widmung oder ähnliche, geben. Zum anderen gibtes den Titelkopf. Dabei erscheint der Titel lediglich am Anfang einer neuen Seite. Unterhalbdieser Titelzeilen wird beispielsweise mit der Zusammenfassung, einem Vorwort oder demInhaltsverzeichnis fortgefahren.

titlepage=Ein-Aus-Werttitlepage=firstiscover\coverpagetopmargin\coverpageleftmargin\coverpagerightmargin\coverpagebottommargin

Mit dieser Option wird ausgewählt, ob für die mit \maketitle (siehe Seite 300) gesetzteTitelei eigene Seiten verwendet werden oder stattdessen die Titelei von \maketitle als Titel-kopf gesetzt wird. Als Ein-Aus-Wert kann einer der Standardwerte für einfache Schalter ausTabelle 2.5, Seite 42 verwendet werden.Mit titlepage=true wird die Titelei in Form von Titelseiten ausgewählt. Die Anweisung

\maketitle verwendet dabei titlepage-Umgebungen zum Setzen dieser Seiten, die somitnormalerweise weder Seitenkopf noch Seitenfuß erhalten. Bei KOMA-Script wurde die Titeleigegenüber den Standardklassen stark erweitert. Die zusätzlichen Elemente finden sie auf dennachfolgenden Seiten.Demgegenüber wird mit titlepage=false erreicht, dass ein Titelkopf (engl.: in-page title)

gesetzt wird. Das heißt, die Titelei wird lediglich speziell hervorgehoben. Auf der Seite mitdem Titel kann aber nachfolgend weiteres Material, beispielsweise eine Zusammenfassung oderein Abschnitt, gesetzt werden.Mitv3.12 der dritten Möglichkeit, titlepage=firstiscover, werden nicht nur Titelseiten akti-

viert. Es wird auch dafür gesorgt, dass die erste von \maketitle ausgegebene Titelseite, alsoentweder der Schmutztitel oder der Haupttitel, als Umschlagseite ausgegeben wird. Jede andereEinstellung für die Option titlepage hebt diese Einstellung wieder auf. Die Ränder dieser Um-schlagseite werden über \coverpagetopmargin (oberer Rand), \coverpageleftmargin (lin-ker Rand), \coverpagerightmargin (rechter Rand) und natürlich \coverpagebottommargin(unterer Rand) bestimmt. Die Voreinstellungen sind von den Längen \topmargin und\evensidemargin abhängig und können mit \renewcommand geändert werden.Die Voreinstellung ist von der verwendeten Klasse abhängig und wird von scrextend kompa-

tibel zu den Standardklassen erkannt. Setzt eine Klasse keine entsprechende Voreinstellung,so ist der Titelkopf voreingestellt.

Kapitel 10: Fähigkeiten von KOMA-Script-Klassen mit scrextend 300

\begin{titlepage} . . . \end{titlepage}Grundsätzlich werden bei den Standardklassen und bei KOMA-Script alle Titelseiten in einerspeziellen Umgebung, der titlepage-Umgebung, gesetzt. Diese Umgebung startet immer miteiner neuen Seite – im zweiseitigen Layout sogar mit einer neuen rechten Seite – im einspaltigenModus. Für eine Seite wird der Seitenstil mit \thispagestyle{empty} geändert, so dassweder Seitenzahl noch Kolumnentitel ausgegeben werden. Am Ende der Umgebung wird dieSeite automatisch beendet. Sollten Sie nicht das automatische Layout der Titelei, wie es dasnachfolgend beschriebene \maketitle bietet, verwenden können, ist zu empfehlen, eine eigeneTitelei mit Hilfe dieser Umgebung zu entwerfen.Ein Beispiel für eine einfache Titelseite mit titlepage finden Sie in Abschnitt 3.7, Seite 69.

\maketitle[Seitenzahl ]

Während bei den Standardklassen nur maximal eine Titelseite mit den Angaben Titel, Autorund Datum existiert, können bei KOMA-Scriptmit \maketitle bis zu sechs Titelseiten gesetztwerden. Im Gegensatz zu den Standardklassen kennt \maketitle bei KOMA-Script außerdemnoch ein optionales nummerisches Argument. Findet es Verwendung, so wird die Nummerals Seitenzahl der ersten Titelseite benutzt. Diese Seitenzahl wird jedoch nicht ausgegeben,sondern beeinflusst lediglich die Zählung. Sie sollten hier unbedingt eine ungerade Zahl wählen,da sonst die gesamte Zählung durcheinander gerät. Meiner Auffassung nach gibt es nur zweisinnvolle Anwendungen für das optionale Argument. Zum einen könnte man dem Schmutztiteldie logische Seitenzahl -1 geben, um so die Seitenzählung erst ab der Haupttitelseite mit 1zu beginnen. Zum anderen könnte man mit einer höheren Seitenzahl beginnen, beispielsweise3, 5 oder 7, um so weitere Titelseiten zu berücksichtigen, die erst vom Verlag hinzugefügtwerden. Wird ein Titelkopf verwendet, wird das optionale Argument ignoriert. Dafür kannder Seitenstil einer solchen Titelei durch Umdefinierung des Makros \titlepagestyle (sieheAbschnitt 3.12, Seite 88) verändert werden.Die folgenden Anweisungen führen nicht unmittelbar zum Setzen der Titelei. Das Setzen

der Titelei erfolgt immer mit \maketitle. Es sei an dieser Stelle auch darauf hingewiesen,dass \maketitle nicht innerhalb einer titlepage-Umgebung zu verwenden ist. Wie in denBeispielen angegeben, sollte man nur entweder \maketitle oder titlepage verwenden.Mit den nachfolgend erklärten Anweisungen werden lediglich die Inhalte der Titelei festge-

legt. Sie müssen daher auch unbedingt vor \maketitle verwendet werden. Es ist jedoch nichtnotwendig und bei Verwendung des babel-Pakets (siehe [BB13]) auch nicht empfehlenswert,diese Anweisungen in der Dokumentpräambel vor \begin{document} zu verwenden. Beispiel-dokumente finden Sie in Abschnitt 3.7 ab Seite 70.

Kapitel 10: Fähigkeiten von KOMA-Script-Klassen mit scrextend 301

\extratitle{Schmutztitel }\frontispiece{Frontispiz }

Früher war der Buchblock oftmals nicht durch einen Buchdeckel vor Verschmutzung geschützt.Diese Aufgabe übernahm dann die erste Seite des Buches, die meist einen Kurztitel, eben denSchmutztitel, trug. Auch heute noch wird diese Extraseite vor dem eigentlichen Haupttitel gerneverwendet und enthält dann Verlagsangaben, Buchreihennummer und ähnliche Angaben.Bei KOMA-Script ist es möglich, vor der eigentlichen Titelseite eine weitere Seite zu setzen.

Als Schmutztitel kann dabei beliebiger Text – auch mehrere Absätze – gesetzt werden.Der Inhalt von Schmutztitel wird von KOMA-Script ohne zusätzliche Beeinflussung derFormatierung ausgegeben. Dadurch ist dessen Gestaltung völlig dem Anwender überlassen.Die Rückseitev3.25 des Schmutztitels ist das Frontispiz . Der Schmutztitel ergibt auch dann eineeigene Titelseite, wenn mit Titelköpfen gearbeitet wird. Die Ausgabe des mit \extratitledefinierten Schmutztitels erfolgt als Bestandteil der Titelei mit \maketitle.

Ein Beispiel für eine einfache Titelseite mit Schmutztitel und Haupttitel finden Sie in Ab-schnitt 3.7, Seite 70.

\titlehead{Kopf }\subject{Typisierung }\title{Titel }\subtitle{Untertitel }\author{Autor }\date{Datum }\publishers{Verlag }\and\thanks{Fußnote }

Für den Inhalt der Haupttitelseite stehen sieben Elemente zur Verfügung. Die Ausgabe derHaupttitelseite erfolgt als Bestandteil der Titelei mit \maketitle, während die hier aufgeführ-ten Anweisungen lediglich der Definition der entsprechenden Elemente dienen.Der Kopf des Haupttitels wird mit der Anweisung \titlehead definiert. Er wird über die

gesamte Textbreite in normalem Blocksatz am Anfang der Seite ausgegeben. Er kann vomAnwender frei gestaltet werden. Für die Ausgabe wird die Schrift des gleichnamigen Elementsverwendet (siehe Tabelle 3.4, Seite 73).Die Typisierung wird unmittelbar über dem Titel in der Schrift des gleichnamigen Ele-

ments ausgegeben.Der Titel wird in einer sehr großen Schrift gesetzt. Dabei finden Schriftumschaltungen für

das Element title Anwendung (siehe Tabelle 3.4, Seite 73).Der Untertitelv2.97c steht knapp unter dem Titel in der Schrift des gleichnamigen Elements

(siehe Tabelle 3.4, Seite 73).Unter dem Untertitel folgt der Autor . Es kann auch durchaus mehr als ein Autor in-

nerhalb des Arguments von \author angegeben werden. Die Autoren sind dann mit \and

Kapitel 10: Fähigkeiten von KOMA-Script-Klassen mit scrextend 302

voneinander zu trennen. Die Ausgabe erfolgt in der Schrift des gleichnamigen Elements (sieheTabelle 3.4, Seite 73).Unter dem Autor oder den Autoren folgt das Datum. Dabei ist das aktuelle Datum, \today,

voreingestellt. Es kann jedoch mit \date eine beliebige Angabe – auch ein leere – erreichtwerden. Die Ausgabe erfolgt in der Schrift des gleichnamigen Elements (siehe Tabelle 3.4,Seite 73).Als Letztes folgt schließlich der Verlag . Selbstverständlich kann diese Anweisung auch für

andere Angaben geringer Wichtigkeit verwendet werden. Notfalls kann durch Verwendungeiner \parbox über die gesamte Seitenbreite auch erreicht werden, dass diese Angabe nichtzentriert, sondern im Blocksatz gesetzt wird. Sie ist dann als Äquivalent zum Kopf zu be-trachten. Dabei ist jedoch zu beachten, dass sie oberhalb von eventuell vorhandenen Fußnotenausgegeben wird. Die Ausgabe erfolgt in der Schrift des gleichnamigen Elements (siehe Tabel-le 3.4, Seite 73).

Fußnoten werden auf der Titelseite nicht mit \footnote, sondern mit der Anweisung\thanks erzeugt. Sie dienen in der Regel für Anmerkungen bei den Autoren. Als Fußnotenzei-chen werden dabei Symbole statt Zahlen verwendet. Es ist zu beachten, dass \thanks innerhalbdes Arguments einer der übrigen Anweisungen, beispielsweise im Argument Autor der Anwei-sung \author, zu verwenden ist. Damit die Schrifteinstellung für das Element footnote beimPaket scrextend Beachtung findet muss allerdings nicht nur die Titelerweiterung aktiviert sein,es muss auch dafür gesorgt sein, dass die Fußnoten mit diesem Paket gesetzt werden (sieheEinleitung von Abschnitt 10.11, Seite 307). Trifft dies nicht zu, so wird die Schrift verwendet,die von der Klasse oder anderen für die Fußnoten verwendeten Paketen vorgegeben ist.

Fürv3.12 die Ausgabe der Titelelemente kann die Schrift mit Hilfe der Befehle \setkomafont und\addtokomafont (siehe Abschnitt 10.6, Seite 297) eingestellt werden. Die Voreinstellungen sindTabelle 3.3, Seite 72 zu entnehmen.

Bis auf den Kopf und eventuelle Fußnoten werden alle Ausgaben horizontal zentriert. DieFormatierungen der einzelnen Elemente sind noch einmal kurz zusammengefasst in Tabelle 3.4,Seite 73 zu finden.Ein Beispiel mit allen von KOMA-Script angebotenen Elementen für die Haupttitelseite

finden Sie in Abschnitt 3.7 auf Seite 72.Ein häufiges Missverständnis betrifft die Bedeutung der Haupttitelseite. Irrtümlich wird oft ange-

nommen, es handle sich dabei um den Buchumschlag oder Buchdeckel. Daher wird häufig erwartet,dass die Titelseite nicht den Randvorgaben für doppelseitige Satzspiegel gehorcht, sondern rechtsund links gleich große Ränder besitzt. Nimmt man jedoch einmal ein Buch zur Hand und klapptes auf, trifft man sehr schnell auf mindestens eine Titelseite unter dem Buchdeckel innerhalb dessogenannten Buchblocks. Genau diese Titelseiten werden mit \maketitle gesetzt.Wie beim Schmutztitel handelt es sich also auch bei der Haupttitelseite um eine Seite innerhalb

des Buchblocks, die deshalb dem Satzspiegel des gesamten Dokuments gehorcht. Überhaupt istein Buchdeckel, das Cover, etwas, das man in einem getrennten Dokument erstellt. Schließlich hater oft eine sehr individuelle Gestalt. Es spricht auch nichts dagegen, hierfür ein Grafik- oder DTP-

Kapitel 10: Fähigkeiten von KOMA-Script-Klassen mit scrextend 303

Programm zu Hilfe zu nehmen. Ein getrenntes Dokument sollte auch deshalb verwendet werden,weil es später auf ein anderes Druckmedium, etwa Karton, und möglicherweise mit einem anderenDrucker ausgegeben werden soll.Seit KOMA-Script 3.12 kann man die erste von \maketitle ausgegebene Titelseite alternativ

aber auch als Umschlagseite formatieren lassen. Dabei ändern sich nur die für diese Seite verwen-deten Ränder (siehe Option titlepage=firstiscover auf Seite 299).

\uppertitleback{Titelrückseitenkopf }\lowertitleback{Titelrückseitenfuß }

Im doppelseitigen Druck bleibt bei den Standardklassen die Rückseite des Blatts mit derTitelseite leer. Bei KOMA-Script lässt sich die Rückseite der Haupttitelseite hingegen fürweitere Angaben nutzen. Dabei wird zwischen genau zwei Elementen unterschieden, die derAnwender frei gestalten kann: dem Titelrückseitenkopf und dem Titelrückseitenfuß .Dabei kann der Kopf bis zum Fuß reichen und umgekehrt. Nimmt man diese Anleitung alsBeispiel, so wurde der Haftungsausschluss mit Hilfe von \uppertitleback gesetzt.

\dedication{Widmung }

KOMA-Script bietet eine eigene Widmungsseite. Diese Widmung wird zentriert und in derVoreinstellung mit etwas größerer Schrift gesetzt. Diev3.12 genaue Schrifteinstellung für das Ele-ment dedication, die Tabelle 3.3, Seite 72 zu entnehmen ist, kann über die Anweisungen\setkomafont und \addtokomafont (siehe Abschnitt 10.6, Seite 297) verändert werden.Die Rückseite ist grundsätzlich leer. Die Widmungsseite wird zusammen mit der restlichen

Titelei mit \maketitle ausgegeben und muss daher vor dieser Anweisung definiert sein.Ein Beispiel mit allen von KOMA-Script angebotenen Titelseiten finden Sie in Abschnitt 3.7

auf Seite 74.

10.8. Erkennung von rechten und linken Seiten

Es gilt sinngemäß, was in Abschnitt 3.11 geschrieben wurde. Falls Sie also Abschnitt 3.11bereits gelesen und verstanden haben, können Sie in Abschnitt 10.9 auf Seite 304 fortfahren.Bei doppelseitigen Dokumenten wird zwischen linken und rechten Seiten unterschieden. Da-

bei hat eine linke Seite immer eine gerade Nummer und eine rechte Seite immer eine ungeradeNummer.

Kapitel 10: Fähigkeiten von KOMA-Script-Klassen mit scrextend 304

\ifthispageodd{Dann-Teil }{Sonst-Teil }

Will man bei KOMA-Script feststellen, ob ein Text auf einer geraden oder einer ungeradenSeite ausgegeben wird, so verwendet man die Anweisung \ifthispageodd. Dabei wird dasArgument Dann-Teil nur dann ausgeführt, wenn man sich aktuell auf einer ungeraden Seitebefindet. Anderenfalls kommt das Argument Sonst-Teil zur Anwendung.

Beispiel: Angenommen, Sie wollen einfach nur ausgeben, ob ein Text auf einer geraden oderungeraden Seite ausgegeben wird. Sie könnten dann beispielsweise mit der EingabeDies ist eine Seite mit\ifthispageodd{un}{}gerader Seitenzahl.

die AusgabeDies ist eine Seite mit gerader Seitenzahl.

erhalten. Beachten Sie, dass in diesem Beispiel das Argument Sonst-Teil leergeblieben ist.

Da die Anweisung \ifthispageodd mit einem Mechanismus arbeitet, der einem Label undeiner Referenz darauf sehr ähnlich ist, werden nach jeder Textänderung mindestens zwei LATEX-Durchläufe benötigt. Erst dann ist die Entscheidung korrekt. Im ersten Durchlauf wird für dieEntscheidung eine Heuristik verwendet.Näheres zur Problematik der Erkennung von linken und rechten Seiten oder geraden und

ungeraden Seitennummern ist für Experten in Abschnitt 21.1, Seite 501 zu finden.

10.9. Wahl eines vordefinierten Seitenstils

Eine der allgemeinen Eigenschaften eines Dokuments ist der Seitenstil. Bei LATEX versteht manunter dem Seitenstil in erster Linie den Inhalt der Kopf- und Fußzeilen. Das Paket scrextenddefiniert selbst keine Seitenstile, nutzt aber Seitenstile des LATEX-Kerns.

\titlepagestyle

Auf einigen Seiten wird mit Hilfe von \thispagestyle automatisch ein anderer Seitenstilgewählt. Bei scrextend betrifft dies bisher nur die Titelseiten und auch dies nur, wenn mitextendedfeature=title gearbeitet wird (siehe Abschnitt 10.3, Seite 295). Welcher Seitenstilin diesem Fall für einen Titelkopf verwendet wird, ist im Makro \titlepagestyle festgelegt.In der Voreinstellung ist das der Seitenstil plain. Dieser Seitenstil wird bereits im LATEX-Kernvordefiniert und sollte daher immer verfügbar sein.

Kapitel 10: Fähigkeiten von KOMA-Script-Klassen mit scrextend 305

10.10. Vakatseiten

Es gilt sinngemäß, was in Abschnitt 3.13 geschrieben wurde. Falls Sie also Abschnitt 3.13bereits gelesen und verstanden haben, können Sie auf Seite 307 mit Abschnitt 10.11 fortfahren.Vakatseiten sind Seiten, die beim Satz eines Dokuments absichtlich leer bleiben. Bei LATEX

werden sie jedoch in der Voreinstellung mit dem aktuell gültigen Seitenstil gesetzt. KOMA-Script bietet hier diverse Erweiterungen.

Vakatseiten findet man hauptsächlich in Büchern. Da es bei Büchern üblich ist, dass Kapitelauf einer rechten Seite beginnen, muss in dem Fall, dass das vorherige Kapitel ebenfalls aufeiner rechten Seite endet, eine leere linke Seite eingefügt werden. Aus dieser Erklärung ergibtsich auch, dass Vakatseiten normalerweise nur im doppelseitigen Satz existieren.

cleardoublepage=Seitenstilcleardoublepage=current

Mit Hilfe dieser Option kann man den Seitenstil der Vakatseite bestimmen,die bei Bedarf von den Anweisungen \cleardoublepage, \cleardoubleoddpage oder\cleardoubleevenpage eingefügt wird, um bis zur gewünschten Seite zu umbrechen. AlsSeitenstil sind dabei alle bereits definierten Seitenstile (siehe Abschnitt 10.9 ab Seite 304und Kapitel 5 ab Seite 252) verwendbar. Daneben ist auch cleardoublepage=current mög-lich. Dieser Fall entspricht der Voreinstellung von KOMA-Script bis Version 2.98c und führtdazu, dass die Vakatseite mit dem Seitenstil erzeugt wird, der beim Einfügen gerade aktuell ist.Ab Version 3.00 werden in der Voreinstellung entsprechend der typografischen Gepflogenhei-ten Vakatseiten mit dem Seitenstil empty erzeugt, wenn man nicht Kompatibilität zu früherenKOMA-Script-Versionen eingestellt hat (siehe Option version, Abschnitt 10.2, Seite 294).Ein Beispiel für die Bestimmung des Seitenstils von Vakatseiten finden Sie in Abschnitt 3.13,Seite 92.

Kapitel 10: Fähigkeiten von KOMA-Script-Klassen mit scrextend 306

\clearpage\cleardoublepage\cleardoublepageusingstyle{Seitenstil }\cleardoubleemptypage\cleardoubleplainpage\cleardoublestandardpage\cleardoubleoddpage\cleardoubleoddpageusingstyle{Seitenstil }\cleardoubleoddemptypage\cleardoubleoddplainpage\cleardoubleoddstandardpage\cleardoubleevenpage\cleardoubleevenpageusingstyle{Seitenstil }\cleardoubleevenemptypage\cleardoubleevenplainpage\cleardoubleevenstandardpage

Im LATEX-Kern existiert die Anweisung \clearpage, die dafür sorgt, dass alle noch nichtausgegebenen Gleitumgebungen ausgegeben werden und anschließend eine neue Seite begon-nen wird. Außerdem existiert die Anweisung \cleardoublepage, die wie \clearpage arbeitet,durch die aber im doppelseitigen Layout (siehe Option twoside in Abschnitt 2.6, Seite 42) eineneue rechte Seite begonnen wird. Dazu wird gegebenenfalls eine linke Vakatseite im aktuellenSeitenstil ausgegeben.Bei KOMA-Script arbeitet \cleardoubleoddstandardpage genau in der soeben für die

Standardklassen beschriebenen Art und Weise. Die Anweisung \cleardoubleoddplainpageändert demgegenüber den Seitenstil der leeren linken Seite zusätzlich auf plain,um den Kolumnentitel zu unterdrücken. Analog dazu wird bei der Anweisung\cleardoubleoddemptypage der Seitenstil empty verwendet, um sowohl Kolumnentitel alsauch Seitenzahl auf der leeren linken Seite zu unterdrücken. Die Seite ist damit vollständigleer. Will man für die Vakatseite einen eigenen Seitenstil vorgeben, so ist dieser als Argu-ment von \cleardoubleoddpageusingstyle anzugeben. Dabei kann jeder bereits definierteSeitenstil (siehe auch Kapitel 5) verwendet werden.Manchmal möchte man nicht, dass Kapitel mit neuen rechten Seiten, sondern links auf

einer Doppelseite beginnen. Dies widerspricht zwar dem klassischen Buchdruck, kann jedochseine Berechtigung haben, wenn die Doppelseite am Kapitelanfang einen ganz speziellenInhalt hat. Bei KOMA-Script ist deshalb die Anweisung \cleardoubleevenstandardpageals Äquivalent zur Anweisung \cleardoubleoddstandardpage definiert, jedoch mitdem Unterschied, dass die nächste Seite eine linke Seite ist. Entsprechendes giltfür die Anweisungen \cleardoubleevenplainpage, \cleardoubleevenemptypage,\cleardoubleevenpageusingstyle.Die Arbeitsweise der Anweisungen \cleardoublestandardpage, \cleardoubleemptypage,

Kapitel 10: Fähigkeiten von KOMA-Script-Klassen mit scrextend 307

\cleardoubleplainpage und der ein Argument erwartenden Anweisung\cleardoublepageusingstyle entspricht beim Paket scrextend ebenso wie die Standard-Anweisung \cleardoublepage den entsprechenden, zuvor erklärten Anweisungen für denUmbruch zur nächsten ungeraden Seite.Im doppelseitigen Satz führt \cleardoubleoddpage immer zur nächsten linken Seite,

\cleardoubleevenpage zur nächsten rechten Seite. Eine gegebenenfalls einzufügenden Va-katseite wird mit dem über Option cleardoublepage festgelegten Seitenstil ausgegeben.Ein Beispiel für die Verwendung von \cleardoubleevenemptypage finden Sie in Ab-

schnitt 3.13, Seite 94.

10.11. Fußnoten

Es gilt sinngemäß, was in Abschnitt 3.14 geschrieben wurde. Falls Sie also Abschnitt 3.14bereits gelesen und verstanden haben, können Sie auf Seite 310 mit Seite 310 fortfahren.Die Fußnoten-Möglichkeiten der KOMA-Script-Klassen werden von scrextend ebenfalls be-

reitgestellt. In der Voreinstellung wird die Formatierung der Fußnoten jedoch der verwendetenKlasse überlassen. Dies ändert sich, sobald die Anweisung \deffootnote verwendet wird, dieauf Seite 309 näher erläutert wird.Die Einstellmöglichkeiten für die Trennlinie über den Fußnoten werden hingegen von

scrextend nicht bereitgestellt.

footnotes=Einstellung\multfootsep

Bei vielen Klassen werden Fußnoten im Text in der Voreinstellung mit kleinen, hochgestelltenZiffern markiert. Werden in der Voreinstellung footnotes=nomultiple zu einer Textstellemehrere Fußnoten hintereinander gesetzt, so entsteht der Eindruck, dass es sich nicht um zweieinzelne Fußnoten, sondern um eine einzige Fußnote mit hoher Nummer handele.Mit footnotes=multiple werden Fußnoten, die unmittelbar aufeinander folgen, stattdessen

mit einem Trennzeichen aneinander gereiht. Das in \multfootsep definierte Trennzeichen istals\newcommand*{\multfootsep}{,}

definiert. Es ist also mit einem Komma vorbelegt. Dieses kann umdefiniert werden.Der gesamte Mechanismus ist kompatibel zu footmisc, Version 5.3d bis 5.5b (siehe [Fai11])

implementiert. Er wirkt sich sowohl auf Fußnotenmarkierungen aus, die mit \footnote gesetztwurden, als auch auf solche, die direkt mit \footnotemark ausgegeben werden.

Es ist jederzeit möglich, mit \KOMAoptions oder \KOMAoption auf die Voreinstellungfootnotes=nomultiple zurückzuschalten. Bei Problemen mit anderen Paketen, die Einflussauf die Fußnoten nehmen, sollte die Option jedoch nicht verwendet und die Einstellung auchnicht innerhalb des Dokuments umgeschaltet werden.

Kapitel 10: Fähigkeiten von KOMA-Script-Klassen mit scrextend 308

Eine Zusammenfassung möglicher Werte für die Einstellung von footnotes bietet Tabel-le 3.11, Seite 95.

\footnote[Nummer ]{Text }\footnotemark[Nummer ]\footnotetext[Nummer ]{Text }\multiplefootnoteseparator

Fußnoten werden bei KOMA-Script genau wie bei den Standardklassen mit der Anwei-sung \footnote oder den paarweise zu verwendenden Anweisungen \footnotemark und\footnotetext erzeugt. Genau wie bei den Standardklassen ist es möglich, dass innerhalbeiner Fußnote ein Seitenumbruch erfolgt. Dies geschieht in der Regel dann, wenn die zugehöri-ge Fußnotenmarkierung so weit unten auf der Seite gesetzt wird, dass keine andere Wahl bleibt,als die Fußnote auf die nächste Seite zu umbrechen. Im Unterschied zu den Standardklassenbietet KOMA-Script aber zusätzlich die Möglichkeit, Fußnoten, die unmittelbar aufeinanderfolgen, automatisch zu erkennen und durch ein Trennzeichen auseinander zu rücken. Siehehierzu die zuvor dokumentierte Option footnotes.

Will man dieses Trennzeichen stattdessen von Hand setzen, so erhält man es durch Aufrufvon \multiplefootnoteseparator. Diese Anweisung sollten Anwender jedoch nicht umdefi-nieren, da sie neben dem Trennzeichen auch die Formatierung des Trennzeichen, beispielsweisedie Wahl der Schriftgröße und das Hochstellen, enthält. Das Trennzeichen selbst ist in der zu-vor erklärten Anweisung \multfootsep gespeichert.Beispiele und ergänzende Hinweise sind Abschnitt 3.14 ab Seite 96 zu entnehmen.

\footref{Referenz }

Manchmal hat man in einem Dokument eine Fußnote, zu der es im Text mehrere Verwei-se geben soll. Die ungünstige Lösung dafür wäre die Verwendung von \footnotemark unterAngabe der gewünschten Nummer. Ungünstig an dieser Lösung ist, dass man die Nummerkennen muss und sich diese jederzeit ändern kann. KOMA-Script bietet deshalb die Mög-lichkeit, den \label-Mechanismus auch für Verweise auf Fußnoten zu verwenden. Man setztdabei in der entsprechenden Fußnote eine \label-Anweisung und kann dann mit \footrefalle weiteren Fußnotenmarken für diese Fußnote im Text setzen. Da die Fußnotenmarken mitHilfe des \label-Mechanismus gesetzt werden, werden nach Änderungen, die sich auf die Fuß-notennummerierung auswirken, gegebenenfalls zwei LATEX-Durchläufe benötigt, bis die mit\footref gesetzten Marken korrekt sind.Ein Beispiel zur Verwendung von \footref finden Sie in Abschnitt 3.14 auf Seite 97.Es sei darauf hingewiesen, dass die Anweisung genau wie \ref oder \pageref zerbrechlich

ist und deshalb in beweglichen Argumenten wie Überschriften \protect davor gestellt werdensollte.

Kapitel 10: Fähigkeiten von KOMA-Script-Klassen mit scrextend 309

\deffootnote[Markenbreite ]{Einzug }{Absatzeinzug }{Markendefinition }\deffootnotemark{Markendefinition }\thefootnotemark

KOMA-Script setzt Fußnoten etwas anders als die Standardklassen. Die Fußnotenmarkierungim Text, also die Referenzierung der Fußnote, erfolgt wie bei den Standardklassen durch kleinehochgestellte Zahlen. Genauso werden die Markierungen auch in der Fußnote selbst wieder-gegeben. Sie werden dabei rechtsbündig in einem Feld der Breite Markenbreite gesetzt. Dieerste Zeile der Fußnote schließt direkt an das Feld der Markierung an.Alle weiteren Zeilen werden um den Betrag von Einzug eingezogen ausgegeben. Wird der op-

tionale Parameter Markenbreite nicht angegeben, dann entspricht er dem Wert von Einzug .Sollte die Fußnote aus mehreren Absätzen bestehen, dann wird die erste Zeile eines Absatzeszusätzlich mit dem Einzug der Größe Absatzeinzug versehen.

Abbildung 3.1 auf Seite 98 veranschaulicht die verschiedenen Parameter. Die Voreinstellungin den KOMA-Script-Klassen entspricht folgender Definition:\deffootnote[1em]{1.5em}{1em}{%\textsuperscript{\thefootnotemark}}

Dabei wird mit Hilfe von \textsuperscript sowohl die Hochstellung als auch die Wahl einerkleineren Schrift erreicht. Die Anweisung \thefootnotemark liefert die aktuelle Fußnotenmar-ke ohne jegliche Formatierung. Das Paket scrextend überlässt hingegen in der Voreinstellungdas Setzen der Fußnoten der verwendeten Klasse. Das Laden des Pakets allein sollte dahernoch zu keinerlei Änderungen bei der Formatierung der Fußnoten oder der Fußnotenmarkenführen. Zur Übernahme der Voreinstellungen der KOMA-Script-Klassen muss man vielmehrobige Einstellung selbst vornehmen. Dazu können obige Code-Zeilen beispielsweise unmittelbarnach dem Laden von scrextend eingefügt werden.Auf die Fußnote einschließlich der Markierung findet außerdem die für das Element footnote

eingestellte Schriftart Anwendung. Die Schriftart der Markierung kann jedoch mit Hilfe derAnweisungen \setkomafont und \addtokomafont (siehe Abschnitt 10.6, Seite 297) für dasElement footnotelabel davon abweichend eingestellt werden. Siehe hierzu auch Tabelle 3.2,Seite 63. Voreingestellt ist jeweils keine Umschaltung der Schrift. Die Elemente finden beiscrextend jedoch nur dann Anwendung, wenn die Fußnoten mit diesem Paket gesetzt werden,also \deffootnote verwendet wurde. Bitte missbrauchen Sie das Element nicht für andereZwecke, beispielsweise zur Verwendung von Flattersatz in den Fußnoten (siehe dazu auch\raggedfootnote, Seite 310).Die Fußnotenmarkierung im Text wird getrennt von der Markierung vor der Fußnote defi-

niert. Dies geschieht mit der Anweisung \deffootnotemark. Voreingestellt ist hier:\deffootnotemark{\textsuperscript{\thefootnotemark}}

Dabei findet die Schriftart für das Element footnotereference Anwendung (siehe Tabel-le 3.2, Seite 63). Die Markierungen im Text und in der Fußnote selbst sind also identisch.Die Schriftart kann mit den Anweisungen \setkomafont und \addtokomafont (siehe Ab-

Kapitel 10: Fähigkeiten von KOMA-Script-Klassen mit scrextend 310

schnitt 10.6, Seite 297) jedoch geändert werden, sobald die Anweisung \deffootnotemarkverwendet wird.Beispiele finden Sie in Abschnitt 3.14, Seite 98.

\raggedfootnote

Inv3.23 der Voreinstellung werden die Fußnoten bei KOMA-Script genau wie bei den Standardklas-sen im Blocksatz gesetzt. Es ist aber auch möglich die Formatierung abweichend vom restlichenDokument zu ändern. Dazu ist \raggedfootnote umzudefinieren. Gültige Definitionen wä-ren \raggedright, \raggedleft, \centering, \relax oder entsprechend der Voreinstellungeine leere Definition. Auch die Ausrichtungsbefehle des Pakets ragged2e sind zulässig (siehe[Sch09]). Ein passendes Beispiel ist in Abschnitt 3.14, Seite 99 zu finden.

10.12. Schlauer Spruch

Es gilt sinngemäß, was in Abschnitt 3.17 geschrieben wurde. Allerdings werden von scrextenddie Anweisungen \setchapterpreamble und \setpartpreamble nicht definiert. Ob die ver-wendete Klasse eine entsprechende Anweisung bietet, ist der Anleitung zur jeweiligen Klassezu entnehmen. Falls Sie also Abschnitt 3.17 bereits gelesen und verstanden haben, können Sienach dem Ende dieses Abschnitts auf Seite 311 mit Abschnitt 10.13 fortfahren.Ein häufiger anzutreffendes Element ist eine Redewendung oder Zitat, das rechtsbündig

unter oder über einer Überschrift gesetzt wird. Dabei werden der Spruch selbst und der Quel-lennachweis in der Regel speziell formatiert.

\dictum[Urheber ]{Spruch }\dictumwidth\dictumauthorformat{Urheber }\dictumrule\raggeddictum\raggeddictumtext\raggeddictumauthor

Ein solcher Spruch kann mit Hilfe der Anweisung \dictum gesetzt werden. Der Spruch wirdhierzu zusammen mit einem optional anzugebenden Urheber in einer \parbox (siehe [Tea05b])der Breite \dictumwidth gesetzt. Dabei ist \dictumwidth keine Länge, die mit \setlengthgesetzt wird. Es handelt sich um ein Makro, das mit \renewcommand umdefiniert werden kann.Vordefiniert ist 0.3333\textwidth, also ein Drittel der jeweiligen Textbreite. Die Box selbstwird mit der Anweisung \raggeddictum ausgerichtet. Voreingestellt ist dabei \raggedleft,also rechtsbündig. \raggeddictum kann mit \renewcommand umdefiniert werden.Innerhalb der Box wird der Spruch mit \raggeddictumtext angeordnet. Voreingestellt ist

hier \raggedright, also linksbündig. Eine Umdefinierung ist auch hier mit \renewcommandmöglich. Die Ausgabe erfolgt in der für Element dictum eingestellten Schriftart, die mit den

Kapitel 10: Fähigkeiten von KOMA-Script-Klassen mit scrextend 311

Anweisungen \setkomafont und \addtokomafont (siehe Abschnitt 10.6, Seite 297) geändertwerden kann. Die Voreinstellung entnehmen Sie bitte Tabelle 3.16, Seite 124.Ist ein Urheber angegeben, so wird dieser mit einer Linie über die gesamte Breite der

\parbox vom Spruch abgetrennt. Diesev3.10 Linie ist in \dictumrule definiert. Es handelt sichdabei um ein vertikales Objekt, das mit\newcommand*{\dictumrule}{\vskip-1ex\hrulefill\par}

vordefiniert ist.Mit \raggeddictumauthor wird die Ausrichtung für die Linie und den Urheber vorge-

nommen. Voreingestellt ist \raggedleft. Auch diese Anweisung kann mit \renewcommandumdefiniert werden. Die Ausgabe erfolgt in der Form, die mit \dictumauthorformat festge-legt ist. Das Makro erwartet schlicht den Urheber als Argument. In der Voreinstellung ist\dictumauthorformat mit\newcommand*{\dictumauthorformat}[1]{(#1)}

definiert. Der Urheber wird also in runde Klammern gesetzt. Für das Element dictumauthorkann dabei eine Abweichung der Schrift von der des Elementes dictum definiert werden. DieVoreinstellung entnehmen Sie bitte Tabelle 3.16. Eine Änderung ist mit Hilfe der Anweisungen\setkomafont und \addtokomafont (siehe Abschnitt 10.6, Seite 297) möglich.

10.13. Listen

Es gilt sinngemäß, was in Abschnitt 3.18 geschrieben wurde. Falls Sie also Abschnitt 3.18bereits gelesen und verstanden haben, können Sie auf Seite 312 mit Abschnitt 10.14 fort-fahren. Allerdings werden vom Paket scrextend nur die Umgebungen labeling, addmarginund addmargin* definiert. Alle anderen Listenumgebungen bleiben der Verantwortung derverwendeten Klasse überlassen.Da Listen zu den Standardelementen von LATEX gehören, wurde in diesem Abschnitt auf

Beispiele verzichtet. Sie finden solche in Abschnitt 3.18 ab Seite 126 oder in jeder LATEX-Einführung.

\begin{labeling}[Trennzeichen ]{längstes Schlüsselwort }\item[Stichwort ] . . ....

\end{labeling}

Eine andere Form der in vielen Klassen als description-Umgebung vorhandenen Stichwortlis-te ist nur bei den KOMA-Script-Klassen und scrextend vorhanden: die labeling-Umgebung.Im Unterschied zu description kann bei labeling ein Muster angegeben werden, dessenLänge die Einrücktiefe bei allen Stichpunkten ergibt. Darüber hinaus kann zwischen Stich-punkt und Beschreibungstext ein optionales Trennzeichen festgelegt werden. Die Schriftartv3.02 ,die für die Hervorhebung des Schlüsselworts verwendet wird, kann mit Hilfe der Anweisun-gen \setkomafont und \addtokomafont (siehe Abschnitt 10.6, Seite 297) für das Element

Kapitel 10: Fähigkeiten von KOMA-Script-Klassen mit scrextend 312

labelinglabel (siehe Tabelle 3.2, Seite 63) geändert werden. Für die davon abweichendeSchriftart der Trennzeichen ist das Element labelingseparator (siehe ebenfalls Tabelle 3.2,Seite 63) zuständig.Gedacht war die Umgebung ursprünglich für Strukturen wie »Voraussetzung, Aussage, Be-

weis« oder »Gegeben, Gesucht, Lösung«, wie man sie in Vorlesungsskripten häufiger findet.Inzwischen findet die Umgebung aber ganz unterschiedliche Anwendungen. So wurde die Um-gebung für Beispiele in dieser Anleitung mit Hilfe der labeling-Umgebung definiert.

\begin{addmargin}[linker Einzug ]{Einzug } . . . \end{addmargin}\begin{addmargin*}[innerer Einzug ]{Einzug } . . . \end{addmargin*}Wie bei den in den Standardklassen und den KOMA-Script-Klassen vorhandenen Umgebun-gen quote und quotation handelt es sich bei addmargin um eine Umgebung, die den Randverändert. Im Unterschied zu den beiden erstgenannten Umgebungen kann der Anwender je-doch bei addmargin wählen, um welchen Wert der Rand verändert werden soll. Des Weiterenverändert die Umgebung den Absatzeinzug und den Absatzabstand nicht. Es wird auch keinzusätzlicher vertikaler Abstand vor und nach der Umgebung eingefügt.

Ist nur das obligatorische Argument Einzug angegeben, so wird der Inhalt der Umgebungrechts und links um diesen Wert eingezogen. Ist das optionale Argument linker Einzughingegen angegeben, so wird links abweichend von Einzug der Wert linker Einzug zumRand addiert.Die Sternvariante addmargin* unterscheidet sich nur im doppelseitigen Satz von der Vari-

ante ohne Stern, wobei der Unterschied auch nur dann auftritt, wenn das optionale Argumentinnerer Einzug verwendet wird. Dabei wird dann der Wert von innerer Einzug zum in-neren Randanteil der Seite addiert. Dies ist bei rechten Seiten der linke Rand der Seite, beilinken Seiten jedoch der rechte Rand der Seite. Einzug gilt dann für den jeweils anderen Rand.Bei beiden Varianten der Umgebung sind für alle Parameter auch negative Werte erlaubt.

Die Umgebung ragt dann entsprechend in den Rand hinein.Ob eine Seite eine linke oder eine rechte Seite ist, kann übrigens beim ersten LATEX-

Durchlauf nicht zuverlässig festgestellt werden. Siehe dazu die Erklärungen zu den Anweisun-gen \ifthispageodd (Abschnitt 10.8, Seite 304) und \ifthispagewasodd (Abschnitt 21.1,Seite 501).Im Zusammenspiel von Listen mit Absätzen ergeben sich für Laien häufiger Fragen. Daher

widmet sich die weiterführende Erklärung zu Option parskip in Abschnitt 21.1, Seite 501 auchdiesem Thema. Ebenfalls im Expertenteil in Abschnitt 21.1, Seite 501 wird die Problematik vonmehrseitigen addmargin*-Umgebungen behandelt.

10.14. Randnotizen

Es gilt sinngemäß, was in Abschnitt 3.21 geschrieben wurde. Falls Sie also Abschnitt 3.21bereits gelesen und verstanden haben, können Sie auf Seite 314 mit Kapitel 11 fortfahren.

Kapitel 10: Fähigkeiten von KOMA-Script-Klassen mit scrextend 313

Außer dem eigentlichen Textbereich, der normalerweise den Satzspiegel ausfüllt, existiertin Dokumenten noch die sogenannte Marginalienspalte. In dieser können Randnotizen gesetztwerden. In diesem Dokument wird davon ebenfalls Gebrauch gemacht.

\marginpar[Randnotiz links ]{Randnotiz }\marginline{Randnotiz }

Für Randnotizen ist bei LATEX normalerweise Anweisung \marginpar vorgesehen. DieRandnotiz wird dabei im äußeren Rand gesetzt. Bei einseitigen Dokumenten wird der rechteRand verwendet. Zwar kann bei \marginpar optional eine abweichende Randnotiz angegebenwerden, falls die Randnotiz im linken Rand landet, jedoch werden Randnotizen immer imBlocksatz ausgegeben. Die Erfahrung zeigt, dass bei Randnotizen statt des Blocksatzes oftje nach Rand linksbündiger oder rechtsbündiger Flattersatz zu bevorzugen ist. KOMA-Scriptbietet hierfür die Anweisung \marginline.Ein ausführliches Beispiel hierzu finden Sie in Abschnitt 3.21, Seite 157.Für Experten sind in Abschnitt 21.1, Seite 501 Probleme bei der Verwendung von

\marginpar dokumentiert. Diese gelten ebenso für \marginline. Darüber hinaus wird inKapitel 19 ein Paket vorgestellt, mit dem sich auch Notizspalten mit eigenem Seitenumbruchrealisieren lassen. Allerdings ist das Paket scrlayer-notecolumn eher als eine Konzeptstudie undweniger als fertiges Paket zu verstehen.

Kapitel 11: Unterstützung für die Anwaltspraxis durch scrjura 314

Unterstützung für die Anwaltspraxis durch scrjura

Will man einen Vertrag, die Satzung einer Gesellschaft oder eines Vereins, ein Gesetz odergleich einen Gesetzeskommentar schreiben, so übernimmt das Paket scrjura den typografischenTeil der Unterstützung für diese Tätigkeit. Obwohl scrjura als allgemeine Hilfe für anwaltlicheSchriftstücke angedacht ist, hat sich gezeigt, dass der Vertrag dabei ein ganz zentrales Ele-ment ist. Besonderes Augenmerk gilt hier dem Paragraphen mit Nummer, Titel, nummeriertenAbsätzen – falls es mehrere davon in einem Paragraphen gibt –, bedarfsweise nummeriertenSätzen, Einträgen in das Inhaltsverzeichnis und Querverweisen in den deutschen Gepflogen-heiten entsprechenden Formen.Das Paket ist in Zusammenarbeit mit Rechtsanwalt Dr.Alexander Willand, Karlsruhe, ent-

standen. Viele der Möglichkeiten gehen außerdem auf konstruktive Nachfragen von Prof. HeinerRichter von der Hochschule Stalsund zurück.Es ist zu beachten, dass das Paket mit hyperref zusammenarbeitet. Es ist dabei jedoch

wichtig, dass hyperref wie üblich nach scrjura geladen wird!

11.1. Frühe oder späte Optionenwahl

Es gilt sinngemäß, was in Abschnitt 2.4 geschrieben wurde. Falls Sie also Abschnitt 2.4 bereitsgelesen und verstanden haben, können Sie auf Seite 315 mit Abschnitt 11.2 fortfahren.

\documentclass[Optionenliste ]{KOMA-Script-Klasse }\usepackage[Optionenliste ]{Paket-Liste }

Bei LATEX ist vorgesehen, dass Anwender Klassenoptionen in Form einer durch Komma ge-trennten Liste einfacher Schlüsselwörter als optionales Argument von \documentclass ange-ben. Außer an die Klasse werden diese Optionen auch an alle Pakete weitergereicht, die dieseOptionen verstehen. Ebenso ist vorgesehen, dass Anwender Paketoptionen in Form einer durchKomma getrennten Liste einfacher Schlüsselwörter als optionales Argument von \usepackageangeben. KOMA-Script erweitertv3.00 den Mechanismus der Optionen für einige Pakete um wei-tere Möglichkeiten. So haben die meisten Optionen bei KOMA-Script zusätzlich einen Wert.Eine Option hat also nicht unbedingt nur die Form Option , sondern kann auch die FormOption =Wert haben. Bis auf diesen Unterschied arbeiten \documentclass und \usepackagebei KOMA-Script wie in [Tea05b] oder jeder LATEX-Einführung, beispielsweise [DGS+12], be-schrieben.Gegenüber der nachfolgend vorgestellten Schnittstelle zu Einstellungen von Optionen hat

\documentclass einen Nachteil, der unbedingt zu beachten ist: Anweisungen, Längen, Zählerund ähnliches können darin leicht zerbrechen. So führt die Verwendung einer LATEX-Längeim Wert einer Option bei dieser Anweisung bei vielen Nicht-KOMA-Script-Klassen zu einerFehlermeldung, noch bevor der Wert an ein KOMA-Script-Paket übergeben wird, es also

Kapitel 11: Unterstützung für die Anwaltspraxis durch scrjura 315

die Kontrolle darüber übernehmen könnte. Wertzuweisungen mit LATEX-Längen oder LATEX-Zählern sollten daher nie per \documentclass, sondern mit den nachfolgend dokumentiertenAnweisungen \KOMAoptions oder \KOMAoption vorgenommen werden.

\KOMAoptions{Optionenliste }\KOMAoption{Option }{Werteliste }

KOMA-Scriptv3.00 bietet bei den meisten Paketoptionen auch die Möglichkeit, den Wert der Op-tionen noch nach dem Laden des Pakets zu ändern. Mit der Anweisung \KOMAoptions kannman wie bei \documentclass oder \usepackage die Werte einer Reihe von Optionen ändern.Jede Option der Optionenliste hat dabei die Form Option =Wert .Einige Optionen besitzen auch einen Säumniswert (engl. default value). Versäumt man die

Angabe eines Wertes, verwendet man die Option also einfach in der Form Option , so wirdautomatisch dieser Säumniswert angenommen.Manche Optionen können gleichzeitig mehrere Werte besitzen. Für solche Optionen besteht

die Möglichkeit, mit \KOMAoption der einen Option nacheinander eine Reihe von Wertenzuzuweisen. Die einzelnen Werte sind dabei in der Werteliste durch Komma voneinandergetrennt.Soll ein Wert ein Gleichheitszeichen oder ein Komma enthalten, so ist der Wert in geschweif-

te Klammern zu setzen.KOMA-Script bedient sich für die Realisierung dieser Möglichkeit der Anweisungen

\FamilyOptions und \FamilyOption mit der Familie »KOMA«. Siehe dazu Teil II, Abschnitt 12.2,ab Seite 345.Mit \KOMAoptions oder \KOMAoption gesetzte Optionen erreichen sowohl die KOMA-Script-

Klasse als auch alle bereits geladenen KOMA-Script-Pakete, die diese Optionen kennen. Isteine Option oder ein Wert insgesamt unbekannt, so wird die Option einschließlich des Wertesvon scrbase als fehlerhaft gemeldet.

11.2. Textauszeichnungen

Es gilt sinngemäß, was in Abschnitt 3.6 geschrieben wurde. Falls Sie also Abschnitt 3.6 bereitsgelesen und verstanden haben, können Sie auf Seite 339 mit Kapitel 12 fortfahren.LATEX verfügt über eine ganze Reihe von Anweisungen zur Textauszeichnung. Neben der

Wahl der Schriftart gehören dazu auch Befehle zur Wahl einer Textgröße oder der Textaus-richtung. Näheres zu den normalerweise definierten Möglichkeiten ist [DGS+12], [Tea05b] und[Tea05a] zu entnehmen.

Kapitel 11: Unterstützung für die Anwaltspraxis durch scrjura 316

\setkomafont{Element }{Befehle }\addtokomafont{Element }{Befehle }\usekomafont{Element }

Mit Hilfe der Anweisungen \setkomafont und \addtokomafont ist es möglich, die Befehlefestzulegen, mit denen die Schrift eines bestimmten Element s umgeschaltet wird. Theore-tisch könnten als Befehle alle möglichen Anweisungen einschließlich Textausgaben verwen-det werden. Sie sollten sich jedoch unbedingt auf solche Anweisungen beschränken, mit de-nen wirklich nur Schriftattribute umgeschaltet werden. In der Regel werden dies Befehle wie\rmfamily, \sffamily, \ttfamily, \upshape, \itshape, \slshape, \scshape, \mdseries,\bfseries, \normalfont oder einer der Befehle \Huge, \huge, \LARGE, \Large, \large,\normalsize, \small, \footnotesize, \scriptsize und \tiny sein. Die Erklärung zu diesenBefehlen entnehmen Sie bitte [DGS+12], [Tea05b] oder [Tea05a]. Auch Farbumschaltungen wie\normalcolor sind möglich (siehe [Car17] und [Ker07]). Die Verwendung anderer Anweisun-gen, inbesondere solcher, die Umdefinierungen vornehmen oder zu Ausgaben führen, ist nichtvorgesehen. Seltsames Verhalten ist in diesen Fällen möglich und stellt keinen Fehler dar.

Mit \setkomafont wird die Schriftumschaltung eines Elements mit einer völlig neuen Defi-nition versehen. Demgegenüber wird mit \addtokomafont die existierende Definition lediglicherweitert. Es wird empfohlen, beide Anweisungen nicht innerhalb des Dokuments, sondern nurin der Dokumentpräambel zu verwenden. Beispiele für die Verwendung entnehmen Sie bitteden Abschnitten zu den jeweiligen Elementen. Namen und Bedeutung der einzelnen Elementeund deren Voreinstellungen sind in Tabelle 11.1 aufgelistet.Mit der Anweisung \usekomafont kann die aktuelle Schriftart auf diejenige umgeschaltet

werden, die für das angegebene Element definiert ist.

\usefontofkomafont{Element }\useencodingofkomafont{Element }\usesizeofkomafont{Element }\usefamilyofkomafont{Element }\useseriesofkomafont{Element }\useshapeofkomafont{Element }

Manchmalv3.12 werden in der Schrifteinstellung eines Elements auch Dinge vorgenommen, die mitder Schrift eigentlich gar nichts zu tun haben, obwohl dies ausdrücklich nicht empfohlen wird.Soll dann nur die Schrifteinstellung, aber keine dieser zusätzlichen Einstellungen ausgeführtwerden, so kann statt \usekomafont die Anweisung \usefontofkomafont verwendet werden.Diese Anweisung übernimmt nur die Schriftgröße und den Grundlinienabstand, die Codierung(engl. encoding), die Familie (engl. family), die Strichstärke oder Ausprägung (engl. font series)und die Form oder Ausrichtung (engl. font shape).Mit den übrigen Anweisungen können auch einzelne Schriftattribute übernommen werden.

Dabei übernimmt \usesizeofkomafont sowohl die Schriftgröße als auch den Grundlinienab-stand.

Kapitel 11: Unterstützung für die Anwaltspraxis durch scrjura 317

Tabelle 11.1.: Elemente, deren Schrift bei scrjura mit \setkomafont und \addtokomafont verändertwerden kann, einschließlich der jeweiligen Voreinstellung

ClauseAlias für Umgebungsname .Clause innerhalb einer Vertragsumgebung, beispielsweisecontract.Clause innerhalb von contract; ist kein entsprechendes Element defi-niert, so wird auf contract.Clause zurückgegriffen

contract.ClauseÜberschrift eines Paragraphen innerhalb von contract (siehe Abschnitt 11.4, Sei-te 320);Voreinstellung: \sffamily\bfseries\large

Name .ClauseÜberschrift eines Paragraphen innerhalb einer Umgebung Name , die mit\DeclareNewJuraEnvironment definiert wurde, soweit bei der Definition mitClauseFont eine Einstellung vorgenommen wurde oder das Element nachträglichdefiniert wurde (siehe Abschnitt 11.6, Seite 329);Voreinstellung: keine

parnumberAbsatznummern innerhalb einer Vertragsumgebung (siehe Abschnitt 11.4.2, Sei-te 323);Voreinstellung: leer

sentencenumberv3.26 Satznummer der Anweisung \Sentence (siehe Abschnitt 11.4.3, Seite 325);

Voreinstellung: leer

Vor dem Missbrauch der Schrifteinstellungen wird dennoch dringend gewarnt (siehe Ab-schnitt 21.5, Seite 505)!

11.3. Verzeichnisse

Die Überschriften juristischer Paragraphen können auf Wunsch auch automatischins Inhaltsverzeichnis eingetragen werden. Dazuv3.27 definiert das Paket mit Hilfe von\DeclareTOCStyleEntry (siehe Abschnitt 15.3 ab Seite 401) die Verzeichnisebene cpar.

juratotoc=Ein-Aus-Wertjuratotoc=Ebenennummer

Im Inhaltsverzeichnis angezeigt werden Paragraphen nur, wenn ihre Ebenennummer kleineroder gleich dem Zähler tocdepth ist (siehe Abschnitt 3.9, Seite 81). Voreingestellt ist fürEbenennummer der Wert \maxdimen, der auch verwendet wird, wenn die Option über einen

Kapitel 11: Unterstützung für die Anwaltspraxis durch scrjura 318

Ein-Aus-Wert (siehe Tabelle 2.5, Seite 42) ausgeschaltet wird. Da der Zähler tocdepth üb-licherweise einen kleinen, einstelligen Wert besitzt, werden die Paragraphen-Einträge im In-haltsverzeichnis daher normalerweise nicht angezeigt.Wird die Option hingegen über einen Ein-Aus-Wert eingeschaltet, so wird als

Ebenennummer 2 voreingestellt. Damit werden sie in Inhaltsverzeichnissen bei allen KOMA-Script-Klassen auf derselben Ebene wie \subsection eingeordnet. In der Voreinstellung vontocdepth werden sie dann auch bei allen KOMA-Script-Klassen im Inhaltsverzeichnis ange-zeigt.Internv3.27 führt die Verwendung der Option zu einem erneuten Aufruf von

\DeclareTOCStyleEntry mit dem Stil default und entsprechender Einstellung fürlevel in der Optionenlist .

juratocindent=Einzugjuratocnumberwidth=Nummernbreite

Mit diesen beiden Optionen kann für die Einträge der Paragraphen ins Inhaltsverzeichnissowohl der Einzug als auch die Breite, die für Nummern reserviert wird, festgelegt werden.Voreingestellt sind dieselben Werte wie für \subsection-Einträge bei scrartcl.Internv3.27 führt die Verwendung der Optionen zu erneuten Aufrufen von

\DeclareTOCStyleEntry mit dem Stil default und indent=Einzug beziehungsweisenumwidth=Nummernbreite in der Optionenlist .

11.4. Umgebung für Verträge

Die wesentlichen Mechanismen von scrjura stehen ausschließlich innerhalb von Verträgen derzugehörigen Umgebung zur Verfügung.

\begin{contract} . . . \end{contract}Dies ist die erste und bisher einzige Umgebung für Juristen, die scrjura bereitstellt. Durchihre Verwendung wird die automatische Absatznummerierung aktiviert und die Anweisungen\Clause und \SubClause mit einer konkreten Form versehen, die später näher dokumentiertwird.

Die Umgebung contract darf nicht in sich selbst geschachtelt werden. Innerhalb eines Do-kuments dürfen jedoch mehrere dieser Umgebungen verwendet werden. Dabei werden die Pa-ragraphen innerhalb dieser Umgebungen so behandelt, als stünden sie innerhalb einer einzigenUmgebung. Durch das Beenden der Umgebung wird diese also quasi unterbrochen und durchden Beginn einer neuen Umgebung wird sozusagen die alte Umgebung fortgesetzt. Dabei sindallerdings keine Unterbrechungen innerhalb eines Paragraphen möglich.

Kapitel 11: Unterstützung für die Anwaltspraxis durch scrjura 319

contract

Bei Angabe dieser Option beim Laden des Pakets beispielsweise mit \usepackage oder alsglobale Option bei \documentclass wird das gesamte Dokument zu einem Vertrag. Das Doku-ment verhält sich dann also genauso, als würde es genau eine contract-Umgebung enthalten.Es wird darauf hingewiesen, dass Option contract weder mit \KOMAoption noch

\KOMAoptions gesetzt werden kann! Damit ist es auch nicht möglich die Option wieder abzu-schalten. Verwenden Sie in einem solchen Fall stattdessen direkt eine contract-Umgebung.

11.4.1. Juristische Paragraphen

Paragraphen1 im juristischen Sinn sind bei scrjura nur innerhalb von Verträgen, also inner-halb der Umgebung contract oder weiteren mit \DeclareNewJuraEnvironment (siehe Ab-schnitt 11.6, Seite 328) erstellten Umgebungen, definiert.

\Clause{Einstellungen }\SubClause{Einstellungen }

Dies sind die wichtigsten Anweisungen innerhalb eines Vertrags. Ohne zusätzlicheEinstellungen erzeugt \Clause eine Paragraphenüberschrift, die nur aus dem Paragraphen-zeichen, gefolgt von einer fortlaufenden Nummer besteht. Dagegen erzeugt \SubClause eineParagraphenüberschrift, bei der an die zuletzt mit \Clause gesetzte Nummer noch ein fortlau-fender Kleinbuchstabe angehängt wird. Gedacht ist \SubClause vor allem für den Fall, dassbei der Novellierung von Gesetzen oder Verträgen nicht nur Paragraphen umformuliert odergestrichen werden, sondern zwischen existierenden Paragraphen neue eingefügt werden, ohnedass eine komplett neue Nummerierung erfolgt.Als Einstellungen kann bei beiden Anweisungen eine durch Komma separierte Liste von

Eigenschaften angegeben werden. Eine Übersicht über die möglichen Eigenschaften bietet Ta-belle 11.2. Auf die wichtigsten soll noch näher eingegangen werden.In der Voreinstellung wird vor der Überschrift ein Abstand von zwei Zeilen und danach ein

Abstand von einer Zeile eingefügt. Über die Eigenschaften preskip und postskip kann dieserAbstand verändert werden. Die neue Einstellung gilt dann aber nicht nur für den aktuellenParagraphen, sondern ab dem aktuellen Paragraphen bis zum Ende der aktuellen Umgebung.Es ist auch möglich, die entsprechende Einstellung bereits vorab mit Hilfe von

\setkeys{contract}{preskip=Abstand ,postskip=Abstand }

unabhängig von einem konkreten Paragraphen und auch außerhalb einer contract-Umgebungvorzunehmen. Auch das Setzen innerhalb der Präambel nach dem Laden von scrjura ist so

1Obwohl der korrekte Begriff für juristische Paragraphen im Englischen »section« wäre, sind die Bezeichnun-gen in scrjura von »clause« abgeleitet. Dadurch sollen Verwechslungen sowohl mit \section als auch mit\paragraph vermieden werden.

Kapitel 11: Unterstützung für die Anwaltspraxis durch scrjura 320

Tabelle 11.2.: Mögliche Eigenschaften für die optionalen Argumente der Anweisungen \Clause und\SubClause

dummyDie Überschrift wird nicht gesetzt, aber gezählt.

head=KolumnentitelSind Kolumnentitel aktiviert, wird unabhängig von einem Titel für den Paragraphendieser Kolumnentitel verwendet.

noheadEs wird kein neuer Kolumnentitel gesetzt.

notocentryEs wird kein Eintrag ins Inhaltsverzeichnis vorgenommen.

number=NummerDie Nummer für den Paragraphen wird direkt angegeben.

preskip=AbstandNeuer Abstand vor den Überschriften der Paragraphen.

postskip=AbstandNeuer Abstand nach den Überschrift der Paragraphen.

title=ÜberschriftDer Paragraph wird zusätzlich zur Nummer mit einem Titel versehen. Dies ist gleich-zeitig die Grundeinstellung für die Einträge in den Kolumnentitel und das Inhalts-verzeichnis.

tocentry=InhaltsverzeichniseintragUnabhängig von einem Titel für den Paragraphen wird dieser Eintrag ins Inhalts-verzeichnis vorgenommen.

möglich. Dagegen ist es nicht möglich, diese beiden Optionen bereits beim Laden des Paketsanzugeben oder sie per \KOMAoptions oder \KOMAoption zu setzen.In der Voreinstellung wird für die Überschrift des Paragraphen als Schrift

\sffamily\bfseries\large verwendet. Über das Element contract.Clause kann die-se Schrift jederzeit mit Hilfe der Anweisungen \setkomafont und \addtokomafont (sieheAbschnitt 11.2, Seite 316) geändert werden. Innerhalb der contract-Umgebung kann stattcontract.Clause auch Clause verwendet werden.Mit Hilfe der Einstellungen title, head und tocentry können Paragraphen zusätzlich zur

Nummer mit einem Titel versehen werden. Dabei wird empfohlen, den Wert der jeweiligenEigenschaft in geschweifte Klammern zu setzen. Anderenfalls führen beispielsweise Komma-ta zu Verwechslungen mit den Trennzeichen zwischen unterschiedlichen Eigenschaften. LeereWerte für head und tocentry führen zu leeren Einträgen. Will man hingegen keine Einträgevornehmen, so sind nohead und notocentry zu verwenden.

Kapitel 11: Unterstützung für die Anwaltspraxis durch scrjura 321

Statt der fortlaufenden Nummer kann mit Hilfe der Eigenschaft number auch manuell eineNummer vergeben werden. Dies hat jedoch keinen Einfluss auf die Nummern der nachfolgendenParagraphen. Die Angabe einer leeren Nummer ist nicht vorgesehen. Zerbrechliche Anweisun-gen in Nummer sollten mit \protect geschützt werden. Es wird empfohlen als Nummer nurZiffern und Buchstaben anzugeben.Mit der Eigenschaft dummy kann man die Ausgabe der kompletten Überschrift des Paragra-

phen unterdrücken. In der automatischen Zählung wird der Paragraph aber dennoch berück-sichtigt. Auf diese Weise kann man beispielsweise mit\Clause{dummy}

einen Paragraphen in der automatischen Zählung überspringen, falls der entsprechende Para-graph in einer späteren Fassung eines Vertrags gestrichen wurde.Es ist zu beachten, dass Eigenschaft dummy als Wert allenfalls true und false versteht. Alle

anderen Werte werden normalerweise ignoriert, können im ungünstigsten Fall aber auch zueiner Fehlermeldung führen.

\Clauseformat{Nummer }

Wie bereits in der vorausgehenden Erklärung erwähnt, werden juristische Paragraphen undUnterparagraphen normalerweise nummeriert. Die Formatierung der Nummer erfolgt dabeimit Hilfe der Anweisung \Clauseformat, die als einziges Argument die Nummer erwartet. Beider Vordefinierung als\newcommand*{\Clauseformat}[1]{\S~#1}

wird der Nummer mit \S lediglich das Paragraphensymbol, gefolgt von einem nicht trennbarenLeerzeichen vorangestellt. Bei Umdefinierungen ist auf die Expandierbarkeit zu achten!

juratitlepagebreak=Ein-Aus-Wert

Normalerweise sind Seitenumbrüche innerhalb von Überschriften aller Art verboten. EinigeJuristen benötigen jedoch Seitenumbrüche innerhalb von Paragraphentiteln. Daher kann einsolcher Umbruch mit juratitlepagebreak erlaubt werden. Die möglichen Einstellungen fürEin-Aus-Wert sind Tabelle 2.5, Seite 42 zu entnehmen.

clausemark=Einstellung

Da Paragraphen eine untergeordnete Gliederung mit unabhängiger Nummerierung sind, er-zeugen sie in der Voreinstellung keine Kolumnentitel. Über alternative Einstellungen könnenjedoch auch Kolumnentitel erzeugt werden. Die möglichen Werte und ihre Bedeutung sindTabelle 11.3 zu entnehmen.

Kapitel 11: Unterstützung für die Anwaltspraxis durch scrjura 322

Tabelle 11.3.: Mögliche Werte für Option clausemark zur Erzeugung von Kolumnentiteln durch Para-graphen

bothParagraphen erzeugen linke und rechte Marken für Kolumnentitel, wenn das Doku-ment die Verwendung von lebenden Kolumnentiteln vorsieht.

false, off, noParagraphen erzeugen keine Kolumnentitel.

forcebothParagraphen erzeugen mit \markboth linke und rechte Marken für Kolumnentitelunabhängig davon, ob das Dokument beispielsweise über den Seitenstil überhauptlebende Kolumnentitel verwendet.

forcerightParagraphen erzeugen mit \markright rechte Marken für Kolumnentitel unabhän-gig davon, ob das Dokument beispielsweise über den Seitenstil überhaupt lebendeKolumnentitel verwendet.

rightParagraphen erzeugen rechte Marken für Kolumnentitel, wenn das Dokument dieVerwendung von lebenden Kolumnentiteln vorsieht.

11.4.2. Absätze

Innerhalb von Paragraphen werden Absätze von scrjura normalerweise automatisch numme-riert. Sie sind damit ein stark gliederndes Element, ähnlich \paragraph oder \subparagraphin normalen Texten. Innerhalb von Verträgen wird deshalb häufig auch gerne mit Abstandzwischen den Absätzen gearbeitet. Das Paket scrjura bietet keinen eigenen Mechanismus hier-für. Stattdessen sei auf die Option parskip der KOMA-Script-Klassen verwiesen (siehe Ab-schnitt 3.10, Seite 82).

parnumber=Einstellung

Die automatische Nummerierung der Absätze entspricht den beiden Einstellungen parnumber=auto und parnumber=true. Manchmal ist es notwendig, die automatische Nummerierung ab-zuschalten. Das ist mit parnumber=false möglich. In diesem Fall wird nur die Satznummerautomatisch zurück gesetzt.Zur Realisierung dieser Option war es notwendig, in den Absatzmechanismus von LATEX

einzugreifen. In einigen seltenen Fällen kann sich das negativ auswirken. Dann bleibt nur,diese Änderung mit parnumber=manual zurück zu nehmen. Umgekehrt hebt LATEX selbst denEingriff manchmal auf. In diesem Fällen kann er mit parnumber=auto erneut aktiviert werden.Paragraphen, die nur aus einem einzigen Absatz bestehen, werden normalerweise nicht au-

tomatisch nummeriert. Damit dies funktioniert, dürfen sich keine zwei Paragraphen mit iden-

Kapitel 11: Unterstützung für die Anwaltspraxis durch scrjura 323

tischer Nummer in einem Dokument befinden. Sollten Sie dies dennoch einmal benötigen, wei-chen Sie bitte auf eine weitere Vertragsumgebung aus (siehe \DeclareNewJuraEnvironment,Abschnitt 11.6, Seite 328). Da die Information erst am Ende eines Paragraphen zur Verfügungsteht, werden in der Regel zwei LATEX-Läufe benötigt, bis die automatische Absatznummerie-rung korrekt erfolgt.

par\thepar\parformat\parformatseparation

Für die Nummerierung der Absätze wird der Zähler par verwendet. Seine Darstellung, \theparist mit \arabic{par} als arabische Zahl voreingestellt. Die Ausgabe als automatische Absatz-nummer erfolgt mit \parformat. Dabei wird \thepar in runde Klammern gesetzt. Will maneinem Absatz manuell eine Absatznummer voranstellen, so sollte das ebenfalls mit \parformatgeschehen. Dabei ist es sinnvoll, auf \parformat noch \parformatseparation oder zumindestein nicht trennbares Leerzeichen mit \nobreakspace oder der Tilde folgen zu lassen.

Beiv0.7 der automatischen Nummerierung wird \parformat ebenfalls noch\parformatseparation als Trennzeichen angehängt. Voreinstellt ist derzeit mit\nobreakspace ein nicht umbrechbarer Wortabstand.Die Absatznummer wird normalerweise in der aktuellen Schrift gesetzt. Diese Voreinstellung

für das Element parnumber kann jederzeit mit Hilfe der Anweisungen \setkomafont und\addtokomafont (siehe Abschnitt 11.2, Seite 316) geändert werden.Es wird darauf hingewiesen, dass scrjura intern davon ausgeht, dass \thepar eine arabische

Zahl ist. Daher sollte diese Anweisung keinesfalls umdefiniert werden!

\withoutparnumber

Wird keine Absatznummer ausgegeben, wird am Anfang des Absatzes ersatzweise die Anwei-sung \withoutparnumber lokal ausgeführt. Diese ist in der Voreinstellung leer, tut also weiternichts. Sie wurde auf speziellen Wunsch in scrjura eingebaut, ist für den normalen Anwenderaber ohne Belang.

\ellipsispar[Anzahl ]\parellipsis

Manchmalv0.7 – insbesondere in vergleichenden Kommentaren – ist es wünschenswert, wenn manAbsätze in Gesetzen auslassen, aber gleichzeitig die Auslassung markieren kann. Die Absätzesollen dann auch in der Zählung der übrigen Absätze berücksichtigt werden. Das Paket scrjurastellt dafür die Anweisung \ellipsispar bereit.In der Voreinstellung lässt \ellipsispar genau einen Absatz aus. Über das optionale Argu-

ment Anzahl können jedoch auch mehrere Absätze ausgelassen werden. In jedem Fall erscheint

Kapitel 11: Unterstützung für die Anwaltspraxis durch scrjura 324

in der Ausgabe stattdessen genau ein nicht nummerierter Absatz, der nur die Auslassungszei-chen \parellipsis enthält. Bei der Entscheidung für eine automatische Nummerierung derübrigen Absätze eines juristischen Paragraphen werden die ausgelassenen Absätze jedoch mitgezählt. Dies gilt ebenso für die Nummern etwaiger nachfolgender Absätze.

Beispiel: Angenommen, Sie kommentieren das Strafgesetzbuch, wollen aber in § 2 nur Ab-satz 3 kommentieren. Dennoch soll auf die übrigen Absätze indirekt hingewiesenwerden. Sie erreichen das beispielsweise mit:\documentclass[parskip=half]{scrartcl}\usepackage{scrjura}\usepackage{selinput}\SelectInputMappings{adieresis={ä},germandbls={ß},

}\begin{document}\begin{contract}\Clause{title={Zeitliche Geltung},number=2}\ellipsispar[2]

Wird das Gesetz, das bei Beendigung der Tatgilt, vor der Entscheidung geändert, so istdas mildeste Gesetz anzuwenden.

\ellipsispar[3]\end{contract}\end{document}

Um das Ergebnis zu sehen, sollten Sie das einfach einmal ausprobieren.

Die Auslassungszeichen sind so vordefiniert, dass \textellipsis verwendet wird, falls einesolche Anweisung definiert ist. Anderenfalls wird \dots verwendet. Eine Umdefinierung von\parellipsis ist mit \renewcommand jederzeit möglich.

11.4.3. Sätze

Absätze in Verträgen bestehen aus einem oder mehreren Sätzen, die teilweise ebenfalls num-meriert werden. Da eine automatische Nummerierung jedoch problematisch und fehleranfälligist, wurde eine solche bisher nicht implementiert. Eine halbautomatische Nummerierung wirdjedoch unterstützt.

Kapitel 11: Unterstützung für die Anwaltspraxis durch scrjura 325

sentence\thesentence\sentencenumberformat\Sentence

Die Nummerierung von Sätzen erfolgt manuell mit der Anweisung \Sentence. Dabei wird derZähler sentence automatisch erhöht und in der Voreinstellung von \sentencenumberformatv3.26

die arabische Zahl von \thesentence hochgestellt ausgegeben.Diev3.26 Satznummer wird normalerweise in der aktuellen Schrift gesetzt. Diese Voreinstellung

für das Element sentencenumber kann jederzeit mit Hilfe der Anweisungen \setkomafontund \addtokomafont (siehe Abschnitt 11.2, Seite 316) geändert werden.

Bei Verwendung von babel ist es einfach möglich, eine Abkürzung für \Sentence zu definie-ren:\useshorthands{’}\defineshorthand{’S}{\Sentence\ignorespaces}

Dabei werden Leerzeichen nach ’S ignoriert. Auch eine Abkürzung für einen Punkt, gefolgtvon einer neuen Satznummer ist möglich:\defineshorthand{’.}{. \Sentence\ignorespaces}

Näheres zu \useshorthands und \defineshorthand ist der Anleitung zum Paket babel zuentnehmen (siehe [BB13]). Ein Anwendungsbeispiel finden Sie in Abschnitt 11.8 ab Seite 331.

11.5. Querverweise

Für Paragraphen, Absätze und Sätze reicht der normale Mechanismus für Querverweise mit\label, \ref und \pageref nicht mehr aus. Daher wird dieser von scrjura um weitere Anwei-sungen ergänzt.

\ref{Label }\refL{Label }\refS{Label }\refN{Label }

Die Anweisungen \refL, \refS und \refN referenzieren Paragraph, Absatz und Satz immervollständig. \refL verwendet dabei eine textuelle Langform, während \refS eine textuelleKurzform bietet. \refN ist eine rein nummerische Kurzform. \ref entspricht in der Vorein-stellung \refL.

Kapitel 11: Unterstützung für die Anwaltspraxis durch scrjura 326

\refClause{Label }\refClauseN{Label }

Für die Referenzierung von Paragraphen ohne Absatz und Satz, unterscheiden sich \refClauseund \refClauseN nur darin, dass ersteres automatisch ein Paragraphenzeichen voran stellt.

\refPar{Label }\refParL{Label }\refParS{Label }\refParN[Zahlenformat ]{Label }

Nur den Absatz kann man mit \refParL, \refParS und \refParN referenzieren. Die Formenunterscheiden sich dabei wie bereits für \refL, \refN und \refS angegeben. Eine Besonderheitstellt das optionale Argument von \refParN dar. Normalerweise werden Absätze in rein num-merischer Form als römische Zahlen referenziert. Über das optionale Argument kann jedochauch ein anderes Format vorgegeben werden. Sinnvoll ist hier in erster Linie das Zahlenformatarabic für eine arabische Absatznummer. \refPar entspricht in der Voreinstellung \refParL.

\refSentence{Label }\refSentenceL{Label }\refSentenceS{Label }\refSentenceN{Label }

Der Satz ohne Paragraph und Absatz kann mit \refSentenceL, \refSentenceS oder\refSentenceN referenziert werden. Auch hier gibt es wieder eine textuelle Langform, einetextuelle Kurzform und eine rein nummerische Form. \refSentence entspricht in der Vorein-stellung \refSentenceL.

ref=Einstellung

Die Ergebnisse von \ref, \refPar und \refSentence sind von der Einstellung für Optionref abhängig. In der Voreinstellung entsprechen diese \refL, \refParL und \refSentenceL.Mögliche Werte und ihre Bedeutung sind Tabelle 11.4 zu entnehmen.

Beispiel: Angenommen, Sie wollen, dass auf Absätze immer in der Form »Absatz 1 in Para-graph 1« verwiesen wird. Da es hierfür keine vordefinierte Anweisung gibt, müssenSie sich Ihre eigene Definition aus den vorhanden Möglichkeiten zusammenbauen.Dies können Sie mit\newcommand*{\refParM}[1]{%

Absatz~\refParN[arabic]{#1}in Paragraph~\refClauseN{#1}%

}

sehr einfach erreichen. Die so neu definierte Anweisung ist genau wie \refParL zuverwenden.

Kapitel 11: Unterstützung für die Anwaltspraxis durch scrjura 327

Tabelle 11.4.: Mögliche Werte für Option ref zur Einstellung des Formats von \ref, \refPar und\refSentence

longDie Einstellungen parlong und sentencelong werden kombiniert.

numericDie Einstellungen parnumeric und sentencenumeric werden kombiniert.

clauseonly, onlyclause, ClauseOnly, OnlyClauseDie Einstellungen paroff und sentenceoff werden kombiniert. Es ist zu beachten,dass dadurch sowohl \refPar als auch \refSentence ein leeres Ergebnis erzeugen!

parlong, longpar, ParLDer Absatz wird in der textuellen Langform referenziert.

parnumeric, numericpar, ParNDer Absatz wird in der rein nummerischen Form referenziert.

paroff, noparDer Absatz wird nicht mit referenziert. Es ist zu beachten, dass dadurch \refParein leeres Ergebnis erzeugt!

parshort, shortpar, ParSDer Absatz wird in der textuellen Kurzform referenziert.

sentencelong, longsentence, SentenceLDer Satz wird in der textuellen Langform referenziert.

sentencenumeric, numericsentence, SentenceNDer Satz wird in der rein nummerischen Form referenziert.

sentenceoff, nosentenceDer Satz wird nicht mit referenziert. Es ist zu beachten, dass dadurch von\refSentence ein leeres Ergebnis erzeugt wird!

sentenceshort, shortsentence, SentenceSDer Satz wird in der textuellen Kurzform referenziert.

shortDie Einstellungen parshort und sentenceshort werden kombiniert.

Beispiele für die Ergebnisse der nicht konfigurierbaren, grundlegenden Anweisungen findensich in Tabelle 11.5.

11.6. Zusätzliche Vertragsumgebungen

Einige Anwender setzen mit scrjura keine Verträge oder Kommentare zu einzelnen Gesetzen,sondern Werke, in denen unterschiedliche Arten von Gesetzen behandelt werden. Es ist dahererforderlich, dass ein Paragraph nicht immer mit demselben Präfix »§« versehen wird, sondern

Kapitel 11: Unterstützung für die Anwaltspraxis durch scrjura 328

Tabelle 11.5.: Beispielausgaben der vonOption ref unabhängigen Anweisungenfür Querverweise

Anweisung Beispielausgabe\refL{Label } § 1 Absatz 1 Satz 1\refS{Label } § 1 Abs. 1 S. 1\refN{Label } § 1 I 1.\refClause{Label } § 1\refClauseN{Label } 1\refParL{Label } Absatz 1\refParS{Label } Abs. 1\refParN{Label } I\refParN[arabic]{Label } 1\refParN[roman]{Label } i\refSentenceL{Label } Satz 1\refSentenceS{Label } S. 1\refSentenceN{Label } 1.

beispielsweise als »Art.« oder »IAS« oder was auch immer bezeichnet wird. Darüber hinauswird eine unabhängige Zählung der unterschiedlichen Paragraphen benötigt.

\DeclareNewJuraEnvironment{Name }[Optionen ]{Start-Anweisungen }{End-Anweisungen }

Überv0.9 diese Anweisung können weitere, voneinander unabhängige Umgebungen für Vertrags-oder Gesetzestexte deklariert werden. Das Argument Name ist dabei der Name der neuen Um-gebung. Start-Anweisungen sind Anweisungen, die immer am Anfang der Umgebung ausge-führt werden, ganz als ob man sie jedes Mal unmittelbar hinter \begin{Name } einfügen würde.Entsprechend werden End-Anweisungen immer am Ende der Umgebung ausgeführt, ganz alsob man sie jedes Mal unmittelbar vor \end{Name } einfügen würde. Ohne Optionen entsprichtdie neue Umgebung Name einer contract-Umgebung mit eigenen Zählern. Es besteht jedochdie Möglichkeit über eine mit Komma separierte Liste an Optionen darauf Einfluss zu nehmen.Tabelle 11.6 führt die derzeit unterstützen Optionen auf.

Kapitel 11: Unterstützung für die Anwaltspraxis durch scrjura 329

Tabelle 11.6.: Von \DeclareNewJuraEnvironment unterstützte Optionen zur Konfigurierung neuerVertragsumgebungen

Clause=Anweisung\Clause wird innerhalb der neuen Umgebung auf Anweisung abgebildet. DieAnweisung sollte wie die für contract dokumentierte Anweisung genau ein Argu-ment erwarten. Für eine korrekte Anwendung dieser Option sind erweiterte Kennt-nisse über die interne Funktion von scrjura notwendig. Außerdem können sich dieAnforderungen an die Anweisung von Version zu Version noch ändern. Daher wirdderzeit empfohlen, die Option nicht zu verwenden!

ClauseFont=AnweisungenIst diese Option angegeben, so wird eine neues Element Name .Clause mit\newkomafont definiert und Anweisungen für dessen Voreinstellung verwendet. Soll-te das Element bisher als Alias definiert gewesen sein (siehe \aliaskomafont inAbschnitt 21.5, Seite 504) so wird es stattdessen zu einem selbstständigen Ele-ment. Sollte das Element bereits definiert gewesen sein, so werden lediglich dieAnweisungen mit \setkomafont als neue Einstellung gesetzt. Bitte beachten Siedie in Abschnitt 11.2, Seite 316 erklärten Einschränkungen bezüglich der erlaubtenAnweisungen !

SubClause=Anweisung\SubClause wird innerhalb der Umgebung auf Anweisung abgebildet. DieAnweisung sollte wie die für contract dokumentierte Anweisung genau ein Argu-ment erwarten. Für eine korrekte Anwendung dieser Option sind erweiterte Kennt-nisse über die interne Funktion von scrjura notwendig. Außerdem können sich dieAnforderungen an die Anweisung von Version zu Version noch ändern. Daher wirdderzeit empfohlen, die Option nicht zu verwenden!

Sentence=Anweisung\Sentence wird innerhalb der Umgebung auf Anweisung abgebildet. Die\Anweisung sollte kein Argument besitzen. Normalerweise sollte sie den Zählersentence mit \refstepcounter erhöhen und dann in geeigneter Form ausgeben.Dabei ist besonders darauf zu achten, dass keine unerwünschten Leerzeichen einge-baut werden!

. . .

Kapitel 11: Unterstützung für die Anwaltspraxis durch scrjura 330

Tabelle 11.6.: Optionen für \DeclareNewJuraEnvironment (Fortsetzung)

ClauseNumberFormat=AnweisungAnweisung legt die Formatierung für Paragraphen-Nummern innerhalb der Umge-bung fest. Es wird eine Anweisung mit genau einem Argument erwartet, der Nummerdes Paragraphen. Falls diese Nummer das letzte Argument einer Kette von Anwei-sungen ist, so kann diese Kette an Anweisungen auch direkt angegeben werden.

Beispiel: Um beispielsweise die in der Einleitung zu diesem Abschnitt erwähnte Umgebungfür Artikel zu definieren, genügt:\DeclareNewJuraEnvironment{Artikel}

[ClauseNumberFormat=Art.]{}{}

Sollen die Artikel unter Verwendung einer KOMA-Script-Klasse mit Absatzabstandstatt Absatzeinzug gesetzt werden, kann\DeclareNewJuraEnvironment{Artikel}

[ClauseNumberFormat=Art.~]{\KOMAoptions{parskip}}{}

verwendet werden. Natürlich wird dann auch bei der Referenzierung automatisch»Art.« anstelle von »§« vorangestellt.Angewendet wird die neue Umgebung wie contract:\begin{Artikel}

\ClauseDie Würde des Menschen ist unantastbar. Sie zuachten und zu schützen ist Verpflichtung allerstaatlichen Gewalt.

\end{Artikel}

11.7. Unterstützung verschiedener Sprachen

Das Paket scrjura wurde in Zusammenarbeit mit einem Anwalt für Deutsches Recht entwi-ckelt. Daher unterstützte es zunächst auch nur die Sprachen german, ngerman, austrian undnaustrian. Das Paket wurde aber so entworfen, dass es mit üblichen Sprachpaketen wie babelzusammen arbeitet. Anwender können solche Anpassungen einfach mit \providecaptionname(siehe Abschnitt 12.4, Seite 362) vornehmen. Sollten Sie über gesicherte Informationen zu denim juristischen Umfeld gebräuchlichen Begriffen in anderen Sprachen verfügen, würde sichder Autor über entsprechende Rückmeldungen freuen. Auf diesem Weg ist inzwischen auchUnterstützung für english, american, british, canadian, USenglish und UKenglish hinzugekommen.

Kapitel 11: Unterstützung für die Anwaltspraxis durch scrjura 331

Tabelle 11.7.: Bedeutungenund Voreinstellungen für diesprachabhängigen Begriffesoweit nicht bereits definiert

Anweisung Bedeutung Voreinstellung\parname Langform »Absatz« Absatz\parshortname Kurzform »Absatz« Abs.\sentencename Langform »Satz« Satz\sentenceshortname Kurzform »Satz« S.

\parname\parshortname\sentencename\sentenceshortname

Dies sind die sprachabhängigen Bezeichnungen, die von scrjura verwendet werden. Die Bedeu-tung und die im Deutschen vordefinierten Werte sind Tabelle 11.7 zu entnehmen. Dabei nimmtscrjura die entsprechenden Definitionen innerhalb von \begin{document} nur vor, wenn nichtbereits andere Vorgaben getroffen wurden. Wird scrjura mit einer nicht unterstützten Spracheverwendet, so wird eine entsprechende Fehlermeldung ausgegeben.

11.8. Ein ausführliches Beispiel

Erinnern wir uns an den Brief aus Kapitel 4, in dem ein Vereinsmitglied die überfällige Mit-gliederversammlung in Erinnerung bringen wollte. Damit so etwas möglich ist, muss es aucheinen Verein mit einer Satzung geben, die das vorschreibt. Eine Vereinssatzung ist letztlicheine Art Vertrag und kann mit scrjura gesetzt werden.

\documentclass[fontsize=12pt,pagesize,parskip=half]{scrartcl}

Als Klasse wird scrartcl verwendet. Da es bei Satzungen eher üblich ist, die Absätze mit einemAbstand zu setzen, wird Option parskip=half verwendet (siehe Abschnitt 3.10, Seite 82).

\usepackage[ngerman]{babel}

Die Satzung soll in Deutsch verfasst werden. Daher wird das Paket babel mit Option ngermangeladen.

\usepackage[T1]{fontenc}\usepackage{lmodern}\usepackage{textcomp}

Es werden einige Standardeinstellungen für die Schrift vorgenommen. Dazu kommt das Pakettextcomp, das neben einem brauchbaren Euro-Zeichen für einige Schriften auch ein verbessertesParagraphenzeichen bereitstellt.

\usepackage{selinput}\SelectInputMappings{

Kapitel 11: Unterstützung für die Anwaltspraxis durch scrjura 332

adieresis={ä},germandbls={ß},

}

Damit Sonderzeichen und Umlaute direkt eingegeben werden können, wird die Eingabecodie-rung ermittelt. Alternativ könnte hier auch das Paket inputenc zum Einsatz kommen.

\usepackage{enumerate}

Später sollen Listen nicht mit arabischen Zahlen, sondern mit Kleinbuchstaben nummeriertwerden. Dies ist beispielsweise mit dem Paket enumerate möglich.

\usepackage[clausemark=forceboth,juratotoc,juratocnumberwidth=2.5em]

{scrjura}\useshorthands{’}\defineshorthand{’S}{\Sentence\ignorespaces}\defineshorthand{’.}{. \Sentence\ignorespaces}

\pagestyle{myheadings}

Nun ist es Zeit für scrjura. Mit Option clausemark=forceboth wird für Paragraphen dasSetzen von linken und rechten Marken für Kolumnentitel erzwungen. Da andererseits nichterwünscht ist, dass \section Kolumnentitel erzeugen, wird Seitenstil myheadings verwendet,der normalerweise keine lebenden Kolumnentitel aktiviert.

Es soll später auch ein Inhaltsverzeichnis erstellt werden, in das die Paragraphen ebenfallsaufgenommen werden. Das wird mit juratotoc erreicht. Später werden wir feststellen, dassdie voreingestellte Breite für die Paragraphennummern im Inhaltsverzeichnis nicht genügt.Daher wird mit juratocnumberwidth=2.5em für etwas mehr Platz gesorgt.

Die Definition der Abkürzungen wurde bereits in Abschnitt 11.4.3 erklärt. Im Beispiel wurdesie übernommen, um später die Eingabe zu vereinfachen.

\begin{document}

Es ist Zeit, das eigentliche Dokument zu beginnen.\subject{Satzung}\title{VfVmai}\subtitle{Verein für Vereinsmaierei mit ai n.e.V.}\date{11.\,11.\,2011}\maketitle

Wie jedes Dokument hat auch eine Satzung einen Titel. Dieser wird mit den gewohntenKOMA-Script-Mitteln (siehe Abschnitt 3.7, ab Seite 68) erstellt.

\tableofcontents

Wie bereits erwähnt, soll ein Inhaltsverzeichnis erstellt werden.

Kapitel 11: Unterstützung für die Anwaltspraxis durch scrjura 333

\addsec{Präambel}

Die Vereinslandschaft in Deutschland ist vielfältig.Doch leider mussten wir feststellen, dass es dabei oftam ernsthaften Umgang mit der Ernsthaftigkeit krankt.

Präambeln sind in Satzungen nicht ungewöhnlich. Hier wird sie mit \addsec gesetzt, damitsie auch einen Eintrag ins Inhaltsverzeichnis erhält.

\appendix

Hier wird ein kleiner Trick angewendet. Die einzelnen Artikel der Satzung sollen nicht mitarabischen Zahlen, sondern mit Großbuchstaben nummeriert werden – genau wie dies auchim Anhang eines Artikels mit scrartcl der Fall ist.

\section{Allgemeines}

\begin{contract}

Mit dem ersten Artikel beginnt auch der Vertrag.\Clause{title={Name, Rechtsform, Sitz des Vereins}}

Der Verein führt den Namen »Verein für Vereinsmaierei mitai n.e.V.« und ist in keinem Vereinsregister eingetragen.

’S Der Verein ist ein nichtwirtschaftlicher, unnützerVerein’. Er hat keinen Sitz und muss daher stehen.

Geschäftsjahr ist vom 31.~März bis zum 1.~April.

Der erste Paragraph erhält neben der Nummer auch einen Titel. Dies wird auch bei dennachfolgenden Paragraphen so sein.Der erste Absatz des Vertrags enthält nichts ungewöhnliches. Da es nicht der einzige Absatz

ist, werden bei der Ausgabe jedem Absatz automatisch Absatznummern voran gestellt werden.Damit dies auch beim ersten Absatz geschieht, sind allerdings zwei LATEX-Läufe notwendig.Da dies für das Inhaltsverzeichnis ohnehin der Fall sein wird, stört das aber auch nicht weiter.Im zweiten Absatz stehen zwei Sätze. Hier finden zum ersten Mal die Abkürzungen ’S und

’. Anwendung. Mit der ersten wird lediglich eine Satznummer erzeugt. Mit der zweiten wirdnicht nur ein Punkt, sondern nachfolgend auch eine Satznummer erzeugt. Beide Sätze desAbsatzes sind somit nummeriert.

\Clause{title={Zweck des Vereins}}

’S Der Verein ist zwar sinnlos, aber nicht zwecklos’.Vielmehr soll er den ernsthaften Umgang mit derErnsthaftigkeit auf eine gesunde Basis stellen.

Kapitel 11: Unterstützung für die Anwaltspraxis durch scrjura 334

Zu diesem Zweck kann der Verein\begin{enumerate}[\qquad a)]\item in der Nase bohren,\item Nüsse knacken,\item am Daumen lutschen.\end{enumerate}

Der Verein ist selbstsüchtig und steht dazu.

Der Verein verfügt über keinerlei Mittel.\label{a:mittel}

Der zweite Paragraph: Auch dieser enthält wieder mehrere Absätze, die teilweise auch mehrereSätze umfassen. Im zweiten Absatz ist darüber hinaus eine Aufzählung zu finden. Beim letztenAbsatz wurde ein Label gesetzt, da auf diesen später noch verwiesen werden soll.

\Clause{title={Vereinsämter}}

Die Vereinsämter sind Ehrenämter.

’S Würde der Verein über Mittel verfügen(siehe \ref{a:mittel}), so könnte er einenhauptamtlichen Geschäftsführer bestellen’. Ohnedie notwendigen Mittel ist dies nicht möglich.

Der dritte Paragraph enthält als Besonderheit einen Querverweis. In diesem Fall wird in derLangform mit Paragraph, Absatz und Satz referenziert. Soll der Satz später doch entfallen, sokann dies global durch Setzen der Option ref=nosentence erreicht werden.

\Clause{title={Vereinsmaier},dummy}\label{p.maier}

Hier gibt es nun einen ersten Spezialfall eines Paragraphen. Dieser Paragraph war in einer frü-heren Fassung der Satzung noch enthalten, wurde dann aber entfernt. Dabei sollen jedoch dienachfolgenden Paragraphen nicht neu nummeriert werden, sondern ihre alte Nummer behalten.Deshalb wurde die \Clause-Anweisung nicht entfernt, sondern lediglich um die Eigenschaftdummy erweitert. Außerdem kann so auch weiterhin ein Label für diesen Paragraphen gesetztwerden, obwohl der Paragraph selbst nicht angezeigt wird.

\end{contract}

\section{Mitgliedschaft}

\begin{contract}

Es wird ein weiterer Artikel begonnen. Damit Probleme mit der Absatznummerierung ausge-schlossen sind, wird dazu kurzzeitig die contract-Umgebung unterbrochen.

\Clause{title={Mitgliedsarten},dummy}

Kapitel 11: Unterstützung für die Anwaltspraxis durch scrjura 335

Auch der erste Paragraph im nächsten Artikel wurde gestrichen.\Clause{title={Erwerb der Mitgliedschaft}}

Die Mitgliedschaft kann jeder zu einem angemessenenPreis von einem der in \refClause{p.maier}genannten Vereinsmaier erwerben.\label{a.preis}

’S Zum Erwerb der Mitgliedschaft ist ein formloserAntrag erforderlich’. Dieser Antrag ist in grünerTinte auf rosa Papier einzureichen.

Hier haben wir wieder einen echten Paragraphen. Darin wird zum einen auf einen der gestri-chenen Paragraphen verwiesen. Zum anderen wird auch wieder ein Label gesetzt.

\SubClause{title={Ergänzung zu vorstehendemParagraphen}}

’S Mit Abschaffung von \refClause{p.maier} verliert\ref{a.preis} seine Umsetzbarkeit’. Mitgliedschaftenkönnen ersatzweise vererbt werden.

Hier haben wir den zweiten Spezialfall eines Paragraphen. In diesem Fall wurde kein Paragraphgestrichen, sondern ein neuer Paragraph eingefügt, ohne dass nachfolgend Paragraphen neunummeriert werden. Dazu wurde \SubClause verwendet. Somit erhält dieser Paragraph dieNummer des vorherigen Paragraphen, die zur Unterscheidung um ein kleines »a« erweitertwurde.

\Clause{title={Ende der Mitgliedschaft}}

’S Die Mitgliedschaft endet mit dem Leben’. Bei nichtlebenden Mitgliedern endet die Mitgliedschaft nicht.

\Clause{title={Mitgliederversammlung}}

Zweimal jährlich findet eine Mitgliederversammlung statt.

Der Abstand zwischen zwei Mitgliederversammlungenbeträgt höchstens 6~Monate, 1~Woche und 2~Tage.

Frühestens 6~Monate nach der letzten Mitgliederversammlunghat die Einladung zur nächsten Mitgliederversammlung zuerfolgen.

\SubClause{title={Ergänzung zur Mitgliederversammlung}}

Die Mitgliederversammlung darf frühstens 2~Wochen nach

Kapitel 11: Unterstützung für die Anwaltspraxis durch scrjura 336

letztem Eingang der Einladung abgehalten werden.\end{contract}

Die übrigen Paragraphen dieses Artikels enthalten nur bereits bekannte Anweisungen undkeine neuen Besonderheiten.

\section{Gültigkeit}

\begin{contract}\Clause{title={In Kraft treten}}

Diese Satzung tritt am 11.\,11.\,2011 um 11:11~Uhrin Kraft.

’S Sollten irgendwelche Bestimmungen dieser Satzung imWiderspruch zueinander stehen, tritt die Satzung am11.\,11.\,2011 um 11:11~Uhr und 11~Sekunden wiederaußer Kraft’. Der Verein ist in diesem Fall alsaufgelöst zu betrachten.

\end{contract}

Es folgt noch ein weiterer Artikel ohne Besonderheiten.\end{document}

Danach endet das LATEX-Dokument, dessen vordere drei Seiten Abbildung 11.1 zeigt.

11.9. Entwicklungsstand

Seit KOMA-Script 3.24 teilt scrjura die Versionsnummer der Klassen und anderer wichtiger Pa-kete. Dennoch sei auf einen wichtigen Punkt hingewiesen: Bisher ist weder das Zusammenspielmit vielen anderen Paketen noch die Funktion der contract-Umgebung mit allen möglichenLATEX-Umgebungen und Einstellungen verschiedener Klassen und Pakete getestet. Dies liegtnicht zuletzt daran, dass es sich bei scrjura um ein sehr spezielles Paket handelt, das weitaußerhalb der täglichen Praxis des Autors liegt. Damit ist der Autor diesbezüglich in hohemMaße auf ausführliche Rückmeldungen durch die Anwender angewiesen.

Kapitel 11: Unterstützung für die Anwaltspraxis durch scrjura 337

Satzung

VfVmaiVerein für Vereinsmaierei mit ai n.e.V.

11. 11. 2011

Inhaltsverzeichnis

Präambel 1

A. Allgemeines 2§ 1. Name, Rechtsform, Sitz des Vereins . . . . . . . . . . . . . . . . . . . . . 2§ 2. Zweck des Vereins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2§ 3. Vereinsämter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

B. Mitgliedschaft 3§ 6. Erwerb der Mitgliedschaft . . . . . . . . . . . . . . . . . . . . . . . . . . 3§ 6a. Ergänzung zu vorstehendem Paragraphen . . . . . . . . . . . . . . . . . 3§ 7. Ende der Mitgliedschaft . . . . . . . . . . . . . . . . . . . . . . . . . . . 3§ 8. Mitgliederversammlung . . . . . . . . . . . . . . . . . . . . . . . . . . . 3§ 8a. Ergänzung zur Mitgliederversammlung . . . . . . . . . . . . . . . . . . 4

C. Gültigkeit 4§ 9. In Kraft treten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

Präambel

Die Vereinslandschaft in Deutschland ist vielfältig. Doch leider mussten wir feststellen,dass es dabei oft am ernsthaften Umgang mit der Ernsthaftigkeit krankt.

1

§ 1 Name, Rechtsform, Sitz des Vereins

A. Allgemeines

§ 1 Name, Rechtsform, Sitz des Vereins

(1) Der Verein führt den Namen »Verein für Vereinsmaierei mit ai n.e.V.« und ist inkeinem Vereinsregister eingetragen.

(2) 1Der Verein ist ein nichtwirtschaftlicher, unnützer Verein. 2Er hat keinen Sitz undmuss daher stehen.

(3) Geschäftsjahr ist vom 31. März bis zum 1. April.

§ 2 Zweck des Vereins

(1) 1Der Verein ist zwar sinnlos, aber nicht zwecklos. 2Vielmehr soll er den ernsthaftenUmgang mit der Ernsthaftigkeit auf eine gesunde Basis stellen.

(2) Zu diesem Zweck kann der Verein

a) in der Nase bohren,

b) Nüsse knacken,

c) am Daumen lutschen.

(3) Der Verein ist selbstsüchtig und steht dazu.

(4) Der Verein verfügt über keinerlei Mittel.

§ 3 Vereinsämter

(1) Die Vereinsämter sind Ehrenämter.

(2) 1Würde der Verein über Mittel verfügen (siehe § 2 Absatz 4 Satz 1), so könnteer einen hauptamtlichen Geschäftsführer bestellen. 2Ohne die notwendigen Mittel istdies nicht möglich.

2

Abbildung 11.1.: Die ersten drei Seiten der Beispielsat-zung aus Abschnitt 11.8

§ 6 Erwerb der Mitgliedschaft

B. Mitgliedschaft

§ 6 Erwerb der Mitgliedschaft

(1) Die Mitgliedschaft kann jeder zu einem angemessenen Preis von einem der in § 4genannten Vereinsmaier erwerben.

(2) 1Zum Erwerb der Mitgliedschaft ist ein formloser Antrag erforderlich. 2Dieser An-trag ist in grüner Tinte auf rosa Papier einzureichen.

(3) Die Mitgliedschaft kann nicht abgelehnt werden.

§ 6a Ergänzung zu vorstehendem Paragraphen

1Mit Abschaffung von § 4 verliert § 6 Absatz 1 Satz 1 seine Umsetzbarkeit. 2Mitglied-schaften können ersatzweise vererbt werden.

§ 7 Ende der Mitgliedschaft

1Die Mitgliedschaft endet mit dem Leben. 2Bei nicht lebenden Mitgliedern endet dieMitgliedschaft nicht.

§ 8 Mitgliederversammlung

(1) Zweimal jährlich findet eine Mitgliederversammlung statt.

(2) Der Abstand zwischen zwei Mitgliederversammlungen beträgt höchstens 6 Mona-te, 1 Woche und 2 Tage.

(3) Frühestens 6 Monate nach der letzten Mitgliederversammlung hat die Einladungzur nächsten Mitgliederversammlung zu erfolgen.

3

Teil II.

KOMA-Script für fortgeschrittene Anwender undExperten

In diesem Teil sind die Informationen für die Autoren von LATEX-Paketen und -Klassen zufinden. Dies betrifft nicht nur Anweisungen, die bei der Implementierung neuer Pakete undKlassen nützlich sind, sondern auch Schnittstellen, die weitere Eingriffe in KOMA-Script er-lauben. Darüber hinaus sind in diesem Teil auch obsolete Optionen und Anweisungen ebensowie Hintergründe zur Implementierung von KOMA-Script zu finden.Dieser Teil ist als Ergänzung zu den Informationen für Autoren von Artikeln, Berichten,

Büchern und Briefen in Teil I gedacht. Nähere Informationen und Beispiele für diese Anwendersind jenem Teil zu entnehmen.

Kapitel 12: Grundlegende Funktionen im Paket scrbase 339

Grundlegende Funktionen im Paket scrbase

Das Paket scrbase stellt einige grundlegende Funktionen bereit, die sich an Autoren von Pa-keten und Klassen richten. Dabei kann es nicht nur für Wrapper-Klassen genutzt werden, dieihrerseits eine KOMA-Script-Klasse laden. Auch Autoren von Klassen, die ansonsten nichtsmit KOMA-Script zu tun haben, können von der Funktionalität von scrbase profitieren.

12.1. Laden des Pakets

Während Anwender ein Paket mit Hilfe von \usepackage laden, verwenden Paket-und Klassenautoren \RequirePackage. Autoren von Wrapper-Paketen nutzen auch\RequirePackageWithOptions. Bei Verwendung von \RequirePackage können wiebei \usepackage Optionen angegeben werden. Demgegenüber erhält das Paket bei\RequirePackageWithOptions alle Optionen, mit denen zuvor das Wrapper-Paket geladenwurde. Näheres zu diesen Anweisungen ist [Tea06] zu entnehmen.Das Paket scrbase benötigt intern die Funktionalität des Pakets keyval. Diese kann auch

vom Paket xkeyval zur Verfügung gestellt werden. Bei Bedarf lädt scrbase selbst keyval.Das Paket keyval erlaubt es, Schlüssel zu definieren und diesen Werten zuzuweisen. Auch

die Optionen, die scrbase bereitstellt, verwenden die keyval-Syntax: Schlüssel =Wert .

12.2. Schlüssel als Eigenschaften von Familien und deren Mitgliedern

Wie bereits in Abschnitt 12.1 erwähnt, setzt scrbase bei Schlüsseln und deren Werten auf dasPaket keyval. Allerdings erweitert es dessen Funktionalität. Während bei keyval ein Schlüsseleiner Familie gehört, kennt scrbase zu jeder Familie auch noch Familienmitglieder. Ein Schlüsselkann dann sowohl einer Familie als auch einem oder mehreren Familienmitgliedern gehören.Außerdem kann einWert einem Schlüssel eines Familienmitglieds, einem Schlüssel einer Familieoder einem Schlüssel aller Familienmitglieder zugewiesen werden.

\DefineFamily{Familienname }\DefineFamilyMember[Mitglied ]{Familienname }

scrbase muss aus verschiedenen Gründen die Mitglieder einer Familie kennen. Daher ist esnotwendig, eine neue Familie zunächst mit \DefineFamily zu definieren und so eine leereMitgliederliste zu erzeugen. Ist die Familie bereits definiert, so geschieht schlicht nichts. Eswird also auch nicht eine bereits existierende Mitgliederliste überschrieben.Ein neues Mitglied wird der Familie dann mit der Anweisung \DefineFamilyMember be-

kannt gegeben. Existiert die Familie nicht, so führt dies zu einer Fehlermeldung. Existiertdas Mitglied bereits, so geschieht nichts. Wird kein Mitglied angegeben, so bleibt das Mit-glied nicht etwa leer, sondern es wird ».\@currname.\@currext« angenommen. Während

Kapitel 12: Grundlegende Funktionen im Paket scrbase 340

des Ladens einer Klasse oder eines Pakets sind \@currname und \@currext zusammen derDateiname.Theoretisch wäre es möglich, mit einem leeren optionalen Argument Mitglied auch ein

Mitglied ohne Name zu definieren. Dies würde jedoch der Familie selbst entsprechen. Es wirdempfohlen, als Familienname nur Buchstaben und Ziffern zu verwenden und das Mitglied im-mer mit einem anderen Zeichen, vorzugsweise einem Punkt, zu beginnen. Anderenfalls könntees passieren, dass sich Mitglieder einer Familie mit Mitgliedern anderer Familien überdecken.scrbase definiert selbst bereits die Familie »KOMA« und fügt ihr das Mitglied ».scrbase.sty«

hinzu. Grundsätzlich sind die Familien »KOMA« und »KOMAarg« KOMA-Script vorbehalten. Eswird empfohlen, für eigene Pakete den Namen des Gesamtpakets als Familie und den Nameneinzelner Pakete im Gesamtpaket als Mitglied zu verwenden.

Beispiel: Angenommen, Sie schreiben ein neues Gesamtpaket »Fleischermeister«. Darin be-finden sich die Pakete Salami.sty, Mettwurst.sty und Krakauer.sty. Daher ent-scheiden Sie sich für den Familienname »Fleischermeister« und fügen in jedemder Pakete die Zeilen\DefineFamily{Fleischermeister}\DefineFamilyMember{Fleischermeister}

ein. Dadurch wird beim Laden der drei genannten Pakete der Familie»Fleischermeister« je nach Paket eines der drei Mitglieder ».Salami.sty«,».Mettwurst.sty« und ».Krakauer.sty« zugefügt. Am Ende sind dann alle dreiMitglieder definiert.

\DefineFamilyKey[Mitglied ]{Familie }{Schlüssel }[Säumniswert ]{Aktion }\FamilyKeyState\FamilyKeyStateUnknown\FamilyKeyStateProcessed\FamilyKeyStateUnknownValue\FamilyKeyStateNeedValue

Mit dieser Anweisung wird ein Schlüssel definiert. Ist ein Mitglied angegeben, so ist derSchlüssel eine Eigenschaft dieses Mitglieds der angegebenen Familie . Ist [Mitglied ] nichtangegeben, so wird wieder das Mitglied ».\@currname.\@currext« angenommen. Ist dasMitglied hingegen leer, so wird ein Familienschlüssel anstelle eines Mitgliederschlüssels defi-niert.Wird später dem Schlüssel ein Wert zugewiesen, so wird Aktion ausgeführt, wobei der

Wert als Parameter übergeben wird. Innerhalb von Aktion steht also »#1« für den überge-benen Wert. Wurde kein Wert übergeben, so wird stattdessen der Säumniswert eingesetzt.Falls kein Säumniswert angegeben wird, kann später der Schlüssel nur mit Wertübergabeverwendet werden.Letztlich führt

Kapitel 12: Grundlegende Funktionen im Paket scrbase 341

\DefineFamilyKey[Mitglied ]{Familie }{Schlüssel }[Säumniswert ]{Aktion }

zu dem Aufruf\define@key{Familie Mitglied }{Schlüssel }

[Säumniswert ]{erweiterte Aktion }

wobei \define@key im keyval-Paket definiert ist (siehe [Car99a]). Allerdings kommen zu demAufruf von \define@key noch einige zusätzliche Vorkehrungen und auch die Aktion wird umzusätzliche Vorkehrungen erweitert.Erfolgv3.12 oder Misserfolg der Ausführung der Aktion werden über \FamilyKeyState an scrbase

zurückgemeldet, damit dieses je nach Bedarf und Verwendung des Schlüssels weitere Maßnah-men ergreifen kann. Dies kann beispielsweise eine Fehlermeldung aber auch nur die Signalisie-rung einer unbekannten Option sein.Der Zustand \FamilyKeyState ist in der Voreinstellung identisch mit dem Zustand

\FamilyKeyStateUnknown. Das bedeutet, dass es nicht sicher ist, ob der Schlüssel korrektverarbeitet werden konnte. Findet scrbase nach Ausführung der Aktion noch immer diesenZustand vor, so wird ein Hinweis in die log-Datei geschrieben und im weiteren der Zustand\FamilyKeyStateProcessed angenommen.Der Zustand \FamilyKeyStateProcessed signalisiert, dass der Schlüssel und die Wertzu-

weisung an den Schlüssel vollständig abgeschlossen wurde und alles in Ordnung ist. Auf denZustand kann einfach durch Aufruf von \FamilyKeyStateProcessed selbst umgeschaltet wer-den.Der Zustand \FamilyKeyStateUnknownValue signalisiert, dass der Schlüssel zwar verar-

beitet wurde, ihm jedoch ein Wert zugewiesen werden sollte, der nicht erlaubt ist. DiesenZustand meldet beispielsweise typearea, wenn versucht wird, an Option twoside den Wertunbekannt zuzuweisen. Die Umschaltung auf den Zustand erfolgt einfach durch Aufruf von\FamilyKeyStateUnknownValue selbst.Der Zustand \FamilyKeyStateNeedValue signalisiert, dass der Schlüssel nicht verarbeitet

werden konnte, weil er zwingend einen Wert erwartet, er aber ohne Wertzuweisung aufgerufenwurde. Dieser Zustand wird automatisch gesetzt, wenn ein Schlüssel, der keinen Säumniswertbesitzt, ohne Wertzuweisung verwendet wird. Theoretisch wäre aber auch eine explizite Um-schaltung darauf durch Aufruf von \FamilyKeyStateNeedValue selbst möglich.

Des Weiteren können zusätzliche Fehlerzustände definiert werden, indem man\FamilyKeyState auf eine kurze Meldung umdefiniert. In der Regel sollten jedoch die viervordefinierten Zustände verwendet werden.

Beispiel: Nehmen wir an, jedes der drei Pakete aus dem letzten Beispiel soll einen SchlüsselAufschnitt erhalten. Wird dieser aufgerufen, so soll in jedem der Pakete entspre-chend dem Aufrufwert ein Schalter gesetzt werden. Für das Paket Salami könntedas beispielsweise so aussehen:

Kapitel 12: Grundlegende Funktionen im Paket scrbase 342

\newif\if@Salami@Aufschnitt\DefineFamilyKey{Fleischermeister}%

{Aufschnitt}[true]{%\expandafter\let\expandafter\if@Salami@Aufschnitt\csname if#1\endcsname\FamilyKeyStateProcessed

}

Als Wert ist daher beim Aufruf true oder false erlaubt. Ein Test auf unerlaubteWerte existiert in diesem Beispiel nicht. Stattdessen wird immer zurückgemeldet,dass der Schlüssel vollständig und korrekt verarbeitet wurde. Wird der Schlüsselspäter verwendet, so muss entweder einer der erlaubten Werte zugewiesen oderein Aufruf ohne Wertzuweisung verwendet werden. In letzterem Fall kommt derSäumniswert true zum Einsatz.Für die anderen beiden Pakete kann das fast identisch definiert werden. Lediglichdie Zeichenfolge »Salami« ist jeweils zu ersetzen.

\RelaxFamilyKey[Mitglied ]{Familie }{Schlüssel }

Wurdev3.15 Schlüssel zuvor als Mitglied der Familie definiert, so wird diese Definition quasiaufgehoben. Der Schlüssel ist dann für dieses Mitglied der Familie nicht mehr definiert.Die Verwendung für einen Schlüssel , der für dieses Mitglied der Familie gar nicht definiertist, ist ebenfalls zulässig.Ist kein Mitglied angegeben, so wird genau wie bei Anweisung \DefineFamilyKey wie-

der das Mitglied ».\@currname.\@currext« angenommen. Allerdings wird \RelaxFamilyKeyselten während des Ladens eines Pakets, sondern häufiger zur Laufzeit verwendet. Daher istMitglied in der Regel auch explizit anzugeben.

\FamilyProcessOptions[Mitglied ]{Familie }

Grundsätzlich ist die Erweiterung der Schlüssel von Familien auf Familien und Familienmit-glieder dazu gedacht, dass Schlüssel beziehungsweise die Wertzuweisung an Schlüssel als ganznormale Klassen- oder Paketoptionen verwendet werden können. Diese Anweisung stellt dahereine Erweiterung von \ProcessOptions* aus dem LATEX-Kern dar (siehe [Tea06]). Dabei verar-beitet die Anweisung nicht nur Optionen, die mit \DeclareOption definiert wurden. Es werdenauch alle Schlüssel eines angegebenen Familienmitglieds abgearbeitet. Wird das optionale Ar-gument Mitglied nicht angegeben, so wird wieder das Mitglied ».\@currname.\@currext«verwendet.Eine Besonderheit sind Schlüssel, die nicht einem Familienmitglied, sondern der Familie

selbst zugeordnet sind, bei der also das Mitglied leer geblieben ist. Diese werden ebenfallsgesetzt und zwar noch bevor der Schlüssel des Mitglieds gesetzt wird.

Kapitel 12: Grundlegende Funktionen im Paket scrbase 343

Beispiel: Wenn in den Paketen aus den zurückliegenden Beispielen nach der Definition derSchlüssel die Zeile\FamilyProcessOptions{Fleischermeister}

ergänzt wird, so kann der Anwender bereits beim Laden der Pakete mit\usepackage die Eigenschaft Aufschnitt als Option angeben. Wird die Optionglobal, also bei \documentclass, angegeben, so wird die Eigenschaft automatischbei allen drei Paketen gesetzt, wenn alle drei Pakete einzeln geladen werden.

Es wird darauf hingewiesen, dass bei Paketen globale Optionen vor den lokal dem Paketzugewiesenen Optionen ausgeführt werden. Während bei der Abarbeitung der globalen Op-tionen unbekannte Werte für Optionen dazu führen, dass darüber lediglich in der log-Dateiinformiert und die Option ansonsten ignoriert wird, führt dies bei lokalen Optionen zu einerFehlermeldung.Man kann \FamilyProcessOptions wahlweise als Erweiterung von \ProcessOption* oder

als Erweiterung des Schlüssel=Wert -Mechanismus von keyval verstehen. Letztlich werden mitHilfe von \FamilyProcessOptions aus Schlüssel=Wert -Paaren Optionen.Wie auch \ProcessOptions darf \FamilyProcessOptions nicht während der Ausführung

von Optionen verwendet werden. Es ist also insbesondere auch nicht erlaubt, innerhalb derAusführung von Optionen Pakete zu laden.

\BeforeFamilyProcessOptions[Mitglied ]{Familie }{Code }

Insbesonderev3.18 Autoren von Wrapper-Klassen wünschen manchmal, in ein Paket oder eineKlasse noch vor der Verarbeitung der Optionen eines zukünftig geladenen Pakets oder ei-ner zukünftig geladenen Klasse mit \FamilyProcessOptions eingreifen zu können. Dies istmit \BeforeFamilyProcessOptions möglich. Das Paket scrbase bietet dafür einen soge-nannten Haken (engl. hook). Diesem kann man mit \BeforeFamilyProcessOptions neu-en Code hinzufügen. Die Parameter Mitglied und Familie entsprechen dabei denen von\FammilyProcessOptions. Allerdings kann man auch den Haken von Familien-MitgliedernCode hinzufügen, wenn bisher die Familie oder das Mitglied noch gar nicht definiert ist.Der Haken eines Familien-Mitglieds wird übrigens nach dessen Ausführung automatisch

gelöscht. Verwendet man hingegen ein leeres Mitglied , so wird dieser Haken für alle Mitgliederder Familie ausgeführt und bleibt auch über die Ausführung hinaus erhalten.

Beispiel: Sie schreiben ein Paket Rauchwurst, das selbst Mettwurst lädt. Allerdings wol-len Sie nicht, dass für dieses Paket die Option Aufschnitt gesetzt werdenkann. Daher deaktivieren sie die Option vor dem Laden des Pakets über\BeforeFamilyProcessOptions.

\RequirePackage{scrbase}\BeforeFamilyProcessOptions[.Mettwurst.sty]%

{Fleischermeister}{%

Kapitel 12: Grundlegende Funktionen im Paket scrbase 344

\RelaxFamilyKey[.Mettwurst.sty]%{Fleischermeister}{Aufschnitt}%

}\RequirePackageWithOptions{Mettwurst}

Versucht nun jemand Ihr Paket mit Option Aufschnitt zu laden, so meldet das Pa-ket Mettwurst, dass diese Option nicht bekannt ist. Wird die Option Aufschnitt alsglobale Option angegeben, so ignoriert Paket Mettwurst diese. Voreinstellungen in-nerhalb des Pakets Mettwurst, die beispielsweise mit \FamilyExecuteOptions nochvor \FamilyProcessOptions erfolgen könnten, wären allerdings davon unabhängig.Aber natürlich kann man eigene Voreinstellungen von Rauchwurst aus ebenfalls per\BeforeFamilyProcessOptions in Mettwurst einschleusen.

\FamilyExecuteOptions[Mitglied ]{Familie }{Optionenliste }

Diese Anweisung stellt eine Erweiterung von \ExecuteOptions aus dem LATEX-Kern dar (sie-he [Tea06]). Dabei verarbeitet die Anweisung nicht nur Optionen, die mit \DeclareOptiondefiniert wurden. Es werden auch alle Schlüssel eines angegebenen Familienmitglieds abgear-beitet. Wird das optionale Argument Mitglied nicht angegeben, so wird wieder das Mitglied».\@currname.\@currext« verwendet.

Eine Besonderheit sind Schlüssel, die nicht einem Familienmitglied, sondern der Familieselbst zugeordnet sind, bei der also das Mitglied leer geblieben ist. Diese werden ebenfallsgesetzt, und zwar noch bevor der Schlüssel des Mitglieds gesetzt wird.

Beispiel: Angenommen, die Option Aufschnitt soll in den zurückliegenden Beispielen bereitsals Voreinstellung gesetzt werden, so müssen die Pakete nur um den Aufruf\FamilyExecuteOptions{Fleischermeister}

{Aufschnitt}

ergänzt werden.

Wirdv3.20 \FamilyExecuteOptions mit einer nicht definierten Option in der Optionenlisteaufgerufen, so wird normalerweise ein Fehler ausgegeben. Eine Ausnahme von dieser Regel ist,wenn für das Mitglied eine Option namens @else@ definiert wurde. In diesem Fall wird stattder unbekannten Option eben diese Option @else@ verwendet. Der an @else@ übergebeneWert ist dabei die nicht definierte Option mit dem im Aufruf angegebenen Wert. Innerhalbvon KOMA-Script wird das beispielsweise genutzt, um die Stil-Option bei der Definition vonGliederungsbefehlen vor allen anderen auszuwerten.Diese Anweisung darf auch innerhalb der Ausführung von Optionen verwendet werden.

Kapitel 12: Grundlegende Funktionen im Paket scrbase 345

\FamilyOptions{Familie }{Optionenliste }

Im Gegensatz zu normalen Optionen, die mit \DeclareOption definiert wurden, könnendie Schlüssel auch noch nach dem Laden der Klasse oder des Pakets gesetzt werden.Dazu verwendet der Anwender \FamilyOptions. Die Optionenliste hat dabei die Form:Schlüssel =Wert ,Schlüssel =Wert . . . wobei für Schlüssel , für die ein Säumniswert defi-niert ist, die Wertzuweisung natürlich auch entfallen kann.Durch die Anweisung werden die Schlüssel aller Mitglieder der angegebenen Familie ge-

setzt. Existiert ein Schlüssel auch als Eigenschaft der Familie selbst, so wird dieser Familien-Schlüssel zuerst gesetzt. Danach folgen die Mitglieder-Schlüssel in der Reihenfolge, in der dieMitglieder definiert wurden. Existiert ein angegebener Schlüssel weder für die Familie nochfür ein Mitglied der Familie, so wird von \FamilyOptions ein Fehler ausgegeben. Dies ge-schieht ebenfalls, wenn zwar für einige Mitglieder ein Schlüssel existiert, jedoch jedes dieserMitglieder über \FamilyKeyState einen Fehler zurückmeldet.

Beispiel: Sie ergänzen das Fleischermeister-Projekt um ein weiteres Paket Wurstsalat. Wirddieses Paket verwendet, so sollen alle Wurstpakete zunächst einmal Aufschnitt pro-duzieren:\ProvidesPackage{Wurstsalat}%

[2008/05/06 nonsense package]\RequirePackage{scrbase}\DefineFamily{Fleischermeister}\DefineFamilyMember{Fleischermeister}\FamilyProcessOptions{Fleischermeister}\relax\FamilyOptions{Fleischermeister}{Aufschnitt}

Sollte noch kein Wurstpaket geladen sein, so würde nun eine Fehlermeldung wegender nicht definierten Option »Aufschnitt« ausgegeben. Das kann vermieden wer-den, indem vor der letzten Zeile für das Paket selbst ebenfalls ein entsprechenderSchlüssel definiert wird:\DefineFamilyKey{Fleischermeister}%

{Aufschnitt}[true]{}%

Allerdings produzieren so Wurstpakete, die nach Paket Wurstsalat geladen werden,keinen Aufschnitt. Dies kann man ebenfalls ändern:\AtBeginDocument{%\DefineFamilyKey[.Wurstsalat.sty]%

{Fleischermeister}%{Aufschnitt}[true]{}%

}\DefineFamilyKey{Fleischermeister}%

{Aufschnitt}[true]{%\AtBeginDocument{%\FamilyOptions{Fleischermeister}%

Kapitel 12: Grundlegende Funktionen im Paket scrbase 346

{Aufschnitt=#1}%}%

}%

Somit wird zunächst während \begin{document} die Option so definiert, dass siefür das Paket Wurstsalat keine Funktion mehr ausübt. Da nach dem Laden vonWurstsalat, innerhalb von \begin{document} die beiden Anweisungen \@currnameund \@currext nicht mehr den Dateinamen des Pakets enthalten, muss zwingenddas optionale Argument von \DefineFamilyKey verwendet werden.Bis zu dieser Umdefinierung der Option wird jedoch eine Definition verwendet,die während \begin{document} die Option erneut für die Familie und all ihreMitglieder ausführt und damit auch für andere Wurstpakete setzt. Die Verzögerungder Ausführung von \FamilyOptions ist hier entscheidend. Zum einen werden nurso später geladene Wurstpakete erfasst. Zum anderen wird dadurch sichergestellt,dass die eigene Option Aufschnitt bereits umdefiniert wurde. Dadurch wird eineendlose Rekursion vermieden.

Wiev3.27 schon bei \FamilyExecuteOptions gibt es auch bei \FamilyOptions eine Sonderbe-handlung für eine Option Namens @else@. Ist eine solche für ein Mitglied definiert, so wirdsie immer dann ausgeführt, wenn das Mitglied eine angegebene Option nicht kennt. Ist für dieFamilie selbst eine Option @else@ definiert, so wird sie nur aufgerufen, wenn weder die Familienoch eines ihrer Mitglieder eine angegebene Option vollständig verarbeiten konnte und mit\FamilyKeyStateProcessed quitiert hat.

\FamilyOption{Familie }{Option }{Werteliste }

Neben Optionen, die sich gegenseitig ausschließende Werte besitzen, kann es auch Optionengeben, die gleichzeitig mehrere Werte annehmen können. Für diese wäre es bei Verwendungvon \FamilyOptions notwendig, der Option mehrfach einen Wert zuzuweisen und dabei dieOption selbst mehrfach anzugeben. Stattdessen kann man einfach mit \FamilyOption ei-ner einzigen Option eine ganze Werteliste zuweisen. Die Werteliste ist dabei eine durchKomma separierte Liste von Werten: Wert ,Wert . . . In diesem Zusammenhang sei darauf hin-gewiesen, dass die Verwendung eines Kommas in einem Wert möglich ist, wenn man den Wertin geschweifte Klammern setzt. Die weitere Funktionsweise ist der vorhergehenden Erklärungzu \FamilyOptions zu entnehmen.

Beispiel: Das Paket Wurstsalat soll eine Option bekommen, über die man weitere Zutatenbestimmen kann. Für jede Zutat wird dabei wieder ein Schalter gesetzt.\newif\if@salatmit@Zwiebeln\newif\if@salatmit@Gurken\newif\if@salatmit@Peperoni\DefineFamilyKey{Fleischermeister}{SalatZusatz}{%\csname @salatmit@#1true\endcsname

Kapitel 12: Grundlegende Funktionen im Paket scrbase 347

}

Es wurden hier die drei Zutaten »Zwiebeln«, »Gurken« und »Peperoni« definiert.Eine Fehlerbehandlung für den Fall, dass der Anwender unbekannte Zutaten fordert,existiert nicht.Für einen Salat mit Zwiebeln und Gurken kann der Anwender\FamilyOptions{Fleischermeister}{%

SalatZusatz=Zwiebeln,SalatZusatz=Gurken}

oder einfach\FamilyOption{Fleischermeister}%

{SalatZusatz}{Zwiebeln,Gurken}

verwenden.

Diev3.27 Verarbeitung einer Option @else@ findet in derselben Weise statt wie bei\FamilyOptions.

\AtEndOfFamilyOptions{Aktion }\AtEndOfFamilyOptions*{Aktion }

Manchmalv3.12 ist es vorteilhafter, wenn nicht jede Wertzuweisung an eine Option unmittel-bar eine Aktion auslöst, sondern dies erst geschieht, wenn alle Wertzuweisungen innerhalbeines Aufrufs von \FamilyProcessOptions oder \FamilyExecuteOptions beziehungswei-se \FamilyOptions oder \FamilyOption abgeschlossen sind. Genau das ist mit Hilfe von\AtEndOfFamilyOptions und dessen Sternvariantev3.23 möglich. Die Rückmeldung von Fehlerzu-ständen ist über diese Anweisung jedoch ebenso wenig möglich wie die Verwendung dieserAnweisung außerhalb der Ausführung von Optionen.Die beiden Variante unterscheiden sich im Falle von verschachtelt definierten Optionen, wenn

also die Ausführung einer Option den Aufruf einer oder mehrerer anderen Option bedingt. Indiesem Fall werden alle per \AtEndOfFamilyOptions festgelegten Aktionen ausgeführt, sobaldder innerste Optionenaufruf endet. Dagegen werden die per \AtEndOfFamilyOptions* festge-legten Aktionen erst mit dem Ende des äußersten Optionenaufrufs ausgeführt. Die Reihenfolgeder Aktionen ist dabei jedoch ausdrücklich unbestimmt! Weder ist sichergestellt, dass zuerstangeforderte Aktionen auch zuerst ausgeführt werden, noch die umgekehrte Reihenfolge.

Kapitel 12: Grundlegende Funktionen im Paket scrbase 348

\FamilyBoolKey[Mitglied ]{Familie }{Schlüssel }{Schaltername }\FamilySetBool{Familie }{Schlüssel }{Schaltername }{Wert }

In den vorherigen Beispielen wurden schon mehrfach Schalter gesetzt. Im Beispiel der OptionAufschnitt war es dabei notwendig, dass der Anwender als Wert true oder false angibt. Esexistierte keine Fehlerbehandlung, falls der Anwender einen falschenWert verwendet. Da solchebooleschen Schalter ein häufiger Anwendungsfall sind, kann man sie bei scrbase einfach mit\FamilyBoolKey definieren. Dabei sind die Argumente Mitglied , Familie und Schlüsseldie gleichen wie bei \DefineFamilyKey (siehe Seite 340). Das Argument Schaltername istder Name eines Schalter ohne den Präfix \if. Existiert dieser Schalter noch nicht, so wird erautomatisch definiert und mit false voreingestellt. Intern verwendet \FamilyBoolKey dann\FamilySetBool als Aktion für \DefineFamilyKey. Der Säumniswert für eine solche Optionist immer true.\FamilySetBool wiederum versteht als Wert neben true auch die Werte on und yes zum

Einschalten und neben false auch die Werte off und no zum Ausschalten. Wird ein un-bekannter Wert übergeben, so wird die Anweisung \FamilyUnknownKeyValue mit den Ar-gumenten Familie , Schlüssel und Wert aufgerufen und so \FamilyKeyState entsprechendgesetzt. Dadurch wird dann gegebenenfalls eine Meldung über eine unbekannte Wertzuweisungausgegeben (siehe auch Seite 353 und Seite 340).

Beispiel: Der Schlüssel Aufschnitt soll in den Wurstpaketen etwas robuster definiert werden.Außerdem sollen alle Wurstpakete denselben Schalter verwenden, so dass entwederalle Wurstpakete Aufschnitt produzieren oder keines.\FamilyBoolKey{Fleischermeister}{Aufschnitt}%

{@Aufschnitt}

Ein Test, ob Aufschnitt produziert wird, sähe dann so aus:\if@Aufschnitt

...\else

...\fi

Dies wäre in allen drei Wurstpaketen identisch. Damit könnte man prinzipiell dieEigenschaft »Aufschnitt« auch als Eigenschaft der Familie definieren:\@ifundefined{if@Aufschnitt}{%\expandafter\newif\csname if@Aufschnitt\endcsname

}{}%\DefineFamilyKey[]{Fleischermeister}%

{Aufschnitt}[true]{%\FamilySetBool{Fleischermeister}%

{Aufschnitt}%

Kapitel 12: Grundlegende Funktionen im Paket scrbase 349

{@Aufschnitt}%{#1}%

}

oder einfacher\FamilyBoolKey[]{Fleischermeister}%

{Aufschnitt}%{@Aufschnitt}

unter Ausnutzung des Hinweises bezüglich leerer Mitglieder im Gegensatz zumWeg-lassen des optionalen Arguments auf Seite 340, der nicht nur für \DefineFamilyKey,sondern entsprechend auch für \FamilyBoolKey gilt.Da \FamilyKeyState bereits von \FamilySetBool gesetzt wird, kann innerhalbder Definition der Option mit Hilfe von \DefineFamilyKey der Status gegebe-nenfalls auch abgefragt werden. So könnte man im ersten Fall beispielsweise nach\FamilySetBool einen Test der Art:\ifx\FamilyKeyState\FamilyKeyStateProcessed

...\else

...\fi

ergänzen, um zusätzliche Aktionen in Abhängigkeit davon, ob \FamilySetBoolerfolgreich war oder nicht, auszuführen. Es ist zu beachten, dass an dieser Stelleunbedingt ein Test mit Hilfe von \ifx vorzunehmen ist. Expandierende Tests wie\ifstr sind hier zu vermeiden. Sie können abhängig vom aktuellen Status unddem Vergleichszustand zu unterschiedlichen Fehlermeldungen und auch zu falschenErgebnissen führen.

\FamilyInverseBoolKey[Mitglied ]{Familie }{Schlüssel }{Schaltername }\FamilySetInverseBool{Familie }{Schlüssel }{Schaltername }{Wert }

Diesev3.27 beiden Anweisungen unterscheiden sich von \FamilyBoolKey beziehungsweise\FamilySetBool nur dadurch, dass die Logik invertiert wird. Das heißt, dass die Werte true,yes und on den durch Schaltername angegebenen Schalter auf \iffalse setzen und damitdeaktivieren, während false, no und off ihn zu \iftrue werden lassen, also aktivieren.

Kapitel 12: Grundlegende Funktionen im Paket scrbase 350

\FamilyNumericalKey[Mitglied ]{Familie }{Schlüssel }[Säumniswert ]{Makroname }{Werteliste }

\FamilySetNumerical{Familie }{Schlüssel }{Makroname }{Werteliste }{Wert }

Während Schalter nur zwei Werte annehmen können, gibt es auch Schlüssel, die mehrere Wertekennen. So kann beispielsweise eine Ausrichtung nicht nur entweder links oder nicht links,sondern auch links, mittig oder rechts sein. Intern unterscheidet man solche Einstellungen danngerne mit Hilfe von \ifcase. Diese TEX-Anweisung erwartet wiederum einen nummerischenWert. Daher heißt bei scrbase die Anweisung, mit der man via Schlüssel einem Makro eineDefinition zuweisen kann, entsprechend \FamilyNumericalKey.

Die Werteliste hat dabei die Form: {Wert }{Definition },{Wert }{Definition } . . .Über diese Werteliste werden so nicht nur die erlaubten Werte für den Schlüssel ange-geben. Für jeden erlaubten Wert wird auch gleich angegeben, wie bei Verwendung desselbendas Makro \Makroname definiert werden soll. Üblicherweise werden als Definition schlichtZahlenwerte angegeben. Es sind zwar auch andere Angaben möglich, derzeit gibt es aber dieEinschränkung, dass Definition voll expandierbar sein muss und bei der Zuweisung auchexpandiert wird.

Beispiel: Die Wurst für den Wurstsalat kann unterschiedlich geschnitten werden. So wäre esdenkbar, dass der Aufschnitt einfach ungeschnitten bleibt oder in grobe oder feineStreifen geschnitten werden soll. Diese Information soll in der Anweisung \Schnittgespeichert werden.\FamilyNumericalKey{Fleischermeister}%

{SalatSchnitt}{Schnitt}{%{Kein}{Kein},{Nein}{Kein},%{Grob}{Grob},%{Fein}{Fein}%

}

Dass nicht geschnitten werden soll, kann in diesem Fall vom Anwender sowohl mit\FamilyOptions{Fleischermeister}{SalatSchnitt=Kein}

als auch mit\FamilyOptions{Fleischermeister}{SalatSchnitt=Nein}

angegeben werden. In beiden Fällen würde \Schnitt mit dem Inhalt Kein definiert.Es kann durchaus sinnvoll sein, dem Anwender wie in diesem Beispiel mehrere Wertefür denselben Zweck anzubieten.Nun ist es sehr wahrscheinlich, dass die Schnittart nicht ausgegeben, sondern späterausgewertet werden soll. In diesem Fall sind die textuellen Definitionen aber eherunpraktisch. Definiert man den Schlüssel hingegen als\FamilyNumericalKey{Fleischermeister}%

{SalatSchnitt}{Schnitt}{%

Kapitel 12: Grundlegende Funktionen im Paket scrbase 351

{Kein}{0},{Nein}{0},%{Grob}{1},%{Fein}{2}%

}

so kann später einfach in der Form\ifcase\Schnitt

% ungeschnitten\or

% grob geschnitten\else

% fein geschnitten\fi

unterschieden werden.

Intern wird von \FamilyNumericalKey dann \DefineFamilyKey mit der Anweisung\FamilySetNumerical verwendet. Wird an einen solchen Schlüssel ein unbekannter Wert über-geben, so wird von \FamilySetNumerical Anweisung \FamilyUnknownKeyValue mit den Ar-gumenten Familie , Schlüssel und Wert aufgerufen. Dies führt zu einer Fehlersignalisierungin \FamilyKeyState mit Hilfe des Status \FamilyKeyStateUnknownValue und beispielsweisebei der Verwendung als lokale Option zu einer Fehlermeldung. Ebenso wird beim Aufruf von\FamilySetNumerical auch der Erfolg via \FamilyKeyStateProcessed in \FamilyKeyStatesignalisiert.

\FamilyCounterKey[Mitglied ]{Familie }{Schlüssel }[Säumniswert ]{LATEX-Zähler }\FamilySetCounter{Familie }{Schlüssel }{LATEX-Zähler }{Wert }

Währendv3.12 bei \FamilyNumericalKey ein Makro aufgrund eines symbolischen Wertes auf einenkorrespondierenden nummerischen Wert gesetzt wurde, gibt es natürlich auch Fälle, in denenein Schlüssel direkt einen LATEX-Zähler repräsentiert, dem unmittelbar ein nummerischerWert zugewiesen werden soll. Dazu dient die Anweisung \FamilyCounterKey, von der in-tern dann \FamilySetCounter aufgerufen wird. Dabei finden einige grundlegende Prüfungendes Wert -Arguments statt um festzustellen, ob dieses Argument für eine Zuweisung an einenZähler in Frage kommt. Die Zuweisung findet nur statt, wenn diese Prüfungen gelingen. Al-lerdings können hier nicht alle Fehler erkannt werden, so dass eine falsche Zuweisung auchzu einer Fehlermeldung von TEX selbst führen kann. Erkannte Fehler werden hingegen über\FamilyKeyStateUnknownValue signalisiert.Wurdev3.15 kein Wert übergeben, so wird stattdessen der Säumniswert eingesetzt. Falls kein

Säumniswert angegeben wird, kann später der Schlüssel nur mit Wertübergabe verwendetwerden.

Kapitel 12: Grundlegende Funktionen im Paket scrbase 352

\FamilyCounterMacroKey[Mitglied ]{Familie }{Schlüssel }[Säumniswert ]{Makro }\FamilySetCounterMacro{Familie }{Schlüssel }{Makro }{Wert }

Diesev3.12 beiden Anweisungen unterscheiden sich von den zuvor erklärten \FamilyCounterKeyund \FamilySetCounter nur dadurch, dass nicht ein LATEX-Zähler auf einen Wert gesetztwird, sondern ein Makro mit diesem Wert definiert wird. Auch dabei wird Wert lokal einemZähler zugewiesen und dann dessen expandierter Wert verwendet. Es gilt daher der Wert zumZeitpunkt des Aufrufs der Option.

\FamilyLengthKey[Mitglied ]{Familie }{Schlüssel }[Säumniswert ]{Länge }\FamilySetLength{Familie }{Schlüssel }{Länge }{Wert }\FamilyLengthMacroKey[Mitglied ]{Familie }{Schlüssel }[Säumniswert ]{Makro }\FamilySetLengthMacro{Familie }{Schlüssel }{Makro }{Wert }\FamilyUseLengthMacroKey[Mitglied ]{Familie }{Schlüssel }[Säumniswert ]{Makro }\FamilySetUseLengthMacro{Familie }{Schlüssel }{Makro }{Wert }

Überv3.12 \FamilyLengthKey kann ein Schlüssel definiert werden, der eine Länge repräsentiert.Dabei spielt es keine Rolle, ob eine LATEX-Länge, ein TEX-Abstand oder eine TEX-Ausdehnungals Länge verwendet wird. Intern wird die Länge über \FamilySetLength gesetzt. Dabeifinden einige grundlegende Prüfungen des Wert -Arguments statt um festzustellen, ob diesesArgument für eine Zuweisung an eine Länge in Frage kommt. Die Zuweisung findet nur statt,wenn diese Prüfungen gelingen. Allerdings können hier nicht alle Fehler erkannt werden, sodass eine falsche Zuweisung auch zu einer Fehlermeldung von TEX selbst führen kann. ErkannteFehler werden hingegen über \FamilyKeyStateUnknownValue signalisiert.

Wurdev3.15 kein Wert übergeben, so wird stattdessen der Säumniswert eingesetzt. Falls keinSäumniswert angegeben wird, kann später der Schlüssel nur mit Wertübergabe verwendetwerden.Bei Verwendung der Anweisungen \FamilyLengthMacroKey und

\FamilyUseLengthMacroKey beziehungsweise \FamilySetLengthMacro und\FamilySetUseLengthMacro findet die Speicherung des Wertes nicht in einer Länge , sondernin einem Makro statt. Dabei wird bei \FamilyLengthMacroKey und \FamilySetLengthMacrovergleichbar zu \setlength der aktuelle Wert zum Zeitpunkt des Aufrufs der beidenAnweisungen in Makro gespeichert. Dagegen wird bei \FamilyUseLengthMacroKeyv3.20 und\FamilySetUseLengthMacro Wert selbst gespeichert. Damit wird Wert dann bei jederVerwendung von Makro neu ausgewertet.

\FamilyStringKey[Mitglied ]{Familie }{Schlüssel }[Säumniswert ]{Makro }\FamilyCSKey[Mitglied ]{Familie }{Schlüssel }[Säumniswert ]{Makronamen }

Hier wird nunv3.08 ein Schlüssel definiert, der jeden beliebigen Wert annehmen kann. Der Wert wirdin dem angegebenen Makro gespeichert. Wird das optionale Argument für den Säumniswertweggelassen, so entspricht \FamilyStringKey:

Kapitel 12: Grundlegende Funktionen im Paket scrbase 353

\DefineFamilyKey[Mitglied ]{Familie }{Schlüssel }{\defMakro {#1}}

Existiert das optionale Argument für den Säumniswert so entspricht die Anweisung:\DefineFamilyKey[Mitglied ]{Familie }{Schlüssel }

[Säumniswert ]{\defMakro {#1}\FamilyKeyStateProcessed}

Beispiel: In der Voreinstellung sollen 250 g Wurstsalat erzeugt werden. Die Menge soll jedocheinfach per Option geändert werden können. Dazu wird die zu erstellende Mengeim Makro \Salatgewicht gespeichert. Die Option, über die das Gewicht geändertwerden kann, soll ebenfalls Salatgewicht heißen:

\newcommand*{\Salatgewicht}{250g}\FamilyStringKey{Fleischermeister}%

{Salatgewicht}[250g]%{\Salatgewicht}

Soll nach einer Änderung wieder die Standardmenge hergestellt werden, so kannder Anwender die Option einfach ohne Gewichtsangabe aufrufen:\FamilyOptions{Fleischermeister}{Salatgewicht}

Das ist möglich, weil die Standardmenge bei der Definition auch als Säumniswertangegeben wurde.

In diesem Fall existieren keine unbekannten Werte, da alle Werte schlicht für eine Makrodefini-tion verwendet werden. Es ist jedoch zu beachten, dass in der Wertzuweisung an den Schlüsselkeine Absätze enthalten sein dürfen.Imv3.25 Unterschied zu \FamilyStringKey erwartet \FamilyCSKey kein Makro als letztes Argu-

ment, sondern lediglich den Namen eines Makros, also beispielsweise nicht {\Salatgewicht},sondern {Salatgewicht}.

\FamilyUnknownKeyValue{Familie }{Schlüssel }{Wert }{Werteliste }

Diese Anweisung signalisiert über \FamilyKeyState einen Fehler aufgrund eines unbekanntenoder unerlaubten Wertes. Dabei wird als Werteliste eine durch Komma separierte Liste vonerlaubten Werten der Form: ‘Wert ’, ‘Wert ’ . . . erwartet. Allerdingsv3.12 wird die Wertelistederzeit nicht ausgewertet.

Beispiel: Für den Aufschnitt soll nun zusätzlich wählbar sein, ob er grob oder fein geschnittenwerden soll. Dabei ist grob die Voreinstellung, die auch dann verwendet werden soll,wenn nicht angegeben wird, wie der Aufschnitt zu schneiden ist.\@ifundefined{if@Feinschnitt}{%\expandafter

Kapitel 12: Grundlegende Funktionen im Paket scrbase 354

\newif\csname if@Feinschnitt\endcsname}{}%\@ifundefined{if@Aufschnitt}{%\expandafter\newif\csname if@Aufschnitt\endcsname}{}

\DefineFamilyKey{Fleischermeister}%{Aufschnitt}[true]{%

\FamilySetBool{Fleischermeister}{Aufschnitt}%{@Aufschnitt}%{#1}%

\ifx\FamilyKeyState\FamilyKeyStateProcessed\@Feinschnittfalse

\else\ifstr{#1}{fein}{%\@Aufschnitttrue\@Feinschnittrue\FamilyKeyStateProcessed

}{%\FamilyUnknownKeyValue{Fleichermeister}%

{Aufschnitt}%{#1}{%‘true’, ‘on’, ‘yes’,‘false‘, ‘off‘, ‘no’,‘fein’%

}%}%

\fi}%

Zunächst wird versucht, den booleschen Schalter für Aufschnitt über\FamilySetBool zu setzen. Gelingt dies, wurde also \FamilyKeyState zu\FamilyKeyStateProcessed definiert, wird der Feinschnitt abgeschaltet. Ande-renfalls wird überprüft, ob anstelle eines gültigen Wertes für einen booleschenSchalter fein übergeben wurde. In diesem Fall wird sowohl der Feinschnitt, alsauch Aufschnitt aktiviert und mit Hilfe von \FamilyKeyStateProcessed derErfolgs-Status gesetzt. Ist auch das nicht der Fall, wird der von \FamilySetBoolsignalisierte Fehler-Zustand neu auf \FamilyKeyStateUnknownValue gesetzt. DieListe der üblichen erlaubten Werte von \FamilySetBool wird dabei um feinergänzt. Da diese Liste jedoch inzwischen nicht mehr verwendet wird, hätte manauf den Aufruf von \FamilyUnknownKeyValue im Beispiel auch einfach verzichtenund damit den Fehlerstatus von \FamilySetBool übernehmen können.Die bei den Tests verwendete Anweisung \ifstr ist auf Seite 358 in Abschnitt 12.3erklärt.

Kapitel 12: Grundlegende Funktionen im Paket scrbase 355

\FamilyElseValues

Inv3.12 früheren Versionen von scrbase konnte man über die Anweisung \FamilyElseValuesweitere erlaubte Werte für die Bearbeitung durch \FamilyUnknownKeyValue ablegen,die dann ebenfalls in einer Fehlermeldung mit ausgegeben wurden. Seit Version 3.12gibt \FamilyUnknownKeyValue keine Fehlermeldungen mehr aus, sondern setzt nur noch\FamilyKeyState entsprechend. Damit ist die Verwendung von \FamilyElseValue ebenfallsüberholt. Ihre Verwendung wird jedoch erkannt und führt dann zu einer Aufforderung, denCode entsprechend anzupassen.

12.3. Verzweigungen

Das Paket scrbase stellt eine ganze Reihe von Verzweigungsanweisungen zur Verfügung. Dabeiwird nicht auf die TEX-Syntax von Verzweigungen wie beispielsweise\iftrue

...\else

...\fi

gebaut, sondern es wird die LATEX-Syntax mit Argumenten eingesetzt, wie man sie auch vonLATEX-Anweisungen wie \IfFileExists, \@ifundefined, \@ifpackageloaded und vielen wei-teren kennt. Einige Paketautoren ziehen es allerdings vor, die TEX-Syntax auch für Anwenderin die LATEX-Ebene zu bringen. Da es sich bei den Verzweigungen von scrbase um recht grund-legende Möglichkeiten handelt, ist die Wahrscheinlichkeit gegeben, dass dabei gleichnamigeAnwenderanweisungen verwendet würden. Dies könnte selbst bei eigentlich gleicher Semantikzu einem Problem aufgrund unterschiedlichen Syntax führen. scrbase geht daher auf Nummersicher.

internalonly=Wert

Von scrbase werden einige Verzweigungsanweisungen bereitgestellt. Dabei verwendet es primärdie Bezeichnungen \scr@Name . Es handelt sich somit um interne Anweisungen. Diese werdenauch intern von KOMA-Script verwendet. Paket- und Klassenautoren können diese Anweisun-gen ebenfalls verwenden, sollten sie aber nicht umdefinieren. Da einige dieser Anweisungenauch für Benutzer nützlich sein können, werden die gleichen Anweisungen normalerweise auchals \Name bereitgestellt. Da eventuell andere Pakete gleichnamige Anweisungen mit andererSyntax bereitstellen könnten und es so zu Konflikten kommen könnte, kann der Anwenderdie Definition von \Name verhindern. Dazu gibt er entweder die Option ohne Wertangabe an.In diesem Fall werden nur die internen Verzweigungsanweisungen definiert. Oder er gibt ge-nau die Anweisungen, die nicht definiert werden sollen, als Wert an, wobei er »\« durch »/«ersetzt.

Kapitel 12: Grundlegende Funktionen im Paket scrbase 356

Paket- und Klassenautoren sollten diese Option normalerweise nicht verwenden. Anwenderkönnen sie mit oder ohne Wertangabe entweder als globale Option bei \documentclass oderper \PassOptionsToPackage angeben.

Beispiel: Der Anwender will nicht, dass die Anweisungen \ifVTeX und\ifundefinedorrelax von scrbase definiert werden. Also verwendet er beimLaden der Klasse:\documentclass[%internalonly=/ifVTeX/ifundefinedorrelax%

]{foo}

Der Klassenname foo wird hier als Platzhalter für irgendeine Klasse verwendet.Die Anweisungen \ifVTeX und \ifundefinedorrelax werden im weiteren Verlaufdieses Abschnittes erklärt.

Paket- und Klassenautoren sollten wie KOMA-Script selbst auch die internen Namen ver-wenden. Zur Vollständigkeit sind in den nachfolgenden Erklärungen aber auch die Anwen-deranweisungen angegeben.

\scr@ifundefinedorrelax{Name }{Dann-Teil }{Sonst-Teil }\ifundefinedorrelax{Name }{Dann-Teil }{Sonst-Teil }

Diese Anweisung funktioniert prinzipiell wie \@ifundefined aus dem LATEX-Kern (siehe[BCJ+05]). Es wird also der Dann-Teil ausgeführt, wenn Name der Name einer undefinier-ten Anweisung oder \Name derzeit \relax ist. Im Unterschied zu \@ifundefined wird wederHash-Speicher belegt noch \Name zu \relax, wenn \Name zuvor undefiniert war.

\ifnotundefined{Name }{Dann-Teil }{Sonst-Teil }

Ist die Anweisung mit dem angegebenen Namen bereits definiert wird der Dann-Teil ausge-führt, anderenfalls der Sonst-Teil . Da es bei ε-TEX bereits ein Primitiv \ifdefined gibt,musste leider diese etwas unhandliche Bezeichnung gewählt werden. Von dieser Anweisunggibt es keine interne Variante.

\scr@ifluatex{Dann-Teil }{Sonst-Teil }

Wirdv3.21 mit luaTEX gearbeitet, wird der Dann-Teil ausgeführt, anderenfalls der Sonst-Teil .Diese Unterscheidung ist nur sehr selten wirklich von Nutzen. In der Regel sollte man besserauf die gewünschte Anweisung testen. Von dieser Anweisung gibt es kein Benutzeräquivalent.Verwenden Sie stattdessen bei Bedarf das Paket ifluatex (siehe [Obe16a]).

Kapitel 12: Grundlegende Funktionen im Paket scrbase 357

\scr@ifpdftex{Dann-Teil }{Sonst-Teil }\ifpdftex{Dann-Teil }{Sonst-Teil }

Wird mit pdfTEX gearbeitet, wird der Dann-Teil ausgeführt, anderenfalls der Sonst-Teil .Dabei ist es unerheblich, ob tatsächlich eine PDF-Datei ausgegeben werden soll oder nicht.Diese Unterscheidung ist nur sehr selten wirklich von Nutzen. In der Regel sollte man besserauf die gewünschte Anweisung testen.

\scr@ifVTeX{Dann-Teil }{Sonst-Teil }\ifVTeX{Dann-Teil }{Sonst-Teil }

Wird mit VTEX gearbeitet, wird der Dann-Teil ausgeführt, anderenfalls der Sonst-Teil .Diese Unterscheidung ist nur sehr selten wirklich von Nutzen. In der Regel sollte man besserauf die gewünschte Anweisung testen.

\scr@ifpdfoutput{Dann-Teil }{Sonst-Teil }\ifpdfoutput{Dann-Teil }{Sonst-Teil }

Wird eine PDF-Datei erzeugt, wird der Dann-Teil ausgeführt, anderenfalls der Sonst-Teil .Dabei ist es unerheblich, ob die PDF-Datei mit Hilfe von luaTEX, pdfTEX, VTEX oder X ETEXerzeugt wird.

\scr@ifpsoutput{Dann-Teil }{Sonst-Teil }\ifpsoutput{Dann-Teil }{Sonst-Teil }

Wird eine PostScript-Datei erzeugt, wird der Dann-Teil ausgeführt, anderenfalls derSonst-Teil . VTEX kann PostScript direkt erzeugen, was hier erkannt wird. Wird hinge-gen kein VTEX verwendet, ist aber ein Schalter \if@dvips definiert, so wird die Entscheidungdarüber getroffen. KOMA-Script stellt \if@dvips in typearea bereit.

\scr@ifdvioutput{Dann-Teil }{Sonst-Teil }\ifdvioutput{Dann-Teil }{Sonst-Teil }

Wird eine DVI-Datei erzeugt, so wird der Dann-Teil ausgeführt, anderenfalls derSonst-Teil . Es wird immer dann davon ausgegangen, dass eine DVI-Datei erzeugt wird,wenn keine direkte Ausgabe einer PDF- oder Postscript-Datei erkannt werden kann.

\if@atdocument Dann-Teil \else Sonst-Teil \fi

Diese Verzweigung existiert ganz bewusst nur als interne Anweisung. Dabei entspricht\if@atdocument in der Dokumentpräambel \iffalse, nach \begin{document} entspricht\if@atdocument hingegen \iftrue. Klassen und Paketautoren können dieses Anweisungmanchmal sinnvoll nutzen, wenn sich Anweisungen in der Dokumentpräambel anders verhal-ten sollen als innerhalb des Dokuments. Es ist zu beachten, dass es sich bei dieser Anweisungum eine Verzweigung in TEX-Syntax und nicht in LATEX-Syntax handelt!

Kapitel 12: Grundlegende Funktionen im Paket scrbase 358

\ifstr{Zeichenfolge }{Zeichenfolge }{Dann-Teil }{Sonst-Teil }

Die beiden Argumente Zeichenfolge werden expandiert und dann verglichen. Sind sie dabeigleich, so wird der Dann-Teil ausgeführt, anderenfalls der Sonst-Teil . Von dieser Anweisunggibt es keine interne Variante.

\ifstrstart{Zeichenfolge }{Zeichenfolge }{Dann-Teil }{Sonst-Teil }

Diev3.12 beiden Argumente Zeichenfolge werden expandiert und dann verglichen. Beginnt dieerste Zeichenfolge, von Leerzeichen abgesehen, mit der zweiten Zeichenfolge, so wird derDann-Teil ausgeführt, anderenfalls der Sonst-Teil . Von dieser Anweisung gibt es keineinterne Variante.

\ifisdimen{Code }{Dann-Teil }{Sonst-Teil }

Wennv3.12 die Expansion von Code in einem \dimen, also einem TEX-Längenregister, resultiert,wird der Dann-Teil ausgeführt, anderenfalls der Sonst-Teil . Die Anweisung ist nicht vollexpandierbar. Von dieser Anweisung gibt es keine interne Variante.

\ifisdimension{Code }{Dann-Teil }{Sonst-Teil }

Wennv3.12 die Expansion von Code in etwas resultiert, das syntaktisch dem Wert einer Längeentspricht, wird der Dann-Teil ausgeführt, anderenfalls der Sonst-Teil . Es ist zu beachten,dass derzeit unbekannte Einheiten zu einer Fehlermeldung führen. Die Anweisung ist nichtvoll expandierbar. Von dieser Anweisung gibt es keine interne Variante.

\ifdimen{Zeichenfolge }{Dann-Teil }{Sonst-Teil }

Der Dann-Teil wird ausgeführt, wenn die einfache Expansion der Zeichenfolge eine gültigeLänge mit einer gültigen Längeneinheit ist. Anderenfalls wird der Sonst-Teil verwendet. Vondieser Anweisung gibt es keine interne Variante.

\ifisdimexpr{Code }{Dann-Teil }{Sonst-Teil }

Wennv3.12 die Expansion von Code in einer \dimexpr, also einem ε-TEX-Längenausdruck resul-tiert, wird der Dann-Teil ausgeführt, anderenfalls der Sonst-Teil . Es ist zu beachten, dassfehlerhafte Ausdrücke zu Fehlermeldungen führen! Die Anweisung ist nicht voll expandierbar.Von dieser Anweisung gibt es keine interne Variante.

Kapitel 12: Grundlegende Funktionen im Paket scrbase 359

\ifisskip{Code }{Dann-Teil }{Sonst-Teil }

Wennv3.12 die Expansion von Code in einem \skip, also einem TEX-Abstand, resultiert, wird derDann-Teil ausgeführt, anderenfalls der Sonst-Teil . Die Anweisung ist nicht voll expandier-bar. Von dieser Anweisung gibt es keine interne Variante.

\ifisglue{Code }{Dann-Teil }{Sonst-Teil }

Wennv3.12 die Expansion von Code in etwas resultiert, das syntaktisch dem Wert eines Abstandesentspricht, wird der Dann-Teil ausgeführt, anderenfalls der Sonst-Teil . Es ist zu beachten,dass derzeit unbekannte Einheiten zu einer Fehlermeldung führen. Die Anweisung ist nichtvoll expandierbar. Es gibt keine interne Variante.

\ifisglueexpr{Code }{Dann-Teil }{Sonst-Teil }

Wennv3.12 die Expansion von Code in einer \glueexpr, also einem ε-TEX-Abstandsausdruck resul-tiert, wird der Dann-Teil ausgeführt, anderenfalls der Sonst-Teil . Es ist zu beachten, dassfehlerhafte Ausdrücke zu Fehlermeldungen führen! Die Anweisung ist nicht voll expandierbar.Von dieser Anweisung gibt es keine interne Variante.

\ifiscounter{Zähler }{Dann-Teil }{Sonst-Teil }

Wennv3.12 Zähler ein definierter LATEX-Zähler ist, wird der Dann-Teil ausgeführt, anderenfallsder Sonst-Teil . Die Anweisung ist nicht voll expandierbar. Von dieser Anweisung gibt eskeine interne Variante.

\ifiscount{Code }{Dann-Teil }{Sonst-Teil }

Wennv3.12 die Expansion von Code in einem \count, also einem TEX-Zähler, resultiert, wird derDann-Teil ausgeführt, anderenfalls der Sonst-Teil . Die Anweisung ist nicht voll expandier-bar. Für einen Test auf einen LATEX-Zähler siehe \ifiscounter. Von dieser Anweisung gibtes keine interne Variante.

\ifisinteger{Code }{Dann-Teil }{Sonst-Teil }

Wennv3.12 die Expansion von Code in etwas resultiert, das syntaktisch dem Wert eines Zählersentspricht, also eine negative oder positive ganze Zahl ist, wird der Dann-Teil ausgeführt,anderenfalls der Sonst-Teil . Die Anweisung ist nicht voll expandierbar. Von dieser Anweisunggibt es keine interne Variante.

Kapitel 12: Grundlegende Funktionen im Paket scrbase 360

\ifnumber{Zeichenfolge }{Dann-Teil }{Sonst-Teil }

Der Dann-Teil wird ausgeführt, wenn die einfache Expansion der Zeichenfolge nur ausZiffern besteht. In allen anderen Fällen wird der Sonst-Teil verwendet. Von dieser Anweisunggibt es keine interne Variante.

\ifisnumexpr{Code }{Dann-Teil }{Sonst-Teil }

Wennv3.12 die Expansion von Code in einer \numexpr, also einem ε-TEX-Zahlenausdruck resul-tiert, wird der Dann-Teil ausgeführt, anderenfalls der Sonst-Teil . Es ist zu beachten, dassfehlerhafte Ausdrücke zu Fehlermeldungen führen! Die Anweisung ist nicht voll expandierbar.Von dieser Anweisung gibt es keine interne Variante.

\IfActiveMkBoth{Dann-Teil }{Sonst-Teil }

Beiv3.27 der Umschaltung zwischen automatischen und manuellen Kolumnentiteln, verwendet derLATEX-Kern die Anweisung \@mkboth. Im Falle automatischer Kolumnentitel setzt diese norma-lerweise sowohl den linken als auch rechten Markenanteil. Im Falle manueller Kolumnentitelnsetzt sie keine Marke. Will man wissen, ob \@mkboth Marken setzt oder nicht, so verwendenviele Pakete einen Vergleich entweder mit \markboth oder \@gobbletwo. Dies deckt aber nichtalle Fälle von möglichen Umdefinierungen von \@mkboth ab. Daher testet \IfActiveMkBoth,ob \@mkboth tatsächlich zum Setzen einer Marke führen würde und deckt dabei sogar die Ver-wendung von \marks für die Definition von \@mkboth ab. Wird eine solches aktives \@mkbothentdeckt, so wird der Dann-Teil ausgeführt. In allen anderen Fällen wird der Sonst-Teilausgeführt.

Beispiel: Angenommen, Sie wollen in einem Paket im Fall der Verwendung automatischerKolumnentitel, beispielsweise durch den Seitenstil headings nur die rechte Mar-ke setzen und die linke unverändert lassen, wohingegen bei Verwendung manuellerKolumentitel die Marken unverändert bleiben sollen. In einem ersten Ansatz ver-wenden Sie dafür:\ifx\@mkboth\markboth \markright{Kolumnentitel}\fi

Etwas später entdecken Sie, dass irgendein Paket nicht wie gewohnt\let\@mkboth\markboth

sondern\renewcommand{\@mkboth}{\markboth}

verwendet hat, um automatische Kolumnentitel zu aktivieren. Daher ruft Ihr Ver-gleich niemals die \markright-Anweisung auf. Daher ändern Sie den Vergleich obenzu\ifx\@mkboth\@gobbletwo\else \markright{Kolumnentitel}\fi

Kapitel 12: Grundlegende Funktionen im Paket scrbase 361

Leider wird nun \markright auch bei manuellen Kolumentiteln aufgerufen, weilirgend jemand für diesen Fall\renewcommand{\@mkboth}[2]{%

\typeout{DEBUG: ignoring running head setting}%}

definiert hat.Beide Probleme sind jedoch mit Hilfe von scrbase einfach zu lösen:\IfActiveMKBoth{\markright{Kolumnentitel}}{}

Noch einfacher lässt sich das Problem aus dem Beispiel übrigens mit Hilfe von \@mkright ausPaket scrlayer lösen (siehe Abschnitt 17.6, Seite 467).

12.4. Definition sprachabhängiger Bezeichner

Anfänger haben häufig Probleme damit, sprachabhängige Begriffe wie \listfigurename, inder Voreinstellung meist »List of Figures« beziehungsweise in Deutsch: »Abbildungsverzeich-nis«, zu ändern. Werden diese beispielsweise einfach mit \renewcommand in der Dokument-präambel umdefiniert, so überleben sie eine spätere Umschaltung der Sprache nicht. Bei Ver-wendung von babel wird die Umdefinierung in der Dokumentpräambel bereits von \begin{document} wieder überschrieben.Normalerweise muss man zur Definition oder zur Änderung sprachabhängiger Begriffe An-

weisungen wie \captionsngerman so umdefinieren, dass zusätzlich zu den bisherigen Begriffenauch die neuen oder geänderten definiert werden. Erschwert wird dieses Vorhaben dadurch,dass beim Laden eines Pakets wie german oder ngerman diese Anweisungen von den Paketenerneut definiert werden. Bei den genannten Paketen geschieht dies leider in einer Form, die allezuvor gemachten Änderungen zunichte macht. Aus diesem Grund ist es sinnvoll, die Änderun-gen mit Hilfe von \AtBeginDocument bis \begin{document}, also bis nach dem Laden allerPakete, zu verzögern. Auch der Anwender muss entweder von \AtBeginDocument Gebrauchmachen oder aber seine Änderungen nicht in die Dokumentpräambel, sondern hinter \begin{document} einfügen.Darüber hinaus kommt erschwerend hinzu, dass einige Pakete zusätzliche, sprachabhängige

Begriffe in \captionsSprache definieren, während andere dafür \extrasSprache verwenden.So muss der Anwender sich schon sehr genau auskennen, um die richtige Anweisung auf dierichtige Weise zu ergänzen.Das Paket scrbase bietet dem Anwender daher für die Definition und Änderung selbst ei-

nige zusätzliche Anweisungen, die ihn von vielen dieser Überlegungen entlasten. Gleichzeitigerlauben diese Befehle, die sprachabhängigen Begriffe mehrerer Dialekte oder Ausprägungeneiner Sprache gleichzeitig zu definieren oder zu ändern.

Kapitel 12: Grundlegende Funktionen im Paket scrbase 362

\defcaptionname{Sprachliste }{Begriff }{Inhalt }\providecaptionname{Sprachliste }{Begriff }{Inhalt }\newcaptionname{Sprachliste }{Begriff }{Inhalt }\renewcaptionname{Sprachliste }{Begriff }{Inhalt }\defcaptionname*{Sprachliste }{Begriff }{Inhalt }\providecaptionname*{Sprachliste }{Begriff }{Inhalt }\newcaptionname*{Sprachliste }{Begriff }{Inhalt }\renewcaptionname*{Sprachliste }{Begriff }{Inhalt }

Mit Hilfe dieser vier Anweisungen und ihrer Sternvarianten ist es möglich, einem Begriff inAbhängigkeit der Sprache einen Inhalt zuzuweisen. Mehrere Sprachen können durch Kommavoneinander getrennt als Sprachlistev3.12 angegeben werden.Der Begriff ist immer ein Makro. Die Arbeitsweise der Anweisungen unterscheidet sich je

nachdem, ob eine Sprache und ein Begriff innerhalb der Sprache zum Zeitpunkt des Aufrufsbereits definiert ist.Ist eine Sprache nicht definiert, so tut \providecaptionname nichts weiter, als dies in der

log-Datei zu vermerken. Dabei wird für jede Sprache nur einmal eine entsprechende Infor-mation in die log-Datei geschrieben. Ist die Sprache definiert, enthält aber bisher keinenentsprechenden Begriff , so wird er mit dem angegebenen Inhalt definiert. Ist der Begriffhingegen in der Sprache bereits definiert, so wird er nicht umdefiniert, sondern ebenfalls einentsprechender Hinweis in die log-Datei geschrieben.

Ist dagegen bei \newcaptionname eine Sprache nicht definiert, dann wird diese neu defi-niert, indem eine entsprechende Anweisung definiert wird. Für die Sprache ngerman wäre dasbeispielsweise \captionsngerman. Außerdem wird darüber auch in der log-Datei informiert.Ist die Sprache definiert, der Begriff in dieser Sprache aber noch nicht vorhanden, so wirder mit dem gewünschten Inhalt definiert. Ist der Begriff in der Sprache bereits vorhanden,so wird eine Fehlermeldung ausgegeben.Die Anweisung \renewcaptionname verhält sich noch einmal anders. Ist eine Sprache nicht

definiert, so wird eine Fehlermeldung ausgegeben. Ist die Sprache definiert, der Begriff indieser Sprache jedoch nicht, so wird ebenfalls eine Fehlermeldung ausgegeben. Ist der Begriffin der Sprache definiert, so wird er auf den gewünschten Inhalt umdefiniert.

Diev3.12 Anweisung \defcaptionname definiert einen Begriff immer, überschreibt also eventu-ell vorhandene Definitionen. Wie bei \providecaptionname braucht eine angegebene Sprachenicht definiert zu sein.KOMA-Script selbst verwendet \providecaptionname um die Begriffe aus Abschnitt 22.5,

Seite 556 zu definieren.

Beispiel: Möchten Sie »Abb.« statt »Abbildung« in den Abbildungsunterschriften, so errei-chen Sie dies mit:\renewcaptionname{ngerman}{\figurename}{Abb.}

Kapitel 12: Grundlegende Funktionen im Paket scrbase 363

Soll dieselbe Änderung nicht nur für ngerman, sondern auch für die Sprachennaustrian und nswissgerman, also für Österreichisch und Schweizer Deutsch gel-ten, so ist es nicht notwendig zwei weitere Anweisungen:\renewcaptionname{naustrian}{\figurename}{Abb.}\renewcaptionname{nswissgerman}{\figurename}{Abb.}

hinzuzufügen. Stattdessen kann einfach, die Sprachliste erweitert werden:\renewcaptionname{ngerman,naustrian,nswissgerman}%

{\figurename}{Abb.}

In gleicher Weise können auch german, austrian und swissgerman, also Deutsch,Österreichisch und Schweizer Deutsch nach der veralteten Rechtschreibung, hinzu-gefügt werden.

Die Sprachen swissgerman und nswissgerman werden übrigens von älteren Versionenvon babel noch nicht unterstützt. Sie sind erst seit Dezember 2013 Bestandteil des deut-schen Sprachpakets für babel. Für die Anweisungen \defcaptionname, \newcaptionname und\providecaptionname spielt dies kaum eine Rolle, da diese auch Begriffe für nicht existieren-de Sprachen definieren können. Da mit \renewcaptionname jedoch nur existierende Begriffe vonexistierenden Sprachen umdefiniert werden können, resultiert die Umdefinierung für nswissgermanund swissgerman bei Verwendung einer älteren Version von babel in einer entsprechenden Feh-lermeldung.Seit KOMA-Script 3.12v3.12 ist es auch nicht mehr erforderlich, die Definierung oder Um-

definierung mit Hilfe von \AtBeginDocument bis \begin{document} zu verzögern. Statt-dessen erledigt scrbase dies selbst, falls die Anweisungen in der Dokumentpräambel auf-gerufen werden. Außerdem prüft scrbase nun auch, ob ein umzudefinierender Begriff stattin \captionsSprache in \extrasSprache zu definieren ist. Die neuen Sternvarianten derBefehle verwenden grundsätzlich \extrasSprache , da dessen Definitionen in der Regelnach \captionsSprache Anwendung finden. Damit funktioniert nun in der Regel auchdas Umdefinieren von sprachabhängigen Bezeichnern von Paketen wie hyperref, die dafür\extrasSprache verwenden.

In Tabelle 12.1 ist ein Überblick über die üblicherweise von Klassen und Sprachpaketendefinierten Begriffe und deren Verwendung zu finden.

Tabelle 12.1.: Überblick über sprachabhängige Begriffe in den üblichen Sprachpaketen

\abstractnameÜberschrift für die Zusammenfassung

. . .

Kapitel 12: Grundlegende Funktionen im Paket scrbase 364

Tabelle 12.1.: Überblick über übliche sprachabhängige Begriffe (Fortsetzung)

\alsoname»Siehe auch« bei ergänzenden Verweisen im Stichwortverzeichnis

\appendixname»Anhang« in der Kapitelüberschrift eines Anhangs

\bibnameÜberschrift für das Literaturverzeichnis

\ccnameSpitzmarke für den Verteiler in Briefen

\chaptername»Kapitel« in der Kapitelüberschrift

\contentsnameÜberschrift für das Inhaltsverzeichnis

\enclnameSpitzmarke für die Anlagen bei Briefen

\figurenameSpitzmarke in der Abbildungsunterschrift

\glossarynameÜberschrift für das Glossar

\headtoname»An« im Briefkopf

\indexnameÜberschrift für das Stichwortverzeichnis

\listfigurenameÜberschrift für das Abbildungsverzeichnis

\listtablenameÜberschrift für das Tabellenverzeichnis

\pagename»Seite« in der Seitennummer von Briefen

. . .

Kapitel 12: Grundlegende Funktionen im Paket scrbase 365

Tabelle 12.1.: Überblick über übliche sprachabhängige Begriffe (Fortsetzung)

\partname»Teil« in der Teileüberschrift

\prefacenameÜberschrift für das Vorwort

\proofnameSpitzmarke bei Beweisen

\refnameÜberschrift für das Quellenverzeichnis

\seename»Siehe« bei Verweisen im Stichwortverzeichnis

\tablenameSpitzmarke in der Tabellenunter- bzw. -überschrift

12.5. Identifikation von KOMA-Script

Obwohl – oder gerade weil – scrbase ganz allgemein als Paket für Klassen- und Paketautorenkonzipiert ist, wird es natürlich von den KOMA-Script-Klassen und den meisten KOMA-Script-Paketen verwendet. Es enthält daher auch zwei Anweisungen, die in allen KOMA-Script-Klassen und allen grundlegenden KOMA-Script-Paketen vorhanden sind.

\KOMAScript

Diese Anweisung setzt schlicht die Wortmarke »KOMA-Script« in serifenloser Schrift undmit leichter Sperrung des in Versalien gesetzten Teils. \KOMAScript wird übrigens bei Be-darf von allen KOMA-Script-Klassen und -Paketen definiert. Die Definition erfolgt mit\DeclareRobustCommand. Da auch Pakete, die nicht zu KOMA-Script gehören, diese Wort-marke definieren können, sollte man die Anweisung jedoch nicht als Indiz für die Verwendungeines KOMA-Script-Pakets verstehen.

\KOMAScriptVersion

Bei KOMA-Script ist in dieser Anweisung die Hauptversion von KOMA-Script in der Form»Datum Version KOMA-Script« abgelegt. Diese Hauptversion ist für alle KOMA-Script-Klassen und alle KOMA-Script-Pakete, die von den Klassen verwendet werden, gleich. Daher

Kapitel 12: Grundlegende Funktionen im Paket scrbase 366

kann sie auch nach dem Laden von scrbase abgefragt werden. Diese Anleitung wurde beispiels-weise mit der KOMA-Script-Version »2019/10/12 v3.27 KOMA-Script« erstellt. Das Vorhan-densein dieser Anweisung ist ein starkes Indiz dafür, dass zumindest ein KOMA-Script-Paketverwendet wird.

12.6. Erweiterungen des LATEX-Kerns

In einigen Fällen stellt der LATEX-Kern selbst Anweisungen zur Verfügung, lässt aber ganzähnliche Anweisungen, die ebenfalls häufiger benötigt werden oder eigentlich nahe liegen,vermissen. Einige wenige solcher Anweisungen für Klassen- und Paketautoren stellt scrbasezur Verfügung.

\ClassInfoNoLine{Klassenname }{Information }\PackageInfoNoLine{Paketname }{Information }

Der LATEX-Kern bietet dem Klassen- und Paketautor zwar Anweisungen wie \PackageInfound \ClassInfo, um Informationen mit aktueller Zeilennummer in die Log-Datei zu schrei-ben. Er bietet neben \PackageWarning und \ClassWarning, die Warnungen mit aktuel-ler Zeilennummer ausgeben, auch die beiden Anweisungen \PackageWarningNoLine und\ClassWarningNoLine, um Warnungen ohne Zeilennummer auszugeben. Die naheliegendenAnweisungen \ClassInfoNoLine und \PackageInfoNoLine, um auch Informationen ohneZeilennummer in die Log-Datei zu schreiben, fehlen jedoch. Diese werden von scrbase bereitgestellt.

\l@addto@macro{Anweisung }{Erweiterung }

Der LATEX-Kern bietet mit \g@addto@macro eine interne Anweisung, um die Definition einesMakro Anweisung global um den Code Erweiterung zu erweitern. Das funktioniert in dieserForm nur für Makros ohne Argumente. Dennoch könnte man diese Anweisung in einigenFällen auch in einer Form benötigen, die lokal zur aktuellen Gruppe arbeitet. Diese wird mit\l@addto@macro von scrbase bereit gestellt. Eine Alternative stellt hier die Verwendung desPakets etoolbox oder xpatch dar, das eine ganze Reihe solcher Anweisungen für unterschiedlicheZwecke bietet (siehe [Leh11] beziehungsweise [Gre12]).

12.7. Erweiterungen der mathematischen Fähigkeiten von ε-TEX

Das für LATEX inzwischen verwendete und von KOMA-Script vorausgesetzte ε-TEX besitztmit \numexpr erweiterte Möglichkeiten zur Berechnung einfacher Ausdrücke mit TEX-Zählernund ganzen Zahlen. Als Operationen werden dabei die vier Grundrechenarten und Klammernunterstützt. Bei der Division wird korrekt gerundet. Manchmal sind weitere Operationen nütz-lich.

Kapitel 12: Grundlegende Funktionen im Paket scrbase 367

\XdivY{Dividend }{Divisor }\XmodY{Dividend }{Divisor }

Diev3.05a Anweisung \XdivY liefert den Wert des ganzzahligen Quotienten, die Anweisung \XmodYden Wert des Rests der Division mit Rest. Diese Art der Division ist nach der Gleichung

Dividend = Divisor ·Quotient + Rest

definiert, wobei Dividend, Divisor und Rest ganze Zahlen und Rest außerdem größer odergleich 0 und kleiner als Divisor ist. Der Divisor ist eine natürliche Zahl (ohne die 0).Der Wert kann jeweils zur Zuweisung an einen Zähler oder direkt innerhalb eines Ausdrucks

mit \numexpr verwendet werden. Zur Ausgabe als arabische Zahl ist \the voranzustellen.

12.8. Allgemeiner Mechanismus für mehrstufige HakenBeta-Feature

Der LATEX-Kern bietet selbst bereits einige wenige Stellen in der Verarbeitung eines Doku-ments, an denen die Ausführung zusätzlichen Codes eingehakt werden kann. Klassen- undPaketautoren dürften \AtBeginDocument und \AtEndDocument bestens bekannt sein. KOMA-Script bietet an einigen Stellen vergleichbares, beispielsweise um Code in die Ausführung vonGliederungsbefehlen einzuhaken. Über die Jahre zeigten sich dabei zwei Probleme:

• Es gibt nie genug Haken.

• Es gibt sowohl Code, der nur einmal ausgeführt werden soll, also quasi bei seiner Aus-führung wieder vom Haken fällt, als auch Code, der bei jedem Durchlaufen des Hakensauszuführen ist, also dauerhaft auf dem Haken bleibt.

Üblicherweise muss man zur Definition eines einzelnen Hakens eine Anweisung definieren, mitder Code für den jeweiligen Haken aufgesammelt wird. Dieser Code wird dann in einem weite-ren internen Makro abgelegt, das man an der Stelle einfügen muss, an der der aufgesammelteCode auszuführen ist. Je mehr Haken man einfügt, desto mehr solcher Anweisungen gibt es.Um sowohl Einmalcode als auch dauerhaften Code zu ermöglichen, benötigt es gegebenfallssogar zwei Haken und damit die doppelte Anzahl an zu definierenden Anweisungen.Das Beispiel der Gliederungsbefehle zeigt, dass sich das erste Problem teilweise an einem

einzigen Codeausführungspunkt noch verschärfen kann. Hier benötigt der eine Paketautorlediglich eine Möglichkeit für alle Gliederungsbefehle denselben Code auszuführen. Ein andererPaketautor hätte lieber, dass er nur bei bestimmten Gliederungsbefehlen unterschiedlichenCode ausführen kann. Es würde also sowohl ein allgemeiner Haken als auch ein Haken jeGliederungsbefehl benötigt. Das ganze dann wieder wegen des zweiten Problems verdoppelt.KOMA-Script bietet in scrbase daher einen verallgemeinerten Hakenmechanismus, der mehr-

stufige Haken sowohl für Einmalcode als auch für dauerhaften Code bereitstellt. Diese Hakenhaben aufgrund der Implementierung den Namen do-hook erhalten. Davon leitet sich auch derName der Anweisungen ab, mit denen sie gesteuert werden.

Kapitel 12: Grundlegende Funktionen im Paket scrbase 368

\ExecuteDoHook{Spezifikator }

ÜberBeta-Feature diese Anweisung werden Haken implementiert. Dabei bestimmt der Spezifikator denNamen des oder genauer der Haken. Der Spezifikator wird zur Analyse immer vollständigexpandiert.Der Spezifikator besteht allgemein aus durch Querstrichen, »/«, voneinander getrenn-

ten Zeichenfolgen. Von \ExecuteDoHook wird dann zunächst die Zeichenfolge vor dem erstenQuerstrich abgetrennt. Diese ist der Name. Der verbleibende Rest (ohne den Querstrich) istdas Argument. Dann wird der Code für den Haken mit diesem Namen ausgeführt. Anschlie-ßend wird erneut die vordere Zeichenfolge vom Rest abgetrennt und mit einem Querstrichhinten an den Namen angefügt und der Code für den so neu gebildeten Namen ausgeführt.Das geht so lange, bis der Code für den Haken mit dem Namen Spezifikator und leeremArgument ausgeführt wurde.Im einfachsten Fall besteht der Spezifikator aus einem einzelnen Namen. In diesem Fall

wird zunächst der dauerhafte Code für genau einen durch diesen Namen festgelegten Hakenmit leerem Argument ausgeführt.In jeder Stufe der Ausführung wird nach dem dauerhaften Code für einen Haken zusätzlich

Einmalcode ausgeführt, bevor der Einmalcode global vom Haken genommen wird.

Beispiel: Durch Einfügen von \ExecuteDoHook{heading/begingroup/Name } in die Ausfüh-rung eines jeden mit \DeclareSectionCommand definierten Gliederungbefehls wur-den in den KOMA-Script-Klassen letztlich sechs Haken an diesem Codepunkt ein-gefügt, die in dieser Reihenfolge ausgeführt werden:1. heading mit Argument begingroup/Name für dauerhaften Code,2. heading mit Argument begingroup/Name für Einmalcode,3. heading/begingroup mit Argument Name für dauerhaften Code,4. heading/begingroup mit Argument Name für Einmalcode,5. heading/begingroup/Name mit leerem Argument für dauerhaften Code,6. heading/begingroup/Name mit leerem Argument für Einmalcode.

Name ist dabei der bei \DeclareSectionCommand, \DeclareNewSectionCommandoder \ProvideSectionCommand angegebene Name der Gliederungsebene be-ziehungsweise des dadurch bestimmten Gliederungsbefehls, also beispielsweisechapter oder subparagraph. Betrachtet man obige Auflistung unter Berücksichti-gung der Tatsache, dass es diverse Gliederungsbefehle gibt, wird klar, dass die Hakenheading und heading/begingroup mehrfach, nämlich für jeden Gliederungsbefehlexistieren.

Kapitel 12: Grundlegende Funktionen im Paket scrbase 369

\AddtoDoHook{Name }{Befehl }\AddtoOneTimeDoHook{Name }{Befehl }

MitBeta-Feature \AddtoDoHook wird an dem Haken mit dem Namen Name dauerhafter Code aufgehängt.Als Code dient dabei der Befehl , dem das in der Erklärung zu \ExecuteDoHook erwähnteArgument als Parameter angehängt wird.

Beispiel: Angenommen, es soll innerhalb von \section mitgezählt werden, wie oft dieseAnweisung ausgeführt wird. Dies wäre in Fortführung des obigen Beispiels mit\newcounter{sectionZaehler}\AddtoDoHook{heading/begingroup/section}

{\stepcounter{sectionZaehler}}

sehr einfach möglich. Allerdings würde dann in Wirklichkeit \stepcounter{sectionZaehler}{} ausgeführt. Wir erinnern uns daran, dass immer ein Ar-gument als Parameter angehängt wird. Im Falle des Hakens mit dem Namenheading/begingroup/section ist dieses Argument leer. Da ein solcher leerer Pa-rameter hier zur einer leeren Gruppe wird, ist es besser, diesen leeren Parameterquasi aufzubrauchen:\newcommand*{\stepcountergobble}[2]{%\stepcounter{#1}%

}\AddtoDoHook{heading/begingroup/section}

{\stepcountergobble{sectionZaehler}}

Hier wird der angehängte, leere Parameter von \stepcountergobble gelesen, abernicht verwendet.Sollen nun statt \section alle Gliederungsbefehle gezählt werden, so muss nur einanderer Hakenname eingesetzt werden:\AddtoDoHook{heading/begingroup}

{\stepcountergobble{sectionZaehler}}

Hier ist übrigens der angehängte Parameter nicht leer, sondern enthält den Namender Gliederungsebene oder des Gliederungsbefehls. Wollte man die Gliederungsbe-fehle einzeln zählen, so könnte man genau dies ausnützen:\newcommand*{\stepZaehler}[1]{%\stepcounter{#1Zaehler}%

}\AddtoDoHook{heading/begingroup}

{\stepZaehler}

Natürlich müssten dann auch die Zähler partZaehler, chapterZaehler bis hinun-ter zu subparagraphZaehler definiert werden.

Kapitel 12: Grundlegende Funktionen im Paket scrbase 370

Die Anweisung \AddtoOneTimeDoHook arbeitet vergleichbar, fügt den Befehl aber demEinmalcode hinzu. Dieser Code wird dann nach der ersten Ausführung global vom Hakengenommen.

\ForDoHook{Spezifikator }{Befehl }

WährendBeta-Feature \ExecuteDoHook dazu gedacht ist, die Befehle auszuführen, die zuvor mit\AddtoDoHook oder \AddtoOneTimeDoHook für die durch den Spezifikator bestimmten Ha-ken gespeichert wurden, führt diese Anweisung den unmittelbar angegebenen Befehl aus.Dabei werden an Befehl sogar zwei Parameter angefügt. Der erste Parameter ist der Namedes Haken, der zweite das Argument des Hakens.Diese Anweisung ist ein Abfallprodukt der Implementierung von \ExecuteDoHook. Norma-

lerweise sollten weder Anwender noch Paketautoren diese Anweisung benötigen.

\SplitDoHook{Spezifikator }{Kopf-Makro }{Rest-Makro }

WieBeta-Feature aus den vorangegangenen Erklärungen deutlich wird, kann der Parameter eines mit\AddtoDoHook oder \AddtoOneTimeDoHook hinzugefügten Befehls ebenfalls ein mehrteiligerSpezifikator sein. Mit \SplitDoHook kann so ein Spezifikator in das vordere Element undden Rest aufgeteilt werden. Das Kopf-Makro wird dabei als das vordere Element definiert. DasRest-Makro wird als der Rest definiert. Im Falle, dass kein Rest bleibt, wird das Rest-Makroleer definiert. Falls bereits der Spezifikator leer war, wird eine Warnung ausgegeben undsowohl Kopf-Makro als auch Rest-Makro leer definiert.

Beispiel: Wollte man am Anfang der Gruppe, in der die Überschrift ausgegeben wird, einenZähler erhöhen, diesen am Ende aber wieder verringern, so könnte man dies überzwei Haken tun:\AddtoDoHook{heading/begingroup}

{\stepZaehler}\newcommand*{\restepZaehler}[1]{%\addtocounter{#1Zaehler}{-1}%

}\AddtoDoHook{heading/endgroup}

{\restepcounter}

Man könnte aber auch mit einem einzigen Haken arbeiten und dessen Parameterzerlegen:\newcommand*{\changeZaehler}[1]{%\SplitDoHook{#1}{\Gruppe}{\Ebene}%\ifstr{\Gruppe}{begingroup}{%\stepcounter{\Ebene Zaehler}%

}{%\ifstr{\Gruppe}{endgroup}{%

Kapitel 12: Grundlegende Funktionen im Paket scrbase 371

\addtocounter{\Ebene Zaehler}{-1}%}{}%

}%}\AddtoDoHook{heading}

{\changeZaehler}

Wie zu sehen ist, ist die erste Lösung um einiges einfacher. Dazu kommt, dass mandie zweite Fallunterscheidung in der zweiten Lösung gerne vergisst. Das wäre aller-dings fatal, da es weitere Haken mit Namen heading aber abweichendem Argumentgeben kann.

Genau genommen ist diese Anweisung ein Abfallprodukt aus der Implementierung von\ForDoHook.

Kapitel 13: Paketabhängigkeiten mit scrlfile beherrschen 372

Paketabhängigkeiten mit scrlfile beherrschen

Die Einführung von LATEX2ε brachte 1994 eine Menge Neuerungen im Umgang mit LATEX-Erweiterungen. So stehen dem Paketautor heute eine ganze Reihe von Befehlen zur Verfügung,um festzustellen, ob ein anderes Paket oder eine bestimmte Klasse verwendet wird und ob dabeibestimmte Optionen zur Anwendung kommen. Der Paketautor kann selbst andere Pakete ladenoder diesen Optionen mit auf den Weg geben für den Fall, dass sie später noch geladen werden.Es bestand daher die Hoffnung, dass es künftig unerheblich wäre, in welcher Reihenfolge Paketegeladen werden. Diese Hoffnung hat sich leider nicht erfüllt.

13.1. Die Sache mit den Paketabhängigkeiten

Immer häufiger definieren unterschiedliche Pakete den gleichen Befehl neu oder um. Dabei istes dann sehr entscheidend, in welcher Reihenfolge die Pakete geladen werden. Manchmal istdas für den Anwender kaum zu überschauen. Teilweise ist es auch notwendig, in irgendeinerForm auf das Laden eines anderen Pakets zu reagieren.Nehmen wir als einfaches Beispiel das Laden des longtable-Pakets bei Verwendung von

KOMA-Script. Das longtable-Paket definiert seine eigene Form von Tabellenüberschriften.Diese passen perfekt zu den Standardklassen. Sie passen aber überhaupt nicht zu den Vor-einstellungen für die Tabellenüberschriften von KOMA-Script und reagieren auch nicht aufdie entsprechenden Möglichkeiten der Konfiguration. Um dieses Problem zu lösen, müssendie Befehle von longtable, die für die Tabellenüberschriften zuständig sind, von KOMA-Scriptumdefiniert werden. Allerdings sind die KOMA-Script-Klassen bereits abgearbeitet, wenn dasPaket geladen wird.Bisher bestand die einzige Möglichkeit, dieses Problem zu lösen darin, die Umdefinierung mit

Hilfe von \AtBeginDocument auf einen späteren Zeitpunkt zu verschieben. Will der Anwenderdie entsprechende Anweisung jedoch selbst umdefinieren, so sollte er dies eigentlich ebenfalls inder Präambel tun. Das kann er jedoch nicht, weil KOMA-Script ihm dabei in die Quere kommt.Er müsste die Umdefinierung also ebenfalls mit Hilfe von \AtBeginDocument durchführen.Aber eigentlich müsste KOMA-Script die Abarbeitung gar nicht auf den Zeitpunkt von

\begin{document} verschieben. Es würde genügen, wenn sie bis unmittelbar nach dem Ladenvon longtable verzögert werden könnte. Leider fehlen entsprechende Anweisungen im LATEX-Kern. Das Paket scrlfile bringt hier Abhilfe.Ebenso wäre es denkbar, dass man vor dem Laden eines bestimmten Pakets gerne die Be-

deutung eines Makros in einem Hilfsmakro retten und nach dem Laden des Pakets wiederrestaurieren will. Auch das geht mit scrlfile.Die Anwendung von scrlfile ist nicht auf die Abhängigkeit von Paketen beschränkt. Auch Ab-

hängigkeiten von anderen Dateien können berücksichtigt werden. So kann beispielsweise dafürgesorgt werden, dass das nicht unkritische Laden einer Datei wie french.ldf automatisch zu

Kapitel 13: Paketabhängigkeiten mit scrlfile beherrschen 373

einer Warnung führt.Obwohl das Paket in erster Linie für andere Paketautoren interessant sein dürfte, gibt es

durchaus auch Anwendungen für normale LATEX-Benutzer. Deshalb sind in diesem Kapitelauch für beide Gruppen Beispiele aufgeführt.

13.2. Aktionen vor und nach dem Laden

Mit scrlfile können vor und nach dem Laden von Dateien Aktionen ausgelöst werden. Beiden dazu verwendeten Befehlen wird zwischen allgemeinen Dateien, Klassen und Paketenunterschieden.

\BeforeFile{Datei }{Anweisungen }\AfterFile{Datei }{Anweisungen }

Mit Hilfe von \BeforeFile kann dafür gesorgt werden, dass die Anweisungen vor dem nächs-ten Laden einer bestimmten Datei ausgeführt werden. Vergleichbar arbeitet \AfterFile. Nurwerden die Anweisungen hier erst nach dem Laden der Datei ausgeführt. Wird die Datei niegeladen, so werden die Anweisungen in beiden Fällen natürlich auch nie ausgeführt. Bei Dateisind etwaige Dateiendungen wie bei \input als Teil des Dateinamens anzugeben.Um die Funktionalität bereitstellen zu können, bedient sich scrlfile der bekannten LATEX-

Anweisung \InputIfFileExists. Diese wird hierzu umdefiniert. Falls die Anweisung nicht dieerwartete Definition hat, gibt scrlfile eine Warnung aus. Dies geschieht für den Fall, dass dieAnweisung in späteren LATEX-Versionen geändert wird oder bereits von einem anderen Paketumdefiniert wurde.Die Anweisung \InputIfFileExists wird von LATEX immer verwendet, wenn eine Da-

tei geladen werden soll. Dies geschieht unabhängig davon, ob die Datei mit \LoadClass,\documentclass, \usepackage, \RequirePackage, \include oder vergleichbaren Anweisun-gen geladen wird. Lediglich\input foo

lädt die Datei foo ohne Verwendung von \InputIfFileExists. Sie sollten daher stattdessenimmer\input{foo}

verwenden. Beachten Sie die Klammern um den Dateinamen!

Kapitel 13: Paketabhängigkeiten mit scrlfile beherrschen 374

\BeforeClass{Klasse }{Anweisungen }\BeforePackage{Paket }{Anweisungen }

Diese beiden Befehle arbeiten vergleichbar zu \BeforeFile mit dem einen Unterschied, dassdie Klasse beziehungsweise das Paket mit seinem Namen und nicht mit seinem Dateinamenangegeben wird. Die Endungen ».cls« und ».sty« entfallen hier also.

\AfterClass{Klasse }{Anweisungen }\AfterClass*{Klasse }{Anweisungen }\AfterClass+{Klasse }{Anweisungen }\AfterClass!{Klasse }{Anweisungen }\AfterAtEndOfClass{Klasse }{Anweisungen }\AfterPackage{Paket }{Anweisungen }\AfterPackage*{Paket }{Anweisungen }\AfterPackage+{Paket }{Anweisungen }\AfterPackage!{Paket }{Anweisungen }\AfterAtEndOfPackage{Paket }{Anweisungen }

Die Anweisungen \AfterClass und \AfterPackage arbeiten weitgehend wie \AfterFile, mitdem winzigen Unterschied, dass die Klasse beziehungsweise das Paket mit seinem Namen undnicht mit seinem Dateinamen angegeben wird. Die Endungen ».cls« und ».sty« entfallenhier also.Bei den Sternvarianten gibt es eine zusätzliche Funktionalität. Wurde oder wird die ent-

sprechende Klasse oder das entsprechende Paket bereits geladen, so werden die Anweisungennicht nach dem nächsten Laden, sondern unmittelbar ausgeführt.Bei der Plusvariantev3.09 werden die Anweisungen sicher erst dann ausgeführt, wenn die Klasse

oder das Paket vollständig geladen wurde. Der Unterschied zwischen der Stern- und der Plus-variante kommt nur zum Tragen, falls die Anweisung verwendet wird, während das Laden derKlassen bzw. des Pakets zwar bereits begonnen hat, aber noch nicht beendet wurde. Wenn dasLaden der Klasse bzw. des Pakets noch nicht abgeschlossen wurde, werden die Anweisungen inallen Fällen vor den in der Klasse bzw. dem Paket mit \AtEndOfClass oder \AtEndOfPackageverzögerten Anweisungen ausgeführt.Um eine Ausführung nach den in der Klasse oder dem Paket selbst mit \AtEndOfClass

oder \AtEndOfPackage verzögerten Anweisungen sicherzustellen, ist die Variante mitAusrufezeichenv3.09 zu verwenden. Bei dieser Spielart werden die Anweisungen nicht mehr imKontext der angegebenen Klasse oder des angegebenen Pakets ausgeführt.Will man nur für den Fall, dass die Klasse bzw. das Paket noch nicht geladen wurde,

erreichen, dass Anweisungen nach der Klasse bzw. dem Paket und außerhalb des Kontextesder angegebenen Klasse bzw. des angegebenen Pakets ausgeführt werden, so verwendet manfür Klassen die Anweisung \AfterAtEndOfClassv3.09 und für Pakete \AfterAtEndOfPackage.

Beispiel: Als Beispiel für Paket- oder Klassenautoren will ich zunächst erklären, wie KOMA-

Kapitel 13: Paketabhängigkeiten mit scrlfile beherrschen 375

Script selbst Gebrauch von den neuen Anweisungen macht. Dazu findet sich bei-spielsweise in scrbook Folgendes:\AfterPackage{hyperref}{%

\@ifpackagelater{hyperref}{2001/02/19}{}{%\ClassWarningNoLine{scrbook}{%

You are using an old version of hyperrefpackage!\MessageBreak%This version has a buggy hack at manydrivers\MessageBreak%causing \string\addchap\space to behavestrange.\MessageBreak%Please update hyperref to at least version6.71b}%

}%}

Alte Versionen von hyperref definierten ein Makro von scrbook in einer Weise um,die mit neueren Versionen von KOMA-Script nicht mehr funktioniert. Neuere Ver-sionen von hyperref unterlassen dies, wenn sie eine neuere Version von KOMA-Scripterkennen. Für den Fall, dass hyperref zu einem späteren Zeitpunkt geladen wird,sorgt also scrbook dafür, dass unmittelbar nach dem Laden des Pakets überprüftwird, ob es sich um eine verträgliche Version handelt. Falls dies nicht der Fall ist,wird eine Warnung ausgegeben.An anderer Stelle findet sich in drei der KOMA-Script-Klassen Folgendes:

\AfterPackage{caption2}{%\renewcommand*{\setcapindent}{%

Nach dem Laden von caption2 und nur falls das Paket geladen wird, wird hierdie KOMA-Script eigene Anweisung \setcapindent umdefiniert. Der Inhalt derUmdefinierung ist für dieses Beispiel unerheblich. Es sei nur erwähnt, dass caption2die Kontrolle über die \caption-Anweisung übernimmt und daher die normaleDefinition von \setcapindent keinerlei Wirkung mehr hätte. Die Umdefinierungverbessert dann die Zusammenarbeit mit caption2.Es gibt aber auch Beispiele für den sinnvollen Einsatz der neuen Anweisungen durchnormale Anwender. Angenommen, Sie erstellen ein Dokument, aus dem sowohl ei-ne PS-Datei mit LATEX und dvips als auch eine PDF-Datei mit pdfLATEX erstelltwerden soll. Das Dokument soll außerdem Hyperlinks aufweisen. Im Tabellenver-zeichnis haben Sie Einträge, die über mehrere Zeilen gehen. Nun gibt es zwar mitpdfLATEX bei der PDF-Ausgabe keine Probleme, da dort Links umbrochen werdenkönnen. Bei Verwendung des hyperref-Treibers für dvips oder hyperTEX ist diesjedoch nicht möglich. In diesem Fall hätten Sie gerne, dass bei hyperref die Ein-stellung linktocpage verwendet wird. Die Entscheidung, welcher Treiber geladen

Kapitel 13: Paketabhängigkeiten mit scrlfile beherrschen 376

wird, wird von hyperref automatisch getroffen.Alles weitere kann nun \AfterFile überlassen werden:\documentclass{article}\usepackage[ngerman]{babel}\usepackage{scrlfile}\AfterFile{hdvips.def}{\hypersetup{linktocpage}}\AfterFile{hypertex.def}{\hypersetup{linktocpage}}\usepackage{hyperref}\begin{document}\listoffigures\clearpage\begin{figure}\caption{Dies ist ein Beispiel mit einerAbbildungsunterschrift, die mehrere Zeileumfasst und bei der trotzdem auf dieVerwendung des optionalen Arguments verzichtetwurde.}

\end{figure}\end{document}

Egal, ob nun der hyperref-Treiber hypertex oder dvips zu Anwendung kommt,wird die dann nützliche Einstellung linktocpage verwendet. Wenn Sie jedoch mitpdfLATEX eine PDF-Datei erstellen, wird darauf verzichtet, da dann der hyperref-Treiber hpdftex.def verwendet wird. Das bedeutet, dass weder die Treiberdateihdvips.def noch hypertex.def geladen wird.

Übrigens kann scrlfile auch bereits vor \documentclass geladen werden. In diesem Fall istallerdings \RequirePackage anstelle von \usepackage zu verwenden (siehe [Tea06]).

\BeforeClosingMainAux{Anweisungen }\AfterReadingMainAux{Anweisungen }

Diese Anweisungen unterscheiden sich in einem Detail von den zuvor erklärten Anweisungen.Jene ermöglichen Aktionen vor und nach dem Laden von Dateien. Das ist hier nicht der Fall.Paketautoren haben des Öfteren das Problem, dass sie Anweisungen in die aux-Datei schreibenwollen, nachdem die letzte Seite des Dokuments ausgegeben wurde. Dazu wird – in Unkenntnisder dadurch verursachten Probleme – häufig Code wie der folgende eingesetzt:\AtEndDocument{%\if@filesw

\write\@auxout{%\protect\writethistoaux%

}%\fi

}

Kapitel 13: Paketabhängigkeiten mit scrlfile beherrschen 377

Dies ist jedoch keine wirkliche Lösung. Wurde die letzte Seite vor \end{document} bereitsausgegeben, so führt obiges zu keiner Ausgabe in die aux-Datei. Würde man zur Lösung diesesProblems nun ein \immediate vor \write setzen, so hätte man das umgekehrte Problem:wurde die letzte Seite bei \end{document} noch nicht ausgegeben, so wird \writethistoauxzu früh in die aux-Datei geschrieben. Man sieht daher häufig auch Lösungsversuche wie:\AtEndDocument{%

\if@filesw\clearpage\immediate\write\@auxout{%\protect\writethistoaux%

}%\fi

}

Diese Lösung hat jedoch den Nachteil, dass damit die Ausgabe der letzten Seite erzwungenwird. Eine Anweisung wie\AtEndDocument{%

\par\vspace*{\fill}%Hinweis am Ende des Dokuments.\par

}

führt dann nicht mehr dazu, dass der Hinweis am Ende der letzten Seite des Dokumentsausgegeben wird, sie würde stattdessen am Ende der nächsten Seite ausgegeben. Gleichzeitigwürde \writethistoaux wieder eine Seite zu früh in die aux-Datei geschrieben.Die beste Lösung des Problems wäre nun, wenn man unmittelbar in die aux-Datei schreiben

könnte, nachdem das finale \clearpage innerhalb von \end{document} ausgeführt, aber bevordie aux-Datei geschlossen wird. Dies ist das Ziel von \BeforeClosingMainAux:

\BeforeClosingMainAux{%\if@filesw

\immediate\write\@auxout{%\protect\writethistoaux%

}%\fi

}

Das ist auch dann erfolgreich, wenn das finale \clearpage innerhalb von \end{document}tatsächlich zu keiner Ausgabe einer Seite mehr führt oder wenn – sei es korrekt verwendet oderin Unkenntnis der oben erläuterten Probleme – \clearpage innerhalb einer \AtEndDocument-Anweisung zum Einsatz kam.Es gibt jedoch für \BeforeClosingMainAux eine Einschränkung: Im Argument Anweisungen

sollte keine Satzanweisung verwendet werden. Es darf also mit \BeforeClosingMainAux keinzusätzliches Material gesetzt werden! Wird diese Einschränkung nicht beachtet, so ist das

Kapitel 13: Paketabhängigkeiten mit scrlfile beherrschen 378

Ergebnis ebenso unvorhersehbarer wie bei den gezeigten Problemen mit \AtEndDocument.Die Anweisung \AfterReadingMainAuxv3.03 führt sogar Anweisungen nach dem Schließen und

Einlesen der aux-Datei innerhalb von \end{document} aus. Dies ist nur in einigen wenigen,sehr seltenen Fällen sinnvoll, beispielsweise, wenn man statistische Informationen in die log-Datei schreiben will, die erst nach dem Einlesen der aux-Datei gültig sind, oder zur Imple-mentierung zusätzlicher Rerun-Aufforderungen. Satzanweisungen sind an dieser Stelle nochkritischer zu betrachten als bei \BeforeClosingMainAux.

13.3. Dateien beim Einlesen ersetzen

In den bisherigen Abschnitten wurden Anweisungen erklärt, mit denen es möglich ist, voroder nach dem Einlesen einer bestimmten Datei, eines bestimmten Pakets oder einer KlasseAktionen auszuführen. Es ist mit scrlfile aber auch möglich, eine ganz andere Datei als dieangeforderte einzulesen.

\ReplaceInput{Dateiname }{Ersatzdatei }

Mitv2.96 dieser Anweisung wird eine Ersetzung der Datei mit dem als erstes angegebenen Dateinamedefiniert. Wenn LATEX anschließend angewiesen wird, diese Datei zu laden, wird stattdessenErsatzdatei geladen. Die Definition der Ersatzdatei wirkt sich auf alle Dateien aus, die vomAnwender oder intern von LATEX mit Hilfe von \InputIfFileExists geladen werden. Dazuist es allerdings erforderlich, dass scrlfile diese Anweisung umdefiniert.

Beispiel: Sie wollen, dass anstelle der Datei \jobname.aux, die Datei \jobname.xua geladenwird. Dazu verwenden Sie:\ReplaceInput{\jobname.aux}{\jobname.xua}

Wenn Sie nun zusätzlich \jobname.xua auch noch durch \jobname.uxa ersetzen:\ReplaceInput{\jobname.xua}{\jobname.uxa}

dann wird \jobname.aux am Ende durch \jobname.uxa ersetzt. Es wird also diekomplette Ersetzungskette abgearbeitet.Einer Ersetzung im Kreis:\ReplaceInput{\jobname.aux}{\jobname.xua}\ReplaceInput{\jobname.xua}{\jobname.aux}

würde jedoch zu einem stack size error führen. Es ist also nicht möglich, eine einmalersetzte Datei wieder durch ihren Ursprung zu ersetzen.

Theoretisch wäre es auch möglich, auf diesem Wege ein Paket durch ein anderes oder eineKlasse durch eine andere zu ersetzen. Dabei würde LATEX aber erkennen, dass die angeforderten

Kapitel 13: Paketabhängigkeiten mit scrlfile beherrschen 379

Dateinamen nicht zum Namen des Pakets oder der Klasse passen. Eine Lösung dieses Problemsfinden Sie nachfolgend.

\ReplaceClass{Klasse }{Ersatzklasse }\ReplacePackage{Paket }{Ersatzpaket }

Einev2.96 Klasse oder ein Paket sollte niemals mit Hilfe der oben erklärten Anweisung\ReplaceInput ersetzt werden. In diesem Fall würde LATEX eine Warnung über nicht über-einstimmende Klassen- oder Paketnamen melden. Auch echte Fehler sind möglich, wenn eineKlasse oder ein Paket unter einem falschen Dateinamen geladen wird.

Beispiel: Sie ersetzen das Paket scrpage2 durch dessen offiziellen Nachfolger scrlayer-scrpage,indem Sie\ReplaceInput{scrpage2.sty}{scrlayer-scrpage.sty}

verwenden. Dies wird beim Laden von scrpage2 zu der WarnungLaTeX warning: You have requested ‘scrpage2’,

but the package provides‘scrlayer-scrpage’.

führen. Für den Anwender wäre diese Warnung mehr als verwirrend, hat er dochgar nicht scrlayer-scrpage, sondern tatsächlich scrpage2 angefordert, das jedoch durchscrlayer-scrpage ersetzt wurde.

Eine Lösung dieser Probleme besteht nun darin, statt \ReplaceInput eine der Anweisun-gen \ReplaceClass oder \ReplacePackage zu verwenden. Es ist zu beachten, dass wie bei\documentclass und \usepackage der Name der Klasse oder des Pakets und nicht derenkompletter Dateiname anzugeben ist.Die Ersetzung funktioniert für Klassen, die mit \documentclass, \LoadClassWithOptions

oder \LoadClass geladen werden. Für Pakete funktioniert die Ersetzung beim Laden mit\usepackage, \RequirePackageWithOptions und \RequirePackage.

Es ist zu beachten, dass die Ersatzklasse oder das Ersatzpaket mit denselben Optionengeladen wird, mit denen die ursprünglich geforderte Klasse oder das ursprünglich gefordertePaket geladen würden. Wird ein Paket oder eine Klasse durch ein Paket oder eine Klasseersetzt, die eine geforderte Option nicht unterstützt, würde das zu den üblichen Warnungenund Fehlern führen. Es ist jedoch möglich, solche in der Ersatzklasse oder dem Ersatzpaketfehlenden Optionen per \BeforeClass oder \BeforePackage neu zu definieren.

Beispiel: Angenommen, das Paket oldfoo soll beim Laden durch das Paket newfoo ersetztwerden. Dies wird mit\ReplacePackage{oldfoo}{newfoo}

erreicht. Das alte Paket hat eine Option oldopt, die das neue Paket jedoch nichthat. Mit

Kapitel 13: Paketabhängigkeiten mit scrlfile beherrschen 380

\BeforePackage{newfoo}{%\DeclareOption{oldopt}{%

\PackageInfo{newfoo}%{option ‘oldopt’ not supported}%

}%}%

wird diese Option nun für das Paket newfoo nachdefiniert. Dadurch wird vermie-den, dass beim Laden des Pakets oldfoo ein Fehler über die im Paket newfoo nichtunterstützte Option gemeldet wird.Existiert hingegen eine Option newopt, die anstelle der Option oldopt verwendetwerden soll, so kann dies ebenfalls erreicht werden:\BeforePackage{newfoo}{%

\DeclareOption{oldopt}{%\ExecuteOptions{newopt}%

}%}%

Es ist sogar möglich, festzulegen, dass beim Laden des neuen Pakets andere Vor-einstellung gelten sollen:\BeforePackage{newfoo}{%

\DeclareOption{oldopt}{%\ExecuteOptions{newopt}%

}%\PassOptionsToPackage{newdefoptA,newdefoptB}%

{newfoo}%}

oder auch direkt:\BeforePackage{newfoo}{%

\DeclareOption{oldopt}{%\ExecuteOptions{newopt}%

}%}%\PassOptionsToPackage{newdefoptA,newdefoptB}%

{newfoo}%

Man beachte, dass im letzten Beispiel der Aufruf von \PassOptionsToPackagenicht innerhalb, sondern erst nach \BeforePackage erfolgt.

Damit Klassen ersetzt werden können, ist es natürlich erforderlich scrlfile vor der Klasse zuladen. Dazu ist \RequirePackage anstelle von \usepackage zu verwenden (siehe [Tea06]).

Kapitel 13: Paketabhängigkeiten mit scrlfile beherrschen 381

\UnReplaceInput{Dateinamen }\UnReplacePackage{Paket }\UnReplaceClass{Klasse }

Einev3.12 Ersetzung kann auch wieder aufgehoben werden. Dabei sollten Ersetzungen von Da-teien immer mit \UnReplaceInput, Ersetzungen von Paketen mit \UnReplacePackage undErsetzungen von Klassen mit \UnReplaceClass aufgehoben werden. Nach der Aufhebung derErsetzung führen Ladebefehle für den entsprechenden Dateiname , das entsprechende Paketoder die entsprechende Klasse dann wieder dazu, dass die Datei, das Paket oder die Klasseselbst anstelle der Ersatzdatei, des Ersatzpakets oder der Ersatzklasse geladen wird.

13.4. Dateien gar nicht erst einlesen

Geradev3.08 in Klassen und Paketen, die innerhalb von Firmen oder Instituten verwendet werden,findet man häufig, dass sehr viele Pakete nur deshalb geladen werden, weil die Anwender diesePakete oft verwenden. Wenn es dann mit einem dieser automatisch geladenen Paketen zu einemProblem kommt, muss man irgendwie das Laden des problematischen Pakets verhindern. Auchhier bietet scrlfile eine einfache Lösung.

\PreventPackageFromLoading[Stattdessencode ]{Paketliste }\PreventPackageFromLoading*[Stattdessencode ]{Paketliste }

Wird diese Anweisungv3.08 vor dem Laden eines Paket mit \usepackage, \RequirePackage oder\RequirePackageWithOptions aufgerufen, so wird das Laden des Pakets effektiv verhindert,falls es in der Paketliste zu finden ist.

Beispiel: Angenommen, Sie arbeiten in einer Firma, in der alle Dokumente mit Latin Modernerzeugt werden. In der Firmenklasse, firmenci, befinden sich daher die Zeilen:\RequirePackage[T1]{fontenc}\RequirePackage{lmodern}

Nun wollen Sie zum ersten Mal ein Dokument mit X ELATEX oder LuaLATEX setzen.Da beim hierbei empfohlenen Paket fontspec ohnehin Latin-Modern voreingestelltist und das Laden von fontenc eher störend wäre, wollen Sie das Laden beider Paketeverhindern. Sie laden die Klasse deshalb nun in Ihrem eigenen Dokument wie folgt:\RequirePackage{scrlfile}\PreventPackageFromLoading{fontenc,lmodern}\documentclass{firmenci}

Wie im Beispiel zu sehen ist, kann man das Paket scrlfile auch bereits vor der Klasse la-den. In diesem Fall muss das Laden dann aber mit Hilfe von \RequirePackage erfolgen, da\usepackage vor \documentclass verboten ist (siehe [Tea06]).

Kapitel 13: Paketabhängigkeiten mit scrlfile beherrschen 382

Wird eine leere Paketliste angegeben oder wird ein Paket angegeben, das be-reits geladen ist, gibt \PreventPackageFromLoading eine Warnung aus, während\PreventPackageFromLoading*v3.12 lediglich einen entsprechenden Hinweis in die Log-Dateischreibt.Das optionale Argumentv3.12 kann verwendet werden, wenn anstelle des Ladens des Pakets etwas

anderes getan werden soll. Innerhalb des Stattdessencode s dürfen jedoch keine anderen Pake-te und keine Dateien geladen werden. Zum Laden eines anderen Pakets siehe \ReplacePackagein Abschnitt 13.3 auf Seite 379. Beachten Sie bitte auch, dass der Stattdessencode mehrfachausgeführt wird, falls Sie versuchen, das Paket mehrfach zu laden!

\StorePreventPackageFromLoading{\Anweisung}\ResetPreventPackageFromLoading

\Anweisung wird mit \StorePreventPackageFromLoadingv3.08 als die aktuelle Lis-te der Pakete definiert, für die das Laden verhindert werden soll. Dagegen setzt\ResetPreventPackageFromLoadingv3.08 die Liste der Pakete, für die das Laden verhindertwerden soll, zurück. Danach können wieder alle Pakete geladen werden.

Beispiel: Angenommen, Sie sind innerhalb eines Pakets unbedingt auf das Laden eines ande-ren Pakets angewiesen und wollen nicht, dass der Anwender das Laden dieses Paketsmit \PreventPackageFromLoading verhindern kann. Also setzen Sie die Paketlistefür die Ausnahmen zuvor zurück:\ResetPreventPackageFromLoading\RequirePackage{foo}

Allerdings hat dies den Nachteil, dass ab diesem Zeitpunkt die komplette Ausnah-meliste des Anwenders verloren ist. Also speichern Sie die Liste zunächst zwischenund reaktivieren sie später wieder:\newcommand*{\Users@PreventList}{}%\StorePreventPackageFromLoading\Users@PreventList\ResetPreventPackageFromLoading\RequirePackage{foo}\PreventPackageFromLoading{\Users@PreventList}

Es ist zu beachten, dass \Users@PreventList durch die Anweisung\StorePreventPackageFromLoading auch definiert werden würde, wenn die-se bereits anderweitig definiert wäre. Eine vorhandene Definition würde also ohneRücksicht überschrieben werden. In diesem Beispiel wurde deshalb mit einemvorherigen \newcommand* sichergestellt, dass in dem Fall zur Sicherheit eineFehlermeldung ausgegeben wird.

An dieser Stelle sei darauf hingewiesen, dass Sie bei Manipulationen an der mit\StorePreventPackageFromLoading zwischengespeicherten Liste selbst die Verantwortung

Kapitel 13: Paketabhängigkeiten mit scrlfile beherrschen 383

für eine korrekte Wiederherstellbarkeit tragen. So muss die Liste unbedingt mit Komma se-pariert sein, sollte keine Leerzeichen oder Gruppenklammern enthalten und muss voll expan-dierbar sein.Beachten Sie bitte, dass \ResetPreventPackageFromLoading den Stattdessencode für

ein Paket nicht löscht, sondern nur vorübergehend dessen Ausführung nicht mehr erfolgt.

\UnPreventPackageFromLoading{Paketliste }\UnPreventPackageFromLoading*{Paketliste }

Stattv3.12 die Liste der Pakete, für die das Laden verhindert werden soll, komplett zurück zu setzen,kann man auch einzelne oder mehrere Pakete gezielt von dieser Liste entfernen. Die Stern-variante des Befehls löscht außerdem den Stattdessencode , der für das Paket gespeichertist. Falls die Verhinderungsliste beispielsweise aus einer gespeicherten Liste wiederhergestelltwird, wird dann der Stattdessencode trotzdem nicht mehr ausgeführt.

Beispiel: Angenommen, Sie wollen zwar verhindern, dass ein Paket foo geladen wird, wollenaber nicht, dass ein eventuell bereits gespeicherter Stattdessencode ausgeführtwird. Stattdessen soll nur Ihr neuer Stattdessencode ausgeführt werden. Dies istwie folgt möglich:\UnPreventPackageFromLoading*{foo}\PreventPackageFromLoading[%\typeout{Stattdessencode}%

]{foo}

Für die Anweisung \UnPreventPackageFromLoading* ist es unerheblich, ob dasPaket zuvor überhaupt vom Laden ausgenommen war.Natürlich können Sie die Anweisung indirekt auch nutzen, um denStattdessencode aller Pakete zu löschen:\StorePreventPackageFromLoading\TheWholePreventList\UnPreventPackageFromLoading*{\TheWholePreventList}\PreventPackageFromLoading{\TheWholePreventList}

Die Pakete werden dann zwar noch immer nicht geladen, ihr Stattdessencodeexistiert aber nicht mehr und wird nicht mehr ausgeführt.

Kapitel 14: Dateien mit scrwfile sparen und ersetzen 384

Dateien mit scrwfile sparen und ersetzen

Eines der Probleme, die auch durch die Einführung von ε-TEX nicht gelöst wurden, ist dieTatsache, dass TEX nur 18 Dateien gleichzeitig zum Schreiben geöffnet haben kann. DieseZahl erscheint zunächst recht groß. Allerdings ist zu berücksichtigen, dass bereits LATEX selbsteinige dieser Dateien belegt. Inhaltsverzeichnis, Tabellenverzeichnis, Abbildungsverzeichnis,Index, Glossar und jedes weitere Verzeichnis, das von LATEX aus erzeugt wird, belegt in derRegel eine weitere Datei. Dazu kommen Hilfsdateien von Paketen wie hyperref oder minitoc.Im Endeffekt kann es daher geschehen, dass irgendwann die Meldung! No room for a new \write .\ch@ck ...\else \errmessage {No room for a new #3}

\fi

erscheint. Seit einiger Zeit ist die einfachste Lösung dieses Problems die Verwendung vonLuaLATEX anstelle von PDFLATEX oder X ELATEX. Damit entfällt die Beschränkung und diemaximale Anzahl der gleichzeitig zum Schreiben geöffneten Dateien wird nur noch durch dasBetriebssystem bestimmt. In der Realität braucht man sich darüber dann normalerweise keineGedanken mehr zu machen.Dass LATEX bei Verzeichnissen wie dem Inhaltsverzeichnis, dem Tabellenverzeichnis und dem

Abbildungsverzeichnis immer sofort eine neue Datei zum Schreiben öffnet, hat aber auch nocheinen weiteren Nachteil. Solche Verzeichnisse werden durch deren Befehle nicht nur direktgesetzt, sie können auch kein weiteres Mal gesetzt werden, da die zugehörige Hilfsdatei nachdem jeweiligen Befehl bis zum Ende des Dokuments leer ist.Das Paket scrwfile bietet hier eine grundsätzliche Änderung im LATEX-Kern, durch die beide

Probleme nicht nur für LuaLATEX sondern auch bei Verwendung von PDFLATEX oder X ELATEXgelöst werden können.

14.1. Grundsätzliche Änderungen am LATEX-Kern

LATEX-Klassen verwenden zum Öffnen eines Verzeichnisses beispielsweise mit\tableofcontents oder \listoffigure die LATEX-Kern-Anweisung \@starttoc. LATEXselbst lädt bei dieser Anweisung nicht nur die zugehörige Hilfsdatei, sondern öffnet die-se Hilfsdatei auch neu zum Schreiben. Werden anschließend mit \addtocontents oder\addcontentsline Einträge in dieses Verzeichnis vorgenommen, so wird jedoch nicht direktin die geöffnete Hilfsdatei geschrieben. Stattdessen schreibt LATEX \@writefile-Anweisungenin die aux-Datei. Erst beim Einlesen der aux-Dateien am Ende des Dokuments wird dannüber diese \@writefile-Anweisungen in die tatsächlichen Hilfsdateien geschrieben. DieHilfsdateien werden von LATEX auch nicht explizit geschlossen. Stattdessen verlässt sich LATEXhier darauf, dass TEX die Dateien am Ende ohnehin schließt.

Dieses Vorgehen sorgt dafür, dass die Hilfsdateien zwar erst innerhalb von \end{document}

Kapitel 14: Dateien mit scrwfile sparen und ersetzen 385

tatsächlich beschrieben werden, aber trotzdem während des gesamten LATEX-Laufs gleichzeitigoffen sind. scrwfile hat nun genau hier einen Ansatzpunkt: die Umdefinierung von \@starttocund \@writefile.

Natürlich besitzen Änderungen am LATEX-Kern immer das Potential, dass es zu Unverträg-lichkeiten mit anderen Paketen kommen kann. Betroffen können in erster Linie Pakete sein,die ebenfalls \@starttoc oder \@writefile umdefinieren. In einigen Fällen kann es helfen,die Reihenfolge der Pakete zu ändern. Wenn Sie auf ein solches Problem stoßen, sollten Siesich an den KOMA-Script-Autor wenden.

14.2. Das Eindateiensystem

Bereits beim Laden des Pakets mit\usepackage{scrwfile}

wird \@starttoc von scrwfile so umdefiniert, dass davon selbst keine Datei mehr zum Schrei-ben angefordert und geöffnet wird. Unmittelbar vor dem Schließen der aux-Datei in \end{document} wird dann \@writefile so umdefiniert, dass diese Anweisung statt in die eigent-lichen Hilfsdateien in eine neue Hilfsdatei mit der Endung wrt schreibt. Nach dem Einlesender aux-Dateien wird schließlich die wrt-Datei abgearbeitet und zwar ein Mal für jede derHilfsdateien, in die mit \@writefile geschrieben wird. Dabei muss aber nicht jede dieserHilfsdateien gleichzeitig geöffnet sein. Stattdessen ist immer nur eine zum Schreiben geöff-net und wird auch wieder explizit geschlossen. Da dabei eine interne Schreibdatei von LATEXwiederverwendet wird, benötigt scrwfile keine einzige eigene Schreibdatei für diese Art vonVerzeichnissen.Selbst wenn bisher nur mit einem Inhaltsverzeichnis gearbeitet wird, steht nach dem Laden

des Pakets bereits eine Schreibdatei mehr für Literaturverzeichnisse, Stichwortverzeichnisse,Glossare und ähnliche Verzeichnisse, die nicht mit \@starttoc arbeiten, zur Verfügung. Dar-über hinaus können beliebig viele Verzeichnisse, die mit \@starttoc arbeiten, angelegt werden.

14.3. Das Klonen von Dateieinträgen

Nachdem \@writefile für das Eindateiensystem aus dem vorherigen Abschnitt bereits sogeändert wurde, dass es nicht direkt in die entsprechende Hilfsdatei schreibt, lag eine weitereIdee nahe. Beim Kopieren der \@writefile-Anweisungen in die wrt-Datei können diese auchfür andere Zielendungen übernommen werden.

Kapitel 14: Dateien mit scrwfile sparen und ersetzen 386

\TOCclone[Verzeichnisüberschrift ]{Quellendung }{Zielendung }\listofZielendung

Durch dieses Klonen von Dateieinträgen werden so ganze Verzeichnisse geklont. Dazu mussman nur die Endung der Hilfsdatei des Verzeichnisses kennen, dessen Einträge kopiert werdensollen. Zusätzlich muss man die Endung einer Zieldatei angeben. In diese werden die Einträgedann kopiert. Natürlich kann man in dieses geklonte Verzeichnis auch zusätzliche Einträgeschreiben.Die Zielendung der Zieldatei wird mit Hilfe von tocbasic (siehe Kapitel 15) verwal-

tet. Steht eine solche Datei bereits unter Kontrolle von tocbasic wird eine Warnung aus-gegeben. Anderenfalls wird mit Hilfe von tocbasic ein neues Verzeichnis für diese Endungangelegt. Die Überschrift dieses Verzeichnisses kann man über das optionale ArgumentVerzeichnisüberschrift bestimmen.Ausgeben kann man dieses neue Verzeichnis dann beispielsweise über die Anweisung

\listofZielendung . Die Verzeichniseigenschaften leveldown, numbered, onecolumn undtotoc (siehe Anweisung \setuptoc in Abschnitt 15.2, Seite 397) werden automatisch in dasZielverzeichnis übernommen, falls sie für das Quellverzeichnis bereits gesetzt waren. Die Ei-genschaft nobabel wird für geklonte Verzeichnisse immer gesetzt, da die entsprechenden babel-Einträge in das Quellverzeichnis ohnehin bereits kopiert werden.

Beispiel: Angenommen, Sie wollen zusätzlich zum normalen Inhaltsverzeichnis eine Gliede-rungsübersicht, in der nur die Kapitel angezeigt werden.\usepackage{scrwfile}\TOCclone[Gliederungsübersicht]{toc}{stoc}

Hierdurch wird zunächst ein neues Verzeichnis mit der Überschrift »Gliederungs-übersicht« angelegt. Das neue Verzeichnis verwendet die Dateiendung stoc. AlleEinträge in die Datei mit der Endung toc werden auch in dieses Verzeichnis kopiert.Damit dieses neue Verzeichnis nun nur die Kapitelebene ausgibt, verwenden wir:\addtocontents{stoc}{\protect\value{tocdepth}=0}

Während normalerweise erst ab \begin{document} Einträge in ein Verzeichnis vor-genommen werden können, funktioniert dies nach Laden von scrwfile bereits inder Dokumentpräambel. Durch die hier gezeigte unkonventionelle Art, den Zählertocdepth innerhalb der Verzeichnisdatei zu ändern, bleibt diese Änderung nur fürdieses Verzeichnis wirksam.Später im Dokument wird das Verzeichnis mit der Endung stoc dann durch\listofstoc

ausgegeben und zeigt nur die Teile und Kapitel des Dokuments.Etwas schwieriger wird es, wenn das Inhaltsverzeichnis in der Gliederungsübersichtangezeigt werden soll. Dies wäre zwar mit

Kapitel 14: Dateien mit scrwfile sparen und ersetzen 387

\addtocontents{toc}{%\protect\addxcontentsline{stoc}{chapter}{\protect\contentsname}%

}

möglich. Da jedoch alle Einträge in toc auch nach stoc kopiert werden, würde sovon der Gliederungsübersicht dieser Eintrag ebenfalls übernommen. Also darf derEintrag nicht aus der Verzeichnisdatei heraus erzeugt werden. Da das Paket tocbasiczum Einsatz kommt, kann aber\BeforeStartingTOC[toc]{%\addxcontentsline{stoc}{chapter}

{\protect\contentsname}}

verwendet werden. Natürlich setzt dies voraus, dass die Datei mit Endung toc auchunter der Kontrolle von tocbasic steht. Dies ist bei allen KOMA-Script-Klassender Fall. Näheres zur Anweisung \BeforeStartingTOC ist in Abschnitt 15.2 aufSeite 396 zu finden.

Die in den Beispielen verwendete Anweisung \addxcontentsline ist übrigens ebenfalls inKapitel 15, Seite 393 dokumentiert.

14.4. Hinweis zum Entwicklungsstand

Obwohl das Paket bereits von mehreren Anwendern getestet wurde und vielfach im Einsatz ist,ist seine Entwicklung noch nicht abgeschlossen. Deshalb ist es theoretisch möglich, dass insbe-sondere an der internen Funktionsweise des Pakets noch Änderungen vorgenommen werden.Sehr wahrscheinlich sind auch künftige Erweiterungen. Teilweise befindet sich bereits Codefür solche Erweiterungen im Paket. Da jedoch noch keine Benutzeranweisungen existieren,mit denen diese Möglichkeiten genutzt werden könnten, wurde hier auf eine Dokumentationderselben verzichtet.

14.5. Bekannte Paketunverträglichkeiten

Wie in Abschnitt 14.1 bereits erwähnt, muss scrwfile einige wenige Anweisungen des LATEX-Kerns umdefinieren. Dies geschieht nicht allein während des Ladens des Pakets, sondern viel-mehr zu verschiedenen Zeitpunkten während der Abarbeitung eines Dokuments, beispielsweisevor dem Einlesen der aux-Datei. Dies führt dazu, dass scrwfile sich nicht mit anderen Paketenverträgt, die diese Anweisungen ebenfalls zur Laufzeit umdefinieren.Ein Beispiel für eine solche Unverträglichkeit ist titletoc. Das Paket definiert unter gewissen

Umständen \@writefile zur Laufzeit um. Werden scrwfile und titletoc zusammen verwendet,ist die Funktion beider Paket nicht mehr gewährleistet. Dies ist weder ein Fehler in titletocnoch in scrwfile.

Kapitel 15: Verzeichnisse verwalten mit Hilfe von tocbasic 388

Verzeichnisse verwalten mit Hilfe von tocbasic

Der Hauptzweck des Pakets tocbasic besteht darin, Paket- und Klassenautoren die Möglich-keit zu geben, eigene Verzeichnisse vergleichbar mit dem Abbildungs- und Tabellenverzeichniszu erstellen und dabei Klassen und anderen Paketen einen Teil der Kontrolle über diese Ver-zeichnisse zu erlauben. Dabei sorgt das Paket tocbasic auch dafür, dass diese Verzeichnisse vonbabel (siehe [BB13]) bei der Sprachumschaltung mit berücksichtigt werden. Durch Verwendungvon tocbasic soll dem Paketautor die Mühe genommen werden, selbst solche Anpassungen anandere Pakete oder an Klassen vornehmen zu müssen.Als kleiner Nebeneffekt kann das Paket auch verwendet werden, um neue Gleitumgebungen

oder den Gleitumgebungen ähnliche nicht gleitende Umgebungen für Konsultationsobjektezu definieren. Näheres dazu wird nach der Erklärung der grundlegenden Anweisungen in denfolgenden vier Abschnitten durch ein Beispiel in Abschnitt 15.5 verdeutlicht, das in kompakterForm noch einmal in Abschnitt 15.6 aufgegriffen wird.KOMA-Script verwendet tocbasic sowohl für das Inhaltsverzeichnis als auch für die bereits

erwähnten Verzeichnisse für Abbildungen und Tabellen.

15.1. Grundlegende Anweisungen

Die grundlegenden Anweisungen dienen in erster Linie dazu, eine Liste aller bekannten Da-teierweiterungen, die für Verzeichnisse stehen, zu verwalten. Einträge in Dateien mit solchenDateierweiterungen werden typischerweise mit \addtocontents oder \addxcontentsline vor-genommen. Darüber hinaus gibt es Anweisungen, mit denen Aktionen für all diese Dateier-weiterungen durchgeführt werden können. Außerdem gibt es Anweisungen, um Einstellungenfür die Datei vorzunehmen, die zu einer gegebenen Dateierweiterung gehört. Typischerweisehat so eine Dateierweiterung auch einen Besitzer. Dieser Besitzer kann eine Klasse oder einPaket oder die Bezeichnung einer Kategorie sein, die der Autor der Klasse oder des Pakets,das tocbasic verwendet, frei gewählt hat. KOMA-Script selbst verwendet beispielsweise dieKategorie float für die Dateierweiterungen lof und lot, die für das Abbildungs- und dasTabellenverzeichnis stehen. Für das Inhaltsverzeichnis verwendet KOMA-Script als Besitzerden Dateinamen der Klasse.

\ifattoclist{Dateierweiterung }{Dann-Teil }{Sonst-Teil }

Mit dieser Anweisung wird überprüft, ob die Dateierweiterung bereits in der Liste der be-kannten Dateierweiterungen vorhanden ist oder nicht. Ist die Dateierweiterung bereits überdiese Liste bekannt, so wird der Dann-Teil ausgeführt. Anderenfalls wird der Sonst-Teilausgeführt.

Beispiel: Angenommen, Sie wollen wissen, ob die Dateierweiterung »foo« bereits verwendetwird, um in diesem Fall eine Fehlermeldung auszugeben, weil diese damit nicht

Kapitel 15: Verzeichnisse verwalten mit Hilfe von tocbasic 389

mehr verwendet werden kann:\ifattoclist{foo}{%

\PackageError{bar}{%extension ‘foo’ already in use%

}{%Each extension may be used onlyonce.\MessageBreakThe class or another package alreadyuses extension ‘foo’.\MessageBreakThis error is fatal!\MessageBreakYou should not continue!}%

}{%\PackageInfo{bar}{using extension ‘foo’}%

}

\addtotoclist[Besitzer ]{Dateierweiterung }

Diese Anweisung fügt die Dateierweiterung der Liste der bekannten Dateierweiterungenhinzu. Ist die Dateierweiterung bereits bekannt, so wird hingegen ein Fehler gemeldet, umdie doppelte Verwendung derselben Dateierweiterung zu verhindern.Wenn das optionale Argument [Besitzer ] angegeben wurde, wird der angegebene

Besitzer für diese Dateierweiterung mit gespeichert. Wurde das optionale Argument weg-gelassen, dann versucht tocbasic den Dateinamen der aktuell abgearbeiteten Klasse oderdes Pakets herauszufinden und als Besitzer zu speichern. Dies funktioniert nur, wenn\addtotoclist während des Ladens der Klasse oder des Pakets aufgerufen wird. Es funk-tioniert nicht, wenn \addtotoclist erst später aufgrund der Verwendung einer Anweisungdurch den Benutzer aufgerufen wird. In diesem Fall wird als Besitzer ».« eingetragen.

Beachten Sie, dass ein leeres Argument Besitzer nicht das Gleiche ist wie das Weglassen deskompletten optionalen Arguments einschließlich der eckigen Klammern. Ein leeres Argumentwürde auch einen leeren Besitzer ergeben.

Beispiel: Angenommen, Sie wollen die Dateierweiterung »foo« der Liste der bekannten Da-teierweiterungen hinzufügen, während Ihr Paket mit dem Dateinamen »bar.sty«geladen wird:\addtotoclist{foo}

Dies fügt die Dateierweiterung »foo« mit dem Besitzer »bar.sty« der Liste derbekannten Dateierweiterung hinzu, wenn diese Erweiterung nicht bereits in derListe ist. Wenn die verwendete Klasse oder ein anderes Paket diese Dateierweiterungschon angemeldet hat, erhalten Sie den Fehler:Package tocbasic Error: file extension ‘foo’ cannot be used twice

Kapitel 15: Verzeichnisse verwalten mit Hilfe von tocbasic 390

See the tocbasic package documentation for explanation.Type H <return> for immediate help.

Wenn Sie dann tatsächlich die Taste »H«, gefolgt von der Return-Taste drücken,erhalten Sie als Hilfe:File extension ‘foo’ is already used by a toc-file, while bar.stytried to use it again for a toc-file.This may be either an incompatibility of packages, an error at a ←↩package,

or a mistake by the user.

Vielleicht stellt Ihr Paket auch eine Anweisung bereit, die ein Verzeichnis dynamischerzeugt. In diesem Fall sollten Sie das optionale Argument von \addtotoclistverwenden, um den Besitzer anzugeben:\newcommand*{\createnewlistofsomething}[1]{%\addtotoclist[bar.sty]{#1}%% Weitere Aktionen, um dieses Verzeichnis% verfügbar zu machen

}

Wenn jetzt der Anwender diese Anweisung aufruft, beispielsweise mit\createnewlistofsomething{foo}

dann wird die Dateierweiterung »foo« ebenfalls mit dem Besitzer »bar.sty« zurListe der bekannten Dateierweiterungen hinzugefügt oder aber ein Fehler gemeldet,wenn diese Dateierweiterung bereits verwendet wird.

Sie können als Besitzer angeben, was immer Sie wollen, aber es sollte eindeutig sein!Wenn Sie beispielsweise der Autor des Pakets float wären, könnten Sie als Besitzer auch dieKategorie »float« anstelle von »float.sty« angeben. In diesem Fall würden die KOMA-Script-Optionen für das Verzeichnis der Abbildungen und das Verzeichnis der Tabellen auchIhre Verzeichnisse betreffen, die zum Zeitpunkt der Verwendung der jeweiligen Option bereitszur Liste der bekannten Dateierweiterungen hinzugefügt sind. Das liegt daran, dass KOMA-Script die Dateierweiterungen »lof« für das Abbildungsverzeichnis und »lot« für das Tabel-lenverzeichnis mit der Kategorie »float« als Besitzer anmeldet und die Optionen für diesenBesitzer setzt.Das Paket scrhack enthält übrigens Patches für mehrere Pakete wie float oder listings, die

eigene Verzeichnisse bereitstellen. Bei Verwendung von scrhack wird dann unter anderem diejeweilige Dateierweiterung der Liste der bekannten Dateierweiterungen hinzugefügt. Dabeiwird als Besitzer ebenfalls »float« verwendet. Dies ist sozusagen der grundlegende Baustein,um die Möglichkeiten von tocbasic und der KOMA-Script-Klassen auch für diese Verzeichnissenutzen zu können.

Kapitel 15: Verzeichnisse verwalten mit Hilfe von tocbasic 391

\AtAddToTocList[Besitzer ]{Anweisungen }

Auf diese Weise können die Anweisungen zu einer internen Liste von Anweisungen hinzugefügtwerden, die immer dann auszuführen sind, wenn eine Dateierweiterung mit dem angegebenenBesitzer zur Liste der bekannten Dateierweiterungen hinzugefügt wird. Bezüglich des op-tionalen Arguments wird wie in der Erklärung von \addtotoclist beschrieben verfahren.Wird das optionale Argument leer gelassen, werden in diesem Fall die Aktionen unabhängigvom Besitzer immer ausgeführt, wenn die Dateierweiterung zu der Liste der bekannten Da-teierweiterungen hinzugefügt wird. Während der Ausführung der Anweisungen ist außerdem\@currext die Dateierweiterung, die gerade hinzugefügt wird.

Beispiel: tocbasic selbst verwendet\AtAddToTocList[]{%\expandafter\tocbasic@extend@babel\expandafter{\@currext}}

um jede Dateierweiterung zu der in tocbasic vorhandenen Erweiterung für das Paketbabel hinzuzufügen.

Die zweimalige Verwendung von \expandafter ist im Beispiel erforderlich, weil das Argu-ment von \tocbasic@extend@babel zwingend bereits expandiert sein muss. Siehe dazu auchdie Erklärung zu \tocbasic@extend@babel in Abschnitt 15.4, Seite 416.

\removefromtoclist[Besitzer ]{Dateierweiterung }

Man kann eine Dateierweiterung auch wieder aus der Liste der bekannten Dateierweite-rungen entfernen. Ist das optionale Argument [Besitzer ] angegeben, so wird die Datei-erweiterung nur entfernt, wenn sie für den angegebenen Besitzer angemeldet wurde. Wieder Besitzer beim Weglassen des optionalen Argument bestimmt wird, ist der Erklärung zu\addtotoclist zu entnehmen. Wird ein leerer Besitzer angegeben, findet kein Besitzerteststatt, sondern die Dateierweiterung wird unabhängig vom Besitzer entfernt.

\doforeachtocfile[Besitzer ]{Anweisungen }

Bisher haben Sie nur Anweisungen kennengelernt, die für Klassen- und Paketautoren zwar zu-sätzliche Sicherheit, aber auch eher zusätzlichen Aufwand bedeuten. Mit \doforeachtocfilekann man die erste Ernte dafür einfahren. Diese Anweisung erlaubt es die angegebenenAnweisungen für jede mit dem Besitzer angemeldete Dateierweiterung auszuführen. Wäh-rend der Ausführung der Anweisungen ist \@currext die aktuell verarbeitete Dateierweite-rung. Wird das optionale Argument [Besitzer ] weggelassen, so werden alle Dateierweiterun-gen unabhängig vom Besitzer abgearbeitet. Ein leeres optionales Argument würde hingegennur die Dateierweiterungen mit leerem Besitzer verarbeiten.

Beispiel: Wenn Sie die Liste aller bekannten Dateierweiterungen auf das Terminal und in dielog-Datei ausgeben wollen, ist dies einfach mit

Kapitel 15: Verzeichnisse verwalten mit Hilfe von tocbasic 392

\doforeachtocfile{\typeout{\@currext}}

möglich. Sollen hingegen nur die Dateierweiterungen des Besitzer »foo« ausgegebenwerden, geht das einfach mit:\doforeachtocfile[foo]{\typeout{\@currext}}

Die KOMA-Script-Klassen scrbook und scrreprt verwenden die Anweisung, um für Verzeichnis-se, für die Eigenschaft chapteratlist gesetzt ist, optional einen vertikalen Abstand oder dieKapitelüberschrift in das Verzeichnis einzutragen. Wie Sie diese Eigenschaft setzen können,ist in Abschnitt 15.2 ab Seite 397 zu finden.

\tocbasicautomode

Diese Anweisung definiert das vom LATEX-Kern für Klassen- und Paketautoren bereitgestellte\@starttoc so um, dass bei jedem Aufruf von \@starttoc die dabei angegebene Dateier-weiterung in die Liste der bekannten Dateierweiterungen eingefügt wird, soweit sie dort nochnicht vorhanden ist. Außerdem wird dann \tocbasic@starttoc anstelle von \@starttoc ver-wendet. Näheres zu \tocbasic@starttoc und \@starttoc ist Abschnitt 15.4, Seite 416 zuentnehmen.Mit Hilfe von \tocbasicautomode wird also jedes Verzeichnis, das mit Hilfe von \@starttoc

erstellt wird, automatisch unter die Kontrolle von tocbasic gestellt. Ob das zum gewünschtenErgebnis führt, hängt jedoch sehr von den jeweiligen Verzeichnissen ab. Immerhin funktioniertdamit schon einmal die Erweiterung für das babel-Paket für alle Verzeichnisse. Es ist jedochvorzuziehen, wenn der Paketautor selbst tocbasic explizit verwendet. Er kann dann auch dieweiteren Vorteile nutzen, die ihm das Paket bietet und die in den nachfolgenden Abschnittenbeschrieben werden.

15.2. Erzeugen eines Verzeichnisses

Im vorherigen Abschnitt haben Sie erfahren, wie eine Liste bekannter Dateierweiterungenverwaltet werden kann und wie automatisch Anweisungen beim Hinzufügen von Dateierwei-terungen zu dieser Liste ausgeführt werden können. Des Weiteren haben Sie eine Anweisungkennengelernt, mit der man für jede einzelne bekannte Dateierweiterung oder einen spezifi-schen Teil davon Anweisungen ausführen kann. In diesem Abschnitt werden Sie Anweisungenkennenlernen, die sich auf die Datei beziehen, die mit dieser Dateierweiterung verbunden ist.

Kapitel 15: Verzeichnisse verwalten mit Hilfe von tocbasic 393

\addtoeachtocfile[Besitzer ]{Inhalt }

Die Anweisung \addtoeachtocfile schreibt Inhalt mit Hilfe von \addtocontents aus demLATEX-Kern in jede Datei, die mit dem angegebenen Besitzer in der Liste der bekannten Da-teierweiterungen zu finden ist. Wird das optionale Argument weggelassen, wird in jede Dateiaus der Liste der bekannten Dateierweiterungen geschrieben. Der konkrete Dateiname setztsich dabei übrigens aus \jobname und der Dateierweiterung zusammen. Während des Schrei-bens von Inhalt ist \@currext die Dateierweiterung der Datei, in die aktuell geschriebenwird.Beispiel: Sie wollen einen vertikalen Abstand von einer Zeile in alle Dateien aus der Liste

der bekannten Dateierweiterungen schreiben.\addtoeachtocfile{%\protect\addvspace{\protect\baselineskip}%

}%

Wenn Sie das hingegen nur für die Dateien mit dem definierten Besitzer »foo«machen wollen, verwenden Sie:\addtoeachtocfile[foo]{%\protect\addvspace{\protect\baselineskip}%

}

Anweisungen, die nicht bereits beim Schreiben expandiert werden sollen, sind wie bei\addtocontents mit \protect zu schützen.

\addxcontentsline{Dateierweiterung }{Ebene }[Gliederungsnummer ]{Inhalt }

Diesev3.12 Anweisung ähnelt sehr der Anweisung \addcontentsline aus dem LATEX-Kern. Al-lerdings besitzt sie ein zusätzliches optionales Argument für die Gliederungsnummer desEintrags, während diese bei \addcontentsline im Argument Inhalt mit angegeben wird.Sie wird verwendet, um nummerierte oder nicht nummerierte Einträge in das über dieDateierweiterung spezifizierte Verzeichnis aufzunehmen. Dabei ist Ebene der symbolischeName der Gliederungsebene und Inhalt der entsprechende Eintrag. Die Seitenzahl wird au-tomatisch bestimmt.Im Unterschied zu \addcontentsline testet \addxcontentsline zunächst, ob Anweisung

\addEbene Dateierweiterung entry definiert ist. In diesem Fall wird sie für den Eintragverwendet, wobei Gliederungsnummer als optionales Argument und Inhalt als obligatori-sches Argument übergeben wird. Ein Beispiel für eine solche Anweisung, die von den KOMA-Script-Klassen bereitgestellt wird, wäre \addparttocentry (siehe Abschnitt 21.4, Seite 503).Ist die entsprechende Anweisung nicht definiert, wird stattdessen die interne Anweisung\tocbasic@addxcontentsline verwendet. Diese erhält alle vier Argumente als obligatorischeArgumente und verwendet dann seinerseits \addcontentsline, um den gewünschten Ein-trag vorzunehmen. Näheres zu \tocbasic@addxcontentsline ist Abschnitt 15.4, Seite 418zu entnehmen.

Kapitel 15: Verzeichnisse verwalten mit Hilfe von tocbasic 394

Ein Vorteil der Verwendung von \addxcontentsline gegenüber \addcontentsline ist zumeinen, dass die Eigenschaft numberline (siehe Seite 397) beachtet wird. Zum anderen kann dieForm der Einträge über die Definition entsprechender, für die Ebene und Dateierweiterungspezifischer Anweisungen konfiguriert werden.

\addxcontentslinetoeachtocfile[Besitzer ]{Ebene }[Gliederungsnummer ]{Inhalt }\addcontentslinetoeachtocfile[Besitzer ]{Ebene }{Inhalt }

Diese beiden Anweisungen stehen in direkter Beziehung zu dem oben erklärten\addxcontentslinev3.12 beziehungsweise zum im LATEX-Kern definierten \addcontentsline. DerUnterschied besteht darin, dass diese Anweisungen Inhalt nicht nur in eine einzelne Datei,sondern in alle Dateien eines angegebenen Besitzers und bei Verzicht auf das erste optionaleArgument in alle Dateien aus der Liste der bekannten Dateierweiterungen schreibt.

Beispiel: Angenommen, Sie sind Klassen-Autor und wollen den Kapiteleintrag nicht nur indas Inhaltsverzeichnis, sondern in alle Verzeichnisdateien schreiben. Nehmen wirweiter an, dass aktuell #1 den Titel enthält, der geschrieben werden soll.\addxcontentslinetoeachtocfile{chapter}%

[\thechapter]{#1}

In diesem Fall soll natürlich die aktuelle Kapitelnummer direkt beim Schreiben indie Verzeichnisdatei expandiert werden, weshalb sie nicht mit \protect vor derExpansion geschützt wurde.

Während des Schreibens von Inhalt ist auch hier, wie schon bei \addtoeachtocfile,\@currext die Dateierweiterung der Datei, in die aktuell geschrieben wird.Die Anweisungv3.12 \addxcontentslinetoeachtocfile ist wann immer möglich ge-

genüber \addcontentslinetoeachtocfile vorzuziehen, da die Erweiterungen von\addxcontentsline nur damit Anwendung finden. Näheres zu diesen Erweiterungenund Vorteilen ist in der vorausgehenden Erklärung von \addxcontentsline zu finden.

\listoftoc[Titel ]{Dateierweiterung }\listoftoc*{Dateierweiterung }\listofeachtoc[Besitzer ]\listofDateierweiterung name

Mit diesen Anweisungen werden die Verzeichnisse ausgegeben. Die Sternvariante \listoftoc*benötigt als einziges Argument die Dateierweiterung der Datei mit den Daten zu dem Ver-zeichnis. Die Anweisung setzt zunächst die vertikalen und horizontalen Abstände, die innerhalbvon Verzeichnissen gelten sollen, führt die Anweisungen aus, die vor dem Einlesen der Dateiausgeführt werden sollen, liest dann die Datei und führt zum Schluss die Anweisungen aus, dienach dem Einlesen der Datei ausgeführt werden sollen. Damit kann \listoftoc* als direkterErsatz der LATEX-Kern-Anweisung \@starttoc verstanden werden.

Kapitel 15: Verzeichnisse verwalten mit Hilfe von tocbasic 395

Die Version von \listoftoc ohne Stern setzt das komplette Verzeichnis und veranlasstauch einen optionalen Eintrag in das Inhaltsverzeichnis und den Kolumnentitel. Ist das op-tionale Argument [Titel ] gegeben, so wird diese Angabe sowohl als Überschrift als auch alsoptionaler Eintrag in das Inhaltsverzeichnis und den Kolumnentitel verwendet. Ist das Ar-gument Titel lediglich leer, so wird auch eine leere Angabe verwendet. Wird hingegen daskomplette Argument einschließlich der eckigen Klammern weggelassen, so wird die Anweisung\listofDateierweiterung name verwendet, wenn diese definiert ist. Ist sie nicht definiert,wird ein Standard-Ersatzname verwendet und eine Warnung ausgegeben.Die Anweisung \listofeachtoc gibt alle Verzeichnisse mit dem angegebenen Besit-

zer oder alle Verzeichnisse aller bekannten Dateinamenerweiterungen aus. Dabei sollte\listofDateierweiterung name definiert sein, damit der korrekte Titel ausgegeben werdenkann.Da eventuell auch der Anwender selbst \listoftoc ohne optionales Argument oder

\listofeachtoc verwenden könnte, wird empfohlen \listofDateierweiterung name immerpassend zu definieren.

Beispiel: Angenommen, Sie haben ein neues »Verzeichnis der Algorithmen« mit der Datei-erweiterung »loa« und wollen dieses anzeigen lassen:\listoftoc[Verzeichnis der Algorithmen]{loa}

erledigt das für Sie. Wollen Sie das Verzeichnis hingegen ohne Überschrift ausgege-ben haben, dann genügt:\listoftoc*{loa}

Im zweiten Fall würde natürlich auch ein optional aktivierter Eintrag in das In-haltsverzeichnis nicht gesetzt. Näheres zur Eigenschaft des Eintrags in das Inhalts-verzeichnis ist bei der Anweisung \setuptoc, Seite 397 zu finden.Wenn Sie zuvor\newcommand*{\listofloaname}{%Verzeichnis der Algorithmen%

}

definiert haben, genügt auch:\listoftoc{loa}

um ein Verzeichnis mit der gewünschten Überschrift zu erzeugen. Für den Anwenderist es eventuell einprägsamer, wenn Sie dann außerdem noch\newcommand*{\listofalgorithms}{\listoftoc{loa}}

als einfache Verzeichnisanweisung definieren.

Da LATEX bei der Ausgabe eines Verzeichnisses auch gleich eine neue Verzeichnisdatei zumSchreiben öffnet, kann der Aufruf jeder dieser Anweisungen zu einer Fehlermeldung der Art

Kapitel 15: Verzeichnisse verwalten mit Hilfe von tocbasic 396

! No room for a new \write .\ch@ck ...\else \errmessage {No room for a new #3}

\fi

führen, wenn keine Schreibdateien mehr zur Verfügung stehen. Abhilfe kann in diesem Falldas Laden des in Kapitel 14 beschriebenen Pakets scrwfile bieten.

Das Paket scrhack enthält übrigens Patches für mehrere Pakete wie float oder listings, da-mit deren Verzeichnisbefehle \listoftoc verwenden. Dadurch stehen viele Möglichkeiten vontocbasic und den KOMA-Script-Klassen auch für deren Verzeichnisse zur Verfügung.

\BeforeStartingTOC[Dateierweiterung ]{Anweisungen }\AfterStartingTOC[Dateierweiterung ]{Anweisungen }

Manchmal ist es nützlich, wenn unmittelbar vor dem Einlesen der Datei mit den Verzeichnisda-ten Anweisungen ausgeführt werden können. Mit Hilfe von \BeforeStartingTOC können Sieeine solche Ausführung wahlweise für eine einzelne Dateierweiterung oder alle Dateien, diemit Hilfe von \listoftoc*, \listoftoc oder \listofeachtoc eingelesen werden, erreichen.Ebenso können Sie Anweisungen nach dem Einlesen der Datei ausführen, wenn Sie diese mit\AfterStartingTOC definieren. Während der Ausführung der Anweisungen ist \@currext dieDateierweiterung der Datei, die eingelesen wird bzw. gerade eingelesen wurde.Ein Beispiel zur Verwendung von \BeforeStartingTOC ist in Abschnitt 14.3 auf Seite 387

zu finden.

\BeforeTOCHead[Dateierweiterung ]{Anweisungen }\AfterTOCHead[Dateierweiterung ]{Anweisungen }

Es können auch Anweisungen definiert werden, die unmittelbar vor oder nach dem Setzender Überschrift bei Verwendung von \listoftoc oder \listofeachtoc ausgeführt werden.Bezüglich des optionalen Arguments und der Bedeutung von \@currext gilt, was bereits bei\BeforeStartingTOC und \AfterStartingTOC oben erklärt wurde.

\MakeMarkcase

Wann immer tocbasic eine Marke für einen Kolumnentitel setzt, erfolgt dies als Argumentder Anweisung \MakeMarkcase. Diese Anweisung ist dazu gedacht, bei Bedarf die Groß-/Kleinschreibung des Kolumnentitels zu ändern. In der Voreinstellung ist diese Anweisungbei Verwendung einer KOMA-Script-Klasse \@firstofone, also das unveränderte Argu-ment selbst. Bei Verwendung einer anderen Klasse ist \MakeMarkcase im Gegensatz dazu\MakeUppercase. Die Anweisung wird von tocbasic jedoch nur definiert, wenn sie nicht bereitsdefiniert ist. Sie kann also in einer Klasse in der gewünschten Weise vorbelegt werden undwird dann von tocbasic nicht umdefiniert, sondern verwendet wie vorgefunden.

Beispiel: Sie wollen aus unerfindlichen Gründen, dass die Kolumnentitel in Ihrer Klasse inKleinbuchstaben ausgegeben werden. Damit dies auch für die Kolumnentitel gilt,die von tocbasic gesetzt werden, definieren Sie:

Kapitel 15: Verzeichnisse verwalten mit Hilfe von tocbasic 397

\let\MakeMarkcase\MakeLowercase

Erlauben Sie mir einen Hinweis zu \MakeUppercase. Diese Anweisung ist zum einen nichtvoll expandierbar. Das bedeutet, dass sie im Zusammenspiel mit anderen Anweisungen zu Pro-blemen führen kann. Zum anderen sind sich alle Typografen einig, dass beim Versalsatz, alsobeim Satz kompletter Wörter oder Passagen in Großbuchstaben, Sperrung unbedingt notwen-dig ist. Dabei darf jedoch kein fester Abstand zwischen den Buchstaben verwendet werden.Vielmehr muss zwischen unterschiedlichen Buchstaben auch ein unterschiedlicher Abstand ge-setzt werden, weil sich unterschiedliche Buchstabenkombinationen unterschiedlich verhalten.Gleichzeitig bilden einige Buchstaben von sich aus bereits Löcher, was bei der Sperrung eben-falls zu berücksichtigen ist. Pakete wie ulem oder soul können das ebenso wenig leisten wieder Befehl \MakeUppercase selbst. Auch die automatische Sperrung mit Hilfe des microtype-Pakets ist diesbezüglich nur eine näherungsweise Notlösung, da die von der konkreten Schriftabhängige Form der Buchstaben auch hier nicht näher betrachtet wird. Da Versalsatz alsoeher etwas für absolute Experten ist und fast immer Handarbeit bedeutet, wird Laien emp-fohlen, darauf zu verzichten oder ihn nur vorsichtig und nicht an so exponierter Stelle wie demKolumnentitel zu verwenden.

\deftocheading{Dateierweiterung }{Definition }

Das Paket tocbasic enthält eine Standarddefinition für das Setzen von Überschriften von Ver-zeichnissen. Diese Standarddefinition ist durch verschiedene Eigenschaften, die bei der Anwei-sung \setuptoc erläutert werden, konfigurierbar. Sollte diese Möglichkeit einmal nicht ausrei-chen, so besteht die Möglichkeit, mit \deftocheading eine alternative Überschriftenanweisungfür ein Verzeichnis mit einer bestimmten Dateierweiterung zu definieren. Die Definition kannals einzigen Parameter #1 enthalten. Beim Aufruf der Anweisung innerhalb von \listoftocoder \listofeachtoc wird für dieses Argument dann der Titel für das Verzeichnis übergeben.Die Definition ist dann selbstverständlich auch für die Auswertung weiterer Eigenschaften,

die sich auf die Überschrift beziehen, verantwortlich. Das gilt insbesondere für die nachfolgenderklärten Eigenschaften leveldown, numbered und totoc.

\setuptoc{Dateierweiterung }{Liste von Eigenschaften }\unsettoc{Dateierweiterung }{Liste von Eigenschaften }

Mit diesen beiden Anweisungen können Eigenschaften für eine Dateierweiterung bzw. dasVerzeichnis, das dazu gehört, gesetzt und gelöscht werden. Die Liste von Eigenschaftenist dabei eine durch Komma getrennte Folge von Eigenschaften . Das Paket tocbasic wertetfolgende Eigenschaften aus:

leveldown bedeutet, dass das Verzeichnis nicht mit der obersten Gliederungsebene unter-halb von \part – wenn vorhanden \chapter, sonst \section – erstellt wird, sondernmit einer Überschrift der nächst tieferen Gliederungsebene. Diese Eigenschaft wird von

Kapitel 15: Verzeichnisse verwalten mit Hilfe von tocbasic 398

der internen Überschriftenanweisung ausgewertet. Wird hingegen eine eigene Überschrif-tenanweisung mit \deftocheading definiert, liegt die Auswertung der Eigenschaft in derVerantwortung dessen, der die Definition vornimmt. Die KOMA-Script-Klassen setzendiese Eigenschaft bei Verwendung der Option listof=leveldown für alle Dateierweite-rungen mit dem Besitzer float.

nobabel bedeutet, dass die normalerweise automatisch verwendete Erweiterung für die Spra-chumschaltung mit babel für diese Dateierweiterung nicht verwendet wird. Diese Eigen-schaft sollte nur für Verzeichnisse verwendet werden, die nur in einer festen Sprache er-stellt werden, in denen also Sprachumschaltungen im Dokument nicht zu berücksichtigensind. Sie wird außerdem vom Paket scrwfile für Klonziele verwendet, da die Erweiterun-gen dort bereits durch das Klonen selbst aus der Klonquelle übernommen werden.Es ist zu beachten, dass die Eigenschaft bereits vor dem Hinzufügen der Dateierweiterungzu der Liste der bekannten Dateierweiterungen gesetzt sein muss, damit sie eine Wirkunghat.

noindentv3.27 veranlasst alle von KOMA-Script bereitgestellten Verzeichniseintragsstile die Ei-genschaft indent (siehe Tabelle 15.1, Seite 407) zu ignorieren und stattdessen den Einzugzu deaktivieren.

noparskipfake verhindertv3.17 , dass vor dem Abschalten des Absatzabstandes für die Verzeich-nisse ein letztes Mal ein expliziter Absatzabstand eingefügt wird. Dies führt in der Regeldazu, dass bei Dokumenten mit Absatzabstand der Abstand zwischen Überschrift understen Verzeichniseintrag kleiner wird als zwischen Überschriften und normalem Text.Normalerweise erhält man daher ohne diese Eigenschaft eine einheitlichere Formatierung.

noprotrusion verhindertv3.10 das Abschalten des optischen Randausgleichs in den Verzeichnissen.Optischer Randausgleich wird standardmäßig abgeschaltet, wenn das Paket microtypeoder ein anderes Paket, das die Anweisung \microtypesetup bereitstellt, geladen ist.Wenn also optischer Randausgleich in den Verzeichnissen gewünscht wird, dann mussdiese Eigenschaft aktiviert werden. Es ist jedoch zu beachten, dass der optische Randaus-gleich in Verzeichnissen häufig zu einem falschen Ergebnis führt. Dies ist ein bekanntesProblem des optischen Randausgleichs.

numbered bedeutet, dass das Verzeichnis nummeriert und damit ebenfalls in das Inhalts-verzeichnis aufgenommen werden soll. Diese Eigenschaft wird von der internen Über-schriftenanweisung ausgewertet. Wird hingegen eine eigene Überschriftenanweisung mit\deftocheading definiert, liegt die Auswertung der Eigenschaft in der Verantwortungdessen, der die Definition vornimmt. Die KOMA-Script-Klassen setzen diese Eigenschaftbei Verwendung der Option listof=numbered für alle Dateierweiterungen mit dem Be-sitzer float.

Kapitel 15: Verzeichnisse verwalten mit Hilfe von tocbasic 399

numberlinev3.12 bedeutet, dass all diejenigen Einträge, die mit Hilfe der Anweisung\addxcontentsline oder der Anweisung \addxcontentslinetoeachtocfile vorge-nommen werden, wobei das optionale Argument für die Nummer fehlt oder leer ist,mit einer leeren \numberline-Anweisung versehen werden. Das führt in der Regel da-zu, dass diese Einträge nicht linksbündig mit der Nummer, sondern mit dem Text dernummerierten Einträge gleicher Ebene gesetzt werden. Beiv3.20 Verwendung des Verzeich-niseintragsstils tocline kann die Eigenschaft weitere Auswirkungen haben. Siehe dazudie Stil-Eigenschaften breakafternumber und entrynumberformat in Tabelle 15.1 abSeite 405.Die KOMA-Script-Klassen setzen diese Eigenschaft bei Verwendung der Option listof=numberline für die Dateierweiterungen mit dem Besitzer float und bei Verwendungder Option toc=numberline für die Dateierweiterung toc. Entsprechend wird die Ei-genschaft bei Verwendung von Option listof=nonumberline oder toc=nonumberlinewieder zurückgesetzt.

onecolumnv3.01 bedeutet, dass für dieses Verzeichnis automatisch der LATEX-interne Einspaltenmo-dus mit \onecolumn verwendet wird. Dies gilt jedoch nur, falls dieses Verzeichnis nichtmit der oben beschriebenen Eigenschaft leveldown um eine Gliederungsebene nach un-ten verschoben wurde. Die KOMA-Script-Klassen scrbook und scrreprt setzen diese Ei-genschaft per \AtAddToTocList (siehe Seite 391) für alle Verzeichnisse mit dem Besitzerfloat oder mit sich selbst als Besitzer. Damit werden beispielsweise das Inhaltsverzeich-nis, das Abbildungsverzeichnis und das Tabellenverzeichnis bei diesen beiden Klassenautomatisch einspaltig gesetzt. Der Mehrspaltenmodus des multicol-Pakets ist von derEigenschaft ausdrücklich nicht betroffen.

totoc bedeutet, dass der Titel des Verzeichnisses in das Inhaltsverzeichnis aufgenommen wer-den soll. Diese Eigenschaft wird von der internen Überschriftenanweisung ausgewertet.Wird mit \deftocheading hingegen eine eigene Überschriftenanweisung definiert, liegtdie Auswertung der Eigenschaft in der Verantwortung dessen, der die Definition vor-nimmt. Die KOMA-Script-Klassen setzen diese Eigenschaft bei Verwendung der Optionlistof=totoc für alle Dateierweiterungen mit dem Besitzer float.

Die KOMA-Script-Klassen kennen eine weitere Eigenschaft:

chapteratlist sorgt dafür, dass in dieses Verzeichnis bei jedem neuen Kapitel eine optiona-le Gliederung eingefügt wird. In der Voreinstellung ist diese Untergliederung dann einvertikaler Abstand. Näheres zu den Möglichkeiten ist Option listof in Abschnitt 3.20,Seite 153 zu entnehmen.

Beispiel: Da KOMA-Script für das Abbildungs- und das Tabellenverzeichnis auf tocbasicaufbaut, gibt es nun eine weitere Möglichkeit, jegliche Kapiteluntergliederung dieserVerzeichnisse zu verhindern:

Kapitel 15: Verzeichnisse verwalten mit Hilfe von tocbasic 400

\unsettoc{lof}{chapteratlist}\unsettoc{lot}{chapteratlist}

Wollen Sie hingegen, dass das von Ihnen definierte Verzeichnis mit der Dateierwei-terung »loa« ebenfalls von der Kapiteluntergliederung der KOMA-Script-Klassenbetroffen ist, so verwenden Sie\setuptoc{loa}{chapteratlist}

Wollen Sie außerdem, dass bei Klassen, die \chapter als oberste Gliederungsebeneverwenden, das Verzeichnis automatisch einspaltig gesetzt wird, so verwenden Siezusätzlich\ifundefinedorrelax{chapter}{}{%\setuptoc{loa}{onecolumn}%

}

Die Verwendung von \ifundefinedorrelax setzt das Paket scrbase voraus (sieheAbschnitt 12.3, Seite 356).Sollte Ihr Paket mit einer anderen Klasse verwendet werden, so schadet es trotzdemnicht, dass Sie diese Eigenschaften setzen, im Gegenteil: Wertet eine andere Klassediese Eigenschaften ebenfalls aus, so nutzt Ihr Paket automatisch die Möglichkeitenjener Klasse.

Wie Sie hier sehen, unterstützt ein Paket, das tocbasic verwendet, bereits ohne nennenswertenAufwand diverse Möglichkeiten für die dadurch realisierten Verzeichnisse, die sonst einigenImplementierungsaufwand bedeuten würden und deshalb in vielen Paketen leider fehlen.

\iftocfeature{Dateierweiterung }{Eigenschaft }{Dann-Teil }{Sonst-Teil }

Hiermit kann man für jede Eigenschaft feststellen, ob sie für eine Dateierweiterung gesetztist. Ist dies der Fall, wird der Dann-Teil ausgeführt, anderenfalls der Sonst-Teil . Das kannbeispielsweise nützlich sein, wenn Sie eigene Überschriftenanweisungen mit \deftocheadingdefinieren, aber die oben beschriebenen Eigenschaften totoc, numbered oder leveldown un-terstützen wollen.

15.3. Konfiguration von Verzeichniseinträgen

Nebenv3.20 den eigentlichen Verzeichnissen und den zugehörigen Hilfsdateien kann man mit demPaket tocbasic ab Version 3.20 auch Einfluss auf die Verzeichniseinträge nehmen. Dazu könnenneue Stile definiert werden. Es stehen aber auch mehrere vordefinierte Stile zur Verfügung.Mittelfristig wird tocbasic das nie offiziell gewordene KOMA-Script-Paket tocstyle ablösen. DieKOMA-Script-Klassen selbst bauen seit Version 3.20 ebenfalls vollständig auf die von tocbasicbereitgestellten Stile für Verzeichniseinträge.

Kapitel 15: Verzeichnisse verwalten mit Hilfe von tocbasic 401

tocdepth

Verzeichniseinträge sind normalerweise hierarchisch geordnet. Dazu wird jeder Eintragsebeneein nummerischer Wert zu geordnet. Je höher dieser Wert, desto tiefer in der Hierarchie liegtdie Ebene. Bei den Standardklassen hat die Ebene für Teile beispielsweise den Wert -1 unddie Ebene für Kapitel den Wert 0. Über den LATEX-Zähler tocdepth wird bestimmt, bis zuwelcher Ebene Einträge im Verzeichnis ausgegeben werden.Bei book ist tocdepth beispielsweise mit 2 voreingestellt, es werden also die Einträ-

ge der Ebenen part, chapter, section und subsection ausgeben. Tiefere Ebenen wiesubsubsection, deren nummerischer Wert 3 ist, werden nicht ausgegeben. Trotzdem sinddie Einträge in der Hilfsdatei für das Inhaltsverzeichnis vorhanden.

Die von tocbasic definierten Eintragsstile beachten, abgesehen von gobble (siehe\DeclareTOCStyleEntry), ebenfalls tocdepth.

\numberline{Gliederungsnummer }\usetocbasicnumberline[Code ]

Zwarv3.20 definiert bereits der LATEX-Kern eine Anweisung \numberline, diese ist allerdings fürdie Anforderungen von tocbasic nicht ausreichend. Deshalb definiert tocbasic eigene Anwei-sungen und setzt \numberline bei Bedarf mit Hilfe von \usetocbasicnumberline für dieeinzelnen Verzeichniseinträge entsprechend. Eine Umdefinierung von \numberline ist daherbei Verwendung von tocbasic oftmals wirkungslos und führt teilweise auch zu Warnungen.

Man kann auch die Definition von tocbasic generell nutzen, indem man bereits in der Doku-mentpräambel \usetocbasicnumberline aufruft. Die Anweisung versucht zunächst zu ermit-teln, ob in der aktuellen Definition wichtige interne Anweisungen von tocbasic verwendet wer-den. Ist dies nicht der Fall, wird \numberline entsprechend umdefiniert und zusätzlich Codeausgeführt. Ist kein optionales Arguments angegeben, wird stattdessen via \PackageInfo ei-ne Meldung über die erfolgte Umdefinierung ausgegeben. Diese Meldung kann man einfachunterdrücken, indem ein leeres optionales Argument angegeben wird.Es ist zu beachten, dass \usetocbasicnumberline den internen Schalter \if@tempswa glo-

bal verändern kann!

\DeclareTOCStyleEntry[Optionenliste ]{Stil }{Eintragsebene }\DeclareTOCStyleEntries[Optionenliste ]{Stil }{Liste von Eintragsebenen }

Überv3.20 diese Anweisungen werden die Verzeichniseinträge für bestimmte Eintragsebenen dekla-riert oder konfiguriert. Dabei ist die Eintragsebene der Name der jeweiligen Eintragsebene,beispielsweise section für einen zur gleichnamigen Gliederungsebene gehörenden Eintrag insInhaltsverzeichnis oder figure für den Eintrag einer Abbildung ins Abbildungsverzeichnis.Jeder Eintragsebene wird ein bestimmter Stil zugeordnet, der zum Zeitpunkt der Dekla-ration bereits definiert sein muss. Über die Optionenliste können die verschiedenen, meistvom Stil abhängenden Eigenschaften des Eintrags festgelegt werden.Derzeit werden von tocbasic die folgenden Eintragsstile definiert:

Kapitel 15: Verzeichnisse verwalten mit Hilfe von tocbasic 402

1.1.10 Überschrift im Verzeichniseintragsstil dottedtoclinemit mehr als einerZeile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12indent

numwidth \@tocrmarg

\@pnumwidth

Abbildung 15.1.: Illustration einiger Attribute des Verzeichniseintragsstils dottedtocline

default ist in der Voreinstellung ein Klon von Stil dottedtocline. Klassenautoren, dietocbasic verwenden, wird empfohlen, diesen Stil mit Hilfe von \CloneTOCEntryStyleauf den Standardverzeichniseintragsstil der Klasse zu ändern. Bei den KOMA-Script-Klassen wird default beispielsweise zu einem Klon von Stil tocline.

dottedtocline entspricht dem Stil, der von den Standardklassen book und report für dieInhaltsverzeichniseinträge der Ebenen section bis subparagraph und bei allen Stan-dardklassen für die Einträge in das Abbildungs- und das Tabellenverzeichnis bekanntist. Er kennt nur drei Eigenschaften. Die Einträge werden um indent von links ein-gezogen in der aktuellen Schrift ausgegeben. \numberline wird nicht umdefiniert. DieBreite der Nummer wird von numwidth bestimmt. Bei mehrzeiligen Einträgen wird derEinzug ab der zweiten Zeile um numwidth erhöht. Die Seitenzahl wird mit \normalfontausgegeben. Eintragstext und Seitenzahl werden durch eine punktierte Linie verbunden.Abbildung 15.1 illustriert die Eigenschaften des Stils.

gobble ist der denkbar einfachste Stil. Einträge in diesem Stil werden unabhängig von allenEinstellungen für tocdepth nicht ausgegeben sondern sozusagen verschluckt. Dennochverfügt er über die Standardeigenschaft level, die jedoch nie ausgewertet wird.

largetocline entspricht dem Stil, der von den Standardklassen für die Ebene part bekanntist. Er kennt nur die Eigenschaften level und indent . Letzteres ist gleichsam eineAbweichung von den Standardklassen, die selbst keinen Einzug der part-Einträge un-terstützen.Vor dem Eintrag wird ein Seitenumbruch erleichtert. Die Einträge werden um indentvon links eingezogen und mit den Schrifteinstellungen \large\bfseries ausgegeben.Sollte \numberline verwendet werden, so ist die Nummernbreite fest auf 3 em eingestellt.\numberline wird nicht umdefiniert. Die Standardklassen verwenden für part -Einträgekein \numberline. Der Wert hat bei mehrzeiligen Einträgen auch keine Auswirkung aufden Einzug ab der zweiten Zeile.Abbildung 15.2 illustriert die Eigenschaften des Stils. Dabei wird auch auffällig, dass derStil einige Ungereimtheiten der Standardklassen übernommen hat, beispielsweise derfehlende Einzug ab der zweiten Zeile bei mehrzeiligen Einträgen und zwei unterschiedli-che Werte für \@pnumwidth, die aus einer Abhängigkeit von der Schriftgröße resultieren.Daraus resultiert auch der Umstand, dass im Extremfall der Text der Überschrift der

Kapitel 15: Verzeichnisse verwalten mit Hilfe von tocbasic 403

I Überschrift im Verzeichniseintragsstil largetocline mit mehr als ei-ner Zeile 1

3 em \@pnumwidth

\large\@pnumwidth

Abbildung 15.2.: Illustration einiger Attribute des Verzeichniseintragsstils largetocline

Seitenzahl zu nahe kommen kann. Es ist zu beachten, dass die in der Abbildung gezeig-te Breite der Gliederungsnummer nur dann Verwendung findet, wenn auch tatsächlich\numberline verwendet wird. Die Standardklassen setzen hingegen einen festen Abstandvon 1 em nach der Nummer.

tocline ist ein flexibler Stil, der in der Voreinstellung für alle Einträge der KOMA-Script-Klassen verwendet wird. Entsprechend definieren diese Klassen auch die Klone part,chapter und section beziehungsweise section und subsection mit Hilfe dieses Stils,ändern dann jedoch den Initialisierungscode der Klone so ab, dass sie unterschied-liche Voreinstellungen besitzen.Der Stil kennt neben der Standardeigenschaft level noch 18 weitere Eigenschaf-ten. Die Voreinstellungen all dieser Eigenschaften werden abhängig vom Namen derEintragsebene bestimmt und orientieren sich dann an den Ergebnissen der Standard-klassen. Es ist daher möglich, nach Laden von tocbasic den Stil der Inhaltsverzeichnis-einträge der Standardklassen mit \DeclareTOCEntryStyle in tocline zu ändern, ohnedass dies unmittelbar zu größeren Veränderungen im Aussehen der Inhaltsverzeichnis-einträge führt. So kann man gezielt nur die Eigenschaften ändern, die für erwünschteÄnderungen notwendig sind. Dasselbe gilt für Abbildungs- und Tabellenverzeichnis derStandardklassen.Aufgrund der hohen Flexibilität kann dieser Stil prinzipiell die Stile dottedtocline,undottedtocline und largetocline ersetzen, bedarf dann jedoch teilweise eines höhe-ren Aufwands bei der Konfiguration.Abbildung 15.3 illustriert einige Längen-Eigenschaften des Stils. Die weiteren sind inTabelle 15.1, ab Seite 405 erklärt.

toctextv3.27 stellt eine Besonderheit dar. Während alle anderen Stile je Eintrag einen Absatzerzeugen, wird hier für alle aufeinanderfolgenden Einträge dieses Stils nur ein einzigerAbsatz erzeugt. Für die Konfigurierung stehen neben der Standardeigenschaft level mit13 weiteren Eigenschaften fast so viele Möglichkeiten wie bei tocline zur Verfügung.Dieser Stil ist aber zwingend darauf angewiesen, dass am Anfang aller anderen Stileund auch am Ende des Verzeichnisses ein noch nicht beendeter Absatz tasächlich be-endet wird. Daher sollten Einträge dieses Stils nicht mit Einträgen oder Verzeichnissenkombiniert werden, die an tocbasic vorbei erzeugt werden.

Kapitel 15: Verzeichnisse verwalten mit Hilfe von tocbasic 404

I. Überschrift eines Teil-Eintrags im Stil tocline zur Demonstrationmit mehr als einer Zeile 12numwidth

\@tocrmarg

\@pnumwidth

1. Überschrift eines Kapiteleintrags im Stil tocline zur Demonstration mitmehr als einer Zeile 12

beforeskip

numwidth\@tocrmarg

\@pnumwidth1.1. Überschrift eines Abschnitteintrags im Stil tocline zur Demonstration mitmehr als einer Zeile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31.1.10. Überschrift eines Unterabschnitteintrags im Stil tocline mit mehr als

einer Zeile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12indent

numwidth\@tocrmarg

\@pnumwidth

Abbildung 15.3.: Illustration einiger Attribute des Verzeichniseintragsstils tocline

undottedtocline entspricht dem Stil, der von den Standardklassen book und report für dieEbene chapter und von article für die Ebene section bekannt ist. Er kennt nur dreiEigenschaften. Vor dem Eintrag wird ein Seitenumbruch erleichtert und ein vertikalerAbstand eingefügt. Die Einträge werden um indent von links eingezogen in \bfseriesausgegeben. Dies ist gleichsam eine Abweichung von den Standardklassen, die selbst kei-nen Einzug für Einträge der genannten Ebenen bieten. \numberline wird nicht umdefi-niert. Die Breite der Nummer wird von numwidth bestimmt. Bei mehrzeiligen Einträgenwird der Einzug ab der zweiten Zeile um numwidth erhöht. Abbildung 15.4 illustriert dieEigenschaften des Stils.

Eine Erklärung zu den Eigenschaften der von tocbasic definierten Stile findet sich in Tabel-le 15.1. Nebenv3.27 der normalen Zuweisung eines Wertes in der Form Schlüssel =Wert verstehenbeide Befehle für die durch KOMA-Script definierten Stile für alle Optionen auch die Zu-weisungen in der Form Schlüssel :=Eintragsebene . In diesem Fall wird die aktuell gültigeEinstellung für Eintragsebene kopiert, soweit diese verfügbar ist. Es kann also beispiels-weise mit indent:=figure der Einzug für figure-Einträge kopiert werden. Für Optionen,die eine Länge oder einen Integer als Wert erwarten, gibt es außerdem die Möglichkeit mitSchlüssel +=Wert den Wert zur aktuell gültigen Einstellung zu addieren. Für eine Substrak-tion kann ein negativer Wert verwendet werden. Mit indent+=1cm könnte so beispielsweiseder Einzug um 1 cm erhöht werden.

1 Überschrift im Verzeichniseintragsstil undottedtocline mit mehr als einerZeile 3

numwidth \@tocrmarg

\@pnumwidth

Abbildung 15.4.: Illustration einiger Attribute des Verzeichniseintragsstils undottedtocline am Bei-spiel einer Kapitelüberschrift

Kapitel 15: Verzeichnisse verwalten mit Hilfe von tocbasic 405

Beiv3.21 Verwendung der Eigenschaften als Optionen für \DeclareNewTOC (siehe Seite 421) sinddie Namen der Eigenschaften mit dem Präfix tocentry, also beispielsweise tocentrylevelanstelle von level, zu verwenden. Die zuvor beschriebene Kopiermöglichkeit mit := ist hierbeiebenfalls verfügbar. Die Addition mit Hilfe von += wird derzeit jedoch nicht unterstützt.

Beiv3.20 Verwendung als Optionen für \DeclareSectionCommand (siehe Seite 507) und verwand-ten Anweisungen sind die Namen der Eigenschaften mit dem Präfix toc zu versehen, alsobeispielsweise toclevel anstelle von level zu verwenden. Hierbei existiert derzeit weder dieKopiermöglichkeit mit := noch die Addition mit +=.

Letztlich führt der Aufruf von \DeclareTOCStyleEntry zur Definition der Anweisung\l@Eintragsebene .

Tabelle 15.1.: Attribute für die vordefinierten Verzeichniseintragsstile von tocbasic

afterpar=Codev3.27 Der angegebene Code wird nach dem Ende des Absatzes ausgeführt, in dem ein

Eintrag mit dem Stil toctext ausgegeben wird. Verfügen mehrere Einträge übersolche Einstellungen, so werden diese in der Reihenfolge der Einträge ausgeführt.

beforeskip=LängeVertikaler Abstand, der vor einem Eintrag dieser Ebene im Stil tocline eingefügtwird (siehe Abbildung 15.3). Der Abstand wird je nach Ebene mit \vskip oder\addvspace eingefügt, so dass diesbezüglich möglichst Kompatibilität zu den Stan-dardklassen und früheren Versionen von KOMA-Script besteht.Bei der Eintragsebene part wird das Attribut mit 2.25em plus 1pt initialisiert,bei chapter mit 1em plus 1pt. Ist noch keine Eintragsebene chapter bekannt,wird stattdessen für section 1em plus 1pt verwendet. Ansonsten wird sectionwie alle anderen Ebenen mit 0pt plus .2pt initialisiert.

breakafternumber=SchalterSchalter ist einer der Werte für einfache Schalter aus Tabelle 2.5, Seite 42. Ist derSchalter beim Stil tocline aktiviert, so wird nach der mit \numberline gesetztenNummer eine neue Zeile begonnen, die erneut linksbündig mit der Nummer beginnt.In der Voreinstellung ist die Eigenschaft im Stil tocline nicht gesetzt.Ist für ein Verzeichnis mit \setuptoc die Eigenschaft numberline gesetzt (sieheAbschnitt 15.2, Seite 397), wie dies bei den KOMA-Script-Klassen und Verwendungderen Option toc=numberline der Fall ist, führt dies auch dazu, dass bei nichtnummerierten Einträgen dennoch die Zeile mit der dann leeren Nummer in der For-matierung von entrynumberformat gesetzt wird.

. . .

Kapitel 15: Verzeichnisse verwalten mit Hilfe von tocbasic 406

Tabelle 15.1.: Attribute der Verzeichniseintragsstile (Fortsetzung)

dynnumwidth=SchalterSchalter ist einer der Werte für einfache Schalter aus Tabelle 2.5, Seite 42. Istder Schalter beim Stil tocline aktiviert, gibt die Eigenschaft numwidth nur nocheinen Minimalwert an. Übertrifft die beim letzten LATEX-Lauf ermittelte maximaleBreite der Eintragsnummern gleicher Ebene zuzüglich des Wertes von numsep diesenMinimalwert, so wird stattdessen der ermittelte Wert verwendet.

entryformat=BefehlÜber diese Eigenschaft kann die Formatierung des gesamten Eintrags verändert wer-den. Der dabei als Wert angegebene Befehl hat genau ein Argument zu erwarten.Dieses Argument ist nicht zwingend voll expandierbar. Befehle wie \MakeUppercase,die ein voll expandierbares Argument erwarten, dürfen an dieser Stelle also nichtverwendet werden. Font-Änderungen über entryformat erfolgen ausgehend von\normalfont\normalsize. Es wird darauf hingewiesen, dass die Ausgabe vonlinefill und der Seitenzahl unabhängig von entryformat sind. Siehe dazu auchdie Eigenschaft pagenumberformat.Initialisiert wird die Eigenschaft für die Eintragsebene part mit der Ausgabe desübergebenen Argument in \large\bfseries und für chapter in \bfseries. Fallsbei der Initialisierung von section noch keine Ebene chapter existiert, wird auchfür diese Ebene \bfseries verwendet. Bei allen anderen Ebenen wird das Argumentunverändert ausgegeben.

entrynumberformat=BefehlÜber diese Eigenschaft kann die Formatierung der mit \numberline gesetzten Ein-tragsnummer verändert werden. Der dabei als Wert angegebene Befehl hat genauein Argument zu erwarten. Font-Änderungen erfolgen ausgehend von der Eigenschaftentryformat.Initialisiert wird die Eigenschaft mit Ausgabe des übergebenen Arguments. Die Ein-tragsnummer wird also unverändert ausgegeben.Ist für ein Verzeichnis mit \setuptoc die Eigenschaft numberline gesetzt (sieheAbschnitt 15.2, Seite 397), wie dies bei den KOMA-Script-Klassen und Verwendungderen Option toc=numberline der Fall ist, führt dies auch dazu, dass bei nichtnummerierten Einträgen Befehl dennoch ausgeführt wird.

. . .

Kapitel 15: Verzeichnisse verwalten mit Hilfe von tocbasic 407

Tabelle 15.1.: Attribute der Verzeichniseintragsstile (Fortsetzung)

indent=LängeBeimv3.27 Stil toctext ist Länge der horizontale Abstand des Absatzes vom linken Rand.Haben die unterschiedlichen Einträge des Absatzes unterschiedliche Einstellungen,so gewinnt der letzte Eintrag. Bei den übrigen Stilen ist Länge entsprechend derhorizontale Abstand des Eintrags vom linken Rand (siehe Abbildung 15.1 und Ab-bildung 15.3).Bei den Stilen tocline und toctext wird für alle Eintragsebenen, deren Name mit»sub« beginnt, eine Initialisierung mit indent+numwidth der gleichnamigen Ein-tragsebene ohne diesen Präfix vorgenommen, falls eine solche Ebene mit entspre-chenden Eigenschaften existiert. Bei den Stilen dottedtocline, undottedtoclineund tocline findet für die Eintragsebenen part bis subparagraph sowie figureund table eine Initialisierung mit Werten entsprechend der Standardklassen statt.Alle anderen Ebenen erhalten keine Initialisierung. Für sie ist eine explizite Angabedaher bei der ersten Verwendung zwingend.Ist für ein Verzeichnis die Eigenschaft noindent via \setuptoc gesetzt, so ignorierendie Einträge bei allen von KOMA-Script bereitgestellten Stilen diesen Wert undverwenden stattdessen 0 pt. Der Einzug wird also deaktiviert.

level=IntegerNummerischer Wert der Eintragsebene . Tatsächlich angezeigt werden nur Einträge,deren nummerische Ebene nicht größer als Zähler tocdepth ist.Diese Eigenschaft ist für alle Stile zwingend und wird bei der Definition eines Stilsautomatisch definiert.Beim Stil tocline und toctext findet für alle Eintragsebenen, deren Name mit»sub« beginnt, eine Initialisierung entsprechend dem um eins erhöhten Wert ei-ner gleichnamigen Eintragsebene ohne diesen Präfix statt, falls eine solche Ebe-ne existiert. Bei den Stilen dottedtocline, largetocline, tocline, toctextund undottedtocline findet für die Eintragsebene part, chapter, section,subsection, subsubsection, paragraph, subparagraph, figure und table auto-matisch eine Initialisierung aufgrund des Namens statt. Für andere Ebenen findeteine Initialisierung mit dem Wert der Gliederungsebene statt, falls kompatibel zuden KOMA-Script-Klassen \Eintragsebene numdepth definiert ist.

. . .

Kapitel 15: Verzeichnisse verwalten mit Hilfe von tocbasic 408

Tabelle 15.1.: Attribute der Verzeichniseintragsstile (Fortsetzung)

linefill=CodeBeim Stil tocline kann zwischen dem Ende des Eintragstextes und der Seitenzahldie Art der Füllung verändert werden. Die Eigenschaft linefill erhält als Wertdirekt den gewünschten Code . Für Eintragsebene part und chapter wird die Ei-genschaft mit \hfill initialisiert. Dadurch rückt die Seitenzahl an den rechten Rand.Ist bisher keine Eintragsebene chapter definiert, so gilt dies auch für section. Alleanderen Ebenen werden mit \TOCLineLeaderFill (siehe Seite 415) initialisiert.Wird Code angegeben, der nicht automatisch zu einer Füllung des Abstandes führt,sollte übrigens auch die Eigenschaft raggedpagenumber gesetzt werden, damit esnicht zu »underfull \hbox«-Meldungen kommt.

numsep=LängeDer Stil tocline versucht sicherzustellen, dass zwischen der Nummer und dem Texteines Eintrags mindestens ein Abstand von Länge eingehalten wird. Bei aktiviertemdynnumwidth kann die für die Nummer reservierte Breite numwidth entsprechendkorrigiert werden. Bei nicht aktiviertem dynnumwidth wird hingegen lediglich eineWarnung ausgegeben, wenn diese Bedingung nicht eingehalten wird.Derv3.27 Stil toctext fügt dagegen immer einen Abstand dieser Länge nach der Nummerdes Eintrags ein.Die Eigenschaft wird mit einem Wert von 0,4 em initialisiert.

numwidth=LängeFür die Nummer eines Eintrags reservierte Breite (siehe Abbildung 15.1 bis Ab-bildung 15.4). Dieser Wert wird bei den Stilen dottedtocline, tocline undundottedtocline ab der zweiten Zeile eines Eintrags zum linken Einzug hinzu-gerechnet.Beim Stil tocline wird für alle Eintragsebenen, deren Name mit »sub« beginnt, eineInitialisierung mit dem Wert der gleichnamigen Eintragsebene ohne diesen Präfix zu-züglich 0,9 em vorgenommen, falls eine solche Ebene mit entsprechender Eigenschaftexistiert. Bei den Stilen dottedtocline, undottedtocline und tocline findet fürdie Eintragsebenen part bis subparagraph sowie figure und table eine Initiali-sierung mit Werten entsprechend der Standardklassen statt. Alle anderen Ebenenerhalten keine Initialisierung. Für sie ist eine explizite Angabe daher bei der erstenVerwendung zwingend.

. . .

Kapitel 15: Verzeichnisse verwalten mit Hilfe von tocbasic 409

Tabelle 15.1.: Attribute der Verzeichniseintragsstile (Fortsetzung)

onendentry=Codev3.27 Führt den angegebenen Code unmittelbar nach einem Eintrag im Stil toctext aus,

sofern es nicht der letzte Eintrag im Absatz ist. Der Anwender muss unbedingtsicherstellen, dass Code auf keinen Fall zum Beenden des Absatzes führt.Hinweis: Tatsächlich wird der Code gar nicht am Ende des Eintrags, sondern vordem nächsten Eintrag im Stil toctext ausgeführt.

onendlastentry=Codev3.27 Führt den angegebenen Code unmittelbar vor dem Ende des Absatzes mit dem

Eintrag im Stil toctext aus, sofern es sich um den letzten Eintrag im Absatz handelt.Der Anwender sollte sicherstellen, dass Code nicht zum Beenden des Absatzes führt.

onstartentry=Codev3.27 Führt den angegebenen Code unmittelbar vor dem Eintrag im Stil toctext aus,

sofern es sich nicht um den ersten Eintrag im Absatz handelt. Der Anwender mussunbedingt sicherstellen, dass Code auf keinen Fall zum Beenden des Absatzes führt.

onstartfirstentry=Codev3.27 Führt den angegebenen Code unmittelbar vor dem Eintrag im Stil toctext aus,

sofern es sich um den ersten Eintrag im Absatz handelt. Der Anwender sollte sicher-stellen, dass Code den Absatz nicht bereits beginnt.

onstarthigherlevel=CodeDer Stil tocline kann zu Beginn eines Eintrags eine Aktion in Abhängigkeit da-von ausführen, ob der zuletzt gesetzte Eintrag einen höheren, denselben oder einenniedrigeren level -Wert hatte. Im Falle, dass der aktuelle Eintrag einen größerenlevel -Wert besitzt, in der Hierarchie der Einträge also tiefer steht, wird der überdiese Eigenschaft angegebene Code ausgeführt.Die Erkennung funktioniert übrigens nur, solange sich \lastpenalty seit dem letztenEintrag nicht geändert hat.Initialisiert wird die Eigenschaft mit \LastTOCLevelWasLower (siehe Seite 415).

. . .

Kapitel 15: Verzeichnisse verwalten mit Hilfe von tocbasic 410

Tabelle 15.1.: Attribute der Verzeichniseintragsstile (Fortsetzung)

onstartlowerlevel=CodeDer Stil tocline kann zu Beginn eines Eintrags eine Aktion in Abhängigkeit da-von ausführen, ob der zuletzt gesetzte Eintrag einen höheren, denselben oder einenniedrigeren level -Wert hatte. Im Falle, dass der aktuelle Eintrag einen kleinerenlevel -Wert besitzt, in der Hierarchie der Einträge also höher steht, wird der überdiese Eigenschaft angegebene Code ausgeführt.Die Erkennung funktioniert übrigens nur, solange sich \lastpenalty seit dem letztenEintrag nicht geändert hat.Initialisiert wird die Eigenschaft mit \LastTOCLevelWasHigher (siehe Seite 415),was normalerweise dazu führt, dass ein Umbruch vor dem Eintrag begünstigt wird.

onstartsamelevel=CodeDer Stil tocline kann zu Beginn eines Eintrags eine Aktion in Abhängigkeit da-von ausführen, ob der zuletzt gesetzte Eintrag einen höheren, denselben oder einenniedrigeren level -Wert hatte. Im Falle, dass der aktuelle Eintrag denselben level -Wert besitzt, in der Hierarchie der Einträge also gleich gestellt ist, wird der überdiese Eigenschaft angegebene Code ausgeführt.Die Erkennung funktioniert übrigens nur, solange sich \lastpenalty seit dem letztenEintrag nicht geändert hat.Initialisiert wird die Eigenschaft mit \LastTOCLevelWasSame (siehe Seite 415), wasnormalerweise dazu führt, dass ein Umbruch vor dem Eintrag begünstigt wird.

pagenumberbox=BefehlNormalerweise wird die zu einem Eintrag gehörende Seitenzahl rechtsbündig in eineBox der Breite \@pnumwidth gesetzt. Beim Stil tocline kann der Befehl, der dazuverwendet wird, über diese Eigenschaft konfiguriert werden. Der dabei anzugebendeBefehl hat genau ein Argument zu erwarten.Initialisiert wird die Eigenschaft mit der bereits erwähnten Box.

pagenumberformat=BefehlÜber diese Eigenschaft kann die Formatierung der Seitenzahl des Eintrags verändertwerden. Der dabei als Wert angegebene Befehl hat genau ein Argument zu erwarten.Font-Änderungen über entryformat erfolgen ausgehend von entryformat, gefolgtvon \normalfont\normalsize.Initialisiert wird die Eigenschaft für die Eintragsebene part mit der Ausgabe desübergebenen Arguments in \large\bfseries. Für alle anderen Ebenen erfolgt dieAusgabe in \normalfont\normalcolor.

. . .

Kapitel 15: Verzeichnisse verwalten mit Hilfe von tocbasic 411

Tabelle 15.1.: Attribute der Verzeichniseintragsstile (Fortsetzung)

pagenumberwidth=Längev3.27 Mit dieser Eigenschaft kann die Breite der Standardbox für die Seitenzahl eines Ein-

trags im Stil tocline von \@pnumwidth in die angegebene Länge geändert werden.Es ist zu beachten, dass bei Änderung des Befehls für die Box über die Eigenschaftpagenumberbox die angegebene Länge nicht mehr automatisch Anwendung findet.

prepagenumber=Codev3.27 Im Stil toctext wird zwischen dem Eintragstext und der Seitenzahl Code ausge-

führt. Dies dient in erster Linie dazu, Abstand oder Trennzeichen zwischen Text undSeitenzahl einzufügen.Voreingestellt ist mit \nonbreakspace ein nicht umbrechbares Leerzeichen.

raggedentrytext=Schalterv3.21 Schalter ist einer der Werte für einfache Schalter aus Tabelle 2.5, Seite 42. Ist

der Schalter beim Stil tocline aktiviert, so wird der Text des Eintrags nicht imBlocksatz, sondern im Flattersatz gesetzt. Dabei werden nur noch Wörter getrennt,die länger als eine Zeile sind.In der Voreinstellung ist dieser Schalter nicht gesetzt.

raggedpagenumber=SchalterSchalter ist einer der Werte für einfache Schalter aus Tabelle 2.5, Seite 42. Istder Schalter beim Stil tocline aktiviert, so wird die Seitenzahl nicht zwingendrechtsbündig gesetzt.Je nach Wert der Eigenschaft linefill kann sich das Setzen dieses Schalters nur imErscheinen oder Verschwinden einer Warnung oder auch konkret in der Formatierungder Einträge auswirken. Es ist also wichtig, diese beiden Eigenschaften zueinanderpassend zu setzen.In der Voreinstellung ist dieser Schalter nicht gesetzt und passt damit zur Initiali-sierung von linefill sowohl mit \hfill als auch mit \TOCLineLeaderFill.

raggedright=Schalterv3.27 Schalter ist einer der Werte für einfache Schalter aus Tabelle 2.5, Seite 42. Ist der

Schalter innerhalb eines Absatzes bei irgend einem Eintrag im Stil toctext gesetzt,so wird der komplette Absatz in linksbündigem Flattersatz gesetzt.

rightindent=Längev3.27 Mit dieser Eigenschaft kann der rechte Rand für den Text eines Eintrags im Stil

tocline von \@tocrmarg in die angegebene Länge geändert werden. Beim Stiltoctext wird entsprechend der rechte Rand für den kompletten Absatz eingestellt.

Kapitel 15: Verzeichnisse verwalten mit Hilfe von tocbasic 412

Während \DeclareTOCStyleEntry nur genau eine Eintragsebene definiert, kann über\DeclareTOCStyeEntriesv3.26 auf einen Schlag eine ganze Liste von Eintragsebenen definiertwerden. Die durch Komma voneinander getrennt angegebenen Eintragsebenen der Liste werdendabei alle mit demselben Stil und den über Optionenliste angegebenen Einstellungendefiniert.

\DeclareTOCEntryStyle{Stil }[Initialisierungscode ]{Befehlscode }\DefineTOCEntryOption{Option }[Säumniswert ]{Code }\DefineTOCEntryBooleanOption{Option }[Säumniswert ]{Präfix }{Postfix }{Erklärung }\DefineTOCEntryCommandOption{Option }[Säumniswert ]{Präfix }{Postfix }{Erklärung }\DefineTOCEntryIfOption{Option }[Säumniswert ]{Präfix }{Postfix }{Erklärung }\DefineTOCEntryLengthOption{Option }[Säumniswert ]{Präfix }{Postfix }{Erklärung }\DefineTOCEntryNumberOption{Option }[Säumniswert ]{Präfix }{Postfix }{Erklärung }

\DeclareTOCEntryStylev3.20 ist eine der komplexesten Anweisungen in KOMA-Script. Sie richtetsich daher ausdrücklich an LATEX-Entwickler und nicht an LATEX-Anwender. Mit ihrer Hilfeist es möglich, einen neuen Stil für Verzeichniseinträge zu definieren. Üblicherweise werdenVerzeichniseinträge mit \addcontentsline oder bei Verwendung von tocbasic vorzugsweisemit \addxcontentsline (siehe Abschnitt 15.1, Seite 393) erzeugt. Dabei schreibt LATEX einezugehörige Anweisung \contentsline in die jeweilige Hilfsdatei. Bei Einlesen dieser Hilfsdateiführt LATEX dann für jedes \contentsline eine Anweisung \l@Eintragsebene aus.

Wird später einer Eintragsebene über \DeclareTOCStyleEntry ein Stil zugewiesen, sowird zunächst Initialisierungscode ausgeführt falls angegeben und dann Befehlscode fürdie Definition von \l@Eintragsebene verwendet. Befehlscode ist also letztlich der Code, derbei \l@Eintragsebene ausgeführt wird. Dabei ist #1 der Name der Eintragsebene, während##1 und ##2 Platzhalter für die beiden Argumente von \l@Eintragsebene sind.

Der Initialisierungscode dient einerseits dazu, die Einstellungen eines Stils zu initiali-sieren. Entwickler sollten darauf achten, dass wirklich alle Einstellungen hier bereits einenWert erhalten. Nur dann funktioniert \DeclareTOCStyleEntry auch ohne Angabe einerOptionenliste fehlerfrei. Darüber hinaus hat der Initialisierungscode auch alle Optio-nen, die der jeweilige Stil versteht, zu definieren. Zwingend vordefiniert wird lediglich level.Der eingestellte Wert für level kann in Befehlscode mit \@nameuse{#1tocdepth} abgefragtwerden, um ihn beispielsweise mit dem Wert des Zählers tocdepth zu vergleichen.Zur Definition neuer Optionen für die Eigenschaften einer Eintrags-

ebene existieren nur innerhalb von Initialisierungscode die Anwei-sungen \DefineTOCEntryBooleanOption, \DefineTOCEntryCommandOption,\DefineTOCEntryIfOption, \DefineTOCEntryLengthOption und\DefineTOCEntryNumberOption. Diese Anweisungen definieren jeweils eine Option , diebei ihrem Aufruf eine Anweisung \Präfix Eintragsebene Postfix mit dem übergebenenWert oder bei Fehlen einer Wertzuweisung mit dem Säumniswert definieren. Eine Besonder-

Kapitel 15: Verzeichnisse verwalten mit Hilfe von tocbasic 413

heit stellt \DefineTOCEntryIfOption dar. Diese definiert \Präfix Eintragsebene Postfiximmer als Anweisung mit zwei Argumenten. Ist der an die Option übergebene Wert einerder Aktivierungswerte aus Tabelle 2.5, Seite 42, so expandiert die Anweisung zum erstenArgument. Ist der an die Option übergebene Wert hingegen ein Deaktivierungswert, soexpandiert die Anweisung zum zweiten Argument.Nebenv3.27 den normalen Optionen der Form Schlüssel =Wert werden von allen

fünf \DefineTOCEntry...Option-Anweisungen automatisch Optionen der FormSchlüssel :=Eintragsebene definiert. Diese dienen dazu, den Wert einer anderenEintragsebene zu kopieren, sofern der Wert in einem Makro mit gleichem Präfixund Postfix gespeichert ist. Bei den von tocbasic vordefinierten Stilen ist das für gleichna-mige Optionen über Stilgrenzen hinweg der Fall. Von \DefineTOCEntryLengthOption und\DefineTOCEntryNumberOption werden außerdem Optionen der Form Schlüssel +=Wert mitdefiniert, die dazu dienen, zu dem in \Präfix Eintragsebene Postfix bereits gespeichertenWert den neuen Wert zu addieren.Die Erklärung sollte ein möglichst kurzer Text sein, der den Sinn der Option mit we-

nigen Schlagworten beschreibt. Er wird von tocbasic bei Fehlermeldungen, Warnungen undInformationen auf dem Terminal und in der log-Datei ausgegeben.

Der einfachste Stil von tocbasic, gobble, wurde mit\DeclareTOCEntryStyle{gobble}{}%

definiert. Würde man nun mit\DeclareTOCStyleEntry[level=1]{gobble}{dummy}

eine Eintragsebene dummy in diesem Stil definieren, so würde das unter anderem\def\dummytocdepth{1}\def\l@dummy#1#2{}

entsprechen.Innerhalb von Stil tocline wird beispielsweise\DefineTOCEntryCommandOption{linefill}%[\TOCLineLeaderFill]{scr@tso@}{@linefill}%{filling between text and page number}%

verwendet, um Option linefill zu definieren. Durch die Angabe von \TOCLineLeaderFillals Säumniswert würde ein Aufruf wie\DeclareTOCStyleEntry[linefill]{tocline}{part}

unter anderem die Definition\def\scr@tso@part@linefill{\TOCLineLeaderFill}

vornehmen.Wer sich selbst einen Stil definieren möchte, dem sei empfohlen, zunächst die Definition des

Stils dottedtocline zu studieren. Nachdem dessen Definition verstanden wurde, gibt dann die

Kapitel 15: Verzeichnisse verwalten mit Hilfe von tocbasic 414

deutlich komplexere Definition von Stil tocline viele Hinweise darauf, wie die Anweisungensinnvoll zu verwenden sind.In vielen Fällen wird es jedoch auch ausreichen, einen der vorhandenen Stile mit

\CloneTOCEntryStyle zu klonen und dann dessen Initialisierungscode mit Anweisung\TOCEntryStyleInitCode oder \TOCEntryStyleStartInitCode abzuändern.\DefineTOCEntryOption dient eher der Definition der übrigen Anweisungen und sollte in

der Regel nicht direkt verwendet werden. Normalerweise besteht dafür auch keine Notwendig-keit. Sie sei hier nur der Vollständigkeit halber erwähnt.

\CloneTOCEntryStyle{Stil }{neuer Stil }

Mitv3.20 dieser Anweisung kann ein existierender Stil geklont werden. Dabei wird ein neuerStil mit denselben Eigenschaften und Voreinstellungen wie der existierende Stil dekla-riert. Das Paket selbst verwendet \CloneTOCEntryStyle, um den Stil default als Klon vondottedtocline zu deklarieren. Die KOMA-Script-Klassen verwenden die Anweisung um dieStile part, section und chapter oder subsection als Klon von tocline zu deklarieren unddann mit \TOCEntryStyleInitCode und \TOCEntryStyleStartInitCode abzuändern. DerStil default wird von scrbook und scrreprt neu als Klon von section und von scrartcl alsKlon von subsection deklariert.

\TOCEntryStyleInitCode{Stil }{Initialisierungscode }\TOCEntryStyleStartInitCode{Stil }{Initialisierungscode }

Jederv3.20 Verzeichniseintragsstil verfügt über einen Initialisierungscode. Dieser wird immer dannaufgerufen, wenn einer Verzeichnisebene der entsprechende Stil mit \DeclareTOCEntryStylezugewiesen wird. Dieser Initialisierungscode sollte keine globalen Seiteneffekte aufweisen,da er auch für lokale Initialisierungen innerhalb anderer Anweisungen wie \DeclareNewTOCverwendet wird. Der Initialisierungscode dient einerseits dazu, Eigenschaften für denjeweiligen Stil zu definieren. Er setzt aber auch die Standardeinstellungen für diese Eigen-schaften.

Mit Hilfe der Anweisungen \TOCEntryStyleStartInitCode und \TOCEntryStyleInitCodekann der für einen Stil bereits definierte Initialisierungscode um weiterenInitialisierungscode erweitert werden. Dabei fügt \TOCEntryStyleStartInitCodeden neuen Intialisierungscode vorn an, während \TOCEntryStyleInitCode denInitialisierungscode hinten an den vorhandenen Code anfügt. Dies wird beispielsweisevon den KOMA-Script-Klassen verwendet, um für den von tocline geklonten Stil partFüllung, Schrift und vertikalen Abstand passend zu initialisieren. Die Klassen scrbook undscrreprt verwenden beispielsweise\CloneTOCEntryStyle{tocline}{section}\TOCEntryStyleStartInitCode{section}{%\expandafter\providecommand%\csname scr@tso@#1@linefill\endcsname

Kapitel 15: Verzeichnisse verwalten mit Hilfe von tocbasic 415

{\TOCLineLeaderFill\relax}%}

um den Stil section als abgewandelten Klon von tocline zu definieren.

\LastTOCLevelWasHigher\LastTOCLevelWasSame\LastTOCLevelWasLower

Beiv3.20 Einträgen im Stil tocline wird am Anfang abhängig vom Wert von \lastpenaltyeine dieser drei Anweisungen ausgeführt. Dabei fügen \LastTOCLevelWasHigher und\LastTOCLevelWasSame im vertikalen Modus \addpenalty{\@lowpenalty} ein und er-möglichen so einen Umbruch vor Einträgen gleicher oder übergeordneter Ebene.\LastTOCLevelWasLower ist hingegen bisher leer definiert, so dass zwischen einem Eintragund seinem ersten Untereintrag normalerweise ein Umbruch untersagt ist.Anwender sollten diese Anweisungen nicht umdefinieren. Stattdessen können und sollten

Änderungen bei Zuweisung des Stils an eine Eintragsebene gezielt über die Eigenschaftenonstartlowerlevel, onstartsamelevel und onstarthigherlevel vorgenommen werden.

\TOCLineLeaderFill[Füllzeichen ]

Diev3.20 Anweisung ist dazu gedacht als Wert für die Eigenschaft linefill des Verzeichnisein-tragsstils tocline verwendet zu werden. Sie erzeugt dann eine Verbindung zwischen demEnde des Textes eines Eintrags und der zugehörigen Seitenzahl. Das Füllzeichen , das dazuin regelmäßigem Abstand wiederholt wird, kann als optionales Argument angegeben werden.Voreinstellung ist ein Punkt.Wie der Name schon vermuten lässt, werden die Füllzeichen mit Hilfe von \leaders gesetzt.

Als Abstand wird wie bei der LATEX-Kern-Anweisung \@dottedtocline vor und nach demFüllzeichen \mkern\@dotsep mu verwendet.

15.4. Interne Anweisungen für Klassen- und Paketautoren

Das Paket tocbasic bietet einige interne Anweisungen, deren Benutzung durch Klassen- undPaketautoren freigegeben ist. Diese Anweisungen beginnen alle mit \tocbasic@. Aber auchKlassen- und Paketautoren sollten diese Anweisungen nur verwenden und nicht etwa umde-finieren! Ihre interne Funktion kann jederzeit geändert oder erweitert werden, so dass jedeUmdefinierung der Anweisungen die Funktion von tocbasic erheblich beschädigen könnte!

Kapitel 15: Verzeichnisse verwalten mit Hilfe von tocbasic 416

\tocbasic@extend@babel{Dateierweiterung }

Das Paket babel (siehe [BB13]) bzw. ein LATEX-Kern, der um die Sprachverwaltung von babelerweitert wurde, schreibt bei jeder Sprachumschaltung am Anfang oder innerhalb eines Do-kuments in die Dateien mit den Dateierweiterungen toc, lof und lot Anweisungen, umdiese Sprachumschaltung in diesen Dateien mit zu führen. tocbasic erweitert diesen Mecha-nismus so, dass mit Hilfe von \tocbasic@extend@babel auch andere Dateierweiterungendavon profitieren. Das Argument Dateierweiterung sollte dabei vollständig expandiert sein!Anderenfalls besteht die Gefahr, dass etwa die Bedeutung eines Makros zum Zeitpunkt dertatsächlichen Auswertung bereits geändert wurde.In der Voreinstellung wird diese Anweisung normalerweise für alle Dateierweiterungen ,

die mit \addtotoclist zur Liste der bekannten Dateierweiterungen hinzugefügt werden, auf-gerufen. Über die Eigenschaft nobabel (siehe \setuptoc, Abschnitt 15.2, Seite 397) kann diesunterdrückt werden. Für die Dateinamenerweiterungen toc, lof und lot unterdrückt tocbasicdies bereits selbst, da babel sie von sich aus vornimmt.Normalerweise gibt es keinen Grund, diese Anweisung selbst aufzurufen. Es sind allerdings

Verzeichnisse denkbar, die nicht unter der Kontrolle von tocbasic stehen, also nicht in der Listeder bekannten Dateierweiterungen geführt werden, aber trotzdem die Spracherweiterung fürbabel nutzen sollen. Für derartige Verzeichnisse wäre die Anweisung explizit aufzurufen. Bitteachten Sie jedoch darauf, dass dies für jede Dateierweiterung nur einmal geschieht!

\tocbasic@starttoc{Dateierweiterung }

Diese Anweisung ist der eigentliche Ersatz der Anweisung \@starttoc aus dem LATEX-Kern.Es ist die Anweisung, die sich hinter \listoftoc* (siehe Abschnitt 15.2, Seite 394) verbirgt.Klassen- oder Paketautoren, die Vorteile von tocbasic nutzen wollen, sollten zumindest dieseAnweisung, besser jedoch \listoftoc verwenden. Die Anweisung baut selbst auf \@starttocauf, setzt allerdings zuvor \parskip und \parindent auf 0 und \parfillskip auf 0 bisunendlich. Außerdem wird \@currext auf die aktuelle Dateierweiterung gesetzt, damit diesein den nachfolgend ausgeführten Haken ausgewertet werden kann. Die Erklärungen der Hakenfinden Sie im Anschluss.Da LATEX bei der Ausgabe eines Verzeichnisses auch gleich eine neue Verzeichnisdatei zum

Schreiben öffnet, kann der Aufruf dieser Anweisung zu einer Fehlermeldung der Art! No room for a new \write .\ch@ck ...\else \errmessage {No room for a new #3}

\fi

führen, wenn keine Schreibdateien mehr zur Verfügung stehen. Abhilfe kann in diesem Falldas Laden des in Kapitel 14 beschriebenen Pakets scrwfile oder die Verwendung von LuaLATEXbieten.

Kapitel 15: Verzeichnisse verwalten mit Hilfe von tocbasic 417

\tocbasic@@before@hook\tocbasic@@after@hook

Der Haken \tocbasic@@before@hook wird unmittelbar vor dem Einlesen der Verzeichnisdatei,noch vor den mit \BeforeStartingTOC definierten Anweisungen ausgeführt. Es ist erlaubt,diesen Haken mit Hilfe von \g@addto@macro zu erweitern.

Ebenso wird \tocbasic@@after@hook unmittelbar nach der Verzeichnisdatei, aber noch vorden mit \AfterStartingTOC definierten Anweisungen ausgeführt. Es ist erlaubt, diesen Hakenmit Hilfe von \g@addto@macro zu erweitern.KOMA-Script nutzt diese Haken, um Verzeichnisse mit dynamischer Anpassung an die

Breite der Gliederungsnummern zu ermöglichen. Ihre Verwendung ist Klassen und Paketenvorbehalten. Anwender sollten sich auf \BeforeStartingTOC und \AfterStartingTOC be-schränken. Paketautoren sollten ebenfalls vorzugsweise diese beiden Anwenderanweisungenverwenden! Ausgaben innerhalb der beiden Haken sind nicht gestattet!Wird keine der Anweisungen \listofeachtoc, \listoftoc und \listoftoc* für die Aus-

gabe der Verzeichnisse verwendet, sollten die Anweisungen für die Haken trotzdem aufgerufenwerden.

\tb@Dateierweiterung @before@hook\tb@Dateierweiterung @after@hook

Diese Anweisungen werden direkt nach \tocbasic@@before@hook bzw. vor\tocbasic@@after@hook für das jeweilige Verzeichnis mit der entsprechendenDateierweiterung ausgeführt. Sie dürfen keinesfalls von Klassen- und Paketautorenverändert werden. Werden für die Ausgabe der Verzeichnisse die Anweisungen \listoftoc,\listoftoc* und \listofeachtoc nicht verwendet, sollten die beiden Anweisungen fürdie Haken trotzdem aufgerufen werden, soweit sie definiert sind. Die Anweisungen könnenauch undefiniert sein. Für einen entsprechenden Test siehe \scr@ifundefinedorrelax inAbschnitt 12.3, Seite 356.

\tocbasic@listhead{Titel }

Diese Anweisung wird von \listoftoc und \listofeachtoc verwendet, um die Anweisungzum Setzen der Überschrift eines Verzeichnisses aufzurufen. Das kann entweder die vordefi-nierte Anweisung des Pakets tocbasic oder eine individuelle Anweisung sein. Wenn Sie Ihreeigene Anweisung für die Überschrift definieren, können Sie ebenfalls \tocbasic@listheadverwenden. In diesem Fall sollte vor dem Aufruf von \tocbasic@listhead die Anweisung\@currext auf die Dateinamenerweiterung, die zu diesem Verzeichnis gehört, gesetzt werden.

Kapitel 15: Verzeichnisse verwalten mit Hilfe von tocbasic 418

\tocbasic@listhead@Dateierweiterung {Titel }

Ist diese individuelle Anweisung für das Setzen einer Verzeichnisüberschrift definiert, so ver-wendet \tocbasic@listhead sie. Anderenfalls definiert \tocbasic@listhead diese vor derVerwendung.

\tocbasic@addxcontentsline{Dateierweiterung }{Ebene }{Gliederungsnummer }{Eintrag }\nonumberline

Anweisungv3.12 \tocbasic@addxcontentsline nimmt einen Eintrag der angegebenen Ebene indas über die Dateierweiterung spezifizierte Verzeichnis vor. Ob der Eintrag nummeriertwird oder nicht, hängt davon ab, ob das Argument Gliederungsnummer leer ist oder nicht.Im Falle eines leeren Argument wird dem Eintrag ein \nonumberline ohne Argument voran-gestellt. Anderenfalls wird wie gewohnt \numberline mit Gliederungsnummer als Argumentverwendet.Die Anweisung \nonumberline wird innerhalb \listoftoc (siehe Abschnitt 15.2, Seite 394)

entsprechend der Eigenschaft numberline (siehe Abschnitt 15.2, Seite 397) umdefiniert. Da-durch wirkt sich das Setzen oder Löschen dieser Eigenschaft bereits beim nächsten LATEX-Laufaus.

\tocbasic@DependOnPenaltyAndTOCLevel{Eintragsebene }\tocbasic@SetPenaltyByTOCLevel{Eintragsebene }

Derv3.20 Verzeichniseintragsstil tocline (siehe Abschnitt 15.3) setzt am Ende jedes Eintrags über\tocbasic@SetPenaltyByTOCLevel \penalty so, dass nach einem Eintrag kein Seitenum-bruch erfolgen darf. Der genaue Wert wird dabei abhängig von der Eintragsebene gewählt.Über \tocbasic@DependOnPenaltyAndTOCLevel wird am Anfang eines Eintrags, abhängig

von \lastpenalty und der Eintragsebene die über die Eigenschaft onstartlowerlevelim internen Makro \scr@tso@Eintragsebene @LastTOCLevelWasHigher,über die Eigenschaft onstartsamelevel im zugehörigen, internen Ma-kro \scr@tso@Eintragsebene @LastTOCLevelWasSame oder über dieEigenschaft onstarthigherlevel im zugehörigen, internen Makro\scr@tso@Eintragsebene @LastTOCLevelWasLower gespeicherte Aktion ausgeführt. Inder Voreinstellung erlauben die ersten beiden einen Umbruch, wenn sie im vertikalen Modusausgeführt werden.Entwicklern, die eigene Stile kompatibel mit tocline erstellen wollen, sei empfohlen, die-

ses Verhalten zu kopieren. Zu diesem Zweck dürfen sie auf diese eigentlich internen Makroszurückgreifen.

15.5. Ein komplettes Beispiel

In diesem Abschnitt finden Sie ein komplettes Beispiel, wie eine eigene Gleitumgebung ein-schließlich Verzeichnis und KOMA-Script-Integration mit Hilfe von tocbasic definiert werden

Kapitel 15: Verzeichnisse verwalten mit Hilfe von tocbasic 419

kann. In diesem Beispiel werden interne Anweisungen, also solche mit »@« im Namen verwen-det. Das bedeutet, dass die Anweisungen entweder in einem eigenen Paket, einer Klasse oderzwischen \makeatletter und \makeatother verwendet werden müssen.Als erstes wird eine Umgebung benötigt, die diese neue Gleitumgebung bereitstellt. Das

geht ganz einfach mit:\newenvironment{remarkbox}%{\@float{remarkbox}}%{\end@float}

Die neue Umgebung heißt also remarkbox.Jede Gleitumgebung hat eine Standardplatzierung. Diese setzt sich aus einer oder mehreren

der bekannten Platzierungsoptionen b, h, p und t zusammen:\newcommand*{\fps@remarkbox}{tbp}

Die neue Gleitumgebung soll also in der Voreinstellung nur oben, unten oder auf einer eigenenSeite platziert werden dürfen.Gleitumgebungen haben außerdem einen nummerischen Gleittyp zwischen 1 und 31. Um-

gebungen, bei denen das gleiche Bit im Gleittyp gesetzt ist, dürfen sich nicht gegenseitigüberholen. Abbildungen und Tabellen haben normalerweise den Typ 1 und 2. Abbildungendürfen also Tabellen überholen und umgekehrt.\newcommand*{\ftype@remarkbox}{4}

Die neue Umgebung hat den Typ 4, darf also Tabellen und Abbildungen überholen und vondiesen überholt werden.Gleitumgebungen haben außerdem eine Nummer.\newcounter{remarkbox}\newcommand*{\remarkboxformat}{%Merksatz~\theremarkbox\csname autodot\endcsname

}\newcommand*{\fnum@remarkbox}{\remarkboxformat}

Hier wird zunächst ein neuer Zähler definiert, der unabhängig von Kapiteln oder sonstigenGliederungszählern ist. Dabei definiert LATEX auch gleich \theremarkbox mit der Standard-ausgabe als arabische Zahl. Diese wird dann in der Definition der formatierten Ausgabe verwen-det. Die formatierte Ausgabe wird wiederum als Gleitumgebungsnummer für die Verwendungin \caption definiert.Gleitumgebungen haben Verzeichnisse und diese haben eine Datei mit dem Namen \jobname

und einer Dateierweiterung.\newcommand*{\ext@remarkbox}{lor}

Als Dateierweiterung verwenden wir also »lor«.Die Umgebung selbst steht damit. Es fehlt allerdings das Verzeichnis. Damit wir dabei

möglichst wenig selbst machen müssen, verwenden wir das Paket tocbasic. Dieses wird in

Kapitel 15: Verzeichnisse verwalten mit Hilfe von tocbasic 420

Dokumenten mit\usepackage{tocbasic}

geladen. Ein Klassen- oder Paketautor würde hingegen\RequirePackage{tocbasic}

verwenden.Nun machen wir die neue Dateierweiterung dem Paket tocbasic bekannt.\addtotoclist[float]{lor}

Dabei verwenden wir als Besitzer float, damit sich alle anschließend aufgerufenen Optionenvon KOMA-Script, die sich auf Verzeichnisse von Gleitumgebungen beziehen, auch auf dasneue Verzeichnis beziehen.Jetzt definieren wir noch einen Titel für dieses Verzeichnis:\newcommand*{\listoflorname}{Verzeichnis der Merksätze}

Normalerweise würde man in einem Paket übrigens zunächst einen englischen Titel definierenund dann beispielsweise mit Hilfe des Pakets scrbase Titel für alle weiteren Sprachen, die manunterstützen will. Siehe dazu Abschnitt 12.4, ab Seite 361.Jetzt müssen wir nur noch definieren, wie ein einzelner Eintrag in dem Verzeichnis aussehen

soll:\newcommand*{\l@remarkbox}{\l@figure}

Weil das die einfachste Lösung ist, wurde hier festgelegt, dass Einträge in das Verzeichnis derMerksätze genau wie Einträge in das Abbildungsverzeichnis aussehen sollen. Man hätte aucheine explizite Festlegung wie\DeclareTOCStyleEntry[level=1,indent=1em,numwidth=1.5em]%

{tocline}{remarkbox}

verwenden können.Außerdem wollen Sie, dass sich Kapiteleinträge auf das Verzeichnis auswirken.\setuptoc{lor}{chapteratlist}

Das Setzen dieser Eigenschaft ermöglicht dies bei Verwendung einer KOMA-Script-Klasse undjeder anderen Klasse, die diese Eigenschaft unterstützt. Leider gehören die Standardklassennicht dazu.Das genügt schon. Der Anwender kann nun bereits wahlweise mit Hilfe der Optionen einer

KOMA-Script-Klasse oder \setuptoc verschiedene Formen der Überschrift (ohne Inhaltsver-zeichniseintrag, mit Inhaltsverzeichniseintrag, mit Nummerierung) wählen und das Verzeichnismit \listoftoc{lor} ausgeben. Mit einem schlichten\newcommand*{\listofremarkboxes}{\listoftoc{lor}}

kann man die Anwendung noch etwas vereinfachen.

Kapitel 15: Verzeichnisse verwalten mit Hilfe von tocbasic 421

Wie Sie gesehen haben, beziehen sich gerade einmal fünf einzeilige Anweisungen, von de-nen nur drei bis vier wirklich notwendig sind, auf das Verzeichnis selbst. Trotzdem bietetdieses Verzeichnis bereits die Möglichkeit, es zu nummerieren oder auch nicht nummeriert indas Inhaltsverzeichnis aufzunehmen. Es kann sogar per Eigenschaft bereits eine tiefere Glie-derungsebene gewählt werden. Kolumnentitel werden für KOMA-Script, die Standardklassenund alle Klassen, die tocbasic explizit unterstützen, angepasst gesetzt. Unterstützende Klassenbeachten das neue Verzeichnis sogar beim Wechsel zu einem neuen Kapitel. Sprachumschal-tungen durch babel werden in dem Verzeichnis ebenfalls berücksichtigt.

Natürlich kann ein Paketautor weiteres hinzufügen. So könnte er explizit Optionen anbie-ten, um die Verwendung von \setuptoc vor dem Anwender zu verbergen. Andererseits kanner auch auf diese Anleitung zu tocbasic verweisen, wenn es darum geht, die entsprechendenMöglichkeiten zu erklären. Vorteil ist dann, dass der Anwender automatisch von etwaigen zu-künftigen Erweiterungen von tocbasic profitiert. Soll der Anwender aber nicht mit der Tatsachebelastet werden, dass für die Merksätze die Dateierweiterung lor verwendet wird, so genügt\newcommand*{\setupremarkboxes}{\setuptoc{lor}}

um über \setupremarkboxes Eigenschaften für lor zu setzen.

15.6. Alles mit einer Anweisung

Das Beispiel aus dem vorherigen Abschnitt hat gezeigt, dass es mit mit tocbasic recht einfachist, eigene Gleitumgebungen mit eigenen Verzeichnissen zu definieren. In diesem Abschnittwird gezeigt, dass es sogar noch einfacher gehen kann.

\DeclareNewTOC[Optionenliste ]{Dateierweiterung }

Mitv3.06 dieser Anweisung wird in einem einzigen Schritt ein neues Verzeichnis, dessen Über-schrift und die Bezeichnung für die Einträge unter Kontrolle von tocbasic definiert. Optionalkönnen dabei gleichzeitig gleitende oder nicht gleitende Umgebungen definiert werden, inner-halb derer \caption Einträge für dieses neue Verzeichnis erzeugt. Auch die Erweiterungen\captionabove, \captionbelow und captionbeside aus den KOMA-Script-Klassen (sieheAbschnitt 3.20, ab Seite 140) können dann verwendet werden.

Dateierweiterung definiert dabei die Dateiendung der Hilfsdatei, die das Verzeichnis re-präsentiert, wie dies in Abschnitt 15.1, ab Seite 388 bereits erläutert wurde. Dieser Parametermuss angegeben werden und darf nicht leer sein!

Optionenliste ist eine durch Komma getrennte Liste, wie dies auch von \KOMAoptions (sie-he Abschnitt 2.4, Seite 32) bekannt ist. Diese Optionen können jedoch nicht mit \KOMAoptionsgesetzt werden! Eine Übersicht über die möglichen Optionen bietet Tabelle 15.2.Wirdv3.20 Option tocentrystyle nicht gesetzt, so wird bei Bedarf der Stil default verwendet.

Näheres zu diesem Stil ist Abschnitt 15.3 zu entnehmen. Soll kein Befehl für Verzeichnisein-träge definiert werden, so kann ein leeres Argument, also wahlweise tocentrystyle= oder

Kapitel 15: Verzeichnisse verwalten mit Hilfe von tocbasic 422

tocentrystyle={} verwendet werden.Abhängigv3.21 vom Stil der Verzeichniseinträge können auch alle für diesen Stil gültigen Eigen-

schaften gesetzt werden, indem die entsprechenden in Tabelle 15.1 ab Seite 405 aufgeführtenNamen, mit dem Präfix tocentry versehen, in der Optionenliste angegeben werden. Nach-trägliche Änderungen am Stil sind mit \DeclareTOCStyleEntry jederzeit möglich. Siehe dazuAbschnitt 15.3, Seite 401.

Tabelle 15.2.: Optionen für die Anweisung \DeclareNewTOCv3.06

atbegin=Codev3.09

Falls eine neue Gleitumgebung oder nicht gleitende Umgebung definiert wird, so wirdCode jeweils am Anfang dieser Umgebung ausgeführt.

atend=Codev3.09

Falls eine neue Gleitumgebung oder nicht gleitende Umgebung definiert wird, so wirdCode jeweils am Ende dieser Umgebung ausgeführt.

category=Kategoriev3.27 Diese Option kann als Synonym für owner=Besitzer verwendet werden.

counterwithin=LATEX-ZählerFalls eine neue Gleitumgebung oder eine nicht gleitende Umgebung definiert wird,so wird für diese auch ein neuer Zähler Eintragstyp (siehe Option type) ange-legt. Dieser Zähler kann in gleicher Weise wie beispielsweise der Zähler figure beibook-Klassen von Zähler chapter abhängt, von einem LATEX-Zähler ahängig gemachtwerden.

floatEs wird nicht nur ein neuer Verzeichnistyp definiert, sondern auch GleitumgebungenEintragstyp (siehe Option type) und Eintragstyp * (vgl. figure und figure*).

floatpos=GleitverhaltenJede Gleitumgebung hat ein voreingestelltes Gleitverhalten , das über das optiona-le Argument der Gleitumgebung geändert werden kann. Mit dieser Option wird dasGleitverhalten für die optional erstellbare Gleitumgebung (siehe Option float)festgelegt. Die Syntax und Semantik ist dabei mit der des optionalen Arguments fürdie Gleitumgebung identisch. Wird die Option nicht verwendet, so ist das voreinge-stellte Gleitverhalten tbp, also top, bottom, page.

. . .

Kapitel 15: Verzeichnisse verwalten mit Hilfe von tocbasic 423

Tabelle 15.2.: Optionen für die Anweisung \DeclareNewTOC (Fortsetzung)

floattype=GleittypJede Gleitumgebung hat einen nummerischen Typ. Gleitumgebungen, bei denen indiesem Gleittyp nur unterschiedliche Bits gesetzt sind, können sich gegenseitigüberholen. Die Gleitumgebungen figure und table haben normalerweise die Typen1 und 2, können sich also gegenseitig überholen. Es sind Typen von 1 bis 31 (alle Bitsgesetzt, kann also keinen anderen Typ überholen und von keinem anderen Typenüberholt werden) zulässig. Wird kein Typ angegeben, so wird mit 16 der höchstmögliche Ein-Bit-Typ verwendet.

forcenamesSiehe Option name und listname.

hang=Einzugv3.20v3.21 Diese Option gilt seit KOMA-Script 3.20 als überholt. Die Breite der Num-

mer des Verzeichniseintrags ist nun stattdessen als Eigenschaft in Abhängigkeitdes Verzeichniseintragsstils von Option tocentrystyle anzugeben. Bei den Sti-len von KOMA-Script wäre das beispielsweise die Eigenschaft numwidth und da-mit Option tocentrynumwidth. Besitzt ein Stil diese Eigenschaft, so wird sie von\DeclareNewTOC mit 1,5 em voreingestellt. Diese Voreinstellung kann durch expliziteAngabe von tocentrynumwidth=Wert leicht mit einem anderen Wert überschriebenwerden. Für Abbildungen verwenden die KOMA-Script-Klassen beispielsweise denWert 2.3em.

indent=Einzugv3.20v3.21 Diese Option gilt seit KOMA-Script 3.20 als überholt. Der Einzug des Verzeichnisein-

trags von links ist nun stattdessen als Eigenschaft in Abhängigkeit des Verzeichnisein-tragsstils von Option tocentrystyle anzugeben. Bei den Stilen von KOMA-Scriptwäre das beispielsweise die Eigenschaft indent und damit Option tocentryindent.Besitzt ein Stil diese Eigenschaft, so wird sie von \DeclareNewTOC mit 1 em voreinge-stellt. Diese Voreinstellung kann durch explizite Angabe von tocentryindent=Wertleicht mit einem anderen Wert überschrieben werden. Für Abbildungen verwendendie KOMA-Script-Klassen beispielsweise den Wert 1.5em.

. . .

Kapitel 15: Verzeichnisse verwalten mit Hilfe von tocbasic 424

Tabelle 15.2.: Optionen für die Anweisung \DeclareNewTOC (Fortsetzung)

level=Gliederungsebenev3.20v3.21 Diese Option gilt seit KOMA-Script 3.20 als überholt. Der nummerische Wert der

Ebene des Verzeichniseintrags ist nun stattdessen als Eigenschaft in Abhängigkeit desVerzeichniseintragsstils von Option tocentrystyle anzugeben. Nichts desto trotzhaben alle Stile die Eigenschaft level und damit Option tocentrylevel. Die Ei-genschaft wird von \DeclareNewTOC mit 1 voreingestellt. Diese Voreinstellung kanndurch explizite Angabe von tocentrylevel=Wert leicht mit einem anderen Wertüberschrieben werden.

listname=VerzeichnistitelJedes Verzeichnis hat eine Überschrift, die durch diese Option bestimmt wer-den kann. Ist die Option nicht angegeben, so wird als Verzeichnistitel »List ofMehrzahl des Eintragstyps « (siehe Option types) verwendet, wobei das ersteZeichen der Mehrzahl des Eintragstyps in einen Großbuchstaben gewandelt wird.Es wird auch ein Makro \listEintragstyp name mit diesem Wert definiert, der je-derzeit geändert werden kann. Dieses Makro wird jedoch nur definiert, wenn es nichtbereits definiert ist oder zusätzlich Option forcenames gesetzt ist.

name=EintragsnameSowohl als optionaler Präfix für die Einträge im Verzeichnis als auch für die Beschrif-tung in einer Gleitumgebung (siehe Option float) oder einer nicht gleitenden Um-gebung (siehe Option nonfloat) wird ein Name für einen Eintrag in das Verzeichnisbenötigt. Ohne diese Option wird als Eintragsname der Eintragstyp (siehe Opti-on type) verwendet, bei dem das erste Zeichen in einen Großbuchstaben gewandeltwird. Es wird auch ein Makro \Eintragstyp name mit diesem Wert definiert, derjederzeit geändert werden kann. Dieses Makro wird jedoch nur definiert, wenn esnicht bereits definiert ist oder zusätzlich Option forcenames gesetzt ist.

nonfloatEs wird nicht nur ein neuer Verzeichnistyp definiert, sondern auch eine nicht gleitendeUmgebungen Eintragstyp - (siehe Option type), die ähnlich wie eine Gleitumge-bung verwendet werden kann, jedoch nicht gleitet und auch nicht die Grenzen derUmgebung, in der sie verwendet wird, durchbricht.

. . .

Kapitel 15: Verzeichnisse verwalten mit Hilfe von tocbasic 425

Tabelle 15.2.: Optionen für die Anweisung \DeclareNewTOC (Fortsetzung)

owner=BesitzerJedes neue Verzeichnis hat bei tocbasic einen Besitzer (siehe Abschnitt 15.1). Die-ser kann hier angegeben werden. Ist kein Besitzer angegeben, so wird der Besitzer»float« verwendet, den auch die KOMA-Script-Klassen für das Abbildungs- unddas Tabellenverzeichnis verwenden.

setup=Liste von Eigenschaftenv3.25 Die Liste von Eigenschaften wird via \setuptoc gesetzt. Es wird darauf hinge-

wiesen, dass für die Angabe mehrerer durch Komma getrennter Eigenschaften dieListe von Eigenschaften in geschweifte Klammern gesetzt werden muss.

tocentrystyle=Eintragsstilv3.20 Eintragsstil gibt den Stil an, den Einträge in das entsprechende Verzeichnis ha-

ben sollen. Der Name der Eintragsebene wird dabei über Option type bestimmt.Zusätzlich zu den Optionen dieser Tabelle können auch alle Eigenschaften des Stilsals Optionen angegeben werden, indem die Namen der Eigenschaften mit dem Prä-fix toc ergänzt werden. So kann der nummerische Wert der Ebene beispielsweiseals tocentrylevel angegeben werden. Näheres zu den Stilen ist Abschnitt 15.3 abSeite 400 zu entnehmen.

tocentryStiloption =Wertv3.20 Weitere Optionen in Abhängigkeit vom via tocentrystyle gewählten

Eintragsstil . Siehe dazu Abschnitt 15.3 ab Seite 400. Für die von tocbasicvordefinierten Verzeichniseintragsstile finden sich die als Stiloption verwendbarenAttribute in Tabelle 15.1, ab Seite 405.

type=EintragstypEintragstyp gibt den Typ der Einträge in das entsprechende Verzeichnis an. DerTyp wird auch als Basisname für verschiedene Makros und gegebenenfalls Umgebun-gen und Zähler verwendet. Er sollte daher nur aus Buchstaben bestehen. Wird dieseOption nicht verwendet, so wird für Eintragstyp die Dateierweiterung aus demobligatorischen Argument verwendet.

types=Mehrzahl des EintragstypsAn verschiedenen Stellen wird auch die Mehrzahlform des Eintragstyps verwendet,beispielsweise um eine Anweisung \listofMehrzahl des Eintragstyps zu definie-ren. Wird diese Option nicht verwendet, so wird als Mehrzahl des Eintragstypsder Wert von type mit angehängtem »s« verwendet.

. . .

Kapitel 15: Verzeichnisse verwalten mit Hilfe von tocbasic 426

Tabelle 15.2.: Optionen für die Anweisung \DeclareNewTOC (Fortsetzung)

unset=Liste von Eigenschaftenv3.25 Die Liste von Eigenschaften wird via \unsettoc aufgehoben. Es wird darauf

hingewiesen, dass für die Angabe mehrerer durch Komma getrennter Eigenschaftendie Liste von Eigenschaften in geschweifte Klammern gesetzt werden muss.

Beispiel: Das Beispiel aus Abschnitt 15.5 kann mit Hilfe der neuen Anweisung deutlich ver-kürzt werden:\DeclareNewTOC[%

type=remarkbox,%types=remarkboxes,%float,% Gleitumgebungen sollen definiert werden.floattype=4,%name=Merksatz,%listname={Verzeichnis der Merks\"atze}%

]{lor}\setuptoc{lor}{chapteratlist}

Neben den Umgebungen remarkbox und remarkbox* sind damit auch derZähler remarkbox, die zur Ausgabe gehörenden Anweisungen \theremarkbox,\remarkboxname und \remarkboxformat, die für das Verzeichnis benötigten\listremarkboxname und \listofremarkboxes sowie einige intern verwendete An-weisungen mit Bezug auf die Dateiendung lor definiert. Soll der Gleitumgebungs-typ dem Paket überlassen werden, so kann Option floattype im Beispiel entfallen.Wird zusätzlich die Option nonfloat angegeben, wird außerdem eine nicht gleiten-de Umgebung remarkbox- definiert, in der ebenfalls \caption verwendet werdenkann.Zum besseren Verständnis zeigt Tabelle 15.3 eine Gegenüberstellung der Anweisun-gen und Umgebungen für die neu erstellte Beispielumgebung remarkbox mit denentsprechenden Befehlen und Umgebungen für Abbildungen.Und hier nun eine mögliche Verwendung der Umgebung:\begin{remarkbox}

\centeringGleiches sollte immer auf gleiche Weise undmit gleichem Aussehen gesetzt werden.\caption{Erster Hauptsatz der Typografie}\label{rem:typo1}

\end{remarkbox}

Ein Ausschnitt aus einer Beispielseite mit dieser Umgebung könnte dann so ausse-hen:

Kapitel 15: Verzeichnisse verwalten mit Hilfe von tocbasic 427

Tabelle 15.3.: Gegenüberstellung von Beispielumgebung remarkbox und Umgebung figure

Umgebungremarkbox

Umgebungfigure

Optionen von\DeclareNewTOC

Kurzbeschreibung

remarkbox figure type, float Gleitumgebung des jeweiligenTyps.

remarkbox* figure* type, float spaltenübergreifende Gleitum-gebung des jeweiligen Typs

remarkbox figure type, float Zähler, der von \caption ver-wendet wird

\theremarkbox \thefigure type, float Anweisung zur Ausgabe des je-weiligen Zählers

\remarkboxformat \figureformat type, float Anweisung zur Formatierungdes jeweiligen Zählers in derAusgabe von \caption

\remarkboxname \figurename type, float,name

Name, der im Label von\caption verwendet wird

\listofremarkboxes \listoffigures types, float Anweisung zur Ausgabe des je-weiligen Verzeichnisses

\listremarkboxname \listfigurename type, float,listname

Überschrift des jeweiligen Ver-zeichnisses

\fps@remarkbox \fps@figure type, float,floattype

nummerischer Gleitumge-bungstyp zwecks Reihenfolgen-erhalts

lor lof Dateiendung der Hilfsdatei fürdas jeweilige Verzeichnis

Gleiches sollte immer auf gleiche Weise und mitgleichem Aussehen gesetzt werden.

Merksatz 1: Erster Hauptsatz der Typografie

Benutzer von hyperref sollten Option listname übrigens immer angeben. Anderenfallskommt es in der Regel zu einer Fehlermeldung, weil hyperref nicht mit dem \MakeUppercaseim Namen des Verzeichnisses zurecht kommt, das benötigt wird, um den ersten Buchstabendes Wertes von types in Großbuchstaben zu wandeln.

Kapitel 16: Fremdpakete verbessern mit scrhack 428

Fremdpakete verbessern mit scrhack

Einige Pakete außerhalb von KOMA-Script arbeiten nicht sehr gut mit KOMA-Script zu-sammen. Für den KOMA-Script-Autor ist es dabei oftmals sehr mühsam, die Autoren derjeweiligen Pakete von einer Verbesserung zu überzeugen. Das betrifft auch Pakete, deren Ent-wicklung eingestellt wurde. Deshalb wurde das Paket scrhack begonnen. Dieses Paket ändertAnweisungen und Definitionen anderer Pakete, damit sie besser mit KOMA-Script zusammen-arbeiten. Einige Änderungen sind auch bei Verwendung anderer Klassen nützlich.

16.1. Entwicklungsstand

Obwohl das Paket bereits seit längerer Zeit Teil von KOMA-Script ist und von vielen An-wendern genutzt wird, hat es auch ein Problem: Bei der Umdefinierung von Makros fremderPakete ist es von der genauen Definition und Verwendung dieser Makros abhängig. Damit istes gleichzeitig auch von bestimmten Versionen dieser Pakete abhängig. Wird eine unbekann-te Version eines der entsprechenden Pakete verwendet, kann scrhack den notwendigen Patcheventuell nicht ausführen. Im Extremfall kann aber umgekehrt der Patch einer unbekanntenVersion auch zu einem Fehler führen.Da also scrhack immer wieder an neue Versionen fremder Pakete angepasst werden muss,

kann es niemals als fertig angesehen werden. Daher existiert von scrhack dauerhaft nur eineBeta-Version. Obwohl die Benutzung in der Regel einige Vorteile mit sich bringt, kann dieFunktion nicht dauerhaft garantiert werden.

16.2. Frühe oder späte Optionenwahl

Es gilt sinngemäß, was in Abschnitt 2.4 geschrieben wurde. Falls Sie also Abschnitt 2.4 bereitsgelesen und verstanden haben, können Sie auf Seite 429 mit Abschnitt 16.3 fortfahren.

\documentclass[Optionenliste ]{KOMA-Script-Klasse }\usepackage[Optionenliste ]{Paket-Liste }

Bei LATEX ist vorgesehen, dass Anwender Klassenoptionen in Form einer durch Komma ge-trennten Liste einfacher Schlüsselwörter als optionales Argument von \documentclass ange-ben. Außer an die Klasse werden diese Optionen auch an alle Pakete weitergereicht, die dieseOptionen verstehen. Ebenso ist vorgesehen, dass Anwender Paketoptionen in Form einer durchKomma getrennten Liste einfacher Schlüsselwörter als optionales Argument von \usepackageangeben. KOMA-Script erweitertv3.00 den Mechanismus der Optionen für die KOMA-Script-Klassen und einige Pakete um weitere Möglichkeiten. So haben die meisten Optionen beiKOMA-Script zusätzlich einen Wert. Eine Option hat also nicht unbedingt nur die Form

Kapitel 16: Fremdpakete verbessern mit scrhack 429

Option , sondern kann auch die Form Option =Wert haben. Bis auf diesen Unterschied arbei-ten \documentclass und \usepackage bei KOMA-Script wie in [Tea05b] oder jeder LATEX-Einführung, beispielsweise [DGS+12], beschrieben.

Gegenüber der nachfolgend vorgestellten Schnittstelle zu Einstellungen von Optionen hat\documentclass einen Nachteil, der unbedingt zu beachten ist: Anweisungen, Längen, Zählerund ähnliches können darin leicht zerbrechen. So führt die Verwendung einer LATEX-Längeim Wert einer Option bei dieser Anweisung bei vielen Nicht-KOMA-Script-Klassen zu einerFehlermeldung, noch bevor der Wert an ein KOMA-Script-Paket übergeben wird, es alsodie Kontrolle darüber übernehmen könnte. Wertzuweisungen mit LATEX-Längen oder LATEX-Zählern sollten daher nie per \documentclass, sondern mit den nachfolgend dokumentiertenAnweisungen \KOMAoptions oder \KOMAoption vorgenommen werden.

\KOMAoptions{Optionenliste }\KOMAoption{Option }{Werteliste }

KOMA-Scriptv3.00 bietet bei den meisten Klassen- und Paketoptionen auch die Möglichkeit, denWert der Optionen noch nach dem Laden der Klasse beziehungsweise des Pakets zu ändern.Mit der Anweisung \KOMAoptions kann man wie bei \documentclass oder \usepackage dieWerte einer Reihe von Optionen ändern. Jede Option der Optionenliste hat dabei die FormOption =Wert .

Einige Optionen besitzen auch einen Säumniswert (engl. default value). Versäumt man dieAngabe eines Wertes, verwendet man die Option also einfach in der Form Option , so wirdautomatisch dieser Säumniswert angenommen.Manche Optionen können gleichzeitig mehrere Werte besitzen. Für solche Optionen besteht

die Möglichkeit, mit \KOMAoption der einen Option nacheinander eine Reihe von Wertenzuzuweisen. Die einzelnen Werte sind dabei in der Werteliste durch Komma voneinandergetrennt.Soll ein Wert ein Gleichheitszeichen oder ein Komma enthalten, so ist der Wert in geschweif-

te Klammern zu setzen.KOMA-Script bedient sich für die Realisierung dieser Möglichkeit der Anweisungen

\FamilyOptions und \FamilyOption mit der Familie »KOMA«. Siehe dazu Teil II, Abschnitt 12.2,ab Seite 345.Mit \KOMAoptions oder \KOMAoption gesetzte Optionen erreichen sowohl die KOMA-Script-

Klasse als auch alle bereits geladenen KOMA-Script-Pakete, die diese Optionen kennen. Isteine Option oder ein Wert insgesamt unbekannt, so wird die Option einschließlich des Wertesvon scrbase als fehlerhaft gemeldet.

16.3. Verwendung von tocbasic

In den Anfängen von KOMA-Script gab es von Anwenderseite den Wunsch, dass Verzeichnissevon Gleitumgebungen, die mit dem Paket float erzeugt werden, genauso behandelt werden wie

Kapitel 16: Fremdpakete verbessern mit scrhack 430

das Abbildungsverzeichnis oder das Tabellenverzeichnis, das von den KOMA-Script-Klassenselbst angelegt wird. Damals setzte sich der KOMA-Script-Autor mit dem Autor von float inVerbindung, um diesem eine Schnittstelle für entsprechende Erweiterungen zu unterbreiten. Inetwas abgewandelter Form wurde diese in Gestalt der beiden Anweisungen \float@listheadund \float@addtolists realisiert.

Später zeigte sich, dass diese beiden Anweisungen nicht genug Flexibilität für eine umfang-reiche Unterstützung aller KOMA-Script-Möglichkeiten boten. Leider hatte der Autor vonfloat die Entwicklung aber bereits eingestellt, so dass hier keine Änderungen mehr zu erwartensind.Andere Paketautoren haben die beiden Anweisungen ebenfalls übernommen. Dabei zeigte

sich, dass die Implementierung in einigen Paketen, darunter auch float, dazu führt, dass alldiese Pakete nur in einer bestimmten Reihenfolge geladen werden können, obwohl sie ansonstenin keinerlei Beziehung zueinander stehen.Um all diese Nachteile und Probleme zu beseitigen, unterstützt KOMA-Script diese alte

Schnittstelle offiziell nicht mehr. Stattdessen wird bei Verwendung dieser Schnittstelle vonKOMA-Script gewarnt. Gleichzeitig wurde in KOMA-Script das Paket tocbasic (siehe Kapi-tel 15) als zentrale Schnittstelle für die Verwaltung von Verzeichnissen entworfen und realisiert.Die Verwendung dieses Pakets bietet weit mehr Vorteile und Möglichkeiten als die beiden altenAnweisungen.Obwohl der Aufwand zur Verwendung dieses Pakets sehr gering ist, haben bisher die Autoren

der Pakete, die auf die beiden alten Anweisungen gesetzt haben, keine Anpassung vorgenom-men. Daher enthält scrhack selbst entsprechende Anpassungen für die Pakete float, floatrowund listings. Allein durch das Laden von scrhack reagieren diese Pakete dann nicht nur aufdie Einstellungen von Option listof, sondern beachten auch Sprachumschaltungen durch dasbabel-Paket. Näheres zu den Möglichkeiten, die durch die Umstellung der Pakete auf tocbasicnun zur Verfügung stehen, ist Abschnitt 15.2 zu entnehmen.Sollte diese Änderung für eines der Pakete nicht erwünscht sein oder zu Problemen führen,

so kann sie selektiv mit den Einstellungen float=false, floatrow=false und listings=false abgeschaltet werden. Wichtig dabei ist, dass eine Änderung der Optionen nach demLaden des zugehörigen Pakets keinen Einfluss mehr hat!

16.4. Falsche Erwartungen an \@ptsize

Einige Pakete gehen grundsätzlich davon aus, dass das klasseninterne Makro \@ptsize sowohldefiniert ist als auch zu einer ganzen Zahl expandiert. Aus Kompatibilitätsgründen definiertKOMA-Script \@ptsize auch bei anderen Grundschriftgrößen als 10 pt, 11 pt oder 12 pt. DaKOMA-Script außerdem auch gebrochene Schriftgrößen erlaubt, kann dabei \@ptsize natür-lich auch zu einem Dezimalbruch expandieren.Einesv3.17 der Pakete, die damit nicht zurecht kommen, ist das Paket setspace. Darüber hinaus

sind die von diesem Paket eingestellten Werte immer von der Grundschriftgröße abhängig, auch

Kapitel 16: Fremdpakete verbessern mit scrhack 431

wenn die Einstellung im Kontext einer anderen Schriftgröße erfolgt. Paket scrhack löst beideProbleme, indem es die Einstellungen von \onehalfspacing und \doublespacing immerrelativ zur aktuellen, tatsächlichen Schriftgröße vornimmt.Sollte diese Änderung nicht erwünscht sein oder zu Problemen führen, so kann sie selek-

tiv mit der Einstellung setspace=false abgeschaltet werden. Wichtig dabei ist, dass eineÄnderung der Option nach dem Laden von setspace keinen Einfluss mehr hat! Ebenso mussscrhack vor setspace geladen werden, falls setspace mit einer der Optionen onehalfspacingoder doublespacing geladen wird und dieser Hack sich bereits darauf auswirken soll.

16.5. Sonderfall hyperref

Ältere Versionen von hyperref vor 6.79h haben bei den Sternformen der Gliederungsbefehlehinter statt vor oder auf die Gliederungsüberschriften verlinkt. Inzwischen ist dieses Problemauf Vorschlag des KOMA-Script-Autors beseitigt. Da die entsprechende Änderung aber überein Jahr auf sich warten ließ, wurde in scrhack ein entsprechender Patch aufgenommen. Zwarkann dieser ebenfalls durch hyperref=false deaktiviert werden, empfohlen wird jedoch statt-dessen die aktuelle Version von hyperref zu verwenden. In diesem Fall wird die Änderung durchscrhack automatisch verhindert.

16.6. Inkonsistente Behandlung von \textwidth und \textheight

Dasv3.18 Paket lscape definiert eine Umgebung landscape, um den Inhalt einer Seite aber nicht de-ren Kopf und Fuß quer zu setzen. Innerhalb dieser Umgebung wird \textheight auf den Wertvon \textwidth gesetzt. Umgekehrt wird jedoch \textwidth nicht auf den vorherigen Wertvon \textheight gesetzt. Das ist inkonsistent. Meines Wissens wird \textwidth nicht ent-sprechend geändert, weil andere Pakete oder Anwenderanweisungen gestört werden könnten.Jedoch hat auch die Änderung von \textwidth dieses Potential und in der Tat beschädigt siedie Funktion beispielsweise der Pakete showframe und scrlayer. Daher wäre es am besten, wenn\textheight ebenfalls unverändert bliebe. scrhack verwendet Paket xpatch (siehe [Gre12]),um die Startanweisung \landscape der gleichnamigen Umgebung entsprechend zu ändern.Falls diese Änderung nicht gewünscht wird oder Probleme verursacht, kann sie mit Option

lscape=false deaktiviert werden. Es ist zu beachten, dass eine nachträgliche Zuweisung anOption lscape mit \KOMAoption oder \KOMAoptions nur eine Wirkung hat, wenn sie währenddes Ladens von lscape nicht false war.Im übrigens wird lscape auch von dem Paket pdflscape verwendet, so dass scrhack sich auch

auf die Funktion dieses Pakets auswirkt.

Kapitel 16: Fremdpakete verbessern mit scrhack 432

16.7. Sonderfall nomencl

Einev3.23 Besonderheit stellt der Hack für das Paket nomencl dar. Dieser rüstet einerseits nach, dassder optionale Inhaltsverzeichniseintrag für die Nomenklatur Option toc=indentunnumberedbeachtet. Quasi nebenbei werden über das Paket tocbasic auch gleich die Endungen nlo undnls für den Besitzer nomencl reserviert (siehe \addtotoclist, Abschnitt 15.1, Seite 389).Außerdem wird die Umgebung thenomenclature so geändert, dass \tocbasic@listhead

für die Überschrift verwendet wird (siehe Abschnitt 15.4, Seite 417). Dadurch können mitdem Hack diverse Attribute für die Endung nls über \setuptoc gesetzt werden. So ist esbeispielsweise möglich, mit \setuptoc{nls}{numbered} die Nomenklatur nicht nur ins In-haltsverzeichnis einzutragen sondern auch gleich zu nummerieren. Näheres zu \setuptoc undden damit möglichen Einstellungen ist in Abschnitt 15.2, ab Seite 397 zu finden. Als klei-ner aber wichtiger Nebeneffekt erhält die Nomenklatur mit diesem Patch außerdem einenpassenden Kolumnentitel, falls lebende Kolumnentitel beispielsweise durch Verwendung vonSeitenstil headings aktiviert wurden.

Dieser eher simple Patch ist damit ein Beispiel dafür, wie auch Pakete, die keine Gleit-umgebungen definieren, Nutzen aus der Verwendung von tocbasic ziehen könnten. Falls die-se Änderung jedoch nicht gewünscht wird oder Probleme verursacht, kann sie mit Optionnomencl=false deaktiviert werden. Entscheidend ist dabei die Einstellung der Option zumZeitpunkt, zu dem nomencl geladen wird! Spätere Änderungen der Option mit \KOMAoptionoder \KOMAoptions haben also keinen Einfluss und führen zu einer entsprechenen Warnung.

16.8. Sonderfall Überschriften

Diversev3.27 Pakete gehen davon aus, dass Überschriften auf eine ganz bestimmte Weise definiertsind, die weitgehend den Definitionen der Standardklassen entsprechen. Dies ist jedoch nichtbei allen Klassen der Fall. Beispielsweise sind bei den KOMA-Script-Klassen die Überschriftenkomplett anders definiert, um viele zusätzliche Möglichkeiten zu bieten. Das kann einige wenigePakete aus dem Tritt bringen. Ab Version 3.27 bietet scrhack daher die Möglichkeit, zwangs-weise die Überschriftenbefehle \part, \chapter, \section, \subsection, \subsubsection,\paragraph und \subparagraph kompatibel zu den Standardklassen zu definieren. Dabeiwerden im Fall, dass \chapter definiert ist, die Definitionen von book zugrunde gelegt. Ist\chapter nicht definiert, so werden die Definitionen von article herangezogen.Bei Verwendung einer KOMA-Script-Klasse werden als Seiteneffekt zusätzlich diverse Mög-

lichkeiten dieser Klassen deaktviert. Beispielsweise stehen dann die Befehle zur Neudefinitionoder Änderung der Gliederungsbefehle aus Abschnitt 21.8 oder Option headings nicht mehrzur Verfügung und Befehle wie \partformat erhalten eine neue Voreinstellung.Da dieser Hack häufig mehr Schaden als Nutzen bringt, erzeugt er eine größere Anzahl an

Warnungen. Außerdem ist er nicht bereits durch das Laden von Paket scrhack aktiv, sondernmuss beim Laden des Pakets mit Option standardsections explizit aktiviert werden. Eine

Kapitel 16: Fremdpakete verbessern mit scrhack 433

nachträgliche Aktivierung oder Deaktivierung ist nicht möglich.Da es für die eingangs erwähnten Probleme oft weniger invasive Lösungen gibt, wird die Ver-

wendung des Hacks ausdrücklich nicht empfohlen, sondern lediglich als letzte Rettungschancefür Notfälle angeboten.

Kapitel 17: Definition von Ebenen und Seitenstilen mit scrlayer 434

Definitionv3.12 von Ebenen und Seitenstilen mit scrlayer

Anwender von Grafikprogrammen sind mit dem Modell der Ebenen für eine Seite bereits ver-traut. LATEX selbst ist ein solches Modell jedoch eher fremd. Dennoch gibt es bereits einigePakete wie eso-pic oder textpos, mit denen bereits eine Art Hintergrund- oder Vordergrundebe-ne in LATEX verfügbar gemacht wurden. Das Paket scrlayer ist ein weiteres Paket, das solcheHintergrund- und Vordergrundebenen zur Verfügung stellt. Im Unterschied zu den anderengenannten Paketen sind die Ebenen bei scrlayer jedoch Teil des Seitenstils. Dadurch ist eineeinfache Umschaltung zwischen der Verwendung unterschiedlicher Ebenen durch die Umschal-tung des Seitenstils möglich.Um dies zu erreichen, stellt das Paket auf unterer Stufe zusätzlich eine Schnittstelle zur

Definition von Seitenstilen, die auf einem Stapel oder einer Liste von Ebenen beruhen, zumHinzufügen von Ebenen wahlweise am Anfang oder Ende einer solchen Liste von Ebenen oderunmittelbar vor oder hinter einer anderen Ebene in einer solchen Liste, zum Löschen einerEbene aus einer solchen Liste und zum Löschen aller Dubletten einer Ebene aus einer solchenListe bereit. Oder kurz und verständlich gesagt: Die Seitenstil-Schnittstelle von scrlayer stelltBefehle bereit, um einen Seitenstil, der auf einer Liste von Ebenen basiert, zu definieren unddiese Ebenenliste zu verwalten.Nichtsdestoweniger wird die direkte Verwendung der Ebenen nur erfahrenen Anwendern

empfohlen. Schnittstellen für Anfänger und durchschnittliche Anwender werden als zusätzlichePakete angeboten, die dann ihrerseits scrlayer laden. Siehe hierzu Kapitel 5 in Teil I dieserAnleitung.

17.1. Frühe oder späte Optionenwahl

Es gilt sinngemäß, was in Abschnitt 2.4 geschrieben wurde. Falls Sie also Abschnitt 2.4 bereitsgelesen und verstanden haben, können Sie auf Seite 435 mit Abschnitt 17.2 fortfahren.

\documentclass[Optionenliste ]{KOMA-Script-Klasse }\usepackage[Optionenliste ]{Paket-Liste }

Bei LATEX ist vorgesehen, dass Anwender Klassenoptionen in Form einer durch Komma ge-trennten Liste einfacher Schlüsselwörter als optionales Argument von \documentclass ange-ben. Außer an die Klasse werden diese Optionen auch an alle Pakete weitergereicht, die dieseOptionen verstehen. Ebenso ist vorgesehen, dass Anwender Paketoptionen in Form einer durchKomma getrennten Liste einfacher Schlüsselwörter als optionales Argument von \usepackageangeben. KOMA-Script erweitertv3.00 den Mechanismus der Optionen für die KOMA-Script-Klassen und einige Pakete um weitere Möglichkeiten. So haben die meisten Optionen beiKOMA-Script zusätzlich einen Wert. Eine Option hat also nicht unbedingt nur die Form

Kapitel 17: Definition von Ebenen und Seitenstilen mit scrlayer 435

Option , sondern kann auch die Form Option =Wert haben. Bis auf diesen Unterschied arbei-ten \documentclass und \usepackage bei KOMA-Script wie in [Tea05b] oder jeder LATEX-Einführung, beispielsweise [DGS+12], beschrieben.

Gegenüber der nachfolgend vorgestellten Schnittstelle zu Einstellungen von Optionen hat\documentclass einen Nachteil, der unbedingt zu beachten ist: Anweisungen, Längen, Zählerund ähnliches können darin leicht zerbrechen. So führt die Verwendung einer LATEX-Längeim Wert einer Option bei dieser Anweisung bei vielen Nicht-KOMA-Script-Klassen zu einerFehlermeldung, noch bevor der Wert an ein KOMA-Script-Paket übergeben wird, es alsodie Kontrolle darüber übernehmen könnte. Wertzuweisungen mit LATEX-Längen oder LATEX-Zählern sollten daher nie per \documentclass, sondern mit den nachfolgend dokumentiertenAnweisungen \KOMAoptions oder \KOMAoption vorgenommen werden.

\KOMAoptions{Optionenliste }\KOMAoption{Option }{Werteliste }

KOMA-Scriptv3.00 bietet bei den meisten Klassen- und Paketoptionen auch die Möglichkeit, denWert der Optionen noch nach dem Laden der Klasse beziehungsweise des Pakets zu ändern.Mit der Anweisung \KOMAoptions kann man wie bei \documentclass oder \usepackage dieWerte einer Reihe von Optionen ändern. Jede Option der Optionenliste hat dabei die FormOption =Wert .

Einige Optionen besitzen auch einen Säumniswert (engl. default value). Versäumt man dieAngabe eines Wertes, verwendet man die Option also einfach in der Form Option , so wirdautomatisch dieser Säumniswert angenommen.Manche Optionen können gleichzeitig mehrere Werte besitzen. Für solche Optionen besteht

die Möglichkeit, mit \KOMAoption der einen Option nacheinander eine Reihe von Wertenzuzuweisen. Die einzelnen Werte sind dabei in der Werteliste durch Komma voneinandergetrennt.Soll ein Wert ein Gleichheitszeichen oder ein Komma enthalten, so ist der Wert in geschweif-

te Klammern zu setzen.KOMA-Script bedient sich für die Realisierung dieser Möglichkeit der Anweisungen

\FamilyOptions und \FamilyOption mit der Familie »KOMA«. Siehe dazu Teil II, Abschnitt 12.2,ab Seite 345.Mit \KOMAoptions oder \KOMAoption gesetzte Optionen erreichen sowohl die KOMA-Script-

Klasse als auch alle bereits geladenen KOMA-Script-Pakete, die diese Optionen kennen. Isteine Option oder ein Wert insgesamt unbekannt, so wird die Option einschließlich des Wertesvon scrbase als fehlerhaft gemeldet.

17.2. Einige grundlegende Informationen

Das Paket benötigt einige grundlegende Informationen über die verwendete Klasse. Autorenvon Klassen können scrlayer helfen, indem sie entsprechende Angaben machen. Anderenfalls

Kapitel 17: Definition von Ebenen und Seitenstilen mit scrlayer 436

versucht das Paket diese Informationen selbst zu ermitteln. Das funktioniert beispielsweisefür die Standardklassen oder für die KOMA-Script-Klassen. Mit anderen Klassen kann esfunktionieren oder auch ganz oder teilweise fehlschlagen.Dieser Abschnitt beschreibt einige der Informationen, die Autoren von Klassen bereitstellen

können. Anwender sollten sich im Normalfall nicht darum zu kümmern brauchen.

\if@chapter Dann-Code \else Sonst-Code \fi

Wenn \if@chapter definiert ist und \iftrue entspricht, berücksichtigt scrlayer bei sei-ner Arbeit die Kapitel-Ebene beispielsweise bei Verwendung von Option automark. Wennes definiert ist, aber nicht \iftrue entspricht, behandelt scrlayer nur die Ebenen der Be-fehle \part, \section, \subsection, \sub...subsection, \paragraph, \subparagraph,\sub...subparagraph. Wenn das Makro nicht definiert ist, macht scrlayer die Frage, ob auchdie Kapitel-Ebene zu behandeln ist, an der Anweisung \chapter fest. Ist diese Anweisung de-finiert und entspricht sie nicht \relax, dann definiert scrlayer das Makro \if@chapter selbstals Synonym für \iftrue. Anderenfalls definiert es \if@chapter als Synonym für \iffalse.

\if@mainmatter Dann-Code \else Sonst-Code \fi

Klassen wie book oder scrbook bieten \frontmatter, \mainmatter und \backmatter, umzwischen Vorderteil, Hauptteil und Endteil eines Buches umschalten zu können. In der Regelverwenden diese Klassen intern \if@mainmatter, um entscheiden zu können, ob gerade imHauptteil des Dokuments gearbeitet wird oder nicht. Klassen wie report oder article habenkein \frontmatter, \mainmatter oder \backmatter und deshalb auch kein \[email protected] gehen sie davon aus, dass es nur einen Hauptteil gibt.Für scrlayer ist es aber einfacher, nicht ständig erneut die Existenz und Verwendung der

Umschaltanweisungen zu erkennen und damit zu entscheiden, ob nun gerade im Hauptteilgearbeitet wird oder nicht, sondern stattdessen auch bei Klassen wie report oder article mit\if@mainmatter zu arbeiten. Das sollte bei den genannten Klassen dann schlicht \iftrue ent-sprechen. Wenn also \if@mainmatter nicht definiert ist, dann definiert scrlayer es als Synonymfür \iftrue.

Einige Klassen definieren jedoch \frontmatter, \mainmatter oder \backmatter undtrotzdem kein \if@mainmatter. In diesem Fall definiert scrlayer \if@mainmatter ebenfallsals Synonym für \iftrue und erweitert darüber hinaus die gefundenen Definitionen von\frontmatter, \mainmatter und \backmatter so, dass diese \if@mainmatter passend umde-finieren. Falls es jedoch weitere, vergleichbare Befehle zur Umschaltung zwischen unterschiedli-chen Dokumentteilen gibt, so kennt scrlayer diese nicht, testet nicht auf diese und erweitert siedaher auch nicht passend. In diesem Fall ist scrlayer also auf die Mitarbeit des Klassenautorsangewiesen.

Kapitel 17: Definition von Ebenen und Seitenstilen mit scrlayer 437

\DeclareSectionNumberDepth{Name der Gliederungsebene }{Tiefe der Gliederungsebene }

Jeder Gliederungsebene ist normalerweise eine nummerische Tiefe zugeordnet. Das ist notwen-dig, damit LATEX die Hierarchie der Gliederungsebenen verwalten kann. Allerdings sind dieWerte nur der jeweiligen Klasse bekannt, in der die Gliederungsbefehle definiert sind. Diesesetzt dann in den entsprechenden LATEX-Befehlen selbst die zugehörigen Nummern ein.

Das Paket scrlayer benötigt ebenfalls Informationen über die Hierarchie. Mit Hilfe von\DeclareSectionNumberDepth kann scrlayer zum Namen einer Gliederungsebene die zuge-hörige nummerische Tiefe bekannt gemacht werden. Für die Standardklassen wäre Name derGliederungsebene beispielsweise part, chapter, section, subsection, subsubsection,paragraph oder subparagraph und die jeweils zugehörige Tiefe der Gliederungsebene wä-re -1, 0, 1, 2, 3, 4 oder 5.Das Paket scrlayer versucht, diese nummerischen Werte zunächst beim Laden des Pakets

und noch einmal während \begin{document} selbst zu ermitteln. Aber für den Fall, dass dieseinmal nicht zu einem korrekten Ergebnis führt, beispielsweise falls es vollkommen andereGliederungsbefehle gibt, kann man die Zuordnung eben mit \DeclareSectionNumberDepthauch explizit vornehmen.

17.3. Deklaration von Ebenen

Eine Ebene (engl. layer) ist ein Denkmodell für eine Seite. Im Gegensatz zu echtem, physi-schem Papier ist diese Seite vollständig transparent. Üblicherweise werden mehrere Ebenenübereinander gestapelt und undurchsichtiges Material auf einer Ebene überdeckt Material aufden Ebenen darunter. Ein solcher Stapel von Ebenen wird dann auf eine reale Seite Papierabgebildet. Das Paket scrlayer stellt zwei solche Stapel für jede Seite zur Verfügung: einen Hin-tergrundstapel und einen Vordergrundstapel. Der Hintergrundstapel befindet sich unter oderhinter dem normalen Seiteninhalt, während der Vordergrundstapel über oder vor dem norma-len Seiteninhalt ausgegeben wird. Der normale Seiteninhalt ist daher eine Art von Trennebenezwischen den beiden Ebenenstapeln.Eine Ebene hat mehrere Eigenschaften, die als Antworten auf grundlegende Fragen verstan-

den werden können:

Gehört die Ebene zum Vordergrund oder zum Hintergrund? Hintergrundebenen werdenausgegeben, bevor der normale Inhalt der Seite gedruckt wird. Optisch erscheinen siedaher hinter oder unter dem normalen Inhalt der Seite. Vordergrundebenen werdenan den normalen Inhalt anschließend ausgegeben. Optisch erscheinen sie daher vor,auf oder über dem normalen Inhalt der Seite. In der Voreinstellung ist eine Ebenesowohl eine Hintergrundebene als auch eine Vordergrundebene und wird daher zweimalausgegeben. Normalerweise ist es daher sinnvoll, dies explizit einzuschränken.

An welcher Position soll die Ebene ausgegeben werden? Zur Beantwortung dieser Fragedienen Eigenschaften zur Festlegung der horizontalen und der vertikalen Position.

Kapitel 17: Definition von Ebenen und Seitenstilen mit scrlayer 438

Wie groß ist die Ebene? Ebenso wie für die Position gibt es auch für die horizontale undvertikale Ausdehnung der Ebene Eigenschaften. Damit kann eine Ebene auch kleineroder größer als das Papier sein und an unterschiedlichen Positionen auf dem Papierliegen.

Wie werden die horizontale und die vertikale Position gemessen? Die Antwort auf dieseFrage ist die Eigenschaft der Ausrichtung. Man kann von der linken Papierkante zurlinken Kante der Ebene, zur Mitte der Ebene oder zur rechten Kante der Ebene messen.Entsprechend kann man von der oberen Kante des Papiers zur oberen Kante der Ebene,zur Mitte der Ebene oder zur unteren Kante der Ebene messen.

Ist die Ebene für Textausgabe oder für Grafik vorgesehen? Auch diese Frage ist eng mitder Position verknüpft. Während der Anwender bei der Grafikausgabe beispielsweisedavon ausgeht, dass der Ursprung in der linken unteren Ecke der Ebene liegt, wäre diesbei der Textausgabe eher ungünstig. Daher liegt der Ursprung für Textebenen um dieHöhe einer Standardtextzeile unterhalb der oberen, linken Ecke der Ebene. Grafikebenenwiederum spannen von sich aus bereits eine picture-Umgebung auf, in der zusätzlicheBefehle zur Positionierung zur Verfügung stehen.

Soll die Ebene auf linken oder rechten Seiten eines Dokuments gedruckt werden? In derVoreinstellung wird eine Ebene auf allen Seiten gedruckt. Es ist zu beachten, dass LATEXSeiten mit geraden Seitenzahlen als linke Seiten und Seiten mit ungeraden Seitenzah-len als rechte Seiten behandelt, dass es jedoch im einseitigen Modus unabhängig von derNummer nur rechte Seiten gibt. LATEX bezeichnet, den Gepflogenheiten in der englischenSprache entsprechend, linke Seiten auch als gerade Seiten und rechte Seiten als ungeradeSeiten.

Soll die Ebene in einseitigen oder in doppelseitigen Dokumenten verwendet werden?In der Voreinstellung ist die Ebene diesbezüglich unbeschränkt, wird also sowohl imeinseitigen als auch im doppelseitigen Modus ausgegeben. Nichtsdestotrotz wird eineEbene, die auf gerade Seiten beschränkt ist, im einseitigen Modus niemals ausgegebenwerden und ist daher auch keine einseitige Ebene.

Soll die Ebene auf Gleitseiten oder auf Normalseiten ausgegeben werden? LATEX erzeugtGleitseiten für Objekte aus Umgebungen wie table oder figure, wenn diesen erlaubtwurde, auf eigenen Seiten ohne Teile des normalen Dokumentinhalts ausgegeben zu wer-den (siehe Option p für table oder figure). In gewisser Weise ist es so der gesamtenSeite erlaubt, im Dokument zu gleiten. Normalseiten in diesem Sinne sind alle Seiten,die keine Gleitseiten sind. Normalseiten können ebenfalls Gleitumgebungen am Anfang,im Inneren oder am Ende enthalten. Sehr große Gleitumgebungen können auch den Ein-druck einer Gleitseite erzeugen, obwohl es sich bei ihnen in Wirklichkeit um oben aufeiner Normalseite platzierte Gleitumgebungen handelt.

Kapitel 17: Definition von Ebenen und Seitenstilen mit scrlayer 439

Welchen Inhalt hat die Ebene? Die zugehörige Eigenschaft gibt schlicht an, was gedrucktwerden soll, wann immer die Ebene ausgegeben wird.

Damit haben wir derzeit acht Fragen an die Ebenen, aus denen sich unmittelbar eine Rei-he von Eigenschaften ergeben. Später in dieser Anleitung werden wir weitere Eigenschaftenkennenlernen, die jedoch auf diese primären Eigenschaften abgebildet werden können.

\DeclareLayer[Optionenliste ]{Name der Ebene }\DeclareNewLayer[Optionenliste ]{Name der Ebene }\ProvideLayer[Optionenliste ]{Name der Ebene }\RedeclareLayer[Optionenliste ]{Name der Ebene }\ModifyLayer[Optionenliste ]{Name der Ebene }

Diese Anweisungen können verwendet werden, um Ebenen zu definieren. Der Name der Ebenemuss voll expandierbar sein. Die Expansion sollte in ASCII-Buchstaben resultieren. Einigezusätzliche Zeichen werden ebenfalls akzeptiert, ihre Verwendung wird jedoch nur erfahrendenAnwendern empfohlen.Bei Verwendung von \DeclareLayer spielt es keine Rolle, ob eine Ebene Name der Ebene

bereits existiert oder nicht. Sie wird in jedem Fall mit den über die Optionenliste angege-benen Eigenschaften definiert. Einzelne Optionen bestehen entweder nur aus einem Schlüsseloder aus einem Schlüssel, gefolgt von einem Gleichheitszeichen und einem Wert. Die Optionensind durch Komma voneinander getrennt. Um innerhalb der Werte einer Option ein Kom-ma oder ein Leerzeichen verwenden zu können, muss der entsprechende Wert in geschweifteKlammern gesetzt werden. Eine Übersicht über die Optionen und die Eigenschaften, die sierepräsentieren, findet sich in Tabelle 17.1.Im Unterschied zu \DeclareLayer meldet \DeclareNewLayer einen Fehler, falls eine Ebene

mit dem angegebenen Namen bereits existiert. Damit wird der Anwender davor bewahrt,versehentlich mehrmals denselben Namen zu verwenden. Dies ist insbesondere auch dannnützlich, wenn Klassen oder Pakete intern ebenfalls Ebenen definieren.Dagegen definiert \ProvideLayer die Ebene nur, wenn nicht bereits eine Ebene mit dem

angegebenen Namen existiert. Wird der Name hingegen bereits für eine andere Ebene ver-wendet, so wird die neuerliche Definition ignoriert. Die Anweisung hat also die Bedeutung:Definiere die Ebene, falls sie noch nicht existiert.Soll eine bereits existierende Ebene umdefiniert werden, so kann wahlweise

\RedeclareLayer oder \ModifyLayer verwendet werden. Während mit \RedeclareLayerdie Ebene zunächst auf die Grundeinstellungen zurückgesetzt und damit über die angegebeneOptionenliste komplett neu definiert wird, unterbleibt bei \ModifyLayer das Zurücksetzen.Es werden dann nur die Eigenschaften geändert, für die in der Optionenliste auch Angabenvorhanden sind. Die Anwendung auf eine zuvor noch nicht definierte Ebene stellt bei beidenAnweisungen einen Fehler dar.

Kapitel 17: Definition von Ebenen und Seitenstilen mit scrlayer 440

Tabelle 17.1.: Optionen für die Definition von Seiten-Ebenen mit ihrer jeweiligen Bedeutung alsEbenen-Eigenschaft

v3.16 addcontents=CodeDer angegebene Wert wird an den aktuellen Wert des Attributs contents angehängt.Es wird also ein zusätzlicher Inhalt generiert. Zu näheren Informationen über dieBehandlung von Code siehe Option contents.

v3.16 addheight=zusätzliche HöheDer aktuelle Wert von Attribut height wird um den Wert dieser Option erhöht. AlsWert sind die gleichen Angaben wie bei height möglich.

v3.16 addhoffset=zusätzlicher horizontaler AbstandDer aktuelle Wert von Attribut hoffset wird um den Wert dieser Option erhöht.Als Wert sind die gleichen Angaben wie bei hoffset möglich.

v3.16 addvoffset=zusätzlicher vertikaler AbstandDer aktuelle Wert von Attribut voffset wird um den Wert dieser Option erhöht.Als Wert sind die gleichen Angaben wie bei voffset möglich.

v3.16 addwidth=zusätzliche BreiteDer aktuelle Wert von Attribut width wird um den Wert dieser Option erhöht. AlsWert sind die gleichen Angaben wie bei width möglich.

. . .

Kapitel 17: Definition von Ebenen und Seitenstilen mit scrlayer 441

Tabelle 17.1.: Optionen für die Definition von Ebenen (Fortsetzung)

align=AusrichtungszeichenÜber die Ausrichtungszeichen wird die gewünschte Ausrichtung der Ebenebestimmt. Dabei steht jedes einzelne Ausrichtungszeichen für eine möglicheAnwendung der Werte Abstand der Optionen hoffset oder voffset. MehrereAusrichtungszeichen können ohne Leerzeichen oder Komma direkt hintereinandergeschrieben werden und werden in der Reihenfolge ihres Auftretens ausgewertet. Ma-kros sind im Wert der Option jedoch nicht zulässig. Zulässige Ausrichtungszeichensind:

b – der Wert der Option voffset ist der Abstand der Unterkante der Ebene vonder Oberkante des Papiers.

c – die Werte der Optionen hoffset und voffset sind die Abstände des Zentrumsder Ebene von der linken und der oberen Kante des Papiers.

l – der Wert der Option hoffset ist der Abstand der linken Kante der Ebene vonder linken Kante des Papiers.

r – der Wert der Option hoffset ist der Abstand der rechten Kante der Ebene vonder linken Kante des Papiers.

t – der Wert der Option voffset ist der Abstand der Oberkante der Ebene von derOberkante des Papiers.

area={horizontaler Abstand }{vertikaler Abstand }{Breite }{Höhe }Die zusammengesetzte Eigenschaft resultiert in den primären Eigenschaftenhoffset=horizontaler Abstand , voffset=vertikaler Abstand , width=Breite ,height=Höhe.

v3.18 backandforegroundMit dieser Option wird die Einschränkung der Ebene auf den Vorder- oder Hinter-grund wieder aufgehoben und diesbezüglich die Grundeinstellung wieder hergestellt.In der Regel ist dies wenig sinnvoll, daher existiert die Option nur aus Gründen derVollständigkeit. Diese Option erwartet und erlaubt keinen Wert.

. . .

Kapitel 17: Definition von Ebenen und Seitenstilen mit scrlayer 442

Tabelle 17.1.: Optionen für die Definition von Ebenen (Fortsetzung)

backgroundMit dieser Option wird die Ebene zu einer reinen Hintergrundebene. Sie wird alsoim Gegensatz zur Grundeinstellung nicht mehr gleichzeitig im Hintergrund und imVordergrund, sondern nur noch im Hintergrund ausgegeben. Diese Option erwartetund erlaubt keinen Wert.

bottommarginDie zusammengesetzte Eigenschaft setzt die primären Eigenschaften hoffset,voffset, width, height und align so, dass die Ebene horizontal von der linkenKante bis zur rechten Kante des Papiers reicht und vertikal den gesamten Bereichunter dem Seitenfuß bis zur unteren Papierkante abdeckt. Diese Option erwartet underlaubt keinen Wert.

clone=Name einer EbeneDie zusammengesetzte Eigenschaft setzt alle primären Eigenschaften entsprechendder aktuellen, primären Eigenschaften der Ebene mit dem angegebenen Name einerEbene . Bezüglich Name einer Ebene siehe die Hinweise zu Name der Ebene amAnfang der Erklärung zu \DeclareLayer. Darüber hinaus muss die zu klonendeEbene bereits definiert sein.

contents=CodeDer angegebene Code wird immer dann expandiert und ausgeführt, wenn die Ebeneausgegeben wird. Damit definiert Code das, was auf der Ebene zu sehen ist. Eswerden keine Tests durchgeführt, ob Code gültig und korrekt ist. Fehler in Codekönnen daher zu verschiedenen Fehlermeldungen auf jeder Seite führen, auf der dieEbene ausgegeben wird.

evenpageMit dieser Option wird die Ebene zu einer Ebene für linke Seiten. Sie wird also imGegensatz zur Grundeinstellung nicht mehr sowohl auf linken als auch auf rechtenSeiten ausgegeben. Da es linke Seiten nur im doppelseitigen Satz gibt, schließt dieseEigenschaft quasi twoside mit ein. Diese Option erwartet und erlaubt keinen Wert.

v3.18 everypageDies ist eine Kombination von oddorevenpage und floatornonfloatpage. DieseOption erwartet und erlaubt keinen Wert.

. . .

Kapitel 17: Definition von Ebenen und Seitenstilen mit scrlayer 443

Tabelle 17.1.: Optionen für die Definition von Ebenen (Fortsetzung)

v3.18 everysideMit dieser Option wird die Einschränkung der Ebene auf den einseitigen oder dendoppelseitigen Satz aufgehoben. Sie wird damit wie in der Voreinstellung wiedersowohl im einseitigen als auch im doppelseitigen Satz ausgegeben. Diese Optionerwartet und erlaubt keinen Wert.

v3.18 floatornonfloatpageMit dieser Option wird die Einschränkung der Ebene auf Gleitseiten oder Seiten,die keine Gleitseiten sind, aufgehoben und diesbezüglich die Voreinstellung wiederhergestellt. Diese Option erwartet und erlaubt keinen Wert.

floatpageMit dieser Option wird die Ebene zu einer Gleitseitenebene. Sie wird also im Gegen-satz zur Grundeinstellung nicht mehr auf allen Seiten, sondern nur noch auf Gleit-seiten ausgegeben. Näheres zu Gleitseiten ist der Einleitung zu diesem Abschnitt zuentnehmen. Diese Option erwartet und erlaubt keinen Wert.

footDie zusammengesetzte Eigenschaft setzt die primären Eigenschaften hoffset,voffset, width, height und align so, dass die Ebene den Seitenfuß in der Breitedes Textbereichs überdeckt. Diese Option erwartet und erlaubt keinen Wert.

footskipDie zusammengesetzte Eigenschaft setzt die primären Eigenschaften hoffset,voffset, width, height und align so, dass die Ebene vertikal den Bereich zwi-schen dem Textbereich und dem Seitenfuß in Breite des Textbereichs überdeckt.Es ist zu beachten, dass die Höhe dieses Bereichs zwar von der Länge \footskipabhängt, dieser jedoch nicht entspricht. Diese Option erwartet und erlaubt keinenWert.

foregroundMit dieser Option wird die Ebene zu einer reinen Vordergrundebene. Sie wird alsoim Gegensatz zur Grundeinstellung nicht mehr gleichzeitig im Hintergrund und imVordergrund, sondern nur noch im Vordergrund ausgegeben. Diese Option erwartetund erlaubt keinen Wert.

. . .

Kapitel 17: Definition von Ebenen und Seitenstilen mit scrlayer 444

Tabelle 17.1.: Optionen für die Definition von Ebenen (Fortsetzung)

headDie zusammengesetzte Eigenschaft setzt die primären Eigenschaften hoffset,voffset, width, height und align so, dass die Ebene den Seitenkopf in der Breitedes Textbereichs überdeckt. Diese Option erwartet und erlaubt keinen Wert.

headsepDie zusammengesetzte Eigenschaft setzt die primären Eigenschaften hoffset,voffset, width, height und align so, dass die Ebene den Abstand zwischen demSeitenkopf und dem Textbereich in der Breite des Textbereichs überdeckt. Ihre Hö-he entspricht damit der Länge \headsep. Diese Option erwartet und erlaubt keinenWert.

height=HöheSetzt die Höhe der Ebene. Beachten Sie, dass Höhe wahlweise eine LATEX-Länge seinkann, die mit \newlength definiert wurde, eine TEX-Länge, die mit \newdimen oder\newskip definiert wurde, ein Längenwert wie 10 pt oder ein Längenausdruck unterVerwendung von +, -, /, *, (, und ). Die genaue Syntax eines Längenausdrucks ist[Tea98, Abschnitt 3.5] zu entnehmen.

hoffset=AbstandSetzt den Abstand der Ebene von der linken Kante des Papiers. Wie der Abstand ge-messen wird, hängt von Eigenschaft align ab. Beachten Sie, dass Abstand wahlweiseeine LATEX-Länge sein kann, die mit \newlength definiert wurde, eine TEX-Länge,die mit \newdimen oder \newskip definiert wurde, ein Längenwert wie 10 pt oderein Längenausdruck unter Verwendung von +, -, /, *, (, und ). Die genaue Syntaxeines Längenausdrucks ist [Tea98, Abschnitt 3.5] zu entnehmen.

innermarginDie zusammengesetzte Eigenschaft setzt die primären Eigenschaften hoffset,voffset, width, height und align so, dass die Ebene den inneren Rand der Sei-te von der Papieroberkante bis zur Papierunterkante überdeckt. Der innere Randentspricht im einseitigen Satz dem linken Rand. Diese Option erwartet und erlaubtkeinen Wert.

leftmarginDie zusammengesetzte Eigenschaft setzt die primären Eigenschaften hoffset,voffset, width, height und align so, dass die Ebene den linken Rand der Seitevon der Papieroberkante bis zur Papierunterkante überdeckt. Diese Option erwartetund erlaubt keinen Wert.

. . .

Kapitel 17: Definition von Ebenen und Seitenstilen mit scrlayer 445

Tabelle 17.1.: Optionen für die Definition von Ebenen (Fortsetzung)

v3.19 mode=ModusDiese primäre Eigenschaft bestimmt, in welchem Modus der Inhalt der Ebene ausge-geben wird. Die Voreinstellung ist text. Dabei wird die oberste Grundlinie um dieHöhe einer Standardtextzeile unterhalb der Oberkante der Ebene platziert. Damitist Text normalerweise sauber am oberen Rand der Ebene ausgerichtet. Im picture-Modus wird hingegen eine picture-Umgebung mit dem Ursprung in der linken, un-teren Ecke der Ebene aufgespannt. Der ebenfalls vordefinierte Modus raw entsprichtin der Voreinstellung text.Die Änderung des Modus einer Ebene führt in der Regel zu einer Verschiebung des In-halts. Außerdem stehen beispielsweise im Modus picture zusätzliche Platzierungsbe-fehle zur Verfügung, die in einem anderen Modus zu Fehlermeldungen führen. Daherist es normalerweise nicht sinnvoll, den Modus einer Ebene nachträglich zu ändern!

nonfloatpageMit dieser Option wird die Ebene auf Seiten beschränkt, die keine Gleitseiten sind.Sie wird also im Gegensatz zur Grundeinstellung nicht mehr auf allen Seiten, sondernnur noch auf Nichtgleitseiten ausgegeben. Näheres zu Gleitseiten und Nichtgleitseitenist der Einleitung zu diesem Abschnitt zu entnehmen. Diese Option erwartet underlaubt keinen Wert.

v3.18 oddorevenpageMit dieser Option werden Beschränkungen der Ebene auf rechte oder linke Seitenaufgehoben. Damit wird die Ebene wie in der Voreinstellung sowohl auf linken alsauch rechten Seiten ausgegeben. Diese Option erwartet und erlaubt keinen Wert.

oddpageMit dieser Option wird die Ebene zu einer Ebene für rechte Seiten. Sie wird also imGegensatz zur Grundeinstellung nicht mehr sowohl auf linken als auch auf rechtenSeiten ausgegeben. Es ist zu beachten, dass im einseitigen Satz alle Seiten unabhängigvon der Seitenzahl rechte Seiten sind. Diese Option erwartet und erlaubt keinen Wert.

onesideMit dieser Option wird die Ebene zu einer Ebene für den einseitigen Satz. Sie wirdalso im Gegensatz zur Grundeinstellung nicht mehr sowohl im einseitigen als auchim doppelseitigen Satz ausgegeben. Diese Option erwartet und erlaubt keinen Wert.

. . .

Kapitel 17: Definition von Ebenen und Seitenstilen mit scrlayer 446

Tabelle 17.1.: Optionen für die Definition von Ebenen (Fortsetzung)

outermarginDie zusammengesetzte Eigenschaft setzt die primären Eigenschaften hoffset,voffset, width, height und align so, dass die Ebene den äußeren Rand der Seitevon der Papieroberkante bis zur Papierunterkante überdeckt. Der äußere Rand ent-spricht im einseitigen Satz dem rechten Rand. Diese Option erwartet und erlaubtkeinen Wert.

pageDie zusammengesetzte Eigenschaft setzt die primären Eigenschaften hoffset,voffset, width, height und align so, dass die Ebene die komplette Seite über-deckt. Diese Option erwartet und erlaubt keinen Wert.

v3.16 pretocontents=CodeDer angegebene Wert wird dem aktuellen Wert des Attributs contents vorangestellt.Es wird also ein zusätzlicher Inhalt vor dem bisherigen Inhalt generiert. Zu näherenInformationen über die Behandlung von Code siehe Option contents.

rightmarginDie zusammengesetzte Eigenschaft setzt die primären Eigenschaften hoffset,voffset, width, height und align so, dass die Ebene den rechten Rand der Seitevon der Papieroberkante bis zur Papierunterkante überdeckt. Diese Option erwartetund erlaubt keinen Wert.

textareaDie zusammengesetzte Eigenschaft setzt die primären Eigenschaften hoffset,voffset, width, height und align so, dass die Ebene den kompletten Textbereichüberdeckt. Diese Option erwartet und erlaubt keinen Wert.

topmarginDie zusammengesetzte Eigenschaft setzt die primären Eigenschaften hoffset,voffset, width, height und align so, dass die Ebene den oberen Rand der Sei-te von der linken Kante des Papiers bis zu dessen rechter Kante überdeckt. DieseOption erwartet und erlaubt keinen Wert.

twosideMit dieser Option wird die Ebene zu einer Ebene für den doppelseitigen Satz. Siewird also im Gegensatz zur Grundeinstellung nicht mehr sowohl im einseitigen alsauch im doppelseitigen Satz ausgegeben. Diese Option erwartet und erlaubt keinenWert.

. . .

Kapitel 17: Definition von Ebenen und Seitenstilen mit scrlayer 447

Tabelle 17.1.: Optionen für die Definition von Ebenen (Fortsetzung)

v3.18 unrestrictedHebt alle Ausgabebeschränkungen auf. Damit ist die Option eine Kombination vonbackandforeground, everyside und floatornonfloatpage. Diese Option erwartetund erlaubt keinen Wert.

voffset=AbstandSetzt den Abstand der Ebene von der Papieroberkante. Wie der Abstand gemessenwird, hängt von Eigenschaft align ab. Beachten Sie, dass Abstand wahlweise eineLATEX-Länge sein kann, die mit \newlength definiert wurde, eine TEX-Länge, diemit \newdimen oder \newskip definiert wurde, ein Längenwert wie 10 pt oder einLängenausdruck unter Verwendung von +, -, /, *, (, und ). Die genaue Syntax einesLängenausdrucks ist [Tea98, Abschnitt 3.5] zu entnehmen.

width=BreiteSetzt die Breite der Ebene. Beachten Sie, dass Breite wahlweise eine LATEX-Längesein kann, die mit \newlength definiert wurde, eine TEX-Länge, die mit \newdimenoder \newskip definiert wurde, ein Längenwert wie 10 pt oder ein Längenausdruckunter Verwendung von +, -, /, *, (, und ). Die genaue Syntax eines Längenausdrucksist [Tea98, Abschnitt 3.5] zu entnehmen.

\ModifyLayers[Optionenliste ]{Ebenenliste }

Diesev3.26 Anweisung führt \ModifyLayer mit der angebenen Optionenliste für alle Ebenen aus,die in der durch Komma separierten Ebenenliste angegeben sind. Sie dient also dazu, dieEigenschaften einer ganzen Reihe von Ebenen gleichzeitig zu ändern.

\layerhalign\layervalign\layerxoffset\layeryoffset\layerwidth\layerheight

Diese Anweisungen sind nur im mit contents, addcontents oder pretocontents angegebenenCode gültig. Sie enthalten die tatsächlich verwendete Ausrichtung, Position und Ausdehnungder Ebene während deren Ausgabe. Dies ist jedoch nicht zwangsläufig auch die tatsächlicheAusdehnung des Inhalts, falls dieser beispielsweise überbreit oder überhoch ist oder die Ebenenicht komplett ausfüllt.Die primäre Ebeneneigenschaft align wird auf \layerhalignv3.19 und \layervalign abge-

bildet. Dabei werden die horizontalen Werte l und r nur in \layerhalign übernommen,

Kapitel 17: Definition von Ebenen und Seitenstilen mit scrlayer 448

während die vertikalen Werte t und b nur in \layervalign übernommen werden. Der sowohlhorizontale als auch vertikale Wert c wird in beide Anweisungen übernommen. Sind bei alignmehrere, widersprüchliche Angaben zu finden, so gewinnt die jeweils letzte. Damit ist also\layerhalign immer entweder l, c oder r und \layervalign immer entweder t, c oder b.Eine Umdefinierung der Anweisungen und damit Änderung der in ihnen gespeicherten Werte

ist nicht gestattet und führt zu unvorhersehbaren Ergebnissen.

\LenToUnit{Länge }

Diesev3.19 Anweisung stammt ursprünglich von eso-pic ab Version 2.0f. Sie rechnet Längen-Wertein Vielfache von \unitlength um und kann daher anstelle von Koordinaten oder anderen von\unitlength abhängigen Werten einer picture-Umgebung verwendet werden. Siehe dazuauch [Nie15] und die nachfolgende Erklärung zu \putUR, \putLL und \putLR. Die Anweisungwird nur definiert, wenn sie nicht bereits beispielsweise durch das Laden von eso-pic definiertist.

\putUL{Inhalt }\putUR{Inhalt }\putLL{Inhalt }\putLR{Inhalt }\putC{Inhalt }

Diesev3.19 Anweisungen können innerhalb der primären Ebeneneigenschaft contentsverwendet werden, wenn die Ebene mit mode=picture erstellt wurde. In die-sem Fall platziert \putUL den Inhalt relativ zur oberen, linken Ecke der Ebe-ne und entspricht damit \put(0,\LenToUnit{\layerheight}). \putUR plat-ziert Inhalt relativ zur oberen, rechten Ecke der Ebene und entspricht damit\put(\LenToUnit{\layerwidth},\LenToUnit{\layerheight}). \putLL platziert Inhaltrelativ zur unteren, linken Ecke der Ebene und entspricht damit \put(0,0). \putLRplatziert Inhalt relativ zur unteren, rechten Ecke der Ebene und entspricht damit\put(\LenToUnit{\layerwidth},0). \putC schlussendlich platziert Inhalt relativ zurMitte der Ebene.

Beispiel: Sie wollen feststellen, wie genau die Höhe des Textbereichs bei DIV=classic tat-sächlich der Breite der Seite entspricht, und erstellen dazu eine Ebene, die sowohlden Textbereich umrandet als auch einen Kreis mit der Papierbreite als Durchmes-ser im Zentrum des Textbereichs platziert:\documentclass[DIV=classic]{scrartcl}\usepackage{pict2e}\usepackage{scrlayer}\DeclareNewLayer[%textarea,background,mode=picture,

Kapitel 17: Definition von Ebenen und Seitenstilen mit scrlayer 449

contents={%\putLL{\line(1,0){\LenToUnit{\layerwidth}}}%\putLR{\line(0,1){\LenToUnit{\layerheight}}}%\putUR{\line(-1,0){\LenToUnit{\layerwidth}}}%\putUL{\line(0,-1){\LenToUnit{\layerheight}}}%\putC{\circle{\LenToUnit{\paperwidth}}}%

}]{showtextarea}\DeclareNewPageStyleByLayers{test}{showtextarea}\pagestyle{test}\begin{document}\null\end{document}

Wie Sie sehen werden, passt die von typearea vorgenommene Abbildung auf einenganzzahligen DIV -Wert im Beispiel sehr gut.

Näheres zu dem im Beispiel skizzierten spätmittelalterlichen Buchseitenkanon finden Sie üb-rigens in Abschnitt 2.3, Seite 31.Die Anweisung \DeclareNewPageStyleByLayers, die im Beispiel bereits verwendet wur-

de, dient der Definition eines Seitenstils, der die neu definiert Ebene ausgibt. Sie wird inAbschnitt 17.4, Seite 453 erklärt werden.

\GetLayerContents{Name der Ebene }

Mitv3.16 dieser Anweisung kann der aktuelle Inhalt einer Ebene ermittelt werden. Es ist unbedingtzu beachten, dass bei Verwendung dieser Anweisung im Code der Ebenen-Attribute contents,addcontents oder pretocontents unendliche Rekursionen entstehen können, wenn dabei aufden Inhalt der aktuellen Ebene zugegriffen wird. Der Anwender ist selbst dafür verantwortlich,solche Situationen zu vermeiden!

\IfLayerExists{Name der Ebene }{Dann-Code }{Sonst-Code }

Diese Anweisung kann dazu verwendet werden, Code in Abhängigkeit davon, ob eine Ebe-ne existiert oder nicht, auszuführen. Wenn die Ebene Name der Ebene existiert, so wird derDann-Code ausgeführt, anderenfalls der Sonst-Code . Bitte beachten Sie, dass die Anweisungnicht wirklich testen kann, ob eine Ebene existiert. Sie verwendet stattdessen Heuristiken, dieniemals falsch-negativ sein können, jedoch im Extremfall falsch-positiv sein könnten. Falsch-positive Entscheidungen weisen auf ein Problem, beispielsweise die Verwendung eines inkom-patiblen Pakets oder ungünstige Wahl von internen Makronamen durch den Anwender.

Kapitel 17: Definition von Ebenen und Seitenstilen mit scrlayer 450

\DestroyLayer{Name der Ebene }

Existiert eine Ebene Name der Ebene , so werden alle zu dieser Ebene gehörenden Makroszu \relax. Die Ebene kann nicht länger verwendet werden. In bereits mit scrlayer defi-nierten Seitenstils werden derart zerstörte Ebenen ignoriert. Zerstörte Ebenen können mit\DeclareNewLayer oder \ProvideLayer neu definiert werden. Sie können jedoch vor einerneuerlichen Definition nicht länger mit \RedeclareLayer oder \ModifyLayer verändert wer-den.Die Anweisung ist dazu bestimmt, innerhalb des Arguments Code von

\scrlayerOnAutoRemoveInterface (siehe Abschnitt 17.7, Seite 470) verwendet zu wer-den. Damit können Ebenen, die unter Verwendung von entfernbaren Anweisungen einerentfernbaren Benutzerschnittstelle definiert wurden, zusammen mit dieser Benutzerschnitt-stelle entfernt werden.

\layercontentsmeasure

Mit Hilfe der KOMA-Script-Option draft kann für das Paket scrlayer ein Entwurfsmodus ak-tiviert werden. In diesem Entwurfsmodus wird hinter jeder Ebene zunächst eine Bemaßung derEbene ausgegeben. Diese Bemaßung erfolgt mit \layercontentsmeasure. Diese Anweisungzeigt am oberen und linken Rand der Ebene ein Maßband in Zentimeter und am rechten undunteren Rand der Ebene ein Maßband in Zoll. Die Anweisung \layercontentsmeasure kannstatt über die Option auch schlicht als alleiniger Code für die Eigenschaft contents einerEbene verwendet werden.

17.4. Deklaration und Verwaltung von Seitenstilen

Wir kennen nun Ebenen und wissen, wie diese definiert und verwaltet werden. Aber bisherwissen wir noch nicht, wie sie verwendet werden. Die möglicherweise überraschende Antwortlautet: mit Hilfe von Seitenstilen. Üblicherweise werden Seitenstile in LATEX zur Definition vonKopf und Fuß der Seite verwendet.Kopf und Fuß für ungerade oder rechte Seiten werden im doppelseitigen Modus auf Sei-

ten mit ungerader Seitenzahl ausgegeben. Im einseitigen Modus werden sie auf allen Seitenverwendet. Das ist unmittelbar mit den Optionen oddpage und evenpage für Ebenen ver-gleichbar.Der Seitenkopf wird vor dem normalen Seiteninhalt ausgegeben. Der Seitenfuß wird ent-

sprechend nach dem normalen Seiteninhalt ausgegeben. Dies korrespondiert also unmittelbarmit den Optionen background und foreground für Ebenen.Daher liegt es nahe, Seitenstile als Listen von Ebenen zu definieren. Aber statt nur die

genannten vier Optionen können dabei alle Eigenschaften verwendet werden, die in Ab-schnitt 17.3, Tabelle 17.1, ab Seite 440 erklärt wurden.Als Ergebnis dieser Überlegungen ist eine Form von Seitenstilen, die scrlayer bietet, der

Ebenen-Seitenstil. Ein solcher Ebenen-Seitenstil besteht aus Ebenen und zusätzlich aus meh-

Kapitel 17: Definition von Ebenen und Seitenstilen mit scrlayer 451

reren Haken (engl. hooks). Die Ebenen wurden bereits in Abschnitt 17.3 beschrieben. DieHaken sind Punkte in der Expansion oder Anwendung von Seitenstilen, zu denen zusätzli-cher Code hinzugefügt werden kann. Erfahrene Anwender kennen dieses Konzept bereits vonbeispielsweise \AtBeginDocument (siehe [Tea05b]) oder \BeforeClosingMainAux (siehe Sei-te 376).Eine zweite Form von Seitenstilen, die scrlayer bietet, ist der Alias-Seitenstil oder Seitenstil-

Alias. Ein Seitenstil-Alias besteht in Wirklichkeit aus einem anderen Seitenstil. Anders aus-gedrückt ist der Name eines Seitenstil-Alias ein Alias-Name für einen anderen Seitenstil-Aliasoder einen primären Seitenstil. Daher führt die Manipulation an einem Seitenstil-Alias zueiner Manipulation am originären Seitenstil. Ist der originäre Seitenstil selbst ebenfalls einSeitenstil-Alias, so führt dessen Manipulation wiederum zu einer Manipulation dessen ori-ginären Seitenstils und immer so weiter, bis schließlich ein realer Seitenstil verändert wird.Der Ausdruck realer Seitenstil wird zur Unterscheidung von einem Seitenstil-Alias verwendet.Alle Seitenstile, die kein Seitenstil-Alias sind, sind reale Seitenstile. Seitenstil-Aliase könnennicht nur für Seitenstile definiert werden, die mit scrlayer definiert wurden, sondern für alleSeitenstile.

\currentpagestyle\toplevelpagestyle

Das Paket scrlayer erweitert die LATEX-Anweisung \pagestyle so, dass diese\currentpagestyle als den Namen des jeweils aktiven Seitenstils definiert. Es ist zu beach-ten, dass \thispagestyle selbst \currentpagestyle nicht verändert. Wird \thispagestyleverwendet, so kann sich \currentpagestyle aber innerhalb der LATEX-Ausgabefunktionverändern. Dies hat jedoch nur dann Auswirkungen, wenn \currentpagestyle bis in dieLATEX-Ausgabefunktion geschützt verwendet wird.Es sei darauf hingewiesen, dass die später in diesem Abschnitt dokumentierten Ebenen-

Seitenstile nicht auf diese Erweiterung von \pagestyle angewiesen sind, da sie selbst auch\currentpagestyle umdefinieren. Die Erweiterung wurde für die Verwendung von anderenSeitenstilen, die nicht auf scrlayer basieren, vorgenommen. Es ist außerdem zu beachten, dass\currentpagestyle vor der ersten Verwendung von \pagestyle nach dem Laden von scrlayerleer ist. Bei der Definition einer Endanwender-Schnittstelle dürfte es daher nützlich sein, miteiner impliziten \pagestyle-Anweisung den aktuellen Seitenstil auf eine Voreinstellung zusetzen.Wird mit \pagestyle ein Alias-Seitenstils aktiviert, so liefert \currentpagestyle nicht den

Alias-Namen, sondern den des originären Seitenstils. Denv3.16 Alias-Namen kann man in diesemFall mit \toplevelpagestyle erhalten. Es wird davon abgeraten, Seitenstile zu definieren,die beispielsweise per \ifstr abhängig von \toplevelpagestyle unterschiedliche Ergebnisseliefern, da dies bei Aktivierung per \thispagestyle zu falschen Resultaten führen kann.

Kapitel 17: Definition von Ebenen und Seitenstilen mit scrlayer 452

\BeforeSelectAnyPageStyle{Code }\AfterSelectAnyPageStyle{Code }

Die Anweisung \BeforeSelectAnyPageStyle fügt einem Haken (engl. hook) Code hinzu, derinnerhalb der Ausführung von Anweisung \pagestyle, unmittelbar vor der Auswahl des Sei-tenstils ausgeführt wird. Innerhalb von Code kann #1 als Platzhalter für das Argument von\pagestyle verwendet werden.

Die Anweisung \AfterSelectAnyPageStyle arbeitet ähnlich. Allerdings wird hier Codeausgeführt, nachdem der Seitenstil gewählt und \currentpagestyle auf den Namen des realenSeitenstils gesetzt wurde.Es ist zu beachten, dass Code jeweils nur bei der Wahl eines Seitenstils mit Hilfe von

\pagestyle ausgeführt wird. Wird ein Seitenstil auf andere Art, beispielsweise mit Hilfe von\thispagestyle, gewählt, so wird Code nicht ausgeführt. Es ist außerdem zu beachten, dasseinmal hinzugefügter Code nicht mehr entfernt werden kann. Allerdings wird der Code lokalhinzugefügt. Sein Gültigkeitsbereich kann daher mit einer Gruppe beschränkt werden.

\DeclarePageStyleAlias{Seitenstil-Alias-Name }{originärer Seitenstil-Name }\DeclareNewPageStyleAlias{Seitenstil-Alias-Name }{originärer Seitenstil-Name }\ProvidePageStyleAlias{Seitenstil-Alias-Name }{originärer Seitenstil-Name }\RedeclarePageStyleAlias{Seitenstil-Alias-Name }{originärer Seitenstil-Name }

Diese Anweisungen können verwendet werden, um einen Seitenstil mit dem NamenSeitenstil-Alias-Name zu definieren, der einfach nur ein Alias für einen bereits existieren-den Seitenstil mit dem Namen originärer Seitenstil-Name ist. Falls bereits ein Seitenstilmit dem Namen Seitenstil-Alias-Name existiert, wird dieser vor der Erzeugung des Aliasmit \DeclarePageStyleAlias oder \RedeclarePageStyleAlias zerstört.

Die Anweisung \DeclareNewPageStyleAlias erzeugt eine Fehlermeldung, falls zuvor be-reits ein Seitenstil Seitenstil-Alias-Name definiert wurde. Dabei spielt es keine Rolle, obder existierende Seitenstil selbst ein Alias-Seitenstil, ein Ebenen-Seitenstil oder eine andereArt von Seitenstil ist.Die Anweisung \ProvidePageStyleAlias definiert den Seitenstil-Alias nur, falls nicht be-

reits ein Seitenstil Seitenstil-Alias-Name existiert. Falls ein solcher Seitenstil existiert,bleibt dieser erhalten und die Anweisung tut schlicht nichts.Im Gegensatz zu den drei vorgenannten Anweisungen erwartet

\RedeclarePageStyleAlias, dass bereits ein Seitenstil mit dem NamenSeitenstil-Alias-Name existiert. Anderenfalls erzeugt die Anweisung eine Fehlermel-dung.

Kapitel 17: Definition von Ebenen und Seitenstilen mit scrlayer 453

\DestroyPageStyleAlias{Seitenstil-Alias-Name }

Mit dieser Anweisung wird der Seitenstil-Alias mit dem angegebenen NamenSeitenstil-Alias-Name für LATEX wieder undefiniert, wenn es tatsächlich einenAlias-Seitenstil dieses Namens gibt. Anschließend kann der Seitenstil auch mit\DeclareNewPageStyleAlias oder \ProvidePageStyleAlias neu definiert werden.

Die Anweisung ist dazu bestimmt, innerhalb des Arguments Code von\scrlayerOnAutoRemoveInterface (siehe Abschnitt 17.7, Seite 470) verwendet zu wer-den, um Seitenstile, die als Teil eines Endanwender-Interfaces definiert wurden, beimautomatischen Entfernen dieses Interfaces mit zu entfernen.

\GetRealPageStyle{Seitenstil-Name }

Diese Anweisung sucht rekursiv nach dem tatsächlichen Namen eines Seitenstils, wenn derangegebene Seitenstil-Name zu einem Alias-Seitenstil gehört. Ist Seitenstil-Name nichtder Name eines Alias-Seitenstils, so ist das Ergebnis Seitenstil-Name selbst. Das gilt auch,falls ein Seitenstil namens Seitenstil-Name gar nicht existiert. Die Anweisung ist voll ex-pandierbar und kann damit beispielsweise auch im zweiten Argument einer \edef-Anweisungverwendet werden.

\DeclarePageStyleByLayers[Optionenliste ]{Seitenstil-Name }{Ebenenliste }\DeclareNewPageStyleByLayers[Optionenliste ]{Seitenstil-Name }{Ebenenliste }\ProvidePageStyleByLayers[Optionenliste ]{Seitenstil-Name }{Ebenenliste }\RedeclarePageStyleByLayers[Optionenliste ]{Seitenstil-Name }{Ebenenliste }

Diese Anweisungen deklarieren einen Seitenstil mit dem Namen Seitenstil-Name . Der Sei-tenstil besteht aus einer Anzahl von Ebenen, die in der mit Komma separierten Ebenenlisteangegeben sind. Es ist zu beachten, dass sowohl Seitenstil-Name als auch Ebenenlistevoll expandierbar sein müssen und die Expansion zu einer Reihe von Buchstaben führen soll-te. Einige zusätzliche Zeichen werden ebenfalls akzeptiert, ihre Verwendung wird jedoch nurerfahrenden Anwendern empfohlen.Die Optionenliste ist eine mit Komma separierte Liste von Optionen der Form

Schlüssel =Code . Diese Optionen können verwendet werden, um zusätzliche Eigenschaftenzu setzen und zusätzliche Möglichkeiten zu nutzen. Derzeit werden sie verwendet, um Codean bestimmten Stellen der Aktivierung oder Verwendung eines Seitenstils über Haken (engl.hooks) auszuführen. Für allgemeine Informationen zu Haken sei auf die Einleitung zu die-sem Abschnitt verwiesen. Details zu den Haken und ihrer Bedeutung sind Tabelle 17.2 zuentnehmen.

Kapitel 17: Definition von Ebenen und Seitenstilen mit scrlayer 454

Tabelle 17.2.: Optionen und gleichnamige Haken für Ebenen-Seitenstile (in der Reihenfolge ihrer Ab-arbeitung)

onselect=CodeDer Code dieses Hakens wird immer dann ausgeführt, wenn der Seitenstil beispiels-weise mit \pagestyle ausgewählt wird. Es ist zu beachten, dass \thispagestyleselbst keinen Seitenstil unmittelbar auswählt, sondern der Seitenstil in diesem Fallerst innerhalb der Ausgaberoutine von LATEX aktiviert wird.

oninit=CodeDer Code dieses Hakens wird immer dann ausgeführt, wenn die Ausgabe der Ebenenfür den Seitenstil initialisiert wird. Beachten Sie, dass dies für jede Seite zweimalgeschieht: einmal für Hintergrund-Ebenen und einmal für Vordergrund-Ebenen.

ononeside=CodeDer Code dieses Hakens wird immer dann ausgeführt, wenn im einseitigen Modusdie Ausgabe der Ebenen für den Seitenstil initialisiert wird. Beachten Sie, dass diesfür jede Seite zweimal geschieht: einmal für Hintergrund-Ebenen und einmal fürVordergrund-Ebenen.

ontwoside=CodeDer Code dieses Hakens wird immer dann ausgeführt, wenn im doppelseitigen Modusdie Ausgabe der Ebenen für den Seitenstil initialisiert wird. Beachten Sie, dass diesfür jede Seite zweimal geschieht: einmal für Hintergrund-Ebenen und einmal fürVordergrund-Ebenen.

onoddpage=CodeDer Code dieses Hakens wird immer dann ausgeführt, wenn die Ausgabe der Ebenenfür den Seitenstil auf einer rechten Seite initialisiert wird. Beachten Sie, dass diesfür jede Seite zweimal geschieht: einmal für Hintergrund-Ebenen und einmal fürVordergrund-Ebenen. Beachten Sie außerdem, dass im einseitigen Modus alle Seitenrechte Seiten sind.

onevenpage=CodeDer Code dieses Hakens wird immer dann ausgeführt, wenn die Ausgabe der Ebenenfür den Seitenstil auf einer linken Seite initialisiert wird. Beachten Sie, dass diesfür jede Seite zweimal geschieht: einmal für Hintergrund-Ebenen und einmal fürVordergrund-Ebenen. Beachten Sie außerdem, dass im einseitigen Modus keine linkenSeiten existieren.

. . .

Kapitel 17: Definition von Ebenen und Seitenstilen mit scrlayer 455

Tabelle 17.2.: Optionen für die Haken von Ebenen-Seitenstilen (Fortsetzung)

onfloatpage=CodeDer Code dieses Hakens wird immer dann ausgeführt, wenn die Ausgabe der Ebenenfür den Seitenstil auf einer Gleitumgebungsseite initialisiert wird. Beachten Sie, dassdies für jede Seite zweimal geschieht: einmal für Hintergrund-Ebenen und einmalfür Vordergrund-Ebenen. Beachten Sie außerdem, dass Gleitumgebungsseiten nurdiejenigen Seiten sind, auf denen eine oder mehrere p-platzierte Gleitumgebungenausgegeben werden.

onnonfloatpage=CodeDer Code dieses Hakens wird immer dann ausgeführt, wenn die Ausgabe der Ebenenfür den Seitenstil auf einer Seite initialisiert wird, die keine Gleitumgebungsseite ist.Beachten Sie, dass dies für jede Seite zweimal geschieht: einmal für Hintergrund-Ebenen und einmal für Vordergrund-Ebenen. Beachten Sie außerdem, dass Gleitum-gebungsseiten nur diejenigen Seiten sind, auf denen eine oder mehrere p-platzierteGleitumgebungen ausgegeben werden, und auf anderen Seiten sehr wohl t-, b- oderh-platzierte Gleitumgebungen stehen können.

onbackground=CodeDer Code dieses Hakens wird immer dann ausgeführt, wenn die Ausgabe der Ebenenfür den Hintergrund einer Seite initialisiert wird. Beachten Sie, dass dies auf jederSeite genau einmal der Fall ist.

onforeground=CodeDer Code dieses Hakens wird immer dann ausgeführt, wenn die Ausgabe der Ebenenfür den Vordergrund einer Seite initialisiert wird. Beachten Sie, dass dies auf jederSeite genau einmal der Fall ist.

Die Anweisung \DeclarePageStyleByLayers definiert den Seitenstil unabhängig davon, obbereits ein Seitenstil des Namens Seitenstil-Name existiert. Gegebenenfalls wird der exis-tierende Seitenstil komplett neu definiert. Falls bereits ein Alias-Seitenstil Seitenstil-Nameexistiert wird jedoch nicht der Alias-Seitenstil selbst neu definiert, sondern der zugehörigereale Seitenstil (siehe \GetRealPageStyle zuvor in diesem Abschnitt).Die Anweisung \DeclareNewPageStyleByLayers unterscheidet sich in dem Fall, dass bereits

ein gleichnamiger Seitenstil existiert. Unabhängig davon, ob es sich um einen realen Seitenstiloder einen Alias-Seitenstil handelt, wird in diesem Fall ein Fehler gemeldet.Im Unterschied dazu wird bei \ProvidePageStyleByLayers der Seitenstil unverändert er-

halten, wenn bereits ein Seitenstil des Namens Seitenstil-Name existiert. Existiert keinsolcher Seitenstil, so wird er wie bei \DeclarePageStyleByLayers definiert.Die Anweisung \RedeclarePageStyleByLayers wiederum erwartet, dass bereits ein Sei-

Kapitel 17: Definition von Ebenen und Seitenstilen mit scrlayer 456

tenstil des Namens Seitenstil-Name existiert und definiert dessen realen Seitenstil dannum. Existiert jedoch noch kein Seitenstil des angegebenen Namens, so resultiert daraus eineFehlermeldung.Beachten Sie des Weiteren die nachfolgenden Anmerkungen zum Pseudo-Seitenstil

@everystyle@.

\pagestyle{@everystyle@}\pagestyle{empty}

Das Paket scrlayer definiert von sich aus bereits zwei in gewisser Weise spezielle Seitensti-le. Der erste davon ist @everystyle@. Dieser Seitenstil sollte niemals als normaler Seitenstil,beispielsweise mit \pagestyle oder \thispagestyle, oder als Ziel eines Alias-Seitenstils ver-wendet werden. Stattdessen werden die Ebenen und Haken dieses Seitenstils von allen anderenEbenen-Seitenstilen mit verwendet. Dabei werden die Haken von @everystyle@ jeweils vorden entsprechenden Haken und die Ebenen jeweils vor den entsprechenden Ebenen des aktivenSeitenstils ausgeführt.Damit ist das Hinzufügen einer Ebene zum Pseudo-Seitenstil @everystyle@ oder

von Code zu einem Haken dieses Seitenstils vergleichbar mit dem Hinzufügen ei-ner Ebene beziehungsweise von Haken-Code zu allen Ebenen-Seitenstile. Der eine ent-scheidende Unterschied ist: Befehle, die sich auf die Ebenen eines Seitenstils bezie-hen, das sind neben \ForEachLayerOfPageStyle beispielsweise auch die Anweisungen\AddLayersToPageStyleBeforeLayer oder \AddLayersToPageStyleAfterLayer, lassen dieEbenen des Seitenstils @everystyle@ unberücksichtigt, wenn sie auf einen anderen Ebenen-Seitenstil angewendet werden.Der zweite etwas andere Ebenen-Seitenstil ist empty. Bereits vom LATEX-Kern wird ein

Seitenstil dieses Namens definiert, der einen leeren Kopf und Fuß hat. Das Paket scrlayerdefiniert diesen Seitenstil als Ebenen-Seitenstil ohne Ebenen um. Nichtsdestotrotz kann er wiejeder andere Ebenen-Seitenstil verwendet werden. Der Hauptvorteil dieses Ebenen-Seitenstilsgegenüber dem ursprünglichen Seitenstil aus dem LATEX-Kern ist, dass er ebenfalls die Hakenund Ebenen des Pseudo-Seitenstils @everystyle@ ausführt.

Kapitel 17: Definition von Ebenen und Seitenstilen mit scrlayer 457

onpsselect=Codeonpsinit=Codeonpsoneside=Codeonpstwoside=Codeonpsoddpage=Codeonpsevenpage=Codeonpsfloatpage=Codeonpsnonfloatpage=Codeonpsbackground=Codeonpsforeground=Code

Für jeden der Haken aus Tabelle 17.2 existiert außerdem eine KOMA-Script-Option. Die Na-men der KOMA-Script-Optionen ähneln den Namen der Optionen für die Befehle zur De-klaration von Ebenen-Seitenstilen. Es wird lediglich ein »ps« nach dem »on« am Anfangdes Namens eingefügt. Die Werte dieser KOMA-Script-Optionen werden als Anfangswerte fürdie entsprechenden Haken verwendet. Dieser Anfangswert wird dann um alle Werte, die dementsprechenden Haken in der Optionenliste der Deklarationsbefehle zugewiesen werden, er-weitert. Der Anfangswert kann mit Hilfe der Anweisung \ModifyLayerPageStyleOptions,die später in diesem Abschnitt erklärt wird, entfernt werden.

singlespacing=Ein-Aus-Wert

Wirdv3.24 ein Dokument beispielsweise mit Hilfe von Paket setspace mit erhöhtem Zeilenabstandgesetzt, ist es oft dennoch nicht erwünscht, dass Kopf und Fuß der Seite ebenfalls mit diesemerhöhten Zeilenabstand gesetzt werden. Das gilt umso mehr, wenn Kopf und Fuß nur ausjeweils einer Zeile bestehen. In diesem Fall kann man KOMA-Script-Option singlespacingsetzen. In der Voreinstellung ist die Option jedoch nicht gesetzt! Die Option wirkt generellfür alle Ebenen-Seitenstile. Will man hingegen nur einige Ebenen-Seitenstil einzeilig gesetzthaben, so sollte man stattdessen für diese Seitenstile oninit=\linespread{1}\selectfontverwenden.

deactivatepagestylelayers=Ein-Aus-Wert\ForEachLayerOfPageStyle{Seitenstil-Name }{Code }\ForEachLayerOfPageStyle*{Seitenstil-Name }{Code }

Solange KOMA-Script-Option deactivatepagestylelayers nicht aktiviert ist, kann mit\ForEachLayerOfPageStyle für jede Ebene des Seitenstils mit dem Namen Seitenstil-Namebeliebiger Code ausgeführt werden. Innerhalb von Code dient dabei #1 als Platzhalter für denNamen der gerade abgearbeiteten Ebene.

Beispiel: Angenommen, Sie wollen die Namen aller Ebenen des Seitenstils scrheadings alsKomma-separierte Liste, so können Sie dies mit

Kapitel 17: Definition von Ebenen und Seitenstilen mit scrlayer 458

\newcommand*\commaatlist{}\ForEachLayerOfPageStyle{scrheadings}{%\commaatlist#1\gdef\commaatlist{, }}

\let\commaatlist\relax

erreichen.

Die Verwendung von \gdef anstelle von \def ist im Beispiel notwendig, weil Code innerhalbeiner Gruppe ausgeführt wird, um unerwünschte Seiteneffekte zu minimieren. Die Anweisung\gdef definiert \commaatlist jedoch global um, so dass beim Aufruf des Codes für die nächsteEbene die Änderung Bestand hat.Alternativv3.18 hätte man auch zwar mit \def, dafür aber mit der Sternvariante

\ForEachLayerOfPageStyle* arbeiten können. Diese Form verzichtet bei der Ausführungvon Code auf eine Gruppe. Allerdings muss der Anwender dann selbst sicherstellen, dassCode keine unerwünschten Seiteneffekte hat. Insbesondere würde die Deaktivierung der Ebe-nen mit deactivatepagestylelayers=true innerhalb von Code dann über den Aufruf von\ForEachLayerOfPageStyle* hinaus Bestand haben.Diverse Anweisungen von scrlayer setzen intern selbst ebenfalls \ForEachLayerOfPageStyle

ein. Auch deren Funktion kann daher über die KOMA-Script-Optiondeactivatepagestylelayers verändert werden. Diese Option kann also verwendet werden,um alle Ebenen aller Seitenstile temporär zu deaktivieren und damit zu verstecken.

\AddLayersToPageStyle{Seitenstil-Name }{Ebenenliste }\AddLayersAtBeginOfPageStyle{Seitenstil-Name }{Ebenenliste }\AddLayersAtEndOfPageStyle{Seitenstil-Name }{Ebenenliste }\RemoveLayersFromPageStyle{Seitenstil-Name }{Ebenenliste }

Diese Anweisungen können verwendet werden, um Ebenen zu einem Seitenstil hinzuzufügenoder davon zu entfernen. Der Seitenstil wird dabei über Seitenstil-Name referenziert. DieEbenen werden in einer durch Komma separierten Ebenenliste angegeben.Sowohl die Anweisung \AddLayersToPageStyle als auch die Anweisung

\AddLayersAtEndOfPageStyle fügt die Ebenen am Ende der Ebenenliste des Seiten-stils ein. Logisch liegen die neu hinzugefügten Ebenen also über oder vor den bereitsvorhandenen Ebenen, wobei Hintergrund-Ebenen natürlich weiterhin logisch hinter derTextebene und damit auch hinter allen Vordergrund-Ebenen liegen.Die Anweisung \AddLayersAtBeginOfPageStyle fügt die Ebenen hingegen am Anfang der

Ebenenliste des Seitenstils ein. Dabei werden die Ebenen in der Reihenfolge am Anfang ein-gefügt, in der sie auch in der Ebenenliste stehen. Damit wird die Ebene, die ganz am Endevon Ebenenliste steht, nach dem Einfügen die erste und damit die unterste oder hintersteEbene (jeweils entweder der Vordergrund- oder der Hintergrundebenen) sein.

Der Versuch, mit Hilfe von \RemoveLayersFromPageStyle Ebenen von einem Seitenstil zuentfernen, die gar nicht Teil des Seitenstils sind, wird ignoriert, führt also nicht zu einer Feh-lermeldung. Dagegen ist der Versuch, Ebenen zu einem Seitenstil, der kein Ebenen-Seitenstil

Kapitel 17: Definition von Ebenen und Seitenstilen mit scrlayer 459

ist und auch kein Alias-Seitenstil, der zu einem Ebenen-Seitenstil führt, hinzuzufügen odervon einem solchen zu entfernen, ein Fehler und wird als solcher gemeldet.

\AddLayersToPageStyleBeforeLayer{Seitenstil-Name }{Ebenenliste }{Referenzebenen-Name }\AddLayersToPageStyleAfterLayer{Seitenstil-Name }{Ebenenliste }{Referenzebenen-Name }

Die Befehle ähneln den vorherigen. Die existierenden Ebenen des Seitenstils werden jedochnach Referenzebenen-Name durchsucht. Die Ebenen der Ebenenliste werden dann vor re-spektive nach jedem Auftreten der Referenzebene eingefügt. Dabei bleibt die Reihenfolge derEbenen der Ebenenliste erhalten.

Ist die Referenzebene nicht Bestandteil des Seitenstils, so wird auch nichts eingefügt. Istder Seitenstil hingegen kein Ebenen-Seitenstil und auch kein Alias-Seitenstil, der zu einemEbenen-Seitenstil führt, so wird ein Fehler gemeldet.

\UnifyLayersAtPageStyle{Seitenstil-Name }

Bei den Befehlen zur Definition eines Seitenstils oder zum Hinzufügen von Ebenen zu einemSeitenstil wird nicht darauf geachtet, ob eine Ebene mehrfach Bestandteil eines Seitenstils istoder wird. Dies ist also durchaus zulässig. In den meisten Fällen hat es allerdings keinen Sinn,eine Ebene mehrfach als Bestandteil eines Seitenstils zu haben. Daher kann mit Hilfe von\UnifyLayersAtPageStyle dafür gesorgt werden, dass alle Ebenen-Dubletten vom Seitenstilmit dem angegebenen Seitenstil-Name entfernt werden.

Es ist zu beachten, dass sich dabei die Reihenfolge der Ebenen ändern kann. Wird also einespezielle Reihenfolge gewünscht, sollten stattdessen alle Ebenen entfernt und die gewünsch-ten Ebenen in der erwarteten Reihenfolge neu hinzugefügt werden. In einem solchen Fall ist\UnifyLayersAtPageStyle also nicht geeignet.

\ModifyLayerPageStyleOptions{Seitenstil-Name }{Optionenliste }\AddToLayerPageStyleOptions{Seitenstil-Name }{Optionenliste }

Mit diesen beiden Anweisungen können die Optionen und damit die Haken eines Ebenen-Seitenstils nachträglich verändert werden. Bei \ModifyLayerPageStyleOptions werden dabeigenau die Optionen, die in der durch Komma separierten Optionenliste angegeben sind, aufdie dortigen neuen Werte gesetzt. Die bisherigen Werte gehen dabei verloren. Es sind alleOptionen aus Tabelle 17.2, Seite 454 erlaubt. Optionen beziehungsweise Haken, die nicht inder Optionenliste angegeben sind, bleiben hingegen unverändert. Diese Anweisung ist damitauch die einzige Möglichkeit, die globalen Voreinstellungen der KOMA-Script-Optionen voneinem Seitenstil zu entfernen.Die Anweisung \AddToLayerPageStyleOptions dagegen überschreibt die bisher vorhande-

nen Werte nicht, sondern fügt die neuen zu den bisherigen hinzu oder – genauer gesagt – hängtdie neuen Werte an die alten an.

Kapitel 17: Definition von Ebenen und Seitenstilen mit scrlayer 460

\IfLayerPageStyleExists{Seitenstil-Name }{Dann-Code }{Sonst-Code }\IfRealLayerPageStyleExists{Seitenstil-Name }{Dann-Code }{Sonst-Code }

Mit den Anweisungen kann Code in Abhängigkeit davon ausgeführt werden, ob ein Seitenstilein Ebenen-Seitenstil ist oder nicht. Dabei führt \IfLayerPageStyleExists den Dann-Codenur dann aus, wenn Seitenstil-Name der Name eines Ebenen-Seitenstils oder der Name einesAlias-Seitenstils ist, der zu einem Ebenen-Seitenstil führt. Anderenfalls führt die Anweisungden Sonst-Code aus.Die Anweisung \IfRealLayerPageStyleExists geht einen Schritt weiter und führt den

Dann-Code nur dann aus, wenn der über Seitenstil-Name angegebene Seitenstil selbst einEbenen-Seitenstil ist. Im Falle eines Alias-Seitenstils führt diese Anweisung also selbst dannSonst-Code aus, wenn dieser Alias-Seitenstil zu einem Ebenen-Seitenstil führt.

\IfLayerAtPageStyle{Seitenstil-Name }{Ebenen-Name }{Dann-Code }{Sonst-Code }\IfSomeLayersAtPageStyle{Seitenstil-Name }{Ebenenliste }{Dann-Code }{Sonst-Code }\IfLayersAtPageStyle{Seitenstil-Name }{Ebenenliste }{Dann-Code }{Sonst-Code }

Mit diesen Anweisungen kann überprüft werden, ob ein oder mehrere Ebenen Bestandteileines Seitenstils sind. \IfLayerAtPageStyle erwartet dabei nach dem Seitenstil-Name imersten Argument im zweiten Argument genau einen Ebenen-Name . Ist die entsprechende EbeneBestandteil des Seitenstils, so wird der Dann-Code ausgeführt, anderenfalls der Sonst-Code .Im Unterschied dazu erlauben \IfSomeLayersAtPageStyle und \IfLayersAtPageStyle

im zweiten Argument eine durch Komma separierte Ebenenliste . Dabei führt\IfSomeLayersAtPageStyle den Dann-Code bereits aus, wenn mindestens eine der EbenenBestandteil des Seitenstils ist. Dagegen führt \IfLayersAtPageStyle den Dann-Code nuraus, wenn alle Ebenen Bestandteil des Seitenstils sind. Ist die Bedingung nicht erfüllt, so wirdjeweils Sonst-Code ausgeführt.Durch geeignete Schachtelung sind auch komplexe Bedingungen abbildbar. Gibt man statt

einer Ebenenliste jeweils nur einen Ebenen-Name an, so sind alle drei Anweisungen gleich-bedeutend.

\DestroyRealLayerPageStyle{Ebenen-Seitenstil-Name }

Mit der Anweisung wird ein Ebenen-Seitenstil aus LATEX-Sicht undefiniert. Wurde statt einesEbenen-Seitenstils ein Alias-Seitenstil, ein anderer Seitenstil oder ein unbekannter Seitenstilangegeben, so wird die Anweisung ignoriert.Falls Ebenen-Seitenstil-Name der Name des aktuellen Seitenstils ist, so wird dieser

auf eine Art leeren Seitenstil gesetzt. Falls der mit \thispagestyle gesetzte SeitenstilEbenen-Seitenstil-Name lautet, so wird dieser einfach nur zurückgesetzt. Die vorherige An-weisung \thispagestyle verliert damit ihre aktuelle Auswirkung.

Es ist zu beachten, dass die Ebenen des Seitenstils nicht automatisch mit vernichtet werden.Falls Sie die Ebenen ebenfalls vernichten möchten, so können Sie dies beispielsweise mit

Kapitel 17: Definition von Ebenen und Seitenstilen mit scrlayer 461

\ForEachLayerOfPageStyle{...}{\DestroyLayer{#1}}

vor der Vernichtung des Seitenstils selbst erreichen.Die Anweisung ist dazu bestimmt, innerhalb des Arguments Code von

\scrlayerOnAutoRemoveInterface (siehe Abschnitt 17.7, Seite 470) verwendet zu wer-den, um Seitenstile, die als Teil eines Endanwender-Interfaces definiert wurden, beimautomatischen Entfernen dieses Interfaces mit zu entfernen.

17.5. Höhe von Kopf und Fuß

Der Kopf und der Fuß einer Seite sind zentrale Elemente nicht nur des Seitenstils. Auch eineEbene kann bei der Definition über entsprechende Optionen genau darauf beschränkt werden(siehe Tabelle 17.1 ab Seite 440). Deshalb muss die Höhe beider Elemente bekannt sein.Es gilt sinngemäß, was in Abschnitt 5.2 geschrieben wurde. Falls Sie also Abschnitt 5.2

bereits gelesen und verstanden haben, können Sie auf Seite 461 mit Abschnitt 17.6 fortfahren.

\footheight\headheight

Das Paket scrlayer führt als neue Länge \footheight analog zur Höhe \headheight des LATEX-Kerns ein. Gleichzeitig interpretiert scrlayer \footskip so, dass es den Abstand der letztenGrundlinie des Textbereichs von der ersten Standard-Grundlinie des Fußes darstellt. Das Pakettypearea betrachtet dies in gleicher Weise, so dass die dortigen Optionen zum Setzen der Höhedes Fußes (siehe die Optionen footheight und footlines in Abschnitt 2.6, Seite 47) und zurBerücksichtigung des Fußes bei der Berechnung des Satzspiegels (siehe Option footinclude indemselben Abschnitt, Seite 43) sehr gut zum Setzen der Werte für scrlayer verwendet werdenkönnen und auch das gewünschte Ergebnis liefern.Wird das Paket typearea nicht verwendet, so sollte man gegebenenfalls die Höhe von Kopf

und Fuß über entsprechende Werte für die Längen einstellen. Zumindest für den Kopf bietetaber beispielsweise auch das Paket geometry Einstellmöglichkeiten.Wurde der Kopf oder Fuß für den tatsächlich verwendeten Inhalt zu klein gewählt, so toleriert

scrlayer dies in der Regel ohne Fehlermeldung oder Warnung. Der Kopf dehnt sich dann ent-sprechend seiner Höhe in der Regel weiter nach oben, der Fuß entsprechend weiter nach untenaus. Informationen darüber erhält man jedoch nicht automatisch. Pakete wie scrlayer-scrpage,die auf scrlayer aufbauen, enthalten dagegen gegebenenfalls eigene Tests, die auch zu eigenenAktionen führen können (siehe \headheight und \footheight auf Seite 254).

17.6. Beeinflussung von Seitenstilen

Obwohl scrlayer selbst keine konkreten Seitenstile mit Inhalt definiert – die erwähnten Seiten-stile @everystyle@ und empty werden ja zunächst ohne Ebenen, also leer definiert –, stellt eseinige Optionen und Befehle zur Beeinflussung von Inhalten zur Verfügung.

Kapitel 17: Definition von Ebenen und Seitenstilen mit scrlayer 462

\automark[Gliederungsebene der rechten Marke ]{Gliederungsebene der linken Marke}\automark*[Gliederungsebene der rechten Marke ]{Gliederungsebene der linken Marke }\manualmark

Bei den meisten Klassen bestimmt die Wahl des Seitenstils, meist headings und myheadings,darüber, ob die Kolumnentitel automatisch oder manuell erzeugt werden. Genau diese Unter-scheidung wurde bei scrlayer aufgehoben. Statt die Unterscheidung zwischen automatischenund manuellen Kolumnentiteln über den Seitenstil vorzunehmen, gibt es die beiden Anwei-sungen \automark und \manualmark.Mit \manualmark wird dabei auf manuelle Marken umgeschaltet. Es deaktiviert also das au-

tomatische Setzen der Marken. Demgegenüber kann mit \automark und \automark* festgelegtwerden, welche Gliederungsebenen für das automatische Setzen der Marke verwendet wer-den sollen. Das optionale Argument gibt dabei die Gliederungsebene der rechten Markean, während das obligatorische Argument die Gliederungsebene der linken Marke ist. AlsArgument werden jeweils die Namen der Gliederungsebenen angegeben, also part, chapter,section, subsection, subsubsection, paragraph oder subparagraph.Normalerweise sollte die höhere Ebene die linke Marke setzen, während die tiefere Ebene für

die rechte Marke zu verwenden ist. Diese übliche Konvention ist jedoch keine Pflicht, sondernlediglich sinnvoll.Es ist zu beachten, dass nicht alle Klassen Kolumnentitel für alle Ebenen ermöglichen. So

setzen die Standardklassen beispielsweise nie Kolumnentitel für \part. Die KOMA-Script-Klassen unterstützen hingegen alle Ebenen.Der Unterschied zwischen \automark und \automark* liegt darin, dass \automark alle

vorherigen Befehle zum automatischen Setzen der Marken aufhebt, während die Stern-Version\automark* lediglich die Aktionen für die angegebenen Gliederungsebenen ändert. Man kannso auch relativ komplexe Fälle abdecken.

automarkautooneside=Ein-Aus-WertmanualmarkAußer mit den zuvor erklärten Befehlen kann auch direkt mit den beiden Optionen manualmarkund automark zwischen automatischen und manuellen Kolumnentiteln hin- und hergeschaltetwerden. Dabei verwendet automark bei Klassen mit \chapter-Anweisung immer die Vorein-stellung\automark[section]{chapter}

und bei anderen Klassen:\automark[subsection]{section}

Im einseitigen Modus will man in der Regel nicht, dass die untergeordnete Ebene die rechteMarke beeinflusst. Stattdessen soll auch mit der Voreinstellung nur die höhere Ebene, die bei-spielsweise im doppelseitigen Modus in der Voreinstellung alleine die linke Marke beeinflusst,

Kapitel 17: Definition von Ebenen und Seitenstilen mit scrlayer 463

den Kolumnentitel aller Seiten vorgeben. Diese Voreinstellung entspricht einer aktiven Optionautooneside. Die Option versteht die Werte für einfache Schalter, die in Tabelle 2.5 auf Sei-te 42 angegeben sind. Wird die Option deaktiviert, so wirken sich im einseitigen Satz sowohldas optionale als auch das obligatorische Argument auf den Kolumnentitel aus.Das Laden des Pakets selbst hat übrigens noch keine Auswirkung darauf, ob mit automa-

tischen Kolumnentiteln gearbeitet wird oder nicht. Erst die explizite Verwendung einer derOptionen automark oder manualmark oder einer der beiden Anweisungen \automark oder\manualmark schafft hier klare Verhältnisse.

draft=Ein-Aus-Wert

Die KOMA-Script-Option versteht die Standardwerte für einfache Schalter, die in Tabelle 2.5auf Seite 42 angegeben sind. Ist die Option aktiviert, so werden für die Entwurfsphase alleElemente der Seitenstile zusätzlich mit Maßlinien versehen.

\MakeMarkcase{Text }

Die automatischen, nicht jedoch die manuellen Kolumnentitel verwenden \MakeMarkcase fürihre Ausgabe. Ist die Anweisung beim Laden von scrlayer nicht definiert, so wird sie in derVoreinstellung derart definiert, dass sie ihr Argument Text unverändert ausgibt. Diese Vor-einstellung kann jedoch entweder durch Umdefinierung von \MakeMarkcase oder durch dienachfolgend dokumentierte Option markcase geändert werden. Je nach Einstellung wird dasArgument dann beispielsweise in Groß- oder Kleinbuchstaben umgewandelt.

markcase=Wert

Wie bereits früher erläutert, kann man bei scrlayer zwischen manuellen und automatischen Ko-lumnentiteln wählen. Bei den automatischen Kolumnentiteln werden dabei die entsprechendenMarken über die Gliederungsbefehle gesetzt. In manchen Kulturkreisen ist es im Gegensatzzur Typografie des deutschsprachigen Raums üblich, die Kolumnentitel in Großbuchstaben zusetzen. Die Standardklassen machen genau dies in der Voreinstellung. Das Paket scrlayer un-terstützt das optional ebenfalls. Hierzu gibt man als Option markcase=upper an. Im Endeffektführt das zu einer Umdefinierung von \MakeMarkcase.Aufgrund der mangelnden typografischen Qualität der primitiven Umwandlung in Groß-

buchstaben (siehe die Erklärung zu markcase in Abschnitt 5.5 auf Seite 272) empfiehlt derKOMA-Script-Autor den Verzicht auf Versalsatz. Dies ist normalerweise mit markcase=usedmöglich. Allerdings fügen einige Klassen selbst beispielsweise bei den Kolumnentitel für Ver-zeichnisse ein \MakeUppercase oder sogar die TEX-Anweisung \uppercase ein. Für diese Fällegibt es auch noch die Einstellung markcase=noupper, mit deren Hilfe \MakeUppercase und\uppercase für die Kolumnentitel lokal deaktiviert werden können.Alle für markcase möglichen Werte sind noch einmal in Tabelle 5.2, Seite 273 zusammen-

gefasst.

Kapitel 17: Definition von Ebenen und Seitenstilen mit scrlayer 464

\leftmark\rightmark\headmark\pagemark

Will man von den vordefinierten Seitenstilen abweichen, so muss man in der Regel auch selbstentscheiden können, wo die Marken gesetzt werden sollen. Mit \leftmark platziert man dielinke Marke. Diese wird dann bei der Ausgabe der Seite durch den entsprechenden Inhaltersetzt.Dementsprechend kann man mit \rightmark die rechte Marke platzieren, die dann bei der

Ausgabe der Seite durch den entsprechenden Inhalt ersetzt wird. Für einige Feinheiten dabeisei auch auf die weiterführenden Erklärungen zu \rightmark in Abschnitt 21.1, Seite 501verwiesen.Mit \headmark kann man sich das Leben erleichtern. Diese Erweiterung von scrlayer ent-

spricht je nachdem, ob die aktuelle Seite eine linke oder rechte ist, \leftmark oder \rightmark.Die Anweisung \pagemark hat genau genommen nichts mit den Marken von TEX zu tun.

Sie dient dazu, eine formatierte Seitenzahl zu platzieren. Bei ihrer Ausgabe wird dann auchdie Schrifteinstellung für das Element pagenumber verwendet. Diese kann mit Hilfe der An-weisungen \setkomafont und \addtokomafont verändert werden (siehe auch Abschnitt 3.6,Seite 62).Bei Bedarf finden Sie ein Beispiel zur Verwendung der Anweisungen \headmark und

\pagemark mit dem auf scrlayer basierenden Paket scrlayer-scrpage in Abschnitt 5.5, ab Sei-te 273.Sollten die hier vorgestellten Möglichkeiten für Marken einmal nicht ausreichen, so sind für

fortgeschrittene Anwender ab Seite 466 weitere Anweisungen dokumentiert.

\partmarkformat\chaptermarkformat\sectionmarkformat\subsectionmarkformat\subsubsectionmarkformat\paragraphmarkformat\subparagraphmarkformat

Diese Anweisungen werden von den KOMA-Script-Klassen und auch von scrlayer intern übli-cherweise verwendet, um die Gliederungsnummern der automatischen Kolumnentitel zu for-matieren. Dabei wird auch der \autodot-Mechanismus der KOMA-Script-Klassen unterstützt.Bei Bedarf können diese Anweisungen umdefiniert werden, um eine andere Formatierung derNummern zu erreichen. Siehe dazu gegebenenfalls das Beispiel in Abschnitt 5.5, auf Seite 275.

Kapitel 17: Definition von Ebenen und Seitenstilen mit scrlayer 465

\partmark{Text }\chaptermark{Text }\sectionmark{Text }\subsectionmark{Text }\subsubsectionmark{Text }\paragraphmark{Text }\subparagraphmark{Text }

Diese Anweisungen werden intern von den meisten Klassen verwendet, um die Marken ent-sprechend der Gliederungsbefehle zu setzen. Dabei wird als Argument lediglich der Text, nichtjedoch die Nummer erwartet. Die Nummer wird stattdessen automatisch über den aktuellenZählerstand ermittelt, falls mit nummerierten Überschriften gearbeitet wird.

Allerdings verwenden nicht alle Klassen in allen Gliederungsebenen eine solche Anwei-sung. So wird beispielsweise \partmark von den Standardklassen nie aufgerufen, währenddie KOMA-Script-Klassen selbstverständlich auch \partmark unterstützen.

Falls diese Anweisungen vom Anwender umdefiniert werden, sollte er unbedingt daraufachten, vor dem Setzen der Nummer ebenfalls über secnumdepth zu prüfen, ob die Nummernauszugeben sind. Dies gilt auch, wenn der Anwender secnumdepth selbst nicht verändert, weilPakete und Klassen sich eventuell auf die Wirkung von secnumdepth verlassen!

Das Paket scrlayer definiert diese Anweisungen außerdem bei jedem Aufruf von \automarkoder \manualmark oder den entsprechenden Optionen teilweise neu, um so die gewünschtenautomatischen oder manuellen Kolumnentitel zu erreichen.

\markleft{linke Marke }\markright{rechte Marke }\markboth{linke Marke }{rechte Marke }

Unabhängig davon, ob gerade mit manuellen oder automatischen Kolumnentiteln gearbeitetwird, kann man jederzeit die linke Marke oder rechte Marke mit einer dieser Anweisungensetzen. Dabei ist zu beachten, dass die resultierende linke Marke in \leftmark die letzteauf der entsprechenden Seite gesetzte Marke ist, während die resultierende rechte Marke in\rightmark die erste auf der entsprechenden Seite gesetzte Marke ausgibt. Näheres dazuist den weiterführenden Erklärungen zu \rightmark in Abschnitt 21.1, Seite 501 oder zu\rightfirstmark, Seite 466 zu entnehmen.Wird mit manuellen Kolumnentiteln gearbeitet, so bleiben die Marken gültig, bis sie durch

erneute Verwendung der entsprechenden Anweisung explizit ersetzt werden. Bei automati-schen Kolumnentiteln können Marken hingegen je nach Konfigurierung des Automatismusihre Gültigkeit mit einer der nächsten Gliederungsüberschriften verlieren.Auch im Zusammenhang mit den Sternvarianten der Gliederungsbefehle können diese An-

weisungen nützlich sein. Ausführliche Beispiele für die Verwendung von \markboth mit demvon scrlayer abgeleiteten Paket scrlayer-scrpage sind in Abschnitt 5.5, ab Seite 276 zu finden.

Kapitel 17: Definition von Ebenen und Seitenstilen mit scrlayer 466

\GenericMarkFormat{Gliederungsname }

Diese Anweisung wird in der Voreinstellung zur Formatierung aller Gliederungsnummern inautomatischen Kolumnentiteln unterhalb der Unterabschnitte und bei Klassen ohne \chapterzusätzlich auch für die Ebene der Abschnitte und Unterabschnitte verwendet, soweit die ent-sprechenden Mark-Anweisungen nicht bereits anderweitig definiert sind. Dabei verwendet dieAnweisung in der Voreinstellung \@seccntmarkformat, wenn eine solche interne Anweisungwie bei den KOMA-Script-Klassen definiert ist. Anderenfalls wird mit \@seccntformat ei-ne Anweisung verwendet, die bereits vom LATEX-Kern für Klassen und Pakete bereitgestelltund von KOMA-Script etwas modifiziert wird. Als Argument erwartet \GenericMarkFormatden Namen der Gliederung, also beispielsweise chapter oder section ohne vorangestelltenumgekehrten Schrägstrich (engl. backslash).Durch Umdefinierung dieser Anweisung kann damit die Standardformatierung aller Gliede-

rungsnummern im Kolumnentitel geändert werden, die darauf zurückgreifen. Ebenso kann eineKlasse darüber eine andere Standardformatierung vorgeben, ohne alle Befehle einzeln ändernzu müssen.Ein ausführliches Beispiel für das Zusammenspiel der Anweisung \GenericMarkFormat mit

den auf Seite 465 erklärten Anweisungen \sectionmarkformat und \subsectionmarkformatbeziehungsweise \chaptermarkformat bei Verwendung des von scrlayer abgeleiteten Paketsscrlayer-scrpage ist in Abschnitt 18.1, ab Seite 471 zu finden.

\righttopmark\rightbotmark\rightfirstmark\lefttopmark\leftbotmark\leftfirstmark

LATEXv3.16 verwendet für die Seitenstile normalerweise eine zweiteilige TEX-Marke. Im Kolumnen-titel kann auf den linken Teil der Marke mit \leftmark zugegriffen werden, während derrechte Teil der Marke über \rightmark verfügbar ist. Tatsächlich ist es wohl auch so gedacht,dass \leftmark für linke Seiten und \rightmark für rechte Seiten im doppelseitigen Druckverwendet wird. Im einseitigen Layout setzen die Gliederungsbefehle der Standardklassen denlinken Teil der Marke hingegen gar nicht erst.TEX selbst kennt drei Möglichkeiten, auf eine Marke zuzugreifen. Die \botmark ist die auf der

zuletzt zusammengestellten Seite zuletzt gültige Marke. Das entspricht der zuletzt gesetztenMarke der Seite. Wurde auf der Seite keine Marke gesetzt, so entspricht es der zuletzt gesetztenMarke auf den bereits ausgegebenen Seiten. Die LATEX-Anweisung \leftmark verwendet genaudiese Marke, gibt also den linken Teil der letzten Marke der Seite aus. Dies entspricht auchgenau \leftbotmark. Im Vergleich dazu gibt \rightbotmark den rechten Teil dieser Markeaus.

Kapitel 17: Definition von Ebenen und Seitenstilen mit scrlayer 467

\firstmark ist die erste Marke der zuletzt zusammengestellten Seite. Das entspricht derersten Marke, die auf der Seite gesetzt wurde. Wurde auf der Seite keine Marke gesetzt, soentspricht es der zuletzt gesetzten Marke auf den bereits ausgegebenen Seiten. Die LATEX-Anweisung \rightmark verwendet genau diese Marke, gibt also den rechten Teil der erstenMarke der Seite aus. Dies entspricht auch genau \rightfirstmark. Im Vergleich dazu gibt\leftfirstmark den linken Teil dieser Marke aus.\topmark ist der Inhalt, den \botmark hatte, bevor die aktuelle Seite zusammengestellt wur-

de. LATEX verwendet dies selbst nie. Trotzdem bietet scrlayer die Möglichkeit mit \lefttopmarkauf den linken Teil dieser Marke und mit \righttopmark auf den rechten Teil zuzugreifen.Es ist zu beachten, dass der linke und rechte Teil der Marke immer nur gemeinsam gesetzt

werden kann. Selbst wenn man mit \markright nur den rechten Teil verändert, wird derlinke Teil (unverändert) mit gesetzt. Entsprechend setzen im doppelseitigen Layout die höhe-ren Gliederungsebenen beim Seitenstil headings immer beide Teile. Beispielsweise verwendet\chaptermark dann \markboth mit einem leeren rechten Argument. Das ist auch der Grund,warum \rightmark beziehungsweise \rightfirstmark auf der Seite einer Kapitelüberschriftimmer einen leeren Wert zurück gibt, selbst wenn danach beispielsweise über \sectionmarkoder indirekt über \section ein neuer rechter Teil gesetzt wurde.Bitte beachten Sie, dass die Verwendung einer der hier erklärten Anweisungen zur Ausgabe

des linken oder rechten Teils der Marke innerhalb einer Seite zu unerwarteten Ergebnissenführen kann. Sie sind wirklich nur zur Verwendung im Kopf oder Fuß eines Seitenstils gedacht.Daher sollten sie bei scrlayer immer Teil des Inhalts einer Ebene sein. Dagegen spielt es keineRolle, ob sie auf den Hintergrund oder den Vordergrund beschränkt werden, da alle Ebenenerst nach der Zusammenstellung der aktuellen Seite ausgegeben werden.Näheres zum Mark-Mechanismus von TEX ist beispielsweise [Knu90, Kapitel 23] zu entneh-

men. Das Thema ist dort als absolutes Expertenwissen markiert. Sollte Sie obige Erklärungalso eher verwirrt haben, machen Sie sich bitte nichts daraus.

\@mkleft{linke Marke }\@mkright{rechte Marke }\@mkdouble{Marke }\@mkboth{linke Marke }{rechte Marke }

Innerhalb der Klassen und Pakete kommt es vor, dass Kolumnentitel nur dann gesetzt werdensollen, wenn automatische Kolumnentitel (siehe Option automark und Anweisung \automarkauf Seite 462) aktiviert sind. Bei den Standardklassen geht dies ausschließlich über \@mkboth.Diese Anweisung entspricht entweder \@gobbletwo, einer Anweisung, die ihre beiden Argu-mente vernichtet, oder \markboth, einer Anweisung, mit der sowohl eine linke Marke alsauch eine rechte Marke gesetzt wird. Pakete wie babel hängen sich ebenfalls in \@mkbothein, um beispielsweise noch eine Sprachumschaltung im Kolumnentitel vorzunehmen.Will man nun jedoch nur eine linke Marke oder nur eine rechte Marke setzen, ohne die

jeweils andere Marke zu verändern, so fehlen entsprechende Anweisungen. Das Paket scrlayer

Kapitel 17: Definition von Ebenen und Seitenstilen mit scrlayer 468

selbst benötigt entsprechende Anweisungen beispielsweise im Rahmen der automatischen Ko-lumnentitel. Sind \@mkleft zum Setzen nur der linken Marke , \@mkright zum Setzen nurder rechten Marke oder \@mkdouble zum Setzen sowohl der rechten als auch der linken Markemit demselben Inhalt beim Laden von scrlayer nicht definiert, so werden sie vom Paket selbstdefiniert. Dabei wird eine Definition gewählt, die am Zustand von \@mkboth erkennt, ob mitautomatischen Kolumnentiteln gearbeitet wird. Nur in diesem Fall setzen die Befehle aucheine entsprechende Marke.Klassen- und Paketautoren können ebenfalls auf die passende der vier Anweisungen zurück-

greifen, wenn sie linke oder rechte Marken setzen und dies auf den Fall beschränken wollen,dass mit automatischen Kolumnentiteln gearbeitet wird.Zu weiteren Möglichkeiten zur Beeinflussung der Inhalte von Seitenstilen siehe auch Ab-

schnitt 5.5, Seite 268.

17.7. Definition und Verwaltung von Schnittstellen für Endanwender

Das Paket scrlayer stellt eine experimentelle Benutzerschnittstelle zur Verfügung um (konkur-rierende) Schnittstellen für Endanwender definieren und verwalten zu können. Möglicherweisewird diese Schnittstelle langfristig wieder aus scrlayer verschwinden und dann stattdessen vonscrbase übernommen werden. Derzeit ist die Schnittstelle aber noch hoch experimentellundwird daher von eigenen Befehlen innerhalb von scrlayer nur für Unterpakete von scrlayer bereitgestellt. Es empfiehlt sich beim aktuellen Entwicklungsstand nicht, sich darauf zu verlassen,dass die automatische Entfernung einer konkurrierenden Schnittstelle funktioniert. Stattdessensollte die Verwendung konkurrierender Schnittstellen vermieden werden.Dieser Abschnitt beschreibt lediglich die Schnittstellen-Anweisungen für die Definition einer

Endanwender-Schnittstelle. Für Endanwender selbst ist er damit von geringem Interesse. Viel-mehr richtet sich dieser Teil der Anleitung an Autoren von Paketen und Klassen, die auf scrlayeraufbauen. Endanwender finden Informationen zu konkreten Endanwender-Schnittstellen in Ka-pitel 5, Kapitel 18 und Kapitel 19.

\scrlayerInitInterface[Schnittstellen-Name ]

Mit dieser Anweisung wird eine neue Schnittstelle mit dem Namen Schnittstellen-Nameregistriert. Der Schnittstellen-Name muss einzigartig sein. Das bedeutet, dass eine Schnitt-stelle gleichen Namens noch nicht registriert sein darf. Sollte dies doch der Fall sein, so wirdein Fehler ausgegeben.Diese Anweisung sollte immer ganz am Anfang einer Endanwender-Schnittstelle stehen. Da-

her wird sie hier auch zuerst erklärt. Wird das optionale Argument – einschließlich der eckigenKlammern – weggelassen, so wird dafür \@currname.\@currext verwendet. Für Klassen undPakete ist dies der Dateiname der Klasse respektive des Pakets. Aber selbstverständlich kannjede andere Zeichenfolge der Kategorie letter oder other verwendet werden. Dies ist beispiels-weise sinnvoll, wenn eine Klasse oder ein Paket mehrere Endanwender-Schnittstellen definiert.

Kapitel 17: Definition von Ebenen und Seitenstilen mit scrlayer 469

forceoverwrite=Ein-Aus-Wertautoremoveinterfaces=Ein-Aus-Wert\scrlayerAddToInterface[Schnittstellen-Name ]{Befehl }{Code }\scrlayerAddCsToInterface[Schnittstellen-Name ]{Befehlssequenz }{Code }

Eine der besonderen Eigenschaften der Endanwender-Schnittstellen von scrlayer ist es, dassdie Schnittstelle verwendete Befehle (auch bekannt als Makros oder engl. macros) regis-trieren sollte. Dies kann mit \scrlayerAddToInterface erfolgen. Das optionale ArgumentSchnittstellen-Name entspricht hier dem Namen, der mit \scrlayerInitInterface zuvorregistriert wurde.Werden Anweisungen nicht nur während des Ladens einer Klasse oder eines Pakets, son-

dern auch zur Laufzeit definiert, so ist das optionale Argument auch dann zu verwenden,wenn es dem Dateinamen der Klasse beziehungsweise des Pakets entspricht, da die Werte von\@currname und \@currext nur während des Ladens Gültigkeit besitzen.Das erste obligatorische Argument ist der Befehl 1, der zu der Endanwender-Schnittstelle

hinzugefügt werden soll. Falls der Befehl definiert werden kann, erfolgt dies. Außerdem wirddann der Befehl auf \relax gesetzt und Code wird ausgeführt. Innerhalb von Code kann derBefehl dann beispielsweise mit Hilfe von \newcommand definiert werden.Wann aber kann ein Befehl definiert werden? Ist ein Befehl undefiniert oder \relax,

so kann er immer definiert werden. Wurde ein Befehl bereits definiert und für ei-ne andere Endanwender-Schnittstelle registriert und wurde auch die KOMA-Script-Optionautoremoveinterfaces aktiviert, so wird diese andere Endanwender-Schnittstelle automa-tisch entfernt, der Befehl auf \relax gesetzt und für die angegebene neue Endanwender-Schnittstelle registriert. Damit ist Befehl auch dann definierbar. Falls ein Befehl bereitsdefiniert ist, aber nicht Teil einer anderen Endanwender-Schnittstelle ist, und falls die KOMA-Script-Option forceoverwrite aktiviert wurde, wird Befehl ebenfalls \relax und für die an-gegebene Endanwender-Schnittstelle registriert. Der Befehl ist also auch in diesem Fall defi-nierbar. In allen anderen Fällen ist er jedoch nicht definierbar, also insbesondere, falls er bereitsdefiniert ist und die KOMA-Script-Optionen autoremoveinterfaces und forceoverwritedeaktiviert sind.Die Anweisung \scrlayerAddCsToInterface arbeitet ganz ähnlich der vorgenannten An-

weisung \scrlayerAddToInterface. Allerdings erwartet sie als erstes Argument keinenBefehl , sondern eine Befehlssequenz 2.

1Befehl besteht aus einem umgekehrten Schrägstrich (engl. backslash), gefolgt von einer Befehlssequenz ,die entweder aus Zeichen der Kategorie letter oder aus genau einem Zeichen der Kategorie other besteht,oder aus einem Zeichen der Kategorie active (ohne umgekehrten Schrägstrich davor).

2Eine Befehlssequenz muss voll expandierbar sein und ihre Expansion muss zu Zeichen der Kategorie letter,other oder space führen.

Kapitel 17: Definition von Ebenen und Seitenstilen mit scrlayer 470

\scrlayerOnAutoRemoveInterface[Schnittstellen-Name ]{Code }

Für den Fall, dass die Endanwender-Schnittstelle mit dem angegebenen Schnittstellen-Nameautomatisch entfernt wird (siehe KOMA-Script-Option autoremoveinterfaces zuvor indiesem Abschnitt) kann zusätzlich Code ausgeführt werden. Dies kann beispielsweiseverwendet werden, um Ebenen oder Seitenstile automatisch mit zu vernichten (siehe\DestroyLayer, \DestroyPageStyleAlias, and \DestroyRealLayerPageStyle), die auf Be-fehlen der Endanwender-Schnittstelle beruhen. Bezüglich der Voreinstellung für das optionaleArgument sei auf die Erklärung zu \scrlayerInitInterface verwiesen.

Kapitel 18: Zusätzliche Möglichkeiten von scrlayer-scrpage 471

Zusätzliche Möglichkeiten des Paketsv3.12 scrlayer-scrpage

Über die Erklärungen in Kapitel 5 von Teil I dieser Anleitung hinaus bietet das Paketscrlayer-scrpage viele weitere Möglichkeiten. Diese stellen jedoch Erweiterungen dar, die derdurchschnittliche Anwender nicht zwingend benötigt oder die nur aus Gründen der Kompati-bilität zu scrpage2 existieren. Ihre Dokumentation hier in Teil II dient der Vertiefung und derErweiterung des Wissens. Ihre Beherrschung geht über grundlegende Fähigkeiten hinaus.

18.1. Beeinflussung von Seitenstilen

Dieser Abschnitt ist als Ergänzung zu Abschnitt 17.6 zu verstehen und beschreibt Dinge, diesich dem Anfänger nicht unbedingt sofort erschließen.

\GenericMarkFormat{Gliederungsname }

Diese Anweisung wird in der Voreinstellung zur Formatierung aller Gliederungsnummern inautomatischen Kolumnentiteln unterhalb der Unterabschnitte und bei Klassen ohne \chapterzusätzlich auch für die Ebene der Abschnitte und Unterabschnitte verwendet, soweit die ent-sprechenden Mark-Anweisungen nicht bereits anderweitig definiert sind. Dabei verwendet dieAnweisung in der Voreinstellung \@seccntmarkformat, wenn eine solche interne Anweisungwie bei den KOMA-Script-Klassen definiert ist. Anderenfalls wird mit \@seccntformat ei-ne Anweisung verwendet, die bereits vom LATEX-Kern für Klassen und Pakete bereitgestelltund von KOMA-Script etwas modifiziert wird. Als Argument erwartet \GenericMarkFormatden Namen der Gliederung, also beispielsweise chapter oder section ohne vorangestelltenumgekehrten Schrägstrich (engl. backslash).Durch Umdefinierung dieser Anweisung kann damit die Standardformatierung aller Gliede-

rungsnummern im Kolumnentitel geändert werden, die darauf zurückgreifen. Ebenso kann eineKlasse darüber eine andere Standardformatierung vorgeben, ohne alle Befehle einzeln ändernzu müssen.

Beispiel: Angenommen, Sie wollen, dass bei allen Gliederungsnummern im Kolumnentiteleines Artikels die Nummer als weiße Schrift auf einem schwarzen Kasten ausgege-ben wird. Da bei Artikeln mit article die Anweisungen \sectionmarkformat und\subsectionmarkformat von scrlayer mit Hilfe von \GenericMarkFormat definiertwerden, genügt dafür die entsprechende Umdefinierung dieser einen Anweisung:\documentclass{article}\usepackage{blindtext}\usepackage[automark]{scrlayer-scrpage}\pagestyle{scrheadings}\usepackage{xcolor}\newcommand*{\numberbox}[1]{%

Kapitel 18: Zusätzliche Möglichkeiten von scrlayer-scrpage 472

\colorbox{black}{%\strut~\textcolor{white}{#1}~}%

}\renewcommand*{\GenericMarkFormat}[1]{%

\protect\numberbox{\csname the#1\endcsname}%\enskip

}\begin{document}\blinddocument\end{document}

Für die Farbumschaltungen werden Anweisungen des Pakets xcolor verwendet. Nä-heres dazu ist der Anleitung zum Paket zu entnehmen (siehe [Ker07]).Außerdem wird eine unsichtbare Stütze mit \strut eingefügt. Diese Anweisungsollte in keiner ausführlichen LATEX-Einführung fehlen.Für den Kasten mit der Nummer wird eine eigene Hilfsanweisung \numberbox defi-niert. Diese wird in der Umdefinierung von \GenericMarkFormat mit \protect vorder Expansion geschützt. Dies ist notwendig, weil sonst durch das \MakeUppercasefür den Versalsatz der Kolumnentitel nicht mehr die Farben »black« und»white«, sondern die Farben »BLACK« und »WHITE« verlangt würden, die garnicht definiert sind. Alternativ könnte man \numberbox auch mit Hilfe von\DeclareRobustCommand* statt mit \newcommand* definieren (siehe [Tea06]).Wollte man dasselbe mit einer KOMA-Script-Klasse oder mit den Stan-dardklassen book oder report erreichen, so müsste man übrigens zusätzlich\sectionmarkformat und – je nach Klasse – \subsectionmarkformat beziehungs-weise \chaptermarkformat umdefinieren, da diese bei Verwendung der genanntenKlassen \GenericMarkFormat nicht verwenden:\documentclass{scrbook}\usepackage{blindtext}\usepackage[automark]{scrlayer-scrpage}\pagestyle{scrheadings}\usepackage{xcolor}\newcommand*{\numberbox}[1]{%\colorbox{black}{%

\strut~\textcolor{white}{#1}~}%}\renewcommand*{\GenericMarkFormat}[1]{%\protect\numberbox{\csname the#1\endcsname}%\enskip

}\renewcommand*{\chaptermarkformat}{%\GenericMarkFormat{chapter}%

Kapitel 18: Zusätzliche Möglichkeiten von scrlayer-scrpage 473

}\renewcommand*{\sectionmarkformat}{%\GenericMarkFormat{section}%

}\begin{document}\blinddocument\end{document}

\righttopmark\rightbotmark\rightfirstmark\lefttopmark\leftbotmark\leftfirstmark

LATEXv3.16 verwendet für die Seitenstile normalerweise eine zweiteilige TEX-Marke. Im Kolumnen-titel kann auf den linken Teil der Marke mit \leftmark zugegriffen werden, während derrechte Teil der Marke über \rightmark verfügbar ist. Tatsächlich ist es wohl auch so gedacht,dass \leftmark für linke Seiten und \rightmark für rechte Seiten im doppelseitigen Druckverwendet wird. Im einseitigen Layout setzen die Gliederungsbefehle der Standardklassen denlinken Teil der Marke hingegen gar nicht erst.TEX selbst kennt drei Möglichkeiten, auf eine Marke zuzugreifen. Die \botmark ist die auf der

zuletzt zusammengestellten Seite zuletzt gültige Marke. Das entspricht der zuletzt gesetztenMarke der Seite. Wurde auf der Seite keine Marke gesetzt, so entspricht es der zuletzt gesetztenMarke auf den bereits ausgegebenen Seiten. Die LATEX-Anweisung \leftmark verwendet genaudiese Marke, gibt also den linken Teil der letzten Marke der Seite aus. Dies entspricht auchgenau \leftbotmark. Im Vergleich dazu gibt \rightbotmark den rechten Teil dieser Markeaus.\firstmark ist die erste Marke der zuletzt zusammengestellten Seite. Das entspricht der

ersten Marke, die auf der Seite gesetzt wurde. Wurde auf der Seite keine Marke gesetzt, soentspricht es der zuletzt gesetzten Marke auf den bereits ausgegebenen Seiten. Die LATEX-Anweisung \rightmark verwendet genau diese Marke, gibt also den rechten Teil der erstenMarke der Seite aus. Dies entspricht auch genau \rightfirstmark. Im Vergleich dazu gibt\leftfirstmark den linken Teil dieser Marke aus.\topmark ist der Inhalt, den \botmark hatte, bevor die aktuelle Seite zusammengestellt wur-

de. LATEX verwendet dies selbst nie. Trotzdem bietet scrlayer die Möglichkeit mit \lefttopmarkauf den linken Teil dieser Marke und mit \righttopmark auf den rechten Teil zuzugreifen.Es ist zu beachten, dass der linke und rechte Teil der Marke immer nur gemeinsam gesetzt

werden kann. Selbst wenn man mit \markright nur den rechten Teil verändert, wird derlinke Teil (unverändert) mit gesetzt. Entsprechend setzen im doppelseitigen Layout die höhe-ren Gliederungsebenen beim Seitenstil headings immer beide Teile. Beispielsweise verwendet

Kapitel 18: Zusätzliche Möglichkeiten von scrlayer-scrpage 474

\chaptermark dann \markboth mit einem leeren rechten Argument. Das ist auch der Grund,warum \rightmark beziehungsweise \rightfirstmark auf der Seite einer Kapitelüberschriftimmer einen leeren Wert zurück gibt, selbst wenn danach beispielsweise über \sectionmarkoder indirekt über \section ein neuer rechter Teil gesetzt wurde.Bitte beachten Sie, dass die Verwendung einer der hier erklärten Anweisungen zur Ausgabe

des linken oder rechten Teils der Marke innerhalb einer Seite zu unerwarteten Ergebnissenführen kann. Sie sind wirklich nur zur Verwendung im Kopf oder Fuß eines Seitenstils gedacht.Daher sollten sie bei scrlayer immer Teil des Inhalts einer Ebene sein. Dagegen spielt es keineRolle, ob sie auf den Hintergrund oder den Vordergrund beschränkt werden, da alle Ebenenerst nach der Zusammenstellung der aktuellen Seite ausgegeben werden.Näheres zum Mark-Mechanismus von TEX ist beispielsweise [Knu90, Kapitel 23] zu entneh-

men. Das Thema ist dort als absolutes Expertenwissen markiert.

\@mkleft{linke Marke }\@mkright{rechte Marke }\@mkdouble{Marke }\@mkboth{linke Marke }{rechte Marke }

Innerhalb der Klassen und Pakete kommt es vor, dass Kolumnentitel nur dann gesetzt werdensollen, wenn automatische Kolumnentitel (siehe Option automark und Anweisung \automarkauf Seite 462) aktiviert sind. Bei den Standardklassen geht dies ausschließlich über \@mkboth.Diese Anweisung entspricht entweder \@gobbletwo, einer Anweisung, die ihre beiden Argu-mente vernichtet, oder \markboth, einer Anweisung, mit der sowohl eine linke Marke alsauch eine rechte Marke gesetzt wird. Pakete wie babel hängen sich ebenfalls in \@mkbothein, um beispielsweise noch eine Sprachumschaltung im Kolumnentitel vorzunehmen.Will man nun jedoch nur eine linke Marke oder nur eine rechte Marke setzen, ohne die

jeweils andere Marke zu verändern, so fehlen entsprechende Anweisungen. Das Paket scrlayerselbst benötigt entsprechende Anweisungen beispielsweise im Rahmen der automatischen Ko-lumnentitel. Sind \@mkleft zum Setzen nur der linken Marke , \@mkright zum Setzen nurder rechten Marke oder \@mkdouble zum Setzen sowohl der rechten als auch der linken Markemit demselben Inhalt beim Laden von scrlayer nicht definiert, so werden sie vom Paket selbstdefiniert. Dabei wird eine Definition gewählt, die am Zustand von \@mkboth erkennt, ob mitautomatischen Kolumnentiteln gearbeitet wird. Nur in diesem Fall setzen die Befehle aucheine entsprechende Marke.Klassen- und Paketautoren können ebenfalls auf die passende der vier Anweisungen zurück-

greifen, wenn sie linke oder rechte Marken setzen und dies auf den Fall beschränken wollen,dass mit automatischen Kolumnentiteln gearbeitet wird.

Kapitel 18: Zusätzliche Möglichkeiten von scrlayer-scrpage 475

18.2. Definition eigener Seitenstil-Paare

In Abschnitt 5.4 wurden die beiden Seitenstile scrheadings und plain.scrheadings vorge-stellt. Diese bilden quasi ein Paar, bei dem scrheadings als Haupt-Seitenstil mit Kolumnen-titel vorgesehen ist, während plain.scrheadings ein dazu passender plain-Seitenstil ohneKolumnentitel aber üblicherweise mit Paginierung, also mit Seitenzahl ist. Neben der Konfi-guration dieses vordefinierten Paares bietet scrlayer-scrpage auch die Möglichkeit, zusätzlichePaare zu definieren. Der Name des Haupt-Seitenstils, beispielsweise scrheadings, dient dabeiquasi auch als Name des Seitenstil-Paares.Die allermeisten Anwender werden in der Regel mit dem einen vordefinierten Seitenstil-Paar

scrheadings auskommen. Die in diesem Abschnitt dokumentierten Anweisungen sind dahereher Ergänzungen für besondere Fälle. Da mir während des Abfassens dieser Anleitung keinehandlichen Anwendungsbeispiele eingefallen sind, gibt es auch keine ausführlichen Beispiele.Sollte mir im Support einmal eine besonders schöne Anwendung begegnen, werde ich solcheaber in zukünftigen Fassungen gerne aufgreifen. Ich bin jedoch gleichzeitig sicher, dass sich alldiese Fälle auch mit dem einen Paar scrheadings lösen lassen.

\defpairofpagestyles[Eltern-Paar ]{Name }{Definition }\newpairofpagestyles[Eltern-Paar ]{Name }{Definition }\renewpairofpagestyles[Eltern-Paar ]{Name }{Definition }\providepairofpagestyles[Eltern-Paar ]{Name }{Definition }

Mit diesen Anweisungen können Paare von Seitenstilen vergleichbar zu scrheadings undplain.scrheadings definiert werden. Dabei ist Name der Name des zu scrheadings ver-gleichbaren Hauptseitenstils, der für die Verwendung mit Kolumnentiteln ausgelegt ist. Fürden Namen des zugehörigen plain-Seitenstil wird Name automatisch plain. vorangestellt.Name ist also gleichzeitig der Name des Paares und des Hauptseitenstils dieses Paares, wäh-rend plain.Name der Name des plain-Seitenstils dieses Paares ist.Ist das optionale Argument Eltern-Paar angegeben, so ist dies der Name eines Seitenstil-

Paares, mit dessen Einstellungen das neue Paar initialisiert werden soll. Das neue Paar erbtalso quasi die Konfiguration des Eltern-Paar s.Während in Abschnitt 5.4 der Eindruck entstanden sein mag, dass sich die dort erläuterten

Anweisungen nur auf scrheadings und plain.scrheadings beziehen, gilt das tatsächlichnur, solange diese beiden Seitenstile das einzige Seitenstil-Paar darstellen. Sobald es mehrereSeitenstil-Paare gibt, beziehen sich \lehead, \cehead, \rehead, \lohead, \cohead, \rohead,\lefoot, \cefoot, \refoot, \lofoot, \cofoot, \rofoot, \ihead, \chead, \ohead, \ifoot,\cfoot und \ofoot auf das zuletzt aktive Paar.Neben den achtzehn vorgenannten sind auch die drei nachfolgend dokumentier-

ten Anweisungen \clearmainofpairofpagestyles, \clearplainofpairofpagestyles und\clearpairofpagestyles für die Verwendung im letzten Parameter, Definition , gedacht.In diesem Fall stellen sie eine Art Grundkonfiguration des Seitenstil-Paares dar, die immer

Kapitel 18: Zusätzliche Möglichkeiten von scrlayer-scrpage 476

dann ausgeführt wird, wenn das Seitenstil-Paar aktiviert wird. Ein Seitenstil-Paar wird akti-viert, indem einer der beiden Seitenstile des Paares aktiviert wird. Dies geschieht in der Regelmit Hilfe von \pagestyle.Es sei darauf hingewiesen, dass die Anweisungen aus Abschnitt 5.5 ab Seite 268 ohnehin

allgemeiner Natur sind und für alle mit scrlayer-scrpage definierten Seitenstile gelten.Während \defpairofpagestyles das Seitenstil-Paar unabhängig davon, ob ent-

sprechende Seitenstile bereits existieren, definiert, tun \newpairofpagestyles und\providepairofpagestyles dies nur, wenn die Seitenstile noch nicht definiert sind.Ist mindestens einer der beiden Seitenstile des Paares bereits definiert, so wirddie neuerliche Definition bei \providepairofpagestyles ignoriert, wohingegen sie bei\newpairofpagestyles zu einem Fehler führt. Für die Umdefinierung bereits existierenderPaare kann \renewpairofpagestyles verwendet werden. Hier wird ein Fehler gemeldet, wenneiner der beiden Seitenstile oder beide Seitenstile des Paares noch nicht existieren.

\clearmainofpairofpagestyles\clearplainofpairofpagestyles\clearpairofpagestyles

Mit \clearmainofpairofpagestyles wird der Hauptseitenstil des zuletzt ak-tivierten Seitenstil-Paares leer konfiguriert. Dagegen wird mit der Anweisung\clearplainofpairofpagestyles der plain-Seitenstil des entsprechenden Seitenstil-Paares leer konfiguriert. Anweisung \clearpairofpagestyles konfiguriert schließlich beideSeitenstile des entsprechenden Paares als leer.Es ist jedoch zu beachten, dass keine dieser Anweisungen die Definitionen aus dem Parame-

ter Definition , der bei der Definition des Seitenstil-Paares angegeben wurde (siehe oben),entfernt. Bei der erneuten Auswahl eines Seitenstils des Paares werden jene Einstellungen alsoerneut ausgeführt!Die Anweisungen können ebenfalls innerhalb von Definition bei der zuvor erklärten Defi-

nition eines Seitenstil-Paares verwendet werden. Sie können aber auch jederzeit außerhalb derDefinition eines Seitenstil-Paares verwendet werden. In diesem Fall beziehen sie sich auf daszuletzt aktivierte Paar.

18.3. Definition komplexer Seitenstile

Neben den vordefinierten Seitenstilen bietet scrlayer-scrpage auch noch eine eher grundlegendeSchnittstelle zur Definition von Seitenstilen. Die bisher erläuterten Konzepte greifen bei derImplementierung ebenso wie die von Abschnitt 18.4 auf diese Möglichkeit zurück. Aufgrundihrer hohen Komplexität wird sie jedoch nur erfahrenen Anwendern empfohlen. Weniger er-fahrene Anwender können mit den vorgenannten Möglichkeiten bereits nahezu alles erreichen,was auch mit dieser grundlegenden Schnittstelle möglich ist.

Kapitel 18: Zusätzliche Möglichkeiten von scrlayer-scrpage 477

\defpagestyle{Name }{Kopfdefinition }{Fußdefinition }\newpagestyle{Name }{Kopfdefinition }{Fußdefinition }\providepagestyle{Name }{Kopfdefinition }{Fußdefinition }\renewpagestyle{Name }{Kopfdefinition }{Fußdefinition }

Diese Anweisungen dienen der Definition eines einzelnen Seitenstils mit maximaler Flexibilität.Dabei ist Name der Name des Seitenstils, der definiert werden soll.Die beiden Parameter Kopfdefinition und Fußdefinition haben den identischen Aufbau:

(Länge der oberen Linie ,Dicke der oberen Linie )%{Definition für linke Seiten im doppelseitigen Layout }%{Definition für rechte Seiten im doppelseitigen Layout }%{Definition für Seiten im einseitigen Layout }%(Länge der unteren Linie ,Dicke der unteren Linie )

Dabei sind die Argumente in den runden Klammern optional, das heißt, sie können zusammenmit den Klammern weggelassen werden. In diesem Fall richten sich die Längen und Dicken jenach Linie nach den Angaben der Optionen headtopline, headsepline, footsepline undfootbotline (siehe Abschnitt 5.5, Seite 278).Die drei Argumente mit den Definitionen sind obligatorisch und werden je nach Seite und

Layouteinstellung verwendet. Der Inhalt der Definitionen ist frei wählbar. Für Seitenstile mitKolumnentitel wird jedoch die Verwendung von \headmark, \leftmark oder \rightmark in-nerhalb der Definitionen empfohlen. Keinesfalls sollte man hier direkt eine Gliederungsnummeroder einen Überschriftentext als Kolumnentitel angeben. Aufgrund des asynchronen Seiten-aufbaus von LATEX kann sonst die falsche Nummer oder der falsche Text im Seitenkopf oderSeitenfuß erscheinen.Bei \defpagestyle wird der Seitenstil unabhängig davon, ob er bereits existiert oder nicht,

neu definiert. Demgegenüber meldet \newpagestyle einen Fehler, wenn bereits ein Seitenstilgleichen Namens existiert. Im Unterschied dazu wird die Definition bei \providepagestyleignoriert, falls der Name bereits für einen Seitenstil verwendet wurde. Umgekehrt kann mit\renewpagestyle nur ein bereits vorhandener Seitenstil umdefiniert werden. Für einen neuenNamen meldet diese Anweisung dagegen einen Fehler.Alle vier Anweisungen basieren auf \DeclarePageStyleByLayers des Pakets scrlayer. Die

dabei für einen Seitenstil Name definierten Ebenen sind in Tabelle 18.1 aufgeführt. Näheres zuEbenen und Ebenen-Seitenstilen ist Kapitel 17 ab Seite 434 zu entnehmen.

Beispiel: Angenommen, Sie wollen den gesamten Kopf des Seitenstil scrheadings mit ei-ner Farbe hinterlegen. Aufgrund der Einleitung zu diesem Kapitel und Tabel-le 18.1, wissen Sie, dass scrheadings ein Ebenen-Seitenstil ist, der unter ande-rem aus den Ebenen scrheadings.head.oneside, scrheadings.head.odd undscrheadings.head.even besteht. Sie definieren nun drei weitere Ebenen für de-ren Hintergrund und fügen diese am Anfang des Seitenstils ein:

Kapitel 18: Zusätzliche Möglichkeiten von scrlayer-scrpage 478

Tabelle 18.1.: Die von scrlayer-scrpage zu einem Seitenstil Name definierten Ebenen

Name der Ebene Bedeutung der EbeneName .head.above.line die Linie über dem KopfName .head.odd der Kopf von rechten Seiten im doppelseitigen LayoutName .head.even der Kopf von linken Seiten im doppelseitigen LayoutName .head.oneside der Kopf von Seiten im einseitigen LayoutName .head.below.line die Linie unter dem KopfName .foot.above.line die Linie über dem FußName .foot.odd der Fuß von rechten Seiten im doppelseitigen LayoutName .foot.even der Fuß von linken Seiten im doppelseitigen LayoutName .foot.oneside der Fuß von Seiten im einseitigen LayoutName .foot.below.line die Linie unter dem Fuß

\documentclass{scrartcl}\usepackage[automark]{scrlayer-scrpage}\usepackage{xcolor}\usepackage{blindtext}\DeclareLayer[clone=scrheadings.head.oneside,contents={%\color{yellow}%\rule[-\dp\strutbox]%

{\layerwidth}{\layerheight}%}%

]{scrheadings.head.oneside.background}\DeclareLayer[clone=scrheadings.head.odd,

contents={%\color{yellow}%\rule[-\dp\strutbox]%

{\layerwidth}{\layerheight}%}%

]{scrheadings.head.odd.background}\DeclareLayer[clone=scrheadings.head.even,

contents={%\color{yellow}%\rule[-\dp\strutbox]%

{\layerwidth}{\layerheight}%}%

]{scrheadings.head.even.background}\AddLayersAtBeginOfPageStyle{scrheadings}{%

scrheadings.head.oneside.background,%scrheadings.head.odd.background,%

Kapitel 18: Zusätzliche Möglichkeiten von scrlayer-scrpage 479

scrheadings.head.even.background%}\pagestyle{scrheadings}\begin{document}\blinddocument\end{document}

Wie Sie sehen, wurden in dem Beispiel drei Ebenen verwendet, damit Position undGröße der Hintergrund-Ebenen per Option clone einfach jeweils von der Ebene fürden Kopf kopiert werden konnten. Das ist einfacher, als nur eine Hintergrundebenezu verwenden und für diese die Position umständlich dynamisch zu bestimmen.Der farbige Hintergrund selbst wurde in diesem Beispiel mit einer \rule-Anweisunggesetzt. Für die Größe wurde dabei mit \layerwidth und \layerheight die aktu-elle Breite und Höhe der Ebene verwendet. Diese wurde per optionalem Argumentum die Höhe der Unterlängen \dp\strutbox nach unten verschoben.

Statt wie im Beispiel für die Hintergrundfarbe neue Ebenen hinzuzufügen, hätte man dasProblem übrigens auch mit \colorbox und \chead lösen können. Es wird empfohlen, eineentsprechende Lösung als Übung zu erarbeiten. Ebenso hätte man die Hintergrundebenenauch einzeln und jeweils unmittelbar vor der entsprechenden Inhaltsebene einfügen können.Eine entsprechende Umsetzung bietet sich als weitere Übung an.

18.4. Definition einfacher Seitenstile mit dreigeteiltem Kopf und Fuß

Im KOMA-Script-Buch [Koh18a] finden sich an dieser Stelle weitere Informationen.

18.5. Das obsolete Erbe von scrpage2

Das Paket scrlayer-scrpage enthält auch noch einige Altlasten, die von scrpage2 stammen undnur existieren, um möglichst kompatibel mit jenem Paket zu sein. Kenntnisse dazu benötigenAnwender nur, wenn sie ein altes Dokument, das noch auf scrpage2 basiert, bearbeiten wollen. Fürneue Dokumente sollten die hier dokumentieren Dinge dagegen nicht verwendet werden!

hmode=Ein-Aus-Wert

Bei scrpage2 wurden die Köpfe und Füße der Seitenstile noch grundsätzlich im horizontalenModus ausgegeben. Bei scrlayer-scrpage wird hingegen in der Voreinstellung erst durch entspre-chende Ausgaben selbst in den horizontalen Modus geschaltet. Aktiviert man jedoch Optionhmode verhält sich scrlayer-scrpage auch in dieser Hinsicht kompatibel mit scrpage2 und schaltetbereits vor der Ausgabe in den horizontalen Modus. Dies kann Auswirkungen sowohl auf dieVerarbeitung von Leerzeichen am Anfang der Ausgabe als auch auf die vertikale Ausrichtunghaben.

Kapitel 18: Zusätzliche Möglichkeiten von scrlayer-scrpage 480

Die Option versteht die Standardwerte für einfache Schalter, die in Tabelle 2.5 auf Seite 42angegeben sind. In der Voreinstellung ist der Schalter deaktiviert.Im KOMA-Script-Buch [Koh18a] finden sich an dieser Stelle weitere Informationen.

Kapitel 19: Notizspalten mit scrlayer-notecolumn 481

Notizspalten mit scrlayer-notecolumn

Bis einschließlich Version 3.11b unterstützte KOMA-Script Notizspalten nur in Form der Mar-ginalienspalte, die mit \marginpar und \marginline (siehe Abschnitt 3.21, Seite 157) mitInhalt versehen werden können. Jene Art der Randnotizen hat allerdings einige Nachteile:

• Randnotizen können nur vollständig auf einer einzelnen Seite gesetzt werden. Seitenum-brüche innerhalb von Randnotizen sind nicht möglich. Dies führt teilweise dazu, dass dieRandnotizen bis in den unteren Rand hineinragen.

• Randnotizen in der Nähe des Seitenumbruchs können auf die nächste Seite rutschenund dort im Falle des doppelseitigen Layouts mit alternierenden Marginalienspalten imfalschen Rand ausgegeben werden. Dieses Problem ist mit dem Zusatzpaket mparhackoder durch Verwendung von \marginnote aus dem Paket marginnote (siehe [Koh12])lösbar.

• Randnotizen innerhalb von Gleitumgebungen oder Fußnoten sind nicht möglich. Auchdieses Problem ist mit marginnote lösbar.

• Es gibt nur eine Marginalienspalte oder allenfalls zwei, wenn mit \reversemarginparund \normalmarginpar gearbeitet wird, wobei \reversemarginpar bei doppelseitigenDokumenten kaum zu gebrauchen ist.

Die Verwendung von marginnote führt zu einem weiteren Problem. Da das Paket keine Kollisi-onserkennung besitzt, können sich Randnotizen, die in unmittelbarer Nähe veranlasst wurden,gegenseitig ganz oder teilweise überdecken. Darüber hinaus führt \marginnote je nach dengewählten Einstellungen von marginnote manchmal zu Veränderungen beim Zeilenabstand desnormalen Textes.Das Paket scrlayer-notecolumn tritt an, all diese Probleme zu lösen. Dazu stützt es sich auf

die Grundfunktionalität von scrlayer. Damit einher geht jedoch auch ein Nachteil: Notizenkönnen nur auf den Seiten ausgegeben werden, die einen auf scrlayer basierenden Seitenstilbesitzen. Dieser Nachteil lässt sich mit Hilfe von scrlayer-scrpage jedoch leicht auflösen odersogar in einen Vorteil verwandeln.

19.1. Hinweise zum Entwicklungsstand

Das Paket wurde ausschließlich zur Demonstration des Potentials von scrlayer als sogenannterProof of Concept entwickelt. Obwohl es sich derzeit noch in einem recht frühen Entwicklungs-stadium befindet, ist die Stabilität von weiten Teilen weniger eine Frage von scrlayer-notecolumnals von scrlayer. Dennoch ist davon auszugehen, dass sich auch in scrlayer-notecolumn noch Feh-ler befinden. Es wird darum gebeten, diese bei Auffinden zu melden. Einige Unzulänglichkeiten

Kapitel 19: Notizspalten mit scrlayer-notecolumn 482

des Pakets sind jedoch auch der Minimierung des Aufwands geschuldet. So können Notiz-spalten zwar über Seiten hinweg umbrochen werden, allerdings findet dabei kein neuerlicherAbsatzumbruch statt. Dies ist bei TEX schlicht nicht vorgesehen.

Da das Paket eher als experimentell gilt, findet sich die Anleitung hier im zweiten Teil derKOMA-Script-Anleitung. Dementsprechend richtet sie sich auch in erster Linie an erfahreneAnwender. Für Anfänger oder Anwender, die sich bereits deutlich auf dem Weg zum LATEX-Experten befinden, mag daher einiges in den nachfolgenden Erklärungen unklar oder garunverständlich sein. Ich bitte um Nachsicht, dass ich bei experimentellen Paketen den Aufwandfür die Anleitung halbwegs erträglich halten will.

19.2. Frühe oder späte Optionenwahl

Es gilt sinngemäß, was in Abschnitt 2.4 geschrieben wurde. Falls Sie also Abschnitt 2.4 bereitsgelesen und verstanden haben, können Sie auf Seite 483 mit Abschnitt 19.3 fortfahren.

\documentclass[Optionenliste ]{KOMA-Script-Klasse }\usepackage[Optionenliste ]{Paket-Liste }

Bei LATEX ist vorgesehen, dass Anwender Klassenoptionen in Form einer durch Komma ge-trennten Liste einfacher Schlüsselwörter als optionales Argument von \documentclass ange-ben. Außer an die Klasse werden diese Optionen auch an alle Pakete weitergereicht, die dieseOptionen verstehen. Ebenso ist vorgesehen, dass Anwender Paketoptionen in Form einer durchKomma getrennten Liste einfacher Schlüsselwörter als optionales Argument von \usepackageangeben. KOMA-Script erweitertv3.00 den Mechanismus der Optionen für die KOMA-Script-Klassen und einige Pakete um weitere Möglichkeiten. So haben die meisten Optionen beiKOMA-Script zusätzlich einen Wert. Eine Option hat also nicht unbedingt nur die FormOption , sondern kann auch die Form Option =Wert haben. Bis auf diesen Unterschied arbei-ten \documentclass und \usepackage bei KOMA-Script wie in [Tea05b] oder jeder LATEX-Einführung, beispielsweise [DGS+12], beschrieben.

Gegenüber der nachfolgend vorgestellten Schnittstelle zu Einstellungen von Optionen hat\documentclass einen Nachteil, der unbedingt zu beachten ist: Anweisungen, Längen, Zählerund ähnliches können darin leicht zerbrechen. So führt die Verwendung einer LATEX-Längeim Wert einer Option bei dieser Anweisung bei vielen Nicht-KOMA-Script-Klassen zu einerFehlermeldung, noch bevor der Wert an ein KOMA-Script-Paket übergeben wird, es alsodie Kontrolle darüber übernehmen könnte. Wertzuweisungen mit LATEX-Längen oder LATEX-Zählern sollten daher nie per \documentclass, sondern mit den nachfolgend dokumentiertenAnweisungen \KOMAoptions oder \KOMAoption vorgenommen werden.

Kapitel 19: Notizspalten mit scrlayer-notecolumn 483

\KOMAoptions{Optionenliste }\KOMAoption{Option }{Werteliste }

KOMA-Scriptv3.00 bietet bei den meisten Klassen- und Paketoptionen auch die Möglichkeit, denWert der Optionen noch nach dem Laden der Klasse beziehungsweise des Pakets zu ändern.Mit der Anweisung \KOMAoptions kann man wie bei \documentclass oder \usepackage dieWerte einer Reihe von Optionen ändern. Jede Option der Optionenliste hat dabei die FormOption =Wert .

Einige Optionen besitzen auch einen Säumniswert (engl. default value). Versäumt man dieAngabe eines Wertes, verwendet man die Option also einfach in der Form Option , so wirdautomatisch dieser Säumniswert angenommen.Manche Optionen können gleichzeitig mehrere Werte besitzen. Für solche Optionen besteht

die Möglichkeit, mit \KOMAoption der einen Option nacheinander eine Reihe von Wertenzuzuweisen. Die einzelnen Werte sind dabei in der Werteliste durch Komma voneinandergetrennt.Soll ein Wert ein Gleichheitszeichen oder ein Komma enthalten, so ist der Wert in geschweif-

te Klammern zu setzen.KOMA-Script bedient sich für die Realisierung dieser Möglichkeit der Anweisungen

\FamilyOptions und \FamilyOption mit der Familie »KOMA«. Siehe dazu Teil II, Abschnitt 12.2,ab Seite 345.Mit \KOMAoptions oder \KOMAoption gesetzte Optionen erreichen sowohl die KOMA-Script-

Klasse als auch alle bereits geladenen KOMA-Script-Pakete, die diese Optionen kennen. Isteine Option oder ein Wert insgesamt unbekannt, so wird die Option einschließlich des Wertesvon scrbase als fehlerhaft gemeldet.

19.3. Textauszeichnungen

Es gilt sinngemäß, was in Abschnitt 3.6 geschrieben wurde. Falls Sie also Abschnitt 3.6 bereitsgelesen und verstanden haben, können Sie auf Seite 485 mit Abschnitt 19.4 fortfahren.LATEX verfügt über eine ganze Reihe von Anweisungen zur Textauszeichnung. Neben der

Wahl der Schriftart gehören dazu auch Befehle zur Wahl einer Textgröße oder der Textaus-richtung. Näheres zu den normalerweise definierten Möglichkeiten ist [DGS+12], [Tea05b] und[Tea05a] zu entnehmen.

Kapitel 19: Notizspalten mit scrlayer-notecolumn 484

\setkomafont{Element }{Befehle }\addtokomafont{Element }{Befehle }\usekomafont{Element }

Mit Hilfe der Anweisungen \setkomafont und \addtokomafont ist es möglich, die Befehlefestzulegen, mit denen die Schrift eines bestimmten Element s umgeschaltet wird. Theore-tisch könnten als Befehle alle möglichen Anweisungen einschließlich Textausgaben verwen-det werden. Sie sollten sich jedoch unbedingt auf solche Anweisungen beschränken, mit de-nen wirklich nur Schriftattribute umgeschaltet werden. In der Regel werden dies Befehle wie\rmfamily, \sffamily, \ttfamily, \upshape, \itshape, \slshape, \scshape, \mdseries,\bfseries, \normalfont oder einer der Befehle \Huge, \huge, \LARGE, \Large, \large,\normalsize, \small, \footnotesize, \scriptsize und \tiny sein. Die Erklärung zu diesenBefehlen entnehmen Sie bitte [DGS+12], [Tea05b] oder [Tea05a]. Auch Farbumschaltungen wie\normalcolor sind möglich (siehe [Car17] und [Ker07]). Die Verwendung anderer Anweisun-gen, inbesondere solcher, die Umdefinierungen vornehmen oder zu Ausgaben führen, ist nichtvorgesehen. Seltsames Verhalten ist in diesen Fällen möglich und stellt keinen Fehler dar.

Mit \setkomafont wird die Schriftumschaltung eines Elements mit einer völlig neuen Defi-nition versehen. Demgegenüber wird mit \addtokomafont die existierende Definition lediglicherweitert. Es wird empfohlen, beide Anweisungen nicht innerhalb des Dokuments, sondern nurin der Dokumentpräambel zu verwenden. Beispiele für die Verwendung entnehmen Sie bitteden Abschnitten zu den jeweiligen Elementen.Mit der Anweisung \usekomafont kann die aktuelle Schriftart auf diejenige umgeschaltet

werden, die für das angegebene Element definiert ist.

\usefontofkomafont{Element }\useencodingofkomafont{Element }\usesizeofkomafont{Element }\usefamilyofkomafont{Element }\useseriesofkomafont{Element }\useshapeofkomafont{Element }

Manchmalv3.12 werden in der Schrifteinstellung eines Elements auch Dinge vorgenommen, die mitder Schrift eigentlich gar nichts zu tun haben, obwohl dies ausdrücklich nicht empfohlen wird.Soll dann nur die Schrifteinstellung, aber keine dieser zusätzlichen Einstellungen ausgeführtwerden, so kann statt \usekomafont die Anweisung \usefontofkomafont verwendet werden.Diese Anweisung übernimmt nur die Schriftgröße und den Grundlinienabstand, die Codierung(engl. encoding), die Familie (engl. family), die Strichstärke oder Ausprägung (engl. font series)und die Form oder Ausrichtung (engl. font shape).Mit den übrigen Anweisungen können auch einzelne Schriftattribute übernommen werden.

Dabei übernimmt \usesizeofkomafont sowohl die Schriftgröße als auch den Grundlinienab-stand.

Kapitel 19: Notizspalten mit scrlayer-notecolumn 485

Diese Befehle sollten jedoch nicht als Legitimation dafür verstanden werden, in die Schrift-einstellungen der Elemente beliebige Anweisungen einzufügen. Das kann nämlich sehr schnellzu Fehlern führen (siehe Abschnitt 21.5, Seite 505).

19.4. Deklaration neuer Notizspalten

Beim Laden des Pakets wird bereits automatisch eine Notizspalte namens marginpar de-klariert. Wie der Name andeutet, liegt diese Notizspalte im Bereich der normalen Mar-ginalienspalte von \marginpar und \marginline. Dabei werden auch die Einstellungen\reversemarginpar und \normalmarginpar beachtet, allerdings nicht für die einzelnen No-tizen, sondern nur für die gesamten Notizen einer Seite. Maßgeblich ist dabei die Einstellung,die am Ende der Seite, nämlich bei der Ausgabe der Notizspalte, gilt. Will man hingegen in-nerhalb einer Seite sowohl Notizen links als auch rechts neben dem Haupttext haben, so sollteman sich eine zweite Notizspalte definieren.Die Voreinstellungen für alle neu deklarierten Notizspalten entsprechen im Übrigen den

erwähnten Einstellungen für die vordefinierte marginpar. Diese können bei der Deklarationjedoch leicht geändert werden.Es ist zu beachten, dass Notizspalten nur auf Seiten ausgegeben werden, deren Seitenstil

auf dem Paket scrlayer basiert. Das Paket scrlayer wird von scrlayer-notecolumn automatischgeladen und stellt in der Voreinstellung lediglich den Seitenstil empty bereit. Werden weitereSeitenstile benötigt, wird zusätzlich das Paket scrlayer-scrpage empfohlen.

\DeclareNoteColumn[Liste der Einstellungen ]{Name der Notizspalte }\DeclareNewNoteColumn[Liste der Einstellungen ]{Name der Notizspalte }\ProvideNoteColumn[Liste der Einstellungen ]{Name der Notizspalte }\RedeclareNoteColumn[Liste der Einstellungen ]{Name der Notizspalte }

Mit Hilfe dieser Anweisungen können Notizspalten angelegt werden. Dabei erzeugt\DeclareNoteColumn die Notizspalte ungeachtet der Tatsache, ob sie bereits existiert, wäh-rend \DeclareNewNoteColumn einen Fehler ausgibt, falls der Name der Notizspalte bereitsfür eine andere Notizspalte vergeben ist und \ProvideNoteColumn in eben diesem Fall schlichtnichts tut. Mit \RedeclareNoteColumn wiederum kann nur eine bereits existierende Notiz-Spalte neu konfiguriert werden.Bei der Neukonfigurierung bereits existierender Notizspalten mit \DeclareNoteColumn oder

\RedeclareNoteColumn gehen im Übrigen die bereits erzeugten Notizen für diese Spalte nichtverloren, sondern bleiben erhalten.

Für neue Notizspalten wird immer ein Element zur Änderung der Schriftattribute mit\setkomafont und \addtokomafont angelegt, falls dieses noch nicht existiert. Als Name fürdas Element wird notecolumn.Name der Notizspalte verwendet. Dementsprechend exis-tiert für die vordefinierte Notizspalte marginpar das Element notecolumn.marginpar. Die

Kapitel 19: Notizspalten mit scrlayer-notecolumn 486

Voreinstellung kann bei der Deklaration einer Notizspalte direkt über die Option font inner-halb der optionalen Liste der Einstellungen angegeben werden.Die Liste der Einstellungen ist eine durch Komma separierte Liste von Einstellungen

oder Optionen. Die verfügbaren Optionen sind in Tabelle 19.1, Seite 488 zu finden. Als Vorein-stellung ist marginpar immer gesetzt, kann aber durch individuelle Einstellungen überschrie-ben werden.Da die Notizspalten mit Hilfe von scrlayer definiert werden, wird auch für jede Notiz-

spalte eine Ebene angelegt. Als Name für diese Ebene wird ebenfalls notecolumn.Name derNotizspalte verwendet. Näheres zu Ebenen ist Abschnitt 17.3, ab Seite 437 zu entnehmen.Beispiel: Angenommen, Sie sind Professor für ulkiges Recht und wollen eine Abhandlung

über das neue »Gesetz über die ausgelassene Verbreitung allgemeiner Späße«, kurzGüdaVaS, schreiben. Der Hauptaugenmerk soll dabei jeweils auf dem Kommentarzu einzelnen Paragraphen liegen. Sie entscheiden sich für ein zweispaltiges Layout,wobei der Kommentar in der Hauptspalte enthalten sein soll und die Paragraphenjeweils klein und in Farbe in einer schmaleren Notizspalte rechts daneben.\documentclass{scrartcl}\usepackage[ngerman]{babel}\usepackage{selinput}\SelectInputMappings{adieresis={ä},germandbls={ß},

}\usepackage[T1]{fontenc}\usepackage{lmodern}\usepackage{xcolor}

\usepackage{scrjura}\setkomafont{contract.Clause}{\bfseries}\setkeys{contract}{preskip=-\dp\strutbox}

\usepackage{scrlayer-scrpage}\usepackage{scrlayer-notecolumn}

\newlength{\paragraphscolwidth}\AfterCalculatingTypearea{%\setlength{\paragraphscolwidth}{%

.333\textwidth}%\addtolength{\paragraphscolwidth}{%

-\marginparsep}%}\recalctypearea\DeclareNewNoteColumn[%position=\oddsidemargin+1in

Kapitel 19: Notizspalten mit scrlayer-notecolumn 487

+.667\textwidth+\marginparsep,

width=\paragraphscolwidth,font=\raggedright\footnotesize

\color{blue}]{paragraphs}

Es wird ein einseitiger Artikel verfasst. Dazu wird die Sprache mit Hilfe des babel-Pakets auf Deutsch (neue Rechtschreibung) festgelegt. Die Eingabecodierung wirdmit Hilfe von selinput automatisch bestimmt. Als Schrift wird Latin Modern in 8-Bit-Codierung verwendet. Für die Farbeinstellungen wird das Paket xcolor genutzt.Bezüglich des Setzens von Gesetzestexten mit scrjura sei auf dessen Anleitung ver-wiesen.Da ein Seitenstil mit Seitenzahl verwendet werden soll, wird das Paketscrlayer-scrpage geladen. Somit können Notizspalten auf allen Seiten ausgegebenwerden.Dann wird das Paket scrlayer-notecolumn für die Notizspalten geladen. Die ge-wünschte Breite der Notizspalte wird über \AfterCalculatingTypearea nach jederetwaigen Neuberechnung des Satzspiegels neu berechnet. Sie soll jeweils ein Drittelder Satzspiegelbreite betragen, wobei der Abstand zwischen Text und Notizspaltezu Lasten der Notizspalte geht. Diese ist also effektiv um \marginparsep schmaler.Mit dieser Information kann dann die neue Notizspalte definiert werden. Bei derFestlegung der Position wird ein einfacher Längenausdruck genutzt. Dabei ist zubeachten, dass \oddsidemargin nicht der gesamte linke Rand ist, sondern aus his-torischen Gründen der linke Rand abzüglich 1 inch. Daher muss dieser Wert nochhinzugezählt werden.Damit ist die Deklaration abgeschlossen. Es ist zu beachten, dass die Notizspal-te bisher im Textbereich ausgegeben wird. Die Notizspalte würde also den Textüberschreiben.\begin{document}

\title{Kommentar zum GüdaVaS}\author{Professor R. O. Tenase}\date{11.\,11.~2011}\maketitle\tableofcontents

\section{Vormerkung}Das GüdaVaS ist ohne jeden Zweifel das wichtigsteGesetz, das in Spaßmanien in den letzten eintausendJahren verabschiedet wurde. Die erste Lesung fand

Kapitel 19: Notizspalten mit scrlayer-notecolumn 488

bereits am 11.\,11.~1111 im obersten spaßmanischenKongress statt, wurde aber vom damaligen Spaßvesierabgelehnt. Erst nach Umwandlung der spaßmanischen,aberwitzigen Monarchie in eine repräsentative,witzige Monarchie durch W. Itzbold,den Urkomischen, am 9.\,9.~1999 war der Weg fürdieses Gesetz endlich frei.

Dadurch, dass der Textbereich nicht verkleinert wurde, wird hier der ganze Vor-spann über die Gesamtbreite ausgegeben. Um das Beispiel zu testen, können Sievorübergehend\end{document}

ergänzen.

Offen blieb in dem Beispiel die Frage, wie der Text für den Kommentar schmaler gesetztwerden kann. Dies werden Sie bei der Fortsetzung des Beispiels erfahren.

Tabelle 19.1.: Mögliche Einstellungen für die Deklaration von Notizspalten

font=SchriftattributeEinstellung der Schriftattribute der Notizspalte mit Hilfe von \setkomafont.Für erlaubte Werte sei auf Abschnitt 19.3, Seite 484 verwiesen.Voreinstellung: leer

marginparPosition und Breite der Notizspalte werden so eingestellt, dass sie derMarginalienspalte von \marginpar entsprechen. Eine Umschaltung zwischen\reversemarginpar und \normalmarginpar wird immer nur am Ende der Seitebei der Ausgabe der Notizspalte beachtet. Es wird darauf hingewiesen, dass dieseOption kein Argument erwartet oder erlaubt.Voreinstellung: ja

normalmarginparPosition und Breite der Notizspalte werden so eingestellt, dass sie der Marginali-enspalte von \marginpar bei Einstellung \normalmarginpar entsprechen. Es wirddarauf hingewiesen, dass diese Option kein Argument erwartet oder erlaubt.Voreinstellung: nein

. . .

Kapitel 19: Notizspalten mit scrlayer-notecolumn 489

Tabelle 19.1.: Mögliche Einstellungen für die Deklaration von Notizspalten (Fortsetzung)

position=AbstandDie Notizspalte wird mit Abstand vom linken Rand des Papiers gesetzt. Dabei sindfür Abstand auch komplexe Ausdrücke gestattet, solange diese voll expandierbarsind und zum Zeitpunkt der Ausgabe der Notizspalte zu einer Länge oder zu einemLängenwert oder einem Längenausdruck expandieren. Siehe [Tea98, Abschnitt 3.5]für weitere Informationen zu Längenausdrücken.Voreinstellung: durch Option marginpar

reversemarginparPosition und Breite der Notizspalte werden so eingestellt, dass sie der Marginali-enspalte von \marginpar bei Einstellung \reversemarginpar entsprechen. Es wirddarauf hingewiesen, dass diese Option kein Argument erwartet oder erlaubt.Voreinstellung: nein

width=BreiteDie Notizspalte wird mit der angegebenen Breite gesetzt. Dabei sind für Breiteauch komplexe Ausdrücke gestattet, solange diese voll expandierbar sind und zumZeitpunkt der Ausgabe der Notizspalte zu einer Länge oder einem Längenwert odereinem Längenausdruck expandieren. Siehe [Tea98, Abschnitt 3.5] für weitere Infor-mationen zu Längenausdrücken.Voreinstellung: durch Option marginpar

19.5. Erstellen einer Notiz

Nachdem eine Notizspalte deklariert wurde, können Notizen für diese Spalte erstellt werden.Diese Notizen werden allerdings nicht unmittelbar ausgegeben, sondern zunächst nur in eineHilfsdatei mit Endung ».slnc« geschrieben. Ganz genau werden die Notizen sogar zunächst indie aux-Datei geschrieben und erst beim Lesen der aux-Datei innerhalb von \end{document} indie slnc-Datei übertragen. Dabei wird gegebenenfalls auch die Einstellung \nofiles beachtet.Beim nächsten LATEX-Lauf wird diese Hilfsdatei dann Stück für Stück je nach Fortschritt desDokuments wieder eingelesen und am Ende der Seite werden die Notizen für die jeweilige Seiteausgegeben.Es ist jedoch zu beachten, dass Notizspalten nur auf Seiten ausgegeben werden, deren Seiten-

stil auf dem Paket scrlayer basiert. Das Paket scrlayer wird von scrlayer-notecolumn automatischgeladen und stellt in der Voreinstellung lediglich den Seitenstil empty bereit. Werden weitereSeitenstile benötigt, wird zusätzlich das Paket scrlayer-scrpage empfohlen.

Kapitel 19: Notizspalten mit scrlayer-notecolumn 490

\makenote[Name der Notizspalte ]{Notiz }\makenote*[Name der Notizspalte ]{Notiz }

Mit Hilfe dieser Anweisungen kann eine Notiz erstellt werden. Dabei wird die aktuelle ver-tikale Position als vertikale Position für den Anfang der Notiz verwendet. Die horizontalePosition für die Notiz ergibt sich aus der definierten Position der Notizspalte. Für die kor-rekte Funktion ist das Paket dabei auf \pdfsavepos, \pdflastypos und \pdfpageheightbeziehungsweise deren Entsprechungen bei neueren LuaTEX-Versionen angewiesen. Ohne die-se Befehle funktioniert scrlayer-notecolumn nicht. Dabei wird außerdem davon ausgegangen,dass die genannten Primitiven exakt die Ergebnisse von PDFTEX liefern.Wird allerdings bei der Ausgabe der Notiz eine Kollision mit einer früheren Notiz in dersel-

ben Notizspalte erkannt, so wird die Notiz bis unter diese frühere Notiz verschoben. Passt dieNotiz nicht mehr auf die Seite, so wird sie ganz oder teilweise auf die nächste Seite umbrochen.Für welche Notizspalte die Notiz erstellt werden soll, wird über das optionale Argument

Name der Notizspalte bestimmt. Ist kein optionales Argument angegeben, so wird die vor-definierte Notizspalte marginpar verwendet.

Beispiel: Fügen wir nun dem Beispiel aus dem vorherigen Abschnitt einen kommentiertenParagraphen hinzu, wobei der Paragraph selbst in der neu definierten Notizspaltegesetzt werden soll.\section{Analyse}\begin{addmargin}[0pt]{.333\textwidth}\makenote[paragraphs]{%

\protect\begin{contract}\protect\Clause{%title={Kein Witz ohne Publikum}%

}Ein Witz kann nur dort witzig sein, wo erauf ein Publikum trifft.

\protect\end{contract}%}Dies ist eine der zentralsten Aussagen desGesetzes. Sie ist derart elementar, dass esdurchaus angebracht ist, sich vor der Weisheitder Verfasser zu verbeugen.

Die in Abschnitt 3.18, Seite 134 dokumentierte Umgebung addmargin wird genutzt,um den Haupttext in der Breite um die Spalte für die Paragraphen zu vermindern.Hier ist auch eines der wenigen Probleme bei Verwendung von \makenote zu erken-nen. Da das obligatorische Argument in Dateien geschrieben wird, können Befehleinnerhalb des Arguments leider zerbrechen. Um das zu verhindern, wird empfohlen,vor alle Befehle ein \protect zu setzen. Anderenfalls kann die Verwendung vonBefehlen innerhalb dieses Arguments zu Fehlermeldungen führen.

Kapitel 19: Notizspalten mit scrlayer-notecolumn 491

Prinzipiell könnten Sie das Beispiel nun bereits mit\end{addmargin}\end{document}

beenden, wenn Sie ein Ergebnis sehen wollen.

Beim Testen des Beispiels, werden Sie feststellen, dass die Gesetzesspalte tiefer hinunter reichtals der Kommentartext. Wenn Sie zwecks Übung einen weiteren Abschnitt mit einem weiterenParagraphen hinzufügen, ergibt sich eventuell das Problem, dass der Kommentar nicht unter-halb des Gesetzestextes, sondern direkt im Anschluss an den bisherigen Kommentar fortgesetztwird. Eine Lösung für dieses Problem, werden Sie gleich kennenlernen.Dasv0.1.2583 im Beispiel erwähnte Problem mit dem Zerbrechen von Befehlen tritt bei der Sternvari-

ante normalerweise nicht auf. Diese verwendet \detokenize, um die Expansion zu verhindern.Das bedeutet aber auch, dass man in der Notiz keine Befehle verwenden sollte, die ihre Be-deutung innerhalb des Dokuments verändern.Allerdings treten bei beiden Formen zwei andere Probleme auf. Das erste betrifft die Ver-

wendung von Farbe mit Hilfe von color oder xcolor innerhalb der Notizspalten. Um Farb-umschaltungen innerhalb der Notizspalten zu ermöglichen, wäre für jede Notizspalte eineeigene Farbverwaltung mit einem sogenannten Color Stack notwendig. Da das Paket ledig-lich als Machbarkeitsstudie entworfen ist und X ETEX nicht mehrere Color Stacks unterstützt,sind mit X ETEX Farbumschaltungen nur eingeschränkt über die Schriftattribute des Elementsnotecolumn.Name der Notizspalte möglich, wodurch der Aufwand für die Implementierungeiner eigenen Farbverwaltung umgangen wurde.Das zweite, eher konzeptionelle Problem ist, dass die Hilfsdatei mit den Informationen zum

Inhalt der Notizspalte während der Verarbeitung der Kopfzeile einer Seite eingelesen wird.Das hat vor allem dann Auswirkungen, wenn dies geschieht, während eine Umgebung wieverbatim aktiv ist. In diesem Fall wären während des Einlesens der Hilfsdatei die \catcode-Einstellungen dieser Umgebung aktiv. Dies würde zwangsläufig zu Fehlern in der Verarbei-tung und Ausgabe führen. Um dies abzumildern, werden während \begin{document} die\catcode-Einstellungen der in \dospecials gespeicherten Zeichen gespeichert und währenddem Einlesen der Hilfsdatei explizit wiederhergestellt.

\syncwithnotecolumn[Name der Notizspalte ]

Mit Hilfe dieser Anweisung wird in einer Notizspalte und im Haupttext des Dokuments jeein Synchronisierungspunkt erstellt. Wann immer bei der Ausgabe einer Notizspalte oder desHaupttextes ein solcher Synchronisierungspunkt erreicht wird, wird eine Marke angelegt, derenInhalt die aktuelle Seite und die aktuelle vertikale Position ist.Parallel zum Erstellen der Synchronisierungspunkte wird ermittelt, ob in der Notizspalte

und im Haupttext beim letzten LATEX-Lauf eine Marke angelegt wurde. Falls das der Fall ist,werden deren Werte miteinander verglichen. Liegt die Marke der Notizspalte tiefer auf der

Kapitel 19: Notizspalten mit scrlayer-notecolumn 492

Seite oder auf einer späteren Seite, so wird im Haupttext bis zu der Stelle der Notizspaltevorgerückt.In der Regel sollten Synchronisierungspunkte nicht innerhalb eines Absatzes des Haupttex-

tes, sondern nur zwischen diesen gesetzt werden. Wird \syncwithnotecolumn dennoch inner-halb eines Absatzes verwendet, so wird der Synchronisierungspunkt im Haupttext tatsächlicherst nach der aktuellen Zeile eingefügt. In dieser Hinsicht ähnelt \syncwithnotecolumn alsobeispielsweise \vspace.

Dadurch, dass Synchronisierungspunkte in den Notizspalten erst beim nächsten LATEX-Lauferkannt werden, benötigt der Mechanismus mindestens drei LATEX-Läufe. Aus jeder neuenSynchronisierung können sich außerdem Verschiebungen für spätere Synchronisierungspunkteergeben, was wiederum die Notwendigkeit weiterer LATEX-Läufe nach sich zieht. Zu erkennensind solche Verschiebungen in der Regel an der Meldung: »LATEX Warning: Label(s) may havechanged. Rerun to get cross-references right.« Aber auch Meldungen über undefinierte Labelskönnen auf die Notwendigkeit eines weiteren LATEX-Laufs hinweisen.Wird das optionale Argument nicht angegeben, so wird an seiner Stelle marginpar, also die

vordefinierte Notizspalte verwendet. Es sei an dieser Stelle darauf hingewiesen, dass ein leeresoptionales Argument nicht gleichbedeutend mit dem Weglassen eines optionalen Argumentsist!Es ist nicht erlaubt, \syncwithnotecolumn innerhalb einer Notiz selbst, also im obligato-

rischen Argument von \makenote zu verwenden! Dieser Fehler kann derzeit nicht abgefangenwerden und führt dazu, dass mit jedem LATEX-Lauf neue Verschiebungen auftreten, so dassnie ein endgültiger Zustand erreicht wird. Um zwei oder mehrere Notizspalten miteinanderzu synchronisieren, sind diese stattdessen mit dem Haupttext zu synchronisieren, da dabeiauch die Spalten miteinander synchronisiert werden. Die hierzu empfohlene Anweisung wirdnachfolgend beschrieben.

Beispiel: Führen wir nun das obige Beispiel fort, indem wir zunächst einen Synchronisati-onspunkt und dann einen weiteren Paragraphen mit Kommentar hinzufügen:

\syncwithnotecolumn[paragraphs]\bigskip\makenote[paragraphs]{%

\protect\begin{contract}\protect\Clause{title={Komik der Kultur}}\setcounter{par}{0}%Die Komik eines Witzes kann durch daskulturelle Umfeld, in dem er erzählt wird,bestimmt sein.

Die Komik eines Witzes kann durch daskulturelle Umfeld, in dem er spielt,bestimmt sein.

\protect\end{contract}}

Kapitel 19: Notizspalten mit scrlayer-notecolumn 493

Die kulturelle Komponente eines Witzes isttatsächlich nicht zu vernachlässigen. Über diepolitische Korrektheit der Nutzung deskulturellen Umfeldes kann zwar trefflichgestritten werden, nichtsdestotrotz ist dieTreffsicherheit einer solchen Komik imentsprechenden Umfeld frappierend. Auf deranderen Seite kann ein vermeintlicher Witz imfalschen kulturellen Umfeld auch zu einerechten Gefahr für den Witzeerzähler werden.

Außer dem Synchronisationspunkt wurde hier auch noch ein vertikaler Abstand mit\bigskip eingefügt, um die einzelnen Paragraphen und ihre Kommentare besservoneinander abzusetzen.Außerdem wird hier ein weiterer Punkt, der zu einem Problem werden kann, sicht-bar. Da die Notizspalten mit Boxen arbeiten, die zusammengebaut und zerlegtwerden, kann es bei Zählern innerhalb der Notizspalten teilweise zu Verschiebun-gen kommen. Im Beispiel würde daher der erste Absatz nicht mit 1, sondern mit 2nummeriert. Dies kann jedoch mit einem beherzten Zurücksetzen des entsprechen-den Zählers leicht korrigiert werden.Das Beispiel ist damit fast fertig, was noch fehlt, ist das Ende der Umgebungen:\end{addmargin}\end{document}

Tatsächlich wären natürlich auch noch die restlichen Paragraphen des Gesetzes zukommentieren. Dies sei mir hier jedoch erlassen.

Doch halt! Was wäre, wenn in diesem Beispiel der Paragraph nicht mehr auf die Seiten passenwürde? Würde er dann auf der nächsten Seite ausgegeben? Diese Frage wird im nächstenAbschnitt beantwortet werden.

\syncwithnotecolumns[Liste von Notizspalte ]

Diese Anweisung führt eine Synchronisierung des Haupttextes mit allen in der mit Kommaseparierten Liste von Notizspalten durch. Dabei wird der Haupttext mit der Notizspal-te synchronisiert, deren Marke am weitesten hinten im Dokument steht. Somit werden alsNebeneffekt auch die Notizspalten untereinander synchronisiert.Wird das optionale Argument nicht angegeben oder ist es leer (oder beginnt es mit \relax),

so wird mit allen deklarierten Notizspalten synchronisiert.

19.6. Erzwungene Ausgabe von Notizspalten

Neben der normalen Ausgabe der Notizspalten, wie sie im vorherigen Abschnitt beschriebenist, ist es manchmal auch erforderlich, alle aufgesammelten Notizen, die noch nicht ausgegeben

Kapitel 19: Notizspalten mit scrlayer-notecolumn 494

wurden, auszugeben. Das ist insbesondere dann sinnvoll, wenn längere Notizen dazu führen,dass immer mehr Notizen nach unten und auf neue Seiten verschoben werden. Ein guterZeitpunkt für eine solche erzwungene Ausgabe ist beispielsweise das Ende eines Kapitels oderdas Ende des Dokuments.

\clearnotecolumn[Name der Notizspalte ]

Mit dieser Anweisung werden alle Notizen einer bestimmen Notizspalte ausgegeben, die biszum Ende der aktuellen Seite noch nicht ausgegeben sind, aber auf dieser oder einer vorheri-gen Seite erstellt wurden. Zur Ausgabe dieser noch anhängigen Notizen werden nach BedarfLeerseiten erstellt. Während der Ausgabe der anhängigen Notizen dieser Notizspalte werdengegebenenfalls auch anhängige Notizen anderer Notizspalten ausgegeben, jedoch nur so lange,wie dies zur Ausgabe der anhängigen Notizen der angegebenen Notizspalte notwendig ist.Während der Ausgabe der anhängigen Notizen kann es auch geschehen, dass irrtümlich

Notizen ausgegeben werden, die im vorherigen LATEX-Lauf auf den Seiten erstellt wurden,die nun durch die eingefügten Leerseiten ersetzt werden. Dies normalisiert sich in einem dernächsten LATEX-Läufe. Zu erkennen sind solche Verschiebungen in der Regel an der Meldung:»LATEX Warning: Label(s) may have changed. Rerun to get cross-references right.«Die Notizspalte, deren anhängige Notizen ausgegeben werden soll, ist über das optionale

Argument, Name der Notizspalte , angegeben. Ist kein solches Argument angegeben, so wirddie vordefinierte Notizspalte marginpar verwendet.

Dem aufmerksamen Leser wird nicht entgangen sein, dass die erzwungene Ausgabe einerNotizspalte der Synchronisierung nicht unähnlich ist. Allerdings befindet man sich nach dererzwungenen Ausgabe im Fall, dass tatsächlich eine Ausgabe stattfindet, am Anfang der Seitenach der letzten Ausgabe und nicht unmittelbar unterhalb der letzten Ausgabe. Dafür termi-niert die erzwungene Ausgabe in der Regel mit weniger LATEX-Läufen.

\clearnotecolumns[Liste von Notizspalten-Namen ]

Diese Anweisung arbeitet vergleichbar mit \clearnotecolumn. Allerdings kann hier als optio-nales Argument nicht nur eine Notizspalte angegeben werden, sondern es ist eine durch Kommagetrennte Liste mehrerer Namen von Notizspalten erlaubt. Es werden dann die anhängigenNotizen all dieser Spalten ausgegeben.Wurde das optionale Argument nicht angegeben oder ist es leer, so werden die anhängigen

Notizen aller Notizspalten ausgegeben.

autoclearnotecolumns=Ein-Aus-Wert

In der Regel wird man anhängige Notizen immer dann ausgeben lassen, wenn im Dokumentexplizit oder implizit – beispielsweise in Folge von \chapter – die Anweisung \clearpageausgeführt wird. Dies ist auch am Ende eines Dokuments innerhalb von \end{document} derFall. Über die Option autoclearnotecolumns kann daher gesteuert werden, ob bei Ausführung

Kapitel 19: Notizspalten mit scrlayer-notecolumn 495

von \clearpage automatisch auch \clearnotecolumns ohne Argument ausgeführt werdensoll.Da davon ausgegangen wird, dass dies in der Regel erwünscht ist, ist die Option in der

Voreinstellung aktiv. Man kann sie jedoch über die entsprechenden Werte für einfache Schalter(siehe Tabelle 2.5 auf Seite 42) jederzeit aus- und auch wieder einschalten.Es ist zu beachten, dass im Falle der Deaktivierung der automatischen Ausgabe anhängiger

Notizen am Ende des Dokument Notizen ganz oder teilweise verloren gehen können. Dahersollte man in diesem Fall vor \end{document} sicherheitshalber ein \clearnotecolumns ein-fügen.Damit ist nun auch die Frage nach dem Beispiel im letzten Abschnitt beantwortet, ob der

Paragraph auch komplett ausgegeben würde, wenn er auf die nächste Seite umbrochen werdenmüsste. Dies ist in der Voreinstellung selbstverständlich der Fall. Da es jedoch nach demEnde der addmargin-Umgebung geschehen würde, könnte es eventuell noch zu Überlappungendurch nachfolgenden Text kommen. Daher wäre es im Beispiel durchaus sinnvoll, nach deraddmargin-Umgebung einen weiteren Synchronisationspunkt einzufügen.Das Ergebnis des Beispiels ist übrigens in Abbildung 19.1 zu sehen.

Kapitel 19: Notizspalten mit scrlayer-notecolumn 496

Abbildung 19.1.: Eine Ergeb-nisseite zu dem Beispiel ausdiesem Kapitel

Kommentar zum GüdaVaSProfessor R. O. Tenase

11. 11. 2011

Inhaltsverzeichnis1 Vormerkung 1

2 Analyse 1

1 VormerkungDas GüdaVaS ist ohne jeden Zweifel das wichtigste Gesetz, das in Spaßmaniern inden letzten eintausend Jahren verabschiedet wurde. Die erste Lesung fand bereits am11. 11 1111 im obersten spaßmanischen Kongress statt, wurde aber vom damalige Spaß-vesier abgelehnt. Erst nach Umwandlung der spaßmanischen, aberwitzigen Monarchie ineine repräsentative, witzige Monarchie durch W. Itzbold, den urkomischen, am 9. 9. 1999war der Weg für dieses Gesetz endlich frei.

2 AnalyseDies ist eine der zentralsten Aussagen des Gesetzes. Sie istderart elementar, dass es durchaus angebracht ist, sich vorder Weisheit der Verfasser zu verbeugen.

Die kulturelle Komponente eines Witzes ist tatsächlichnicht zu vernachlässigen. Über die politische Korrektheitder Nutzung des kulturellen Umfeldes kann zwar trefflichgestritten werden, nichtsdestotrotz ist die Treffsicherheiteiner solchen Komik im entsprechenden Umfeld frappie-rend. Auf der anderen Seite kann ein vermeintlicher Witzim falschen kulturellen Umfeld auch zu einer echten Gefahrfür den Witzeerzähler werden.

§ 1 Kein Witz ohnePublikum

Ein Witz kann nur dort witzigsein, wo er auf ein Publikumtrifft.

§ 2 Komik der Kultur

(1) Die Komik eines Witzeskann durch das kulturelleUmfeld, in dem er erzähltwird, bestimmt sein.(2) Die Komik eines Witzeskann durch das kulturelleUmfeld, in dem er spielt,bestimmt sein.

1

Kapitel 20: Zusätzliche Informationen zum Paket typearea.sty 497

Zusätzliche Informationen zum Paket typearea.sty

In diesem Kapitel finden Sie zusätzliche Informationen zum Paket typearea. Einige Teile desKapitels sind dabei dem KOMA-Script-Buch [Koh18a] vorbehalten. Dies sollte kein Problemsein, denn der normale Anwender, der das Paket einfach nur verwenden will, wird diese In-formationen eher selten benötigen. Ein Teil der Informationen richtet sich an Anwender, dieausgefallene Aufgaben lösen oder eigene Pakete schreiben wollen, die auf typearea basieren. Einweiterer Teil der Informationen behandelt Möglichkeiten von typearea, die aus Gründen derKompatibilität zu den Standardklassen oder früheren Versionen von KOMA-Script existieren.Die Teile, die nur aus Gründen der Kompatibilität zu früheren Versionen von KOMA-Scriptexistieren, sind in serifenloser Schrift gesetzt und sollten nicht mehr verwendet werden.

20.1. Experimentelle Möglichkeiten

In diesem Abschnitt werden experimentelle Möglichkeiten beschrieben. Experimentell bedeutetin diesem Zusammenhang, dass die Funktion nicht garantiert werden kann. Dafür kann es zweiGründe geben. Zum einen steht die endgültige Funktion oder Implementierung eventuell nochnicht abschließend fest. Zum anderen hängen die Möglichkeiten teilweise von Interna andererPakete ab und können deshalb in ihrer Funktion nur so lange garantiert werden, wie dieseanderen Pakete nicht geändert werden.

usegeometry=Ein-Aus-Wert

Normalerweise kümmert sich typearea wenig darum, ob es in irgend einer Konstellation zu-sammen mit dem Paket geometry (siehe [Ume10]) verwendet wird. Das bedeutet insbesondere,dass geometry nach wie vor nichts davon mitbekommt, wenn man mit typearea beispielsweisedie Papiergröße ändert – etwas, das geometry selbst gar nicht bietet.Sobaldv3.17 Option usegeometry gesetzt wird, versucht typearea, alle eigenen Optionen

für geometry in dessen Optionen zu übersetzen. Innerhalb des Dokuments wird sogar\newgeometry aufgerufen, wenn neue Parameter aktiviert werden (siehe \activateareas imnachfolgenden Abschnitt). Da geometry keine Änderung der Papiergröße oder Papierausrich-tung via \newgeometry bietet, wird diese bei Bedarf über interne Anweisungen und Längenvon geometry umgesetzt. Getestet ist dies für geometry 5.3 bis 5.6.Die Option bedeutet übrigens nicht, dass bei Verwendung von geometry nach einer

Papiergrößen- oder Papierausrichtungsänderung mit typearea das neue Papier direkt optimalgenutzt wird. Da geometry aus Komfortgründen deutlich mehr Optionen für die Papiereinstel-lung bietet, als für die Bestimmung von Textbereich, Rändern, Kopf, Fuß etc. benötigt werden– man spricht von Überbestimmung – und gleichzeitig bei neuen Aufrufen von \newgeometryfehlende Angaben aus bereits bekannten ableitet – man spricht von Werterhalt –, muss mangegebenenfalls durch vollständige Bestimmung neuer Werte bei einem eigenen Aufruf von

Kapitel 20: Zusätzliche Informationen zum Paket typearea.sty 498

\newgeometry alle gewünschten Einstellungen explizit vornehmen. Nichts desto Trotz kanndie Berücksichtigung von geometry durch typearea zusätzliche Möglichkeiten eröffnen.Von typearea werden mit usegeometry für geometry derzeit die Optionen bindingoffset,

footskip, headheight, headsep, includefoot, includehead, includemp, lmargin,marginparsep, marginparwidth, textheight, textwidth, top und in der Dokumentpräambelzusätzlich paperheight und paperwidth gesetzt.

areasetadvanced=Ein-Aus-Wert\areaset[BCOR ]{Breite }{Höhe }

Normalerweise berücksichtigt \areaset Optionen zur Bestimmung der Höhe von Kopf undFuß oder zur Festlegung, ob Randelemente Teil des Satzspiegels sein sollen, nicht in gleicherWeise wie \typearea. Mit Option areasetadvancedv3.11 kann jedoch eingestellt werden, dass sich\areaset diesbezüglich mehr wie \typearea verhalten soll. Trotzdem unterscheiden sich Ein-stellungen, die zu gleich großen Textbereichen führen zwischen den beiden Befehlen weiterhin,da \typearea immer auf ganze Zeile rundet und dabei gegebenenfalls den unteren Rand umbis zu eine Zeile kleiner wählt, während \areaset den oberen und unteren Rand immer imVerhältnis 1:2 einstellt. Die Textbereiche der unterschiedlichen Befehle können also bei gleicherGröße vertikal leicht verschoben sein.

20.2. Anweisungen für Experten

In diesem Abschnitt werden Anweisungen beschrieben, die für den normalen Anwender kaumoder gar nicht von Interesse sind. Experten bieten diese Anweisungen zusätzliche Möglichkei-ten. Da die Beschreibungen für Experten gedacht sind, sind sie kürzer gefasst.

\activateareas

Diese Anweisung wird von typearea genutzt, um die Einstellungen für Satzspiegel und Ränderin die internen LATEX-Längen zu übertragen, wenn der Satzspiegel innerhalb des Dokuments,also nach \begin{document} neu berechnet wurde. Wurde die Option pagesize verwendet,so wird diese anschließend mit demselben Wert neu aufgerufen. Damit kann beispielsweiseinnerhalb von PDF-Dokumenten die Seitengröße tatsächlich variieren.Experten können diese Anweisung auch verwenden, wenn Sie aus irgendwelchen Gründen

Längen wie \textwidth oder \textheight innerhalb des Dokuments manuell geändert haben.Der Experte ist dabei für eventuell notwendige Seitenumbrüche vor oder nach der Verwendungjedoch selbst verantwortlich! Darüber hinaus sind alle von \activateareas durchgeführtenÄnderungen lokal!

Kapitel 20: Zusätzliche Informationen zum Paket typearea.sty 499

\storeareas{Anweisung }\BeforeRestoreareas{Code }\BeforeRestoreareas*{Code }\AfterRestoreareas{Code }\AfterRestoreareas*{Code }

Mit Hilfe von \storeareas wird eine Anweisung definiert, über die alle aktuellen Seitenspiege-leinstellungen wieder hergestellt werden können. So ist es möglich, die aktuellen Einstellungenzu speichern, anschließend die Einstellungen zu ändern und dann die gespeicherten Einstel-lungen wieder zu reaktivieren.

Beispiel: Sie wollen in einem Dokument im Hochformat eine Seite im Querformat unterbrin-gen. Mit \storeareas kein Problem:

\documentclass{scrartcl}

\begin{document}\noindent\rule{\textwidth}{\textheight}

\storeareas\meinegespeichertenWerte\KOMAoptions{paper=landscape,DIV=current}\noindent\rule{\textwidth}{\textheight}

\clearpage\meinegespeichertenWerte\noindent\rule{\textwidth}{\textheight}\end{document}

Wichtig ist dabei die Anweisung \clearpage vor dem Aufruf von\meinegespeichertenWerte, damit die Wiederherstellung erst auf der nächs-ten Seite erfolgt. Bei doppelseitigen Dokumenten sollte bei Änderungen amPapierformat stattdessen sogar \cleardoubleoddpage oder – wenn keine KOMA-Script-Klasse zum Einsatz kommt – \cleardoublepage verwendet werden.Außerdem wird \noindent verwendet, um den normalen Absatzeinzug vor denschwarzen Kästen zu verhindern. Sie würden sonst kein korrektes Bild des Seiten-layouts wiedergeben.

Bei der Verwendung von \storeareas ist zu beachten, dass sowohl \storeareas als auchdie damit definierte Anweisung nicht innerhalb einer Gruppe aufgerufen werden sollten. DieDefinition der Anweisung erfolgt intern mit \newcommand. Bei erneuter Verwendung einerbereits definierten Anweisung wird eine entsprechende Fehlermeldung ausgegeben.Oftmalsv3.18 ist auch erwünscht, vor der Wiederherstellung der Einstelllungen per Anweisung

grundsätzlich bestimmte Aktionen wie beispielsweise ein \cleardoubleoddpage auszuführen.Dies kann man mit Hilfe von \BeforeRestoreareas und \BeforeRestoreareas* erreichen.

Kapitel 20: Zusätzliche Informationen zum Paket typearea.sty 500

Entsprechend kann man mit \AfterRestoreareas und \AfterRestoreareas* Code nachder Wiederherstellung der Einstellungen ausführen lassen. Die Formen mit und ohne Sternunterscheiden sich insoweit, als die Sternform nur für noch nicht per \storeareas gespeicherteEinstellungen gilt, während sich die Variante ohne Stern auch auf die zukünftige Verwendungbereits früher gespeicherter Einstellungen auswirkt.

\AfterCalculatingTypearea{Anweisungen }\AfterCalculatingTypearea*{Anweisungen }\AfterSettingArea{Anweisungen }\AfterSettingArea*{Anweisungen }

Diese Anweisungen dienen der Verwaltung zweier Haken (engl. hooks). Die ersten beiden,\AfterCalculatingTypearea und deren Sternform, ermöglichen es dem Experten jedes Mal,nachdem typearea eine neue Aufteilung in Satzspiegel und Ränder berechnet hat, also nachjeder impliziten oder expliziten Ausführung von \typearea, Anweisungen ausführen zu las-sen. Entsprechendes leisten \AfterSettingAreav3.11 und dessen Stern-Form für die Ausführungvon \areaset. Die Normalformen arbeiten dabei global, während die Änderungen durchdie Sternformen nur lokal wirksam sind. Die Anweisungen werden jeweils unmittelbar vor\activateareas ausgeführt.

20.3. Lokale Einstellungen durch die Datei typearea.cfg

Im KOMA-Script-Buch [Koh18a] finden sich an dieser Stelle weitere Informationen.

20.4. Mehr oder weniger obsolete Optionen und Anweisungen

Im KOMA-Script-Buch [Koh18a] finden sich an dieser Stelle weitere Informationen.

Kapitel 21: Zusätzliche Informationen zu den Hauptklassen und scrextend 501

Zusätzliche Informationen zu den Hauptklassen scrbook, scrreprtund scrartcl sowie dem Paket scrextend

In diesem Kapitel finden Sie zusätzliche Informationen zu den KOMA-Script-Klassen scrbook,scrreprt und scrartcl und einigen Anweisungen, die auch in scrextend vorhanden sind. Eini-ge Teile des Kapitels sind dabei dem KOMA-Script-Buch [Koh18a] vorbehalten. Dies solltekein Problem sein, denn der normale Anwender, der die Klassen einfach nur verwenden will,wird diese Informationen eher selten benötigen. Ein Teil der Informationen richtet sich anAnwender, die ausgefallene Aufgaben lösen oder eigene Klassen schreiben wollen, die auf ei-ner KOMA-Script-Klasse basieren. Da sich die entsprechenden Erklärungen ausdrücklich nichtan LATEX-Anfänger richtet, sind sie teilweise deutlich kürzer gefasst und setzen ein vertieftesWissen über LATEX voraus. Anderes existiert nur aus Gründen der Kompatibilität zu denStandardklassen oder früheren Versionen von KOMA-Script.

Im KOMA-Script-Buch [Koh18a] finden sich an dieser Stelle weitere Informationen.

21.1. Ergänzungen zu Benutzeranweisungen

Im KOMA-Script-Buch [Koh18a] finden sich an dieser Stelle weitere Informationen.

21.2. Zusammenspiel von KOMA-Script und anderen Paketen

Im KOMA-Script-Buch [Koh18a] finden sich an dieser Stelle weitere Informationen.

21.3. Erkennung von KOMA-Script-Klassen

Für Paketautoren besteht manchmal die Notwendigkeit, eine KOMA-Script-Klasse zu erken-nen. Für Anwender besteht diese Notwendigkeit dagegen eher nicht. Bezüglich der verwendetenKOMA-Script-Version sei auf \KOMAScriptVersion in Abschnitt 12.5, Seite 365 verwiesen.

\KOMAClassName\ClassName

In \KOMAClassName ist der Name der aktuell verwendeten KOMA-Script-Klasse abgelegt. Willman also wissen, ob eine oder welche KOMA-Script-Klasse verwendet wird, so kann man ein-fach auf diese Anweisung testen. Demgegenüber gibt \ClassName Auskunft, welche Standard-klasse durch diese KOMA-Script-Klasse ersetzt wird.Es sei in diesem Zusammenhang darauf hingewiesen, dass dagegen die Existenz von

\KOMAScript nicht als Indiz für die Verwendung einer KOMA-Script-Klasse dienen kann.Zum einen definieren alle KOMA-Script-Pakete diese Anweisung, zum anderen können auch

Kapitel 21: Zusätzliche Informationen zu den Hauptklassen und scrextend 502

andere Pakete es für sinnvoll erachten, das KOMA-Script-Piktogramm unter diesem Namenzu definieren.

21.4. Einträge ins Inhaltsverzeichnis

KOMA-Script-Klassen bieten erweiterte Möglichkeiten zur Erstellung und Manipulation vonEinträgen in das Inhaltsverzeichnis. Einige davon basieren auf der Verwendung von tocbasic(siehe Abschnitt 15.3 ab Seite 400). Andere sind direkt in den Klassen implementiert.

\addtocentrydefault{Ebene }{Nummer }{Überschrift }

Diev3.08 KOMA-Script-Klassen verwenden \addcontentsline nicht direkt, um Einträge ins In-haltsverzeichnis vorzunehmen. Stattdessen wird \addtocentrydefault mit ganz ähnlichenArgumenten aufgerufen. Die Anweisung kann sowohl für nummerierte als auch für nicht num-merierte Einträge verwendet werden. Dabei gibt Ebene die Gliederungsebene in Textform an,also part, chapter, section, subsection, subsubsection, paragraph oder subparagraph.Die formatierte Gliederungsnummer wird über das zweite Argument Nummer übergeben. Die-ses Argument darf auch leer sein. Der Text des Eintrags wird mit Überschrift angegeben.Zerbrechliche Befehle in diesem Argument sind mit \protect zu schützen.Für das Argument Nummer gilt noch eine Besonderheit. Ist das Argument leer, so signalisiert

dies, dass ein nicht nummerierter Eintrag erzeugt werden soll. In der Voreinstellung wird diesmit

\addcontentsline{toc}{Ebene }{%\protect\nonumberline Überschrift %

}

erreicht. Ist das Argument jedoch nicht leer, so soll ein nummerierter Eintrag erzeugt wer-den und Nummer ist die vorformatierte Gliederungsnummer. In der Voreinstellung verwendetKOMA-Script dann:

\addcontentsline{toc}{Ebene }{%\protect\numberline{Nummer }Überschrift %

}

Paketautoren und Autoren von Wrapper-Klassen können diese Anweisung umdefinieren, umEinfluss auf die Einträge zu nehmen. So wäre beispielsweise denkbar, mit\renewcommand{\addtocentrydefault}[3]{%\ifstr{#3}{}{%}{%\ifstr{#2}{}{%

\addcontentsline{toc}{#1}{\protect\nonumberline#3}%}{%

Kapitel 21: Zusätzliche Informationen zu den Hauptklassen und scrextend 503

\addcontentsline{toc}{#1}{\protect\numberline{#2}#3}%}%

}%}%

dafür zu sorgen, dass Einträge mit leerer Überschrift erst gar nicht vorgenommen werden.Eine solche Änderung ist in der Praxis jedoch nicht notwendig, da die Unterdrückung leererEinträge bereits auf andere Weise in die KOMA-Script-Klassen eingebaut ist. Siehe hierzuauch die Erklärung zu den Gliederungsbefehlen in Abschnitt 3.16 ab Seite 107.

\addparttocentry{Nummer }{Überschrift }\addchaptertocentry{Nummer }{Überschrift }\addsectiontocentry{Nummer }{Überschrift }\addsubsectiontocentry{Nummer }{Überschrift }\addsubsubsectiontocentry{Nummer }{Überschrift }\addparagraphtocentry{Nummer }{Überschrift }\addsubparagraphtocentry{Nummer }{Überschrift }

Auchv3.08 die oben dokumentierte Anweisung \addtocentrydefault wird von den KOMA-Script-Klassen nur dann direkt aufgerufen, wenn für die angegebene Ebene keine direkte Anweisungdefiniert oder diese \relax ist. In der Voreinstellung sind die angegebenen Anweisungen alle sodefiniert, dass sie ihre Ebene und die Argumente direkt an \addtocentrydefault weitergeben.

\raggedchapterentry

Bei früherenv3.21 Version von KOMA-Script gab es die Möglichkeit, das Makro\raggedchapterentry als \raggedright zu definieren, um den Text der Kapiteleinträ-ge ins Inhaltsverzeichnis im linksbündigen Flattersatz zu setzen. Offiziell existiert dieseMöglichkeit seit KOMA-Script-Version 3.21 nicht mehr.Tatsächlich ist aber die Eigenschaft raggedentrytext für den Eintrags-Stil tocline im

Paket tocbasic so implementiert, dass sie das Makro \raggedEintragsebene entry entwederauf \relax oder auf \raggedright setzt. Bei der Auswertung der Eigenschaft wird danngetestet, ob das entsprechende Makro entweder \raggedright ist oder als \raggedrightdefiniert ist. In beiden Fällen wird Flattersatz verwendet. In allen anderen Fällen wird keinFlattersatz verwendet.Da schon früher dokumentiert war, dass \raggedchapterentry nicht als etwas anderes als

\raggedright definiert werden sollte, ist damit Kompatibilität zum dokumentierten Verhaltenfrüherer Versionen erreicht. Wie in früheren Versionen gewarnt, führen andere Definitionen von\raggedchapterentry – nun aber auch von \raggedsectionentry und entsprechend für dieanderen Eintragsebenen – möglicherweise zu unerwarteten Ergebnissen.Empfohlen wird, eventuell gewünschten Flattersatz für Verzeichniseinträge stattdessen über

die genannte Eigenschaft des Verzeichniseintragsstils tocline zu wählen.

Kapitel 21: Zusätzliche Informationen zu den Hauptklassen und scrextend 504

21.5. Schrifteinstellungen

KOMA-Script-Klassen verfügen nicht nur über erweiterte Möglichkeiten zur Auswahl derGrundschriftgröße. Sie erlauben auch die Definition von Elementen mit eigenen Schriftein-stellungen, sowie deren Manipulation und dedizierter Anwendung.

\@fontsizefilebase\changefontsizes{Schriftgröße }

Der in Abschnitt 21.1 auf Seite 501 für die Schriftgrößendateien angegebene Präfix scrsize,ist lediglich die Voreinstellung für das interne Makro \@fontsizefilebase, die verwendetwird, wenn das Makro beim Laden der Klasse oder des Pakets scrextend noch nicht definiertist. Autoren von Wrapper-Klassen können dieses Makro abweichend definieren, um andereSchriftgrößendateien zu verwenden. Ebenso können Autoren vonWrapper-Klassen die fallback-Lösung der berechneten Schriftgrößen dadurch ändern oder abschalten, dass sie das Makro\changefontsizes, das als Argument die gewünschte Schriftgröße erwartet, umdefinieren.Das Makro \changefontsizes ist jedoch nicht als Anweisung für den Aufruf durch Anwenderkonzipiert.

\newkomafont[Warnung ]{Element }{Voreinstellung }\aliaskomafont{Aliasname }{Element }

Experten können mit \newkomafont eine Voreinstellung für die Schrift eines Element sdefinieren. Anschließend kann diese Voreinstellung mit den Anweisungen \setkomafont und\addtokomafont (siehe Abschnitt 3.6, Seite 62) verändert werden. Natürlich wird diese Schriftdamit noch lange nicht verwendet. Der Experte muss selbst Sorge dafür tragen, dass er anden entsprechenden Stellen die Anweisung \usekomafont (siehe Seite 62) für dieses Elementin seinen Definitionen einbaut. Der Aufruf von \newkomafont für ein bereits existierendesElement führt zu Fehlermeldungen.Das optionale Argument Warnung definiert eine Warnmeldung. Diese wird bei den KOMA-

Script-Klassen per \ClassWarning oder beim Paket scrextend per \PackageWarning immerdann ausgegeben, wenn die Voreinstellung für das Element verändert wird. Als Urheber derWarnung wird das Paket scrkbase angegeben.Mit \aliaskomafont kann für ein bereits existierendes Element ein Aliasname definiert

werden. KOMA-Script informiert den Benutzer in der log-Datei über den Namen des tatsäch-lichen Elements, wenn dieser den Aliasname verwendet. Aliasname n können beispielsweisedann eingesetzt werden, wenn der Entwickler sich später einen besseren Namen für ein Ele-ment überlegt und der alte Name aus Kompatibilitätsgründen weiter verwendbar bleiben soll.Außerdem kann damit die Benutzerfreundlichkeit erhöht werden, indem einem Element all dieNamen als Alias zugeordnet werden, die unterschiedliche Benutzer intuitiv wählen würden.KOMA-Script selbst macht von dieser Möglichkeit regen Gebrauch.

Kapitel 21: Zusätzliche Informationen zu den Hauptklassen und scrextend 505

\addtokomafontrelaxlist{Makro }\addtokomafontonearglist{Makro }\addtokomafontgobblelist{Makro }

Wie bereits in Teil I der Anleitung erklärt, dürfen in den Schrifteinstellungen der Elementenur Befehle zur Wahl der Größe, Familie, Codierung, Strichstärke, Form und Farbe enthaltensein. Dabei erfolgt schon die Änderung der Farbe bei LATEX nicht transparent und kann damitunerwünschte Effekte hervorrufen, wenn man \usekomafont an ungünstiger Stelle verwendet.

Nun neigen Anwender dazu, in die Schrifteinstellungen auch ganz andere, teilweise sehrkritische Dinge zu packen, beispielsweise ein \MakeUppercase ganz am Ende der Einstellung.Bei der internen Verwendung der Schrifteinstellungen wurde daher möglichst so vorgegangen,dass viele dieser eigentlich verbotenen Einstellungen trotzdem keinen Schaden anrichten undes meist sogar funktioniert, wenn der letzte Befehl in der Schrifteinstellung ein Argumenterwartet, also beispielsweise \textbf anstelle von \bfseries verwendet wird. Eine Garantiegibt es dafür jedoch nicht.In Einzelfällen war es innerhalb von KOMA-Script notwendig, die Umschaltung wirklich auf

Schrifteinstellungen zu beschränken. Dies erfolgt dann beispielsweise mit \usefontofkomafontstatt \usekomafont (siehe Abschnitt 3.6, Seite 67).

Die Anweisung \usefontofkomafont und ihre Geschwister haben allerdings ihre Grenzen.Daher darf die vermeintliche Schrifteinstellung eines Elements keinesfalls ein voll expandierba-res Argument erwarten. Genau das ist aber beispielsweise bei \MakeUppercase der Fall. Daherv3.17

verwaltet KOMA-Script eine interne Liste von Makros, die innerhalb von \usefontofkomafontund ihren Geschwistern zu \relax werden sollen. In der Voreinstellung ist das seit KOMA-Script 3.24v3.24 nur noch \normalcolor.Es ist zu beachten, dass das angegebene Makro wirklich stur auf \relax gesetzt wird. Irgend-

welche Argumente innerhalb der Schrifteinstellung werden also gegebenenfalls lokal ausgeführt.Daher dürfen Anweisungen wie \setlength keinesfalls zu dieser Liste hinzugefügt werden. Füralle Fehler, die durch die Verwendung von \addtokomafontrelaxlist entstehen, ist der An-wender selbst verantwortlich. Außerdem sollte diese Möglichkeit nicht als Legitimation dafürmissverstanden werden, den Schrifteinstellungen alle möglichen Anweisungen hinzuzufügen!Fürv3.24 Befehle, deren erstes Argument noch ohne zusätzliche Gruppe ausgeführt werden soll,

gibt es \addtokomafontonearglist. Das angegebene Makro wird dabei auf \@firstofonegesetzt. In der Voreinstellung wird dies für \MakeUppercase und \MakeLowercase verwendet.Sollv3.19 hingegen ein Makro innerhalb von \usefontofkomafont und ihren Geschwis-

tern zusammen mit seinem ersten Argument ignoriert werden, so ist stattdessen\addtokomafontgobblelist zu verwenden. Ein Beispiel dafür ist die Anweisung \color, dieeinschließlich des Namens der Farbe ignoriert werden muss und deshalb bereits in der Vorein-stellung Teil dieser Liste ist.Es ist zu beachten, dass sich die hier genannten Voreinstellungen in zukünftigen Versionen

ändern können. Wenn Sie bestimmte Befehle in einer der Liste zwingend benötigen, sollte Siediese also selbst explizit hinzufügen.

Kapitel 21: Zusätzliche Informationen zu den Hauptklassen und scrextend 506

\IfExistskomafont{Element }{Dann-Code }{Sonst-Code }\IfIsAliaskomafont{Element }{Dann-Code }{Sonst-Code }

Dav3.15 die Schrift mancher Elemente erst ab bestimmten Versionen von KOMA-Script geändertwerden kann, ist es manchmal sinnvoll, vorher testen zu können, ob ein Element mit dieserMöglichkeit überhaupt existiert. Die Anweisung \IfExistskomafont führt den Dann-Codegenau dann aus, wenn das Element über \newkomafont oder \aliaskomafont definiertwurde und daher auch mit \setkomafont oder \addtokomafont geändert und mit den\use...komafont-Anweisungen abgefragt werden kann. Anderenfalls wird der Sonst-Codeausgeführt.Im Unterschied dazu führt \IfIsAliaskomafontv3.25 den Dann-Code nur aus, wenn Element

über \aliaskomafont als Alias für ein anderes Element definiert wurde. Sowohl für nichtdefinierte Elemente als auch für mit \newkomafont definierte Elemente wird hingegen derSonst-Code ausgeführt.

21.6. Absatzmarkierung

Nicht nur aber insbesondere aufgrund der erweiterten Möglichkeiten der Absatzmarkierungbei den KOMA-Script-Klassen sollte auf die direkte Änderung der Standardlängen \parskip,\parindent und \parfillskip weitgehend verzichtet werden.

\setparsizes{Einzug }{Abstand }{Endzeilenleerraum }

KOMA-Script bietet mit dieser Anweisung die Möglichkeit, sowohl den Absatzeinzug als auchden Absatzabstand und den Freiraum am Ende der letzten Zeile des Absatzes einzustellen.Diese Anweisung ist immer dann zu verwenden, wenn die Änderungen auch bei Einstellungparskip=relative beachtet werden sollen. KOMA-Script selbst verwendet sie beispielsweisein der Form\setparsizes{0pt}{0pt}{0pt plus 1fil}

um sowohl den Einzug als auch den Abstand abzuschalten und am Ende des Absatzes beliebi-gen Freiraum zu erlauben. Eine solche Maßnahme ist sinnvoll, wenn ein Absatz nur aus einerBox besteht, die ohne Abstand nach oben oder unten gesetzt werden soll und die gesamteSpaltenbreite einnimmt. Soll demgegenüber die Box nur die gesamte Breite einnehmen, jedochmit der aktuellen Einstellung bezüglich des Absatzabstandes gesetzt werden, so ist\setlength{\parfillskip}{0pt plus 1fil}

vorzuziehen.Einev3.17 Neuberechnung oder Reaktivierung der Einstellungen für den Satzspiegel und die Rän-

der (siehe Kapitel 2) führt seit KOMA-Script 3.17 übrigens immer auch zu einer Neueinstellungder via \setparsizes gesetzten Werte, falls die Werte nicht zwischenzeitlich geändert wurden.Dies sollte ein Grund mehr sein, nicht an KOMA-Script vorbei die Einstellungen zu ändern.

Kapitel 21: Zusätzliche Informationen zu den Hauptklassen und scrextend 507

Die Neuberechnung wird bei einer Kompatibilitätseinstellung zu einer früheren Version (sieheAbschnitt 3.2, Seite 58, Option version) deaktiviert.

21.7. Zähler

Im KOMA-Script-Buch [Koh18a] finden sich an dieser Stelle weitere Informationen.

21.8. Gliederung

Die KOMA-Script-Klassen bieten weitreichende Möglichkeiten, um Einfluss auf die Gliede-rungsebenen und die zugehörigen Überschriften zu nehmen. Selbst die Definition neuer Ebenenist damit möglich.

\DeclareSectionCommand[Einstellungen ]{Name }\DeclareNewSectionCommand[Einstellungen ]{Name }\RedeclareSectionCommand[Einstellungen ]{Name }\ProvideSectionCommand[Einstellungen ]{Name }

Diesev3.15 Anweisungen dienen dazu, einen neuen Gliederungsbefehl \Name zu definieren bezie-hungsweise einen vorhandenen Gliederungsbefehl \Name zu verändern. Dazu werden über dasoptionale Argument Einstellungen vorgenommen. Die Einstellungen sind dabei eine durchKomma separierte Liste von Schlüssel=Wert -Zuweisungen. Neben den vom Stil der Über-schrift unabhängigen Eigenschaften, die Tabelle 21.1, Seite 509 zu entnehmen sind, gibt esauch Eigenschaften, die vom jeweiligen Stil abhängig sind. Derzeit stehen die folgenden Stilezur Verfügung:

chapterv3.18 ist der Stil für Kapitelüberschriften. Dieser Stil wird in der Voreinstellung für\chapter und indirekt für \addchap verwendet. Neue Überschriften in diesem Stil kön-nen definiert werden, haben dann aber nicht automatisch auch eine \add...-Variante.Für die Konfiguration der vorhandenen oder neuer Überschriften stehen zusätzlich dieEigenschaften aus Tabelle 21.3, Seite 511 zur Verfügung. Die Anweisung \addchap wirdebenso wie die Sternformen automatisch zusammen mit \chapter umkonfiguriert undkann nicht unabhängig davon verändert werden. Es ist zu beachten, dass dieser Stil vonscrartcl nicht bereitgestellt wird.scrbook,

scrreprtpartv3.18 ist der Stil für Teileüberschriften. Dieser Stil wird in der Voreinstellung für \part und

indirekt für \addpart verwendet. Neue Überschriften in diesem Stil können definiertwerden, haben dann aber nicht automatisch auch eine \add...-Variante. Für die Konfi-guration der vorhandenen oder neuer Überschriften stehen zusätzlich die Eigenschaftenaus Tabelle 21.4, Seite 512 zur Verfügung. Die Anweisung \addpart wird ebenso wiedie Sternformen automatisch zusammen mit \part umkonfiguriert und kann nicht un-abhängig davon verändert werden.

Kapitel 21: Zusätzliche Informationen zu den Hauptklassen und scrextend 508

section ist der Stil für Abschnittsüberschriften und tieferer Ebenen. Dieser Stil wird der-zeit sowohl für \section, \subsection, \subsubsection als auch \paragraph und\subparagraph verwendet. Neue Überschriften in diesem Stil können definiert wer-den. Für die Konfiguration der vorhandenen oder neuer Überschriften stehen zusätz-lich die Eigenschaften aus Tabelle 21.2, Seite 510 zur Verfügung. Beiv3.24 der Neude-finition sind die Schlüssel style, afterskip, beforeskip und level zwingend.Die Schlüssel afterindentv3.26 , font, indent und runin sind empfohlen. tocindentund tocnumwidth können abhängig vom Namen der Gliederungsebene ebenfalls zwin-gend sein. Das gilt auch, falls ein Befehl, der bisher kein Gliederungsbefehl war, mit\RedeclareSectionCommand zu einem Gliederungsbefehl umdefiniert wird. Die Anwei-sung \addsec wird ebenso wie die Sternformen zusammen mit \section umkonfiguriertund kann nicht unabhängig davon verändert werden.

Bei der Definition eines Gliederungsbefehls wird ein gleichnamiges Element angelegt, fallses noch nicht existiert. Bei chapter und part werden ebenso Elemente für die Präfixzeileerzeugt. Die Schrifteinstellung der Elemente kann mit \setkomafont und \addtokomafont(siehe Abschnitt 3.6, Seite 62) geändert werden.\DeclareNewSectionCommand dient der Definition eines neuen Gliederungsbefehls. Ist der-

selbe Name von TEX bereits anderweitig belegt, so wird ein Fehler ausgegeben und es findetkeine Umdefinierung statt.\ProvideSectionSommand verhält sich ähnlich, gibt aber keine Fehlermeldung aus.\RedeclareSectionCommand kann hingegen nur verwendet werden, um eine existierende

Anweisung zu einem Gliederungsbefehl mit den angegebenen Eigenschaften zu ändern. Dabeiwird nicht überprüft, ob \Name bereits zuvor ein Gliederungsbefehl war. Es muss nur ein vonTEX bereits belegter Name sein.

Bei \DeclareSectionCommand findet keinerlei Überprüfung statt, ob Name von TEX bereitsanderweitig belegt ist. Stattdessen wird der Gliederungsbefehl \Name unbedingt entsprechendder angegebenen Eigenschaften definiert.

Zu jeder Gliederungsanweisung gehört außerdem ein Zähler: Name , der bei Bedarf von al-len vier Befehlen mit \newcounter neu angelegt wird. Dasselbe gilt für die Ausgabe desZählers: \theName , die Formatierung des Zählers: \Name format, die Anweisung zur Er-stellung eines Kolumnentitels: \Name mark, die dabei verwendete Formatierung des Zählers:\Name markformat, die oben erwähnten Elemente: Name und gegebenenfalls Name prefix, dienummerische Gliederungsebene: \Name numdepth. Die Anweisung \Name mark wird gegebenen-falls so vordefiniert, dass kein Kolumnentitel erzeugt wird. Die Ausgabe des Zählers, \the mark,wird als arabische Zahl vordefiniert. Wird über den Schlüssel counterwithin der Zähler alsvon einem anderen Zähler abhängig definiert, so wird in der Ausgabe dieser andere Zähler miteinem Punkt getrennt vorangestellt.Nebenv3.20 dem Gliederungsbefehl selbst wird auch ein Befehl für einen Eintrag ins Inhaltsver-

zeichnis definiert. Dafür wird auf das Paket tocbasic zurückgegriffen. Der Stil des Verzeich-niseintrags wird über die Eigenschaft tocstyle festgelegt. Wird hier mit tocstyle= oder

Kapitel 21: Zusätzliche Informationen zu den Hauptklassen und scrextend 509

Tabelle 21.1.: Mögliche vom Stil der Überschrift unabhängige Schlüssel und Werte für dieEigenschaften bei der Deklaration von Gliederungsbefehlen

Schlüssel Wert Bedeutungcounterwithin Zählername Der zur Gliederungsebene gehörende Zähler soll vom

als Wert angegebenen Zähler abhängig sein. WirdZählername über \stepcounter oder \refstepcountererhöht, so wird der zur Gliederungsebene gehören-de Zähler auf 0 zurückgesetzt. Darüber hinaus wird\theZählername , gefolgt von einem Punkt in der Aus-gabe des zur Gliederungsebene gehörenden Zählers vor-angestellt.

counterwithoutv3.19 Zählername Hebt eine früher vorgenommene counterwithin-Einstellung auf und ist daher nur bei Änderungvorhandener Gliederungsbefehle sinnvoll.

expandtopt Schalter Ist dieser Schalter aktiv, so werden alle in denEinstellungen nachfolgend angegebenen Werte fürLängen vollständig expandiert, ausgewertet und in ptumgerechnet gespeichert. Ist der Schalter nicht aktiv, sowerden alle nachfolgend angegebenen Werte für Längennur testweise expandiert und ausgewertet, aber lediglichexpandiert gespeichert. Es werden die Werte für einfacheSchalter aus Tabelle 2.5, Seite 42 verstanden.

level Ganzzahl Nummerischer Wert der Gliederungsebene (siehe Zählersecnumdepth, Abschnitt 3.16, Seite 121); der Wert sollteeindeutig sein und ist für neue Ebenen zwingend.

style Name Legt den Stil der Überschrift fest und ist für neue Ebenenzwingend.

tocstylev3.20 Name Legt den Stil des zur Überschrift gehörenden Verzeichni-seintrags fest. Es können alle bisher definierten Verzeich-niseintragsstile (siehe Abschnitt 15.3) verwendet werden.Ein leerer Name verhindert die Umdefinierung des Befehls\l@... für die Verzeichniseinträge.

tocOptionv3.20 Wert Weitere Optionen in Abhängigkeit vom via tocstylegewählten Verzeichniseintragsstil. Siehe dazu Ab-schnitt 15.3 ab Seite 400. Für die von tocbasic vordefi-nierten Verzeichniseintragsstile finden sich die als Optionverwendbaren Attribute in Tabelle 15.1, ab Seite 405.

Kapitel 21: Zusätzliche Informationen zu den Hauptklassen und scrextend 510

Tabelle 21.2.: Zusätzliche Schlüssel und Werte für die Eigenschaften bei der Deklaration von Glie-derungsbefehlen des Stils section

Schlüssel Wert Bedeutungafterindentv3.26 Schalter Es wird bestimmt, ob auf die erste Zeile nach einer freistehen-

den Überschrift (siehe runin) der aktuelle Absatzeinzug ange-wendet wird. Bei der Voreinstellung bysign bestimmt das Vor-zeichen von beforeskip das Verhalten. Ein negativer Wert fürbeforeskip bewirkt dann, dass der Absatzeinzug entfällt. Mitden Werten für einfache Schalter (siehe Tabelle 2.5, Seite 42)kann die Anwendung des aktuellen Absatzeinzugs explizit ak-tiviert oder deaktiviert werden.

afterskip Länge Im Fall einer Spitzmarke (siehe runin) ist der Betrag der Längeder horizontale Abstand nach der Überschrift. Es wird in die-sem Fall also immer ein positiver Abstand eingefügt. Im Falleiner freistehenden Überschrift ist Länge der vertikale Abstandnach der Überschrift. Ist runin=bysign, so führt ein positiverWert zu einer freistehenden Überschrift, während ein negativerWert oder Null zu einer Spitzmarke führt.

beforeskip Länge Gibt den vertikalen Abstand vor der Überschrift an. Istafterindent=bysign, so wird für den Abstand der Betrag vonLänge verwendet, es wird also trotzdem ein positiver Abstandeingefügt. Negative Werte bedeuten in diesem Fall, dass einAbsatzeinzug nach der Überschrift entfällt.

font Befehle Die Schrifteinstellungen, die zusätzlich zum Elementdisposition bei der Ausgabe der Überschrift verwendetwerden sollen. Hier sind alle Befehle erlaubt, die auch über\setkomafont und \addtokomafont für das Element desGliederungsbefehls erlaubt sind.

indent Länge Einzug vom linken Rand vor der Ausgabe der Nummer und desTextes der Überschrift.

runinv3.26 Schalter Es wird bestimmt, ob die Überschrift als Spitzmarke (am Zei-lenanfang) oder freistehend gesetzt wird. Bei der Voreinstellungbysign bestimmt das Vorzeichen von afterskip das Verhalten.Ein positiver Wert für afterskip bewirkt dann eine freiste-hende Überschrift. Darüber hinaus kann mit den Werten füreinfache Schalter (siehe Tabelle 2.5, Seite 42) eine Spitzmarkeexplizit aktiviert oder deaktiviert werden.

Kapitel 21: Zusätzliche Informationen zu den Hauptklassen und scrextend 511

Tabelle 21.3.: Zusätzliche Schlüssel und Werte für die Eigenschaften bei der Konfiguration vonGliederungsbefehlen des Stils chapter

Schlüssel Wert Bedeutungafterindentv3.26 Schalter Es wird bestimmt, ob auf die erste Zeile nach der Überschrift

der aktuelle Absatzeinzug angewendet wird. Bei der Vorein-stellung bysign bestimmt das Vorzeichen von beforeskipdas Verhalten. Ein negativer Wert für beforeskip bewirktdann, dass der Absatzeinzug entfällt. Mit den Werten füreinfache Schalter (siehe Tabelle 2.5, Seite 42) kann die An-wendung des aktuellen Absatzeinzugs explizit aktiviert oderdeaktiviert werden.

afterskipv3.26 Länge Gibt den vertikalen Abstand nach der Überschrift an.beforeskip Länge Gibt den vertikalen Abstand vor der Überschrift an. Ist

afterindent=bysign, so wird für den Abstand der Betragvon Länge verwendet, es wird also trotzdem ein positiverAbstand eingefügt. Negative Werte bedeuten in diesem Fall,dass ein Absatzeinzug nach der Überschrift entfällt.

font Befehle Die Schrifteinstellungen, die zusätzlich zum Elementdisposition bei der Ausgabe der Überschrift verwendetwerden sollen. Hier sind alle Befehle erlaubt, die auch über\setkomafont und \addtokomafont für das Element desGliederungsbefehls erlaubt sind.

innerskip Länge Der vertikale Abstand zwischen Präfixzeile und Text derÜberschrift, falls eine Präfixzeile verwendet wird.

pagestyle Seitenstil Der Name des Seitenstils, der für die Seite mit der Über-schrift verwendet werden soll. Es findet keine Überprüfungstatt, ob der angegebene Seitenstil gültig ist. FehlerhafteAngaben führen daher zu Fehlermeldungen bei Verwendungdes Gliederungsbefehls.

prefixfont Befehle Die Schrifteinstellungen, die zusätzlich zum Elementdisposition und dem Element des Gliederungsbefehls beider Ausgabe einer Präfixzeile in der Überschrift verwen-det werden sollen. Hier sind alle Befehle erlaubt, die auchüber \setkomafont und \addtokomafontfür das Elementder Präfixzeile des Gliederungsbefehls erlaubt sind.

Kapitel 21: Zusätzliche Informationen zu den Hauptklassen und scrextend 512

Tabelle 21.4.: Zusätzliche Schlüssel und Werte für die Eigenschaften bei der Konfiguration vonGliederungsbefehlen des Stils part

Schlüssel Wert Bedeutungafterindentv3.26 Schalter Es wird bestimmt, ob auf die erste Zeile nach der Überschrift

der aktuelle Absatzeinzug angewendet wird. Bei der Einstel-lung bysign bestimmt das Vorzeichen von beforeskip dasVerhalten. Ein negativer Wert für beforeskip bewirkt dann,dass der Absatzeinzug entfällt. Mit den Werten für einfacheSchalter (siehe Tabelle 2.5, Seite 42) kann die Anwendungdes aktuellen Absatzeinzugs explizit aktiviert oder deakti-viert werden. Aus Kompatibilitätsgründen ist die Voreinstel-lung für scrartcl false, für scrbook und scrreprt true.

afterskip Länge Der Betrag gibt den vertikalen Abstand nach der Überschriftan.

beforeskip Länge Gibt den vertikalen Abstand vor der Überschrift an. Istafterindent=bysign, so wird für den Abstand der Betragvon Länge verwendet, es wird also trotzdem ein positiverAbstand eingefügt. Negative Werte bedeuten in diesem Fall,dass ein Absatzeinzug nach der Überschrift entfällt.

font Befehle Die Schrifteinstellungen, die zusätzlich zum Elementdisposition bei der Ausgabe der Überschrift verwendetwerden sollen. Hier sind alle Befehle erlaubt, die auch über\setkomafont und \addtokomafont für das Element desGliederungsbefehls erlaubt sind.

innerskip Länge Der vertikale Abstand zwischen Präfixzeile und Text derÜberschrift bei scrbook und scrreprt.

pagestyle Seitenstil Der Name des Seitenstils, der für die Seite mit der Über-schrift verwendet werden soll. Es findet keine Überprüfungstatt, ob der angegebene Seitenstil gültig ist. FehlerhafteAngaben führen daher zu Fehlermeldungen bei Verwendungdes Gliederungsbefehls. Diese Möglichkeit existiert nur beiscrbook und scrreprt.

prefixfont Befehle Die Schrifteinstellungen, die zusätzlich zum Elementdisposition und dem Element des Gliederungsbefehls beider Ausgabe einer Präfixzeile in der Überschrift verwendetwerden sollen. Hier sind alle Befehle erlaubt, die auch über\setkomafont und \addtokomafont für das Element derPräfixzeile des Gliederungsbefehls erlaubt sind.

Kapitel 21: Zusätzliche Informationen zu den Hauptklassen und scrextend 513

tocstyle={} ein leerer Name angegeben, so erfolgt keine Umdefinierung des Befehls für denVerzeichniseintrag. Das ist beispielsweise dann wichtig, wenn Sie ein zusätzliches Paket zurModifikation des Inhaltsverzeichnisses verwenden. Fehlt die Eigenschaft tocstyle, so wird beider Umdefinierung der bisherige Stil erneut verwendet.Unterschiedlichev3.20 Stile für Verzeichniseinträge haben unterschiedliche zusätzliche Eigenschaf-

ten. Diese können, mit dem Präfix toc versehen, direkt mit angegeben werden. So kann bei-spielsweise die Ebene des Verzeichniseintrags, die bei allen von den KOMA-Script-Klassenund tocbasic definierten Stilen als Eigenschaft level bekannt ist, mit toclevel gesetzt wer-den, der Einzug des Eintrags, indent, über tocindent und die für die Nummer reservierteBreite, numwidth, mit tocnumwidth. Für weitere Eigenschaften der Verzeichniseinträge sieheAbschnitt 15.3 ab Seite Seite 400.

Beispiel: Aus unerfindlichen Gründen sollen die Überschriften von \paragraph nicht mehrals Spitzmarken, sondern als Überschriften ähnlich \subsubsection umdefiniertwerden. Dabei soll über der Überschrift ein kleiner Abstand von 10 pt und unterder Überschrift kein zusätzlicher Abstand eingefügt werden. Das wäre bereits mit\RedeclareSectionCommand[%beforeskip=-10pt,%afterskip=1sp%

]{paragraph}

möglich. Durch den negativenWert bei beforeskip wird der vertikale Abstand überder Überschrift erzeugt und gleichzeitig der Einzug des ersten Abschnitts nach derÜberschrift abgeschaltet. Obwohl eigentlich nach der Überschrift kein vertikaler Ab-stand gewünscht wird, wurde als Wert hier 1 sp angegeben. Der Grund ist einfach:Einen Wert von 0 pt betrachtet LATEX an dieser Stelle nicht als positiven Wert underzeugt damit eine Überschrift in der Form einer Spitzmarke. Der kleinste positiveWert ist 1 sp.In der Regel ist es für den vertikalen Ausgleich (siehe \flushbottom, Abschnitt 3.4,Seite 60) besser, wenn man die Abstände mit etwas Spielraum, dem sogenanntenLeim, versieht:\RedeclareSectionCommand[%beforeskip=-10pt plus -2pt minus -1pt,%afterskip=1sp plus -1sp minus 1sp%

]{paragraph}

Dabei ist zu beachten, dass natürlich auch der Leim bei der Anwendung als ver-tikaler Abstand das Vorzeichen wechselt, also bei beforeskip im Beispiel negativangegeben wird. Gleichzeitig wurde die Gelegenheit genutzt, über den Leim beiafterskip dafür zu sorgen, dass der Abstand dort gegebenenfalls tatsächlich bisauf 0 schrumpft.

Kapitel 21: Zusätzliche Informationen zu den Hauptklassen und scrextend 514

Dass im Beispiel nur die Schlüssel beforeskip und afterskip verwendet wer-den mussten, liegt daran, dass seit KOMA-Script 3.15 \paragraph intern bereits mit\DeclareSectionCommand definiert wird und daher die übrigen Einstellungen unverändertübernommen werden können. Die Originaldefinition von \paragraph entspricht bei scrartcl:\DeclareSectionCommand[%level=4,indent=0pt,beforeskip=3.25ex plus 1ex minus .2ex,afterskip=-1em,font={},tocindent=7em,tocnumwidth=4.1em,counterwithin=subsubsection

]{paragraph}

Bei scrreprt und scrbook werden teilweise abweichende Werte verwendet.Für \chapter sind einige Einstellungen für die Überschriften von Option headings (siehe

Abschnitt 3.16, Seite 102) abhängig. Diese abhängigen Einstellungen sind in Tabelle 21.5 zufinden. Eine Übersicht über alle Voreinstellungen bietet Tabelle 21.6. Es ist zu beachten, dassdabei 1ex und \baselineskip von der voreingestellten Größe der Überschrift beziehungs-weise des Inhaltsverzeichniseintrags abhängig sind. Weitere Voreinstellungenv3.20 für die Stile derVerzeichniseinträge sind Abschnitt 15.3 ab Seite 400 zu entnehmen.

Tabelle 21.6.: Voreinstellungen für die Formatierung der Überschriften von scrbook und scrreprt

\part:Einstellung voreingestellter Wertafterskip 0pt plus 1filbeforeskip 0pt plus 1fil + \baselineskipfont siehe part, Tabelle 3.15, Seite 111innerskip 20ptlevel -1prefixfont siehe partnumber, Tabelle 3.15, Seite 111tocindent 0pttoclevel -1tocnumwidth 2emtocstyle part

. . .

Kapitel 21: Zusätzliche Informationen zu den Hauptklassen und scrextend 515

Tabelle 21.6.: Voreinstellungen für die Formatierung der Überschriften von scrbook und scrreprt (Fort-setzung)

\chapter:Einstellung voreingestellter Wertafterskip siehe Tabelle 21.5beforeskip siehe Tabelle 21.5font siehe chapter, Tabelle 3.15, Seite 111innerskip 0.5\baselineskiplevel 0prefixfont siehe chapterprefix, Tabelle 3.15, Seite 111tocindent 0pttoclevel 0tocnumwidth 1.5emtocstyle chapter

\section:Einstellung voreingestellter Wertafterskip 2.3ex plus .2exbeforeskip -3.5ex plus -1ex minus -.2exfont siehe section, Tabelle 3.15, Seite 111indent 0ptlevel 1tocindent 1.5emtoclevel 1tocnumwidth 2.3emtocstyle section

. . .

Kapitel 21: Zusätzliche Informationen zu den Hauptklassen und scrextend 516

Tabelle 21.6.: Voreinstellungen für die Formatierung der Überschriften von scrbook und scrreprt (Fort-setzung)

\subsection:Einstellung voreingestellter Wertafterskip 1.5ex plus .2exbeforeskip -3.25ex plus -1ex minus -.2exfont siehe subsection, Tabelle 3.15, Seite 111indent 0ptlevel 2tocindent 3.8emtoclevel 2tocnumwidth 3.2emtocstyle section

\subsubsection:Einstellung voreingestellter Wertafterskip 1.5ex plus .2exbeforeskip -3.25ex plus -1ex minus -.2exfont siehe subsubsection, Tabelle 3.15, Seite 111indent 0ptlevel 3tocindent 7.0emtoclevel 3tocnumwidth 4.1emtocstyle section

. . .

Kapitel 21: Zusätzliche Informationen zu den Hauptklassen und scrextend 517

Tabelle 21.6.: Voreinstellungen für die Formatierung der Überschriften von scrbook und scrreprt (Fort-setzung)

\paragraph:Einstellung voreingestellter Wertafterskip -1embeforeskip 3.25ex plus 1ex minus .2exfont siehe paragraph, Tabelle 3.15, Seite 111indent 0ptlevel 4tocindent 10emtoclevel 4tocnumwidth 5emtocstyle section

\subparagraph:Einstellung voreingestellter Wertafterskip -1embeforeskip 3.25ex plus 1ex minus .2exfont siehe subparagraph, Tabelle 3.15, Seite 111indent \scr@parindentlevel 5tocindent 12emtoclevel 5tocnumwidth 6emtocstyle section

Das in den Einstellungen für \subparagraph verwendete interne Makro \scr@parindentist übrigens, der per Option parskip oder Befehl \setparsizes eingestellte Absatzeinzug.

\DeclareSectionCommands[Einstellungen ]{Namensliste }\DeclareNewSectionCommands[Einstellungen ]{Namensliste }\RedeclareSectionCommands[Einstellungen ]{Namensliste }\ProvideSectionCommands[Einstellungen ]{Namensliste }

Diesev3.15 Anweisungen können gleich eine ganze Reihe von Gliederungsbefehlen definieren oderändern. Dabei ist Namensliste eine durch Komma separierte Liste von Namen der Gliede-rungsbefehle.Diese Anweisungen unterscheiden sich in zwei weiteren Punkten von den zuvor erklärten

Anweisungen zur Definition oder Änderung eines einzelnen Gliederungsbefehls. Zum einen

Kapitel 21: Zusätzliche Informationen zu den Hauptklassen und scrextend 518

Tabelle 21.5.: Voreinstel-lungen für die Kapitel-überschriften von scrbookund scrreprt in Abhängig-keit von Option headings

Mit headings=big:Einstellung voreingestellter Wertafterskip 1.725\baselineskip plus .115\baselineskip

minus .192\baselineskipbeforeskip -3.3\baselineskip-\parskipfont \huge

Mit headings=normal:Einstellung voreingestellter Wertafterskip 1.5\baselineskip plus .1\baselineskip

minus .167\baselineskipbeforeskip -3\baselineskip-\parskipfont \LARGE

Mit headings=small:Einstellung voreingestellter Wertafterskip 1.35\baselineskip plus .09\baselineskip

minus .15\baselineskipbeforeskip -2.8\baselineskip-\parskipfont \Large

wird im Fehlerfall, also wenn eine Anweisung bei \DeclareNewSectionCommands bereits zuvorexistierte oder bei \RedeclareSectionCommands noch nicht existierte, die Definition dennochvorgenommen. Ein entsprechender Fehler wird natürlich trotzdem gemeldet.Zum anderen gibt es eine weitere Einstellung, increaselevel=Ganzzahl . Damit ändert sich

die Bedeutung von level und toclevel (siehe Tabelle 21.1, Seite 509) dahingehend, dass derenWerte lediglich als Einstellungen des ersten Gliederungsbefehls aus der Namensliste dienen.Für alle weiteren Gliederungsbefehle werden die Werte von level und toclevel um denWert von increaselevel erhöht. Wurde die Einstellung increaselevel ohne Wertzuweisungverwendet, so wird der Wert 1 angenommen.

\IfSectionCommandStyleIs{Name }{Stil }{Dann-Code }{Sonst-Code }

Inv3.27 seltenen Fällen ist es nützlich, testen zu können, ob ein Gliederungsbefehl einem bestimmtenStil angehört. Ist der mittels Name bestimmte Gliederungsbefehl aus KOMA-Script-Sichtderzeit mit dem angebenen Stil definiert, so wird der Dann-Code ausgeführt, anderenfallsder Sonst-Code . Ist \Name nicht definiert oder kein mit KOMA-Script-Mitteln definierterGliederungsbefehl, so wird dies als Fehler gemeldet.

Kapitel 21: Zusätzliche Informationen zu den Hauptklassen und scrextend 519

\chapterheadstartvskip\chapterheadmidvskip\chapterheadendvskip\partheadstartvskip\partheadmidvskip\partheadendvskip\partheademptypage

Diese Anweisungen werden innerhalb von Überschriften der zuvor erklärten Stile chapter undpart und damit für die Definition der Überschriften \chapter, \part, \addchap, \addpartund deren Sternvarianten \chapter*, \part*, \addchap*, \addpart* verwendet. Dabei ist\chapterheadstartvskip eine Anweisung, die dafür vorgesehen ist, vor der Kapitelüber-schrift einen vertikalen Abstand einzufügen. Entsprechend ist \chapterheadendvskip eineAnweisung, die dafür vorgesehen ist, nach der Kapitelüberschrift einen vertikalen Abstandeinzufügen. Beiv3.15 Kapitelüberschriften mit eigener Nummernzeile (siehe Option chapterprefixin Abschnitt 3.16, Seite 102) wird zwischen der Nummernzeile und der eigentlichen Überschriftaußerdem \chapterheadmidvskip ausgeführt.Für das Einfügen der vertikalen Abstände über und unter Teile-Überschriften sind die An-

weisungen \partheadstartvskip und \partheadendvskip vorgesehen. Dabei wird ein Seiten-umbruch als Teil des vertikalen Abstandes interpretiert. Ein solcher Seitenumbruch ist in derVoreinstellung sowohl bei scrbook als auch scrreprt in der Definition von \partheadendvskipscrbook,

scrreprt enthalten. Die Anweisung \partheadmidvskip ist für den Abstand zwischen der Teile-Nummerund dem Text der Teile-Überschrift vorgesehen. Die Anweisung \partheademptypagev3.02 wird beiscrbook und scrreprt gegebenenfalls für die leere Seite nach der Überschrift verwendet.

Die Voreinstellungen der sieben Anweisungen sind seit KOMA-Script 3.15v3.15 von der Ein-stellung von Option headings (siehe Abschnitt 3.16, Seite 102) unabhängig. Die Original-Definitionen für die Kapitelüberschriften ab KOMA-Script 3.17v3.17 entsprechen:\newcommand*{\chapterheadstartvskip}{\vspace{\@tempskipa}}\newcommand*{\chapterheadmidvskip}{\par\nobreak

\vskip\@tempskipa}\newcommand*{\chapterheadendvskip}{\vskip\@tempskipa}

Diese werden auch bei jeder Verwendung von Option headings=big, headings=normal oderheadings=small reaktiviert. Als Seiteneffekt haben diese Optionen also gegebenenfalls nichtnur Auswirkungen auf Kapitelüberschriften, sondern auf alle Überschriften im Stil chapter.

Der Stil chapter setzt die interne Länge \@tempskipa vor Aufruf von\chapterheadstartvskip automatisch auf den Wert, der sich aus der\DeclareSectionCommand-Einstellung beforeskip ergibt. Vor dem Aufruf von\chapterheadendvskip geschieht entsprechendes mit dem Wert, der sich aus der Ein-stellung afterskip ergibt, und vor dem Aufruf von \chapterheadmidvskip mit dem Wert,der sich aus der Einstellung innerskip ergibt.

Kapitel 21: Zusätzliche Informationen zu den Hauptklassen und scrextend 520

Da die Voreinstellungen für die Abstände von \part nicht von Option headings abhängen,werden auch die zugehörigen Anweisungen von dieser Option nicht neu definiert. Ihrev3.17 Original-Definitionen entsprechen bei scrbook und scrreprt:\newcommand*{\partheadstartvskip}{%

\null\vskip-\baselineskip\vskip\@tempskipa}\newcommand*{\partheadmidvskip}{%\par\nobreak\vskip\@tempskipa

}\newcommand*{\partheadendvskip}{%\vskip\@tempskipa\newpage

}

und bei scrartcl:\newcommand*{\partheadstartvskip}{%

\addvspace{\@tempskipa}%}\newcommand*{\partheadmidvskip}{%\par\nobreak

}\newcommand*{\partheadendvskip}{%\vskip\@tempskipa

}

Auch hier wird vom Stil part die interne Länge \@tempskipa vor der Verwendung der Befehleentsprechend der Einstellungen von \DeclareSectionCommand gesetzt.Wird eine der Anweisungen, die im Original \@tempskipa für den vertikalen Ab-

stand verwendet, umdefiniert und sollen die Abstände weiterhin beispielsweise mit\RedeclareSectionCommand konfigurierbar sein, so sollte man in der neuen Definitionebenfalls \@tempskipa verwenden. Dav3.17 die Abstände über, innerhalb und unter den Über-schriften einfacher mit \RedeclareSectionCommand eingestellt werden können, wird gene-rell nicht empfohlen, zu diesem Zweck stattdessen die hier beschriebenen Anweisungen um-zudefinieren. Sie sollten für tiefgreifendere Änderungen reserviert bleiben, die nicht über\RedeclareSectionCommand zu erreichen sind. Auf [KDP] findet sich dazu ein Beispiel, beidem durch Umdefinierung von \chapterheadstartvskip und \chapterheadendvskip Linienüber und unter der Kapitelüberschrift gesetzt werden.

\partlineswithprefixformat{Ebene }{Nummer }{Text }

Diesev3.25 Anweisung wird von Überschriften des Stils part verwendet. Die beiden ArgumenteNummer und Text sind dabei einschließlich Einstellung der Fonts für sich bereits fertig forma-tiert. Letztlich regelt die Anweisung also die Anordnung der beiden Teile der Überschrift. Bei

Kapitel 21: Zusätzliche Informationen zu den Hauptklassen und scrextend 521

nicht nummerierten Überschriften ist Nummer ein komplett leeres Argument, enthält also auchkeine Formatierungsanweisungen.Vordefiniert ist die Anweisung mit:\newcommand{\partlineswithprefixformat}[3]{%

#2#3%}

bisher eher spartanisch.

Beispiel: Sie wollen die Teile-Überschriften in eine hellblaue Box mit blauer Umrandungstellen, die nur etwa drei Viertel der Breite des Textbereichs einnimmt. Hierzuverwenden Sie\documentclass{scrbook}\usepackage{xcolor}\renewcommand*{\partlineswithprefixformat}[3]{%\fcolorbox{blue}{blue!25}{%\parbox{.75\linewidth}{#2#3}%

}%}\begin{document}\part{Umrahmte Teile}\end{document}

Allerdings fällt Ihnen auf, dass die Überschrift dabei nicht wie sonst für Teile üblichzentriert wird – weder die Box selbst noch der Text innerhalb der Box.Die Ursache für die fehlende Zentrierung der Box liegt darin, dass aufgrund derÄnderung das in Argument 3 versteckte Absatzende nur noch den Absatz innerhalbder Box beendet, aber nicht mehr den Absatz mit der \parbox. Also ergänzen Sieein \par am Ende der Definition.Die Ursache der fehlenden Zentrierung innerhalb der Box ist, dass in der \parbox-Anweisung die Ausrichtung von \raggedpart nicht automatisch gültig ist. Daherergänzen Sie diese Anweisung innerhalb der Box.Mit\documentclass{scrbook}\usepackage{xcolor}\renewcommand*{\partlineswithprefixformat}[3]{%\fcolorbox{blue}{blue!25}{%\parbox{.75\linewidth}{\raggedpart #2#3}%

}%\par

}\begin{document}

Kapitel 21: Zusätzliche Informationen zu den Hauptklassen und scrextend 522

\part{Umrahmte Teile}\end{document}

erhalten Sie die gewünschte Formatierung.

Wie im Beispiel gezeigt, ist der Anwender bei der Umdefinierung der Anweisung für eini-ge Dinge selbst verantwortlich. Dazu gehört neben dem Erhalt der voreingestellten Ausrich-tung auch, dass innerhalb der Überschrift kein Seitenumbruch, beispielsweise an zusätzlicheingefügten Absätzen oder Abständen, erfolgen kann. Das gezeigte Beispiel ist diesbezüglichunproblematisch. Nicht nur, dass die beiden Boxen ohnehin keinen Seitenumbruch erlauben.KOMA-Script verändert außerdem \interlinepenalty als Teil von Text so, dass darin keinSeitenumbruch stattfinden darf. Gleichzeitig endet Text immer mit einem internen Absatz,\@@par.Das Argument Ebene wird von \partlineswithprefixformat in der Voreinstellung nicht

verwendet und ist auch im Beispiel nicht erforderlich. Erst wenn der Anwender mehrere An-weisungen im Stil part definiert und man innerhalb der Definition nach den Anweisungenunterscheiden will, kann dies über Ebene erfolgen. Dabei ist Ebene der vom Namen der An-weisung abgeleitete Name der Gliederungsebene. Bei \part, \part*, \addpart und \addpart*ist Ebene daher einheitlich part.

\chapterlineswithprefixformat{Ebene }{Nummer }{Text }\chapterlinesformat{Ebene }{Nummer }{Text }

Diesev3.19 Anweisungen werden von Überschriften des Stils chapter in Abhängigkeitvon Option chapterprefix (siehe Abschnitt 3.16, Seite 102) verwendet. Dabei gibt\chapterlineswithprefixformat die Ausgabe bei aktivierter Option vor. Bei deaktivierterOption bestimmt dagegen \chapterlinesformat die Ausgabe.Die beiden Argumente Nummer und Text sind dabei einschließlich Einstellung der Fonts für

sich bereits fertig formatiert. Letztlich regeln die Anweisungen also die Anordnung der beidenTeile der Überschrift. Bei nicht nummerierten Überschriften ist Nummer ein komplett leeresArgument, enthält also auch keine Formatierungsanweisungen.Vordefiniert sind die beiden Anweisungen mit:\newcommand{\chapterlinesformat}[3]{%

\@hangfrom{#2}{#3}%}\newcommand{\chapterlineswithprefixformat}[3]{%#2#3%

}

Beispiel: Sie wollen Überschriften im Kapitelstil gelb hinterlegen. Für Überschriften ohnePräfixzeile definieren Sie daher in der Präambel des Dokument:

Kapitel 21: Zusätzliche Informationen zu den Hauptklassen und scrextend 523

\makeatletter\renewcommand{\chapterlinesformat}[3]{%\colorbox{yellow}{%\parbox{\dimexpr\linewidth

-2\fboxrule-2\fboxsep}{%\@hangfrom{#2}#3%

}%}%

}\makeatother

und für Überschriften mit Präfixzeile:\renewcommand{\chapterlineswithprefixformat}[3]{%\colorbox{yellow}{%

\parbox{\dimexpr\linewidth-2\fboxrule-2\fboxsep}{%

#2#3%}%

}%}

Allerdings fällt Ihnen nach einiger Zeit auf, dass mit dieser Umdefinierung die Über-schriften wieder im Blocksatz gesetzt werden. Das liegt daran, dass \parbox sein Ar-gument so setzt. Um dies zu korrigieren, fügen Sie die Anweisung \raggedchapter(siehe Abschnitt 3.16, Seite 116), die automatisch bereits vor \chapterlinesformatund \chapterlineswithprefixformat aufgerufen wird, in die Definitionen ein:\makeatletter\renewcommand{\chapterlinesformat}[3]{%\colorbox{yellow}{%\parbox{\dimexpr\linewidth

-2\fboxrule-2\fboxsep}{%\raggedchapter\@hangfrom{#2}#3%

}%}%

}\makeatother\renewcommand{\chapterlineswithprefixformat}[3]{%\colorbox{yellow}{%

\parbox{\dimexpr\linewidth-2\fboxrule-2\fboxsep}{%

\raggedchapter#2#3%

}%}%

Kapitel 21: Zusätzliche Informationen zu den Hauptklassen und scrextend 524

}

Es sei daran erinnert, dass die Klammerung mit den Anweisungen \makeatletterund \makeatother nur in der Dokumentpräambel zu verwenden ist. In einer eigenenWrapper-Klasse oder einem Paket haben sie zu entfallen. Sie werden auch nur wegen\@hangfrom in der Definition von \chapterlinesformat benötigt.

Wie im Beispiel gezeigt, ist der Anwender bei der Umdefinierung der Anweisungen füreinige Dinge selbst verantwortlich. Dazu gehört neben dem Erhalt der voreingestellten Aus-richtung auch, dass innerhalb der Überschrift kein Seitenumbruch, beispielsweise an zusätzlicheingefügten Absätzen oder Abständen, erfolgen kann. Das gezeigte Beispiel ist diesbezüglichunproblematisch. Nicht nur, dass die beiden Boxen ohnehin keinen Seitenumbruch erlauben.KOMA-Script verändert außerdem \interlinepenalty als Teil von Text so, dass darin keinSeitenumbruch stattfinden darf. Gleichzeitig endet Text immer mit einem internen Absatz,\@@par.Die Anweisung \raggedchapter ist übrigens nicht Bestandteil von Text , weil anderenfalls

beispielsweise die Verwendung von \MakeUppercase innerhalb der Umdefinierung der beidenAnweisungen erheblich erschwert wäre. Dennoch sei darauf hingewiesen, dass typografischenRegeln zufolge Versalsatz mit gängigen Fonts immer der Sperrung und des Ausgleichs bedarf.Die LATEX-Anweisung \MakeUppercase leistet dies jedoch nicht.Das erste Argument, Ebene , wird von den Anweisungen in der Voreinstellung nicht verwen-

det und ist auch im Beispiel nicht erforderlich. Erst wenn der Anwender mehrere Anweisungenim Stil chapter definiert und man innerhalb der Definition nach den Anweisungen unterschei-den will, kann dies über Ebene erfolgen. Dabei ist Ebene der vom Namen der Anweisungabgeleitete Name der Gliederungsebene. Bei \chapter, \chapter*, \addchap und \addchap*ist Ebene daher einheitlich chapter.

\sectionlinesformat{Ebene }{Einzug }{Nummer }{Text }\sectioncatchphraseformat{Ebene }{Einzug }{Nummer }{Text }

Diesev3.19 Anweisungen werden von Überschriften des Stils section in Abhängigkeit davon verwen-det, ob die jeweilige Überschrift eine Spitzmarke erzeugt oder eine frei stehende Überschrift.Frei stehende Überschriften werden dabei per \sectionlinesformat ausgegeben, während\sectioncatchphraseformat für Spitzmarken zuständig ist.In beiden Fällen gibt Einzug den Wert eines horizontalen Einzugs der Überschrift gegenüber

dem Textbereich an. Durch Angabe eines negativen Wertes soll es auch möglich sein, dieÜberschrift in den linken Rand zu rücken.Die beiden Argumente Nummer und Text sind einschließlich Einstellung der Fonts für sich

bereits fertig formatiert. Letztlich regeln die Anweisungen also die Anordnung der beidenTeile der Überschrift. Bei nicht nummerierten Überschriften ist Nummer ein komplett leeresArgument, enthält also auch keine Formatierungsanweisungen.Vordefiniert sind die beiden Anweisungen als:

Kapitel 21: Zusätzliche Informationen zu den Hauptklassen und scrextend 525

\newcommand{\sectionlinesformat}[4]{%\@hangfrom{\hskip #2#3}{#4}%

}\newcommand{\sectioncatchphraseformat}[4]{%\hskip #2#3#4%

}

Bei Umdefinierung einer der beiden Anweisungen ist wiederum der Anwender selbst dafürverantwortlich, Seitenumbrüche innerhalb der Ausgabe zu verhindern. KOMA-Script hilft hierlediglich mit entsprechend gesetztem \interlinepenalty.

Beispiel: Wie schon im Beispiel der Kapitelüberschriften sollen nun die frei stehenden Über-schriften der Ebenen section mit einer Farbe hinterlegt werden. Die frei stehendenÜberschriften tieferer Ebenen sollen nicht verändert werden:\makeatletter\renewcommand{\sectionlinesformat}[4]{%\ifstr{#1}{section}{%\hspace*{#2}%\colorbox{yellow}{%

\parbox{\dimexpr\linewidth-2\fboxrule-2\fboxsep-#2}{%

\raggedsection\@hangfrom{#3}{#4}%

}%}%

}{%\@hangfrom{\hskip #2#3}{#4}%

}%}\makeatother

Mit dem gezeigten Code wird im Falle eines Einzugs der Überschrift der Bereich desEinzugs nicht mit gefärbt. Wird hingegen die Überschrift in den linken Rand ge-stellt, so wird dieser Bereich des Randes ebenfalls farbig hinterlegt. Durch Verschie-bung der \hspace*-Anweisung in die \colorbox kann dieses Verhalten verändertwerden.\makeatletter und \makeatother werden in der Dokumentpräambel erneut wegen\@hangfrom benötigt.

Das erste Argument, Ebene , wird von den Anweisungen in der Voreinstellung nicht verwen-det. Wie das Beispiel zeigt, kann es aber sehr gut dazu verwendet werden, nach unterschied-lichen Gliederungsebenen im gemeinsamen Stil section zu unterscheiden.

Kapitel 21: Zusätzliche Informationen zu den Hauptklassen und scrextend 526

\ExecuteDoHook{heading/preinit/Name }\ExecuteDoHook{heading/postinit/Name }\ExecuteDoHook{heading/branch/star/Name }\ExecuteDoHook{heading/branch/nostar/Name }\ExecuteDoHook{heading/begingroup/Name }\ExecuteDoHook{heading/endgroup/Name }

NebenBeta-Feature den übrigen Einstellmöglichkeiten bieten sämtliche mit \DeclareSectionCommand,\DeclareNewSectionCommand und \ProvideSectionCommand definierten oder mit\RedeclareSectionCommand umdefinierten Gliederungsanweisungen eine ganze Reihean Haken, die per \AddtoDoHook manipuliert werden können. Zur Funktionsweise dieserdo-hook genannten Haken sei auf Abschnitt 12.8 ab Seite 367 verwiesen. Der letzte Teildes Spezifikators ist dabei der Name der Gliederungsanweisung, wie er auch bei den obengenannten Befehlen als letztes Argument anzugeben ist.Wichtig ist, dass keiner dieser Haken für Anweisungen verwendet werden sollte, die Aus-

wirkungen auf den Seitenumbruch oder die Positionierung der Überschriften haben. Dahersollten nur wirklich erfahrene Anwender Gebrauch von diesen Haken machen. Im Zweifelsfallist außerdem der Quellcode der Klasse bezüglich des genauen Ausführungszeitpunktes des je-weiligen Haken zu konsultieren. Diese Haken dienen als letzter Notanker vor einer tatsächlichenUmdefinierung von Gliederungsbefehlen außerhalb der von KOMA-Script gebotenen Mittel.Der Haken heading/preinit/Name wird unmittelbar vor der Initialisierung der Anweisun-

gen ausgeführt. Zu diesem Zeitpunkt wurden noch keine Einstellungen vorgenommen. Selbstder Absatz, der einer Überschrift voraus geht, ist noch nicht zwingend beendet.Der Haken heading/postinit/Name wird etwas später ausgeführt. Zu diesem Zeitpunkt

wurden einige Einstellungen bereits vorgenommen und auch ein vorausgehender Absatz wurdebereits beendet.Von den Haken heading/branch/nostar/Name oder heading/branch/star/Name wird je-

weils nur einer ausgeführt, sobald feststeht, ob die Sternform oder die Normalform der Glie-derungsanweisung ausgeführt wird. Zu diesem Zeitpunkt sind auch bereits vertikale Abständeüber der jeweiligen Überschrift ausgeführt.Der Haken heading/begingroup/Name wird am Anfang der Gruppe ausgeführt, in der

schließlich die Überschrift gesetzt wird. Das ist also die letzte Eingriffsmöglichkeit vor derAusgabe der Überschrift.Entsprechend wird heading/endgroup/Name vor dem Ende der Gruppe ausgeführt, in der

die Überschrift gesetzt wurde. Derzeit ist das auch der letzte Haken innerhalb einer Gliede-rungsanweisung.Zu beachten ist, dass \minisec keine echte Gliederungsanweisung ist und die genannten

Haken daher auf diese Anweisung keine Anwendung finden.

Kapitel 21: Zusätzliche Informationen zu den Hauptklassen und scrextend 527

\IfUseNumber{Dann-Code }{Sonst-Code }

Strengv3.27 genommen handelt es sich hier um eine interne Anweisung. Sie ist nur innerhalb vonÜberschriften von Haken .../begingroup/... bis .../endgroup/... spezifiziert. In die-sem Fall wird der Dann-Code ausgeführt, wenn die aktuelle Überschrift gemäß Einstellungvon secnumdepth und Aufgrund der Nichtverwendung einer Sternform nummeriert werdensoll. Soll die Überschrift aufgrund der Verwenudng einer Sternform oder der Einstellung vonsecnumdepth nicht nummeriert werden, so wird der Sonst-Code ausgeführt. Bei Überschrif-ten im Stil chapter wird für die Entscheidung außerdem berücksichtigt, ob die Überschrift imHauptteil gesetzt wird.Wird die Anweisung außerhalb von Überschriften verwendet, so ist ihr Ergebnis nicht spe-

zifiziert. In der Regel gibt sie dann eine Fehlermeldung aus und führt weder den Dann-Codenoch den Sonst-Code aus.

\SecDef{Sternanweisung }{Normalanweisung }\scr@startsection{Name }{Ebene }{Einzug }{Abstand davor }{Abstand danach }

{Stilanweisungen }[Kurzform ]{Überschrift }\scr@startsection{Name }{Ebene }{Einzug }{Abstand davor }{Abstand danach }

{Stilanweisungen }*{Überschrift }

Wiev3.15 bereits in Abschnitt 3.16 bei der Beschreibung zu den Gliederungsbefehlen ab Seite 107erklärt, verfügt KOMA-Script bezüglich des optionalen Arguments der Gliederungsbefehleüber erweiterte Möglichkeiten. Um dies zu erreichen, war es notwendig, einige Anweisungendes LATEX-Kerns zu ersetzen:

• Statt \@startsection wird von KOMA-Script \scr@startsection verwendet. Die De-finition von \@startsection wird jedoch geprüft. Entspricht diese beim Laden der Klas-se nicht den Erwartungen, so wird eine Warnung ausgegeben, diverse Möglichkeiten vonKOMA-Script werden deaktiviert und \scr@startsection stützt sich auf eine Kopie von\@startsection, während \@startsection selbst dann \scr@startsection aufruft.

• Statt \@dblarg wird in KOMA-Script von den Gliederungsbefehlen eine eigene, interneAnweisung verwendet.

• Statt \secdef wird von KOMA-Script \SecDef verwendet, um die erwähnte Änderungbezüglich \@dblarg zu erreichen. Sollte die Definition von \secdef nicht den Erwartun-gen entsprechen, wird eine Warnung ausgegeben.

• \@sect wird umdefiniert, um diverse Erweiterungen von KOMA-Script zu realisieren.

• \@ssect wird umdefiniert, um diverse Erweiterungen von KOMA-Script zu realisieren.

• \@xsect wird umdefiniert, um diverse Erweiterungen von KOMA-Script zu realisieren.

Kapitel 21: Zusätzliche Informationen zu den Hauptklassen und scrextend 528

Es gibt Überlegungen, in künftigen Versionen von KOMA-Script die erwähnten Anweisungenaus dem LATEX-Kern nicht mehr anzutasten, sondern intern komplett durch Eigenentwicklun-gen zu ersetzen. Bei Verwendung eigentlich inkompatibler Pakete würden dadurch automatischErweiterungen von KOMA-Script deaktiviert und die Gliederungsbefehle in die Hände jenerPakete gelegt. Gleichzeitig müssten aber zum Erhalt der Kompatibilität mit anderen Paketenzusätzliche Maßnahmen ergriffen werden.Die erwähnten Ersatzanweisungen können von Paketautoren genau wie die LATEX-Kern-

Anweisungen verwendet werden, bieten dann aber automatisch die erweiterte Funktionalitätvon KOMA-Script. Jedoch sollten sie nicht umdefiniert werden, da sie sich jederzeit ändernkönnen und dann die Funktionalität von KOMA-Script durch diese Umdefinierung erneutbeeinträchtigt werden könnte. Die Bedeutung der Parameter ist der Anleitung zum LATEX-Kern [BCJ+05] zu entnehmen. AlsBeta-Feature Ersatz für die Umdefinierung von Anweisungen bietetKOMA-Script die zuvor dokumentierten Haken.

\At@startsection{Code }\Before@ssect{Code }\Before@sect{Code }

BisBeta-Feature KOMA-Script v3.26b dienten diese Anweisungen ebenfalls als Ersatz für die Umdefinierungvon \scr@startsection und \SecDef. Seit KOMA-Script v3.27 gelten sie jedoch als veraltet.Intern wird \At@startsection nun über den Haken heading/postinit realisiert.

\Before@ssect ist mit Hilfe von heading/branch/star und \Before@sect überheading/branch/nostar implementiert. Der Code wird den Haken per \AddtoDoHook hinzu-gefügt. Es ist nicht vorgesehen, einmal eingefügten Code wieder zu entfernen.

\appendixmore

Bei den KOMA-Script-Klassen gibt es innerhalb der Anweisung \appendix eine Besonderheit.Ist \appendixmore definiert, so wird diese Anweisung von \appendix ebenfalls ausgeführt.Intern wird das von den KOMA-Script-Klassen scrbook und scrreprt für die Realisierung derscrbook,

scrreprt Layoutoption appendixprefix genutzt (siehe Abschnitt 3.16, Seite 102). Dies sollten Sie unbe-dingt beachten, falls Sie selbst das Makro \appendixmore definieren oder umdefinieren wollen.Ist diese Option bereits verwendet, so erhalten Sie bei \newcommand{\appendixmore}{. . . }eine Fehlermeldung. Dadurch wird verhindert, dass Sie die Optionen außer Kraft setzen, ohnees zu merken.

Beispiel: Sie wollen nicht, dass bei Verwendung der Klasse scrbook oder scrreprt imHauptteil die Kapitel mit einer Präfixzeile versehen werden (siehe Layoutoptionchapterprefix in Abschnitt 3.16, Seite 102). Damit die Konsistenz gewahrt bleibt,wollen Sie auch nicht, dass eine solche Zeile im Anhang verwendet wird. Stattdes-sen soll in den Anhängen direkt vor dem Kapitelbuchstaben das Wort »Anhang«in der jeweiligen Sprache stehen. Dies soll auch für die Kolumnentitel gelten. Also

Kapitel 21: Zusätzliche Informationen zu den Hauptklassen und scrextend 529

verwenden Sie nicht die Layoutoption appendixprefix, sondern definieren in derDokumentpräambel:\newcommand*{\appendixmore}{%\renewcommand*{\chapterformat}{%

\appendixname~\thechapter\autodot\enskip}%\renewcommand*{\chaptermarkformat}{%\appendixname~\thechapter\autodot\enskip}}

Sollten Sie doch noch entscheiden, dass Sie die Option appendixprefix bei\documentclass setzen wollen, so erhalten Sie aufgrund der dann bereits definier-ten Anweisung \appendixmore eine Fehlermeldung. Damit wird verhindert, dassobige Definition unbemerkt die Einstellungen überschreibt, die Sie per Option ge-troffen haben.Wenn Sie ein vergleichbares Verhalten des Anhangs für die Klasse scrartcl erreichenwollen, so ist dies ebenfalls möglich. Schreiben Sie dazu beispielsweise Folgendes indie Präambel Ihres Dokuments:\newcommand*{\appendixmore}{%\renewcommand*{\sectionformat}{%

\appendixname~\thesection\autodot\enskip}%\renewcommand*{\sectionmarkformat}{%\appendixname~\thesection\autodot\enskip}}

Die Erklärungen zu den in diesem Beispiel umdefinierten Anweisungen finden Siein Abschnitt 3.16, Seite 117 und Seite 120.

21.9. Literaturverzeichnis

Die Erklärungen in diesem Abschnitt verlieren mit der Verwendung von Paketen wie biblatexzunehmend an Bedeutung. Die weitreichenden Möglichkeiten solcher Pakete ersetzen dann diehier beschriebenen Erweiterungen der KOMA-Script-Klassen.

\newbibstyle[Elternstil ]{Name }{Anweisungen }\newblock\@openbib@code\bib@beginhook\bib@endhook

Schon die Standardklassen kennen zur Unterteilung der Einträge in das Literaturverzeichnisdie Anweisung \newblock. Was diese Anweisung genau macht, hängt dabei von den Klassen-optionen ab. Wird die Option openbib verwendet, so werden am Ende der Standardklasse dieAnweisungen \@openbib@code und \newblock selbst umdefiniert. Von den Standardklassen

Kapitel 21: Zusätzliche Informationen zu den Hauptklassen und scrextend 530

wird die Anweisung \@openbib@code beim Start der Liste für das Literaturverzeichnis – genau-er: bei der Festlegung der Parameter für diese Liste – ausgeführt. Es darf davon ausgegangenwerden, dass auch viele Pakete, die das Literaturverzeichnis umdefinieren, diese Anweisungentsprechend abarbeiten.Bei den KOMA-Script-Klassen geschieht etwas ähnliches. Allerdings wird \@openbib@code

nicht am Ende der Klasse umdefiniert. Stattdessen wird mit \newbibstyle der Stil openstylefür das Literaturverzeichnis definiert. Die Anweisungen , die dabei in der Implementierung an-gegeben wurden, beinhalten die gewünschten Umdefinierung von \@openbib@code und von\newblock. Wird nun mit Hilfe der Option bibliography=openstyle dieser Literaturver-zeichnisstil gewählt, so werden die Anweisungen unmittelbar ausgeführt, also \@openbib@codeund \newblock umdefiniert.Neben \@openbib@code und \newblock können in Anweisungen auch noch

\bib@beginhook und \bib@endhook umdefiniert werden. Die Anweisung \bib@beginhookwird unmittelbar nach der Überschrift und der Präambel des Literaturverzeichnisses, abernoch vor der Liste mit den Literatureinträgen ausgeführt. Die Anweisung \bib@endhook wirddirekt nach dieser Liste am Ende des Literaturverzeichnisses ausgeführt. Im Falle eines mit\BreakBibliography (siehe Abschnitt 3.23, Seite 161) unterbrochenen Literaturverzeichnisseswerden diese Anweisungen außerdem am Anfang und Ende jedes Teils, also unmittelbar vorund nach \BreakBibliography ausgeführt.Die Anweisungen \newblock, \@openbib@code, \bib@beginhook und \bib@endhook wer-

den bei der Verwendung eines neuen Literaturverzeichnisstils zunächst als leer definiert. Da-nach werden die Anweisungen des bei der Definition des Stils optional angegebenen Elternstilsausgeführt und dann erst die Anweisungen , die bei Definition des neuen Stils angegeben wur-den. Daraus ergibt sich auch, dass jede der vier Anweisungen innerhalb von Anweisung beiBedarf keinesfalls mit \newcommand, sondern mit \renewcommand definiert werden sollte.Setzt der Anwender mit den Anweisungen \AtEndBibliography und

\AfterBibliographyPreamble weitere Anweisungen für die Ausführung nach der Präambelund am Ende des Literaturverzeichnisses, so werden die mit \AfterBibliographyPreamblefestgelegten Anweisungen einmalig am Anfang des Literaturverzeichnisses nach\bib@beginhook und die mit \AtEndBibliography festgelegten Anweisungen einmaligam Ende des Literaturverzeichnisses vor \bib@endhook ausgeführt.Mit Hilfe des Pakets multicol (siehe [Mit11]) könnte man beispielsweise einen Literaturstil

für ein zweispaltiges Literaturverzeichnis definieren:\newbibstyle{twocolumstyle}{%\renewcommand*{\bib@beginhook}{\begin{multicols}{2}}%\renewcommand*{\bib@endhook}{\end{multicols}}}%

Soll es außerdem eine open-Variante davon geben, kann man hier die Möglichkeiten der Ver-erbung verwenden und bei der Definition einen Elternstil mit angeben:\newbibstyle[openstyle]{twocolumopenstyle}{%

Kapitel 21: Zusätzliche Informationen zu den Hauptklassen und scrextend 531

\renewcommand*{\bib@beginhook}{\begin{multicols}{2}}%\renewcommand*{\bib@endhook}{\end{multicols}}}%

Die Auswahl eines dieser neuen Stile erfolgt dann einfach wieder über die Optionbibliography.Wie schon \BreakBibliography verlieren auch diese Anweisungen ganz oder teilweise ihre

Wirkung, wenn thebibliography beispielsweise durch Verwendung von biblatex umdefiniertwird.

21.10. Mehr oder weniger obsolete Optionen und Anweisungen

Im KOMA-Script-Buch [Koh18a] finden sich an dieser Stelle weitere Informationen.

Kapitel 22: Zusätzliche Informationen zur Klasse scrlttr2 und Paket scrletter 532

Zusätzliche Informationen zur Klasse scrlttr2 und Paket scrletter

In diesem Kapitel finden Sie zusätzliche Informationen zu der KOMA-Script-Klasse scrlttr2.Einige Teile des Kapitels sind dabei dem KOMA-Script-Buch [Koh18a] vorbehalten. Dies soll-te kein Problem sein, denn der Anwender, der die Klasse einfach nur verwenden will, wirddiese Informationen normalerweise nicht benötigen. Ein Teil der Informationen richtet sichan Anwender, denen die vordefinierten Möglichkeiten nicht mehr genügen. So befasst sichbeispielsweise der erste Abschnitt ausführlich mit den Pseudolängen, die den Briefbogen be-stimmen und die für Anpassungen an eigene Briefbogenlayouts abweichend zu setzen sind.Darüber hinaus gibt es seit KOMA-Script 3.15v3.15 das Paket scrletter, das zusammen mit einer

der KOMA-Script-Klassen scrartcl, scrreprt oder scrbook verwendet werden kann. Es stelltnahezu die komplette Funktionalität von scrlttr2 für die drei genannten Klassen zur Verfügung.Einige wenige Unterschiede gibt es jedoch, die ebenfalls in diesem Kapitel genannt werden.

22.1. Pseudolängen für fortgeschrittene Anwender

TEX arbeitet mit einem festen Satz an Registern. Es gibt Register für Token, für Boxen, fürZähler, für Abstände (englisch: skip) und für Größen (englisch: dimension). Von all diesen Re-gistern gibt es jeweils 256 Stück. Für LATEX-Längen, die mit \newlength angefordert werden,werden Abstandsregister belegt. Sind alle diese Register verbraucht, kann man keine weiterenLängen definieren. Sowohl scrlttr2 als auch scrletter würden normalerweise allein für die ersteSeite mehr als 20 solche Register verbrauchen. LATEX selbst belegt bereits 40 dieser Regis-ter. Das typearea-Paket benötigt ebenfalls einige, so dass ein Viertel der kostbaren Registerverbraucht wäre. Aus diesem Grund werden briefspezifische Längen bei KOMA-Script ebennicht in Längen, sondern in Makros abgelegt, den Pseudolängen. Der Nachteil dieses Vorge-hens besteht darin, dass man mit diesen Makros nicht so einfach rechnen kann wie mit echtenLängen.Bitte beachten Sie unbedingt, dass die Pseudolängen zwar intern als Makros implementiert

sind, bei den Befehlen zur Nutzung der Pseudolängen jedoch nur die Namen anzugeben sind.Diese werden wie die Namen von LATEX-Zählern und im Gegensatz zu Makros oder echtenLängen ohne umgekehrten Schrägstrich geschrieben!Wer nun einwenden will, dass LATEX in der empfohlenen und für KOMA-Script benötigten

Installation mit ε-TEX inzwischen das oben genannte Beschränkungsproblem nicht mehr be-sitzt, hat Recht. Allerdings kam diese Entscheidung für scrlttr2 ein wenig zu spät. Bei scrletterwurde das Konzept der Pseudolängen aus Gründen der Kompatibilität übernommen.Eine Auflistung aller von KOMA-Script definierten und verwendeten Pseudolängen ist Ta-

belle 22.1 zu entnehmen. Dabei ist auch angegeben, wo in den nachfolgenden Unterabschnittennähere Erklärungen zu der jeweiligen Pseudolänge zu finden sind.Abbildung 22.1 auf Seite 538 zeigt eine schematische Darstellung der wichtigsten Abstände

Kapitel 22: Zusätzliche Informationen zur Klasse scrlttr2 und Paket scrletter 533

auf dem Briefbogen. Dabei sind neben den Pseudolängen für die veränderbaren Abstände zu-sätzlich in heller Schrift auch die Längen angegeben, die für einige, wenige fest programmierteAbstände verwendet werden. Aus Gründen der Übersichtlichkeit wurde in der Darstellung aufeinige weniger häufig benötigte Pseudolängen jedoch auch verzichtet.

Tabelle 22.1.: Von scrlttr2 und scrletter verwendete Pseudolängen

backaddrheightHöhe der Rücksendeadresse am oberen Rand des Anschriftfeldes (Abschnitt 22.1.3,Seite 543)

bfoldmarklengthLänge der unteren horizontalen Faltmarke (Abschnitt 22.1.1, Seite 539)

bfoldmarkvposAbstand der unteren horizontalen Faltmarke von der oberen Kante des Papiers (Ab-schnitt 22.1.1, Seite 539)

firstfoothposAbstand des Brieffußes von der linken Kante des Papiers; Werte größer der Brei-te oder kleiner der negativen Breite des Papiers werden gesondert behandelt (Ab-schnitt 22.1.8, Seite 548)

firstfootvposAbstand des Brieffußes von der oberen Kante des Papiers (Abschnitt 22.1.8, Sei-te 547)

firstfootwidthBreite des Brieffußes (Abschnitt 22.1.8, Seite 548)

firstheadhposAbstand des Briefkopfes von der linken Kante des Papiers; Werte größer der Brei-te oder kleiner der negativen Breite des Papiers werden gesondert behandelt (Ab-schnitt 22.1.2, Seite 541)

firstheadvposAbstand des Briefkopfes von der oberen Kante des Papiers (Abschnitt 22.1.2, Sei-te 541)

firstheadwidthBreite des Briefkopfes (Abschnitt 22.1.2, Seite 542)

. . .

Kapitel 22: Zusätzliche Informationen zur Klasse scrlttr2 und Paket scrletter 534

Tabelle 22.1.: Von scrlttr2 und scrletter verwendete Pseudolängen (Fortsetzung)

foldmarkhposAbstand der horizontalen Faltmarken von der linken Kante des Papiers (Ab-schnitt 22.1.1, Seite 540)

foldmarkvposAbstand der vertikalen Faltmarken von der oberen Kante des Papiers (Ab-schnitt 22.1.1, Seite 541)

fromrulethicknessDicke einer optionalen Linie im Briefkopf (Abschnitt 22.1.2, Seite 542)

fromrulewidthLänge einer optionalen Linie im Briefkopf (Abschnitt 22.1.2, Seite 542)

lfoldmarkhposAbstand der vertikalen Faltmarke von der linken Kante des Papiers (Ab-schnitt 22.1.1, Seite 540)

lfoldmarklengthLänge der vertikalen Faltmarke (Abschnitt 22.1.1, Seite 540)

locheightHöhe der Absenderergänzung, falls der Wert nicht 0 ist; bei 0 wird stattdessentoaddrheight verwendet (Abschnitt 22.1.4, Seite 545)

lochposAbstand der Absenderergänzung von der rechten Papierkante, falls der Wert positivist, oder negativer Abstand der Absenderergänzung von der linken Papierkante, fallsder Wert negativ ist; bei 0 wird stattdessen der negative Wert von toaddrhposverwendet (Abschnitt 22.1.4, Seite 545)

locvposAbstand der Absenderergänzung von der oberen Papierkante, falls der Wert nicht 0ist; bei 0 wird stattdessen toaddrvpos verwendet (Abschnitt 22.1.4, Seite 545)

locwidthBreite des Feldes für die Absenderergänzung, wobei bei einem Wert von 0 die Brei-te automatisch aufgrund der in Abschnitt 4.10, Seite 211 beschriebenen Optionlocfield berechnet wird (Abschnitt 22.1.4, Seite 545)

. . .

Kapitel 22: Zusätzliche Informationen zur Klasse scrlttr2 und Paket scrletter 535

Tabelle 22.1.: Von scrlttr2 und scrletter verwendete Pseudolängen (Fortsetzung)

mfoldmarklengthLänge der mittleren horizontalen Faltmarke (Abschnitt 22.1.1, Seite 540)

mfoldmarkvposAbstand der mittleren horizontalen Faltmarke von der oberen Kante des Papiers(Abschnitt 22.1.1, Seite 539)

pfoldmarklengthLänge der Lochermarke (Abschnitt 22.1.1, Seite 540)

PPdatamatrixvskipvertikaler Abstand zwischen Port-Payé-Kopf und Data-Matrix bei addrfield=PP(Abschnitt 22.1.3, Seite 544)

PPheadheightHöhe für den Port-Payé-Kopf (Abschnitt 22.1.3, Seite 544)

PPheadwidthBreite des linken Port-Payé-Feldes bei addrfield=PP (Abschnitt 22.1.3, Seite 544)

refaftervskipvertikaler Abstand nach der Geschäftszeile (Abschnitt 22.1.5, Seite 546)

refhposAbstand der Geschäftszeile von der linken Papierkante, wobei bei einem Wert von 0automatisch relativ zur Papierbreite zentriert wird (Abschnitt 22.1.5, Seite 545)

refvposAbstand der Geschäftszeile von der oberen Kante des Papiers (Abschnitt 22.1.5,Seite 545)

refwidthBreite der Geschäftszeile (Abschnitt 22.1.5, Seite 545)

sigbeforevskipvertikaler Abstand zwischen Gruß und Signatur (Abschnitt 22.1.7, Seite 547)

sigindentEinzug der Signatur gegenüber dem Textkörper (Abschnitt 22.1.7, Seite 547)

. . .

Kapitel 22: Zusätzliche Informationen zur Klasse scrlttr2 und Paket scrletter 536

Tabelle 22.1.: Von scrlttr2 und scrletter verwendete Pseudolängen (Fortsetzung)

specialmailindentlinker Einzug der Versandart innerhalb des Anschriftfeldes (Abschnitt 22.1.3, Sei-te 544)

specialmailrightindentrechter Einzug der Versandart innerhalb des Anschriftfeldes (Abschnitt 22.1.3, Sei-te 544)

subjectaftervskipvertikaler Abstand nach dem Betreff (Abschnitt 22.1.6, Seite 547)

subjectbeforevskipzusätzlicher vertikaler Abstand vor dem Betreff (Abschnitt 22.1.6, Seite 547)

subjectvposAbstand des Betreffs von der oberen Kante des Papiers, wobei ein Wert von 0 statt-dessen den Betreff gemäß Option subject setzt (Abschnitt 22.1.6, Seite 547)

tfoldmarklengthLänge der oberen horizontalen Faltmarke (Abschnitt 22.1.1, Seite 540)

tfoldmarkvposAbstand der oberen horizontalen Faltmarke von der oberen Kante des Papiers (Ab-schnitt 22.1.1, Seite 539)

toaddrheightHöhe des Anschriftfeldes (Abschnitt 22.1.3, Seite 542)

toaddrhposAbstand des Anschriftfeldes von der linken Papierkante, falls der Wert positiv ist,oder negativer Abstand des Anschriftfeldes von der rechten Papierkante, falls derWert negativ ist (Abschnitt 22.1.3, Seite 542)

toaddrindentlinker und rechter Einzug der Anschrift innerhalb des Anschriftfeldes (Ab-schnitt 22.1.3, Seite 543)

toaddrvposAbstand des Anschriftfeldes von der oberen Kante des Papiers (Abschnitt 22.1.3,Seite 542)

. . .

Kapitel 22: Zusätzliche Informationen zur Klasse scrlttr2 und Paket scrletter 537

Tabelle 22.1.: Von scrlttr2 und scrletter verwendete Pseudolängen (Fortsetzung)

toaddrwidthBreite des Anschriftfeldes (Abschnitt 22.1.3, Seite 543)

\newplength{Name }

Mitv3.26 Hilfe dieser Anweisung wird eine neue Pseudolänge definiert. Die neue Pseudolänge istdann über ihren Namen eindeutig identifiziert. Jeder Name kann also nur einmal vergebenwerden.

Da der Anwender selbst normalerweise keine eigenen Pseudolängen definieren muss, handel-te es sich bei diesem Befehl bis KOMA-Script 3.25 um keine Benutzeranweisung. Stattdessenexistierte bis dahin nur \@newplength mit derselben Funktionalität. Für Paketautoren exis-tieren diese Anweisungen noch immer.

\Ifplength{Pseudolänge }{Dann-Code }{Sonst-Code }

Mitv3.27 dieser Anweisung kann geprüft werden, ob eine Pseudolänge definiert ist. Ist dies derFall, so wird der Dann-Code ausgeführt, anderenfalls wird der Sonst-Code ausgeführt.

\setplength[Faktor ]{Pseudolänge }{Wert }\addtoplength[Faktor ]{Pseudolänge }{Wert }

Mitv3.26 Hilfe von \setplength kann einer Pseudolänge das Vielfache eines Wertes zuge-wiesen werden. Der Faktor wird dabei als optionales Argument übergeben (siehe auch\setlengthtoplength, Abschnitt 4.2, Seite 170).

Mit \addtoplength kann man zu einer Pseudolänge das Vielfache eines Wertes addieren.Auch dabei wird der Faktor als optionales Argument übergeben.

Um einer Pseudolänge das Vielfache einer anderen Pseudolänge zuzuweisen oder zu ihrzu addieren, verwendet man innerhalb von Wert die Anweisung \useplength (siehe Ab-schnitt 4.2, Seite 170). Um von einer Pseudolänge den Wert einer anderen Pseudolängezu subtrahieren, verwendet man gleichzeitig als Faktor ein Minuszeichen oder -1 oder einenanderen negativen Faktor.Da der Anwender selbst normalerweise keine Pseudolängen ändern muss, handelte es sich

bis KOMA-Script 3.25 bei diesen Befehlen um keine Benutzeranweisungen. Stattdessen exis-tierten bis dahin nur \@setplength und \@addtoplength mit derselben Funktionalität. FürPaketautoren existieren diese Anweisungen noch immer.

Kapitel 22: Zusätzliche Informationen zur Klasse scrlttr2 und Paket scrletter 538

\baselineskip

\baselineskip

\baselineskip

\textwidth

≥\f

oots

kip

firstheadhpos firstheadwidth

fromrulewidth

toaddrwidth locwidth

specialmailindentspecialmailrightindent

toaddrhpos lochpos

toaddrindent toaddrindent

refwidthrefhpos

foldmarkhpos

sigindent

firstfoothpos

firstfootwidth

toaddrheight

locheigh

t

+subjectbeforevskip

subjectaftervskip

backaddrheight

refaftervskip

sigbeforevskip

firstheadvpos

toaddrvpos locvpos

refvpos

tfoldmarkvpos

bfoldmarkvpos

firstfootvpos

Briefkopf

Brieffuß

RücksendeadresseVersandart

EmpfängeradresseAbsender-ergänzung

Geschäftszeile

Titel

Betreff

Anrede

Brieftext

Grußfloskel

Signatur

Abbildung 22.1.: Schematische Darstellung der wichtigsten Pseudolängen für den Briefbogen

Kapitel 22: Zusätzliche Informationen zur Klasse scrlttr2 und Paket scrletter 539

\setplengthtowidth[Faktor ]{Pseudolänge }{Inhalt }\setplengthtoheight[Faktor ]{Pseudolänge }{Inhalt }\setplengthtodepth[Faktor ]{Pseudolänge }{Inhalt }\setplengthtototalheight[Faktor ]{Pseudolänge }{Inhalt }

Diev3.26 ersten drei Anweisungen entsprechen im Wesentlichen \settowidth, \settoheight und\settodepth aus dem LATEX-Kern, setzen aber keine Länge, sondern eine Pseudolänge . Ent-sprechend \setplength sind sie ebenfalls um einen optionalen Faktor erweitert. Sie setzenalso eine Pseudolänge auf die Breite, Höhe oder Tiefe von Inhalt multipliziert mit dem op-tional angegebenen Faktor . Die zusätzliche Anweisung \setplengthtototalheight setzt diePseudolänge auf die Summe der Höhe und Tiefe von Inhalt multipliziert mit dem optionalenFaktor .

22.1.1. Faltmarken

Falt- oder Falzmarken sind kleine horizontale Striche am linken und kleine vertikale Stricheam oberen Rand. KOMA-Script unterstützt für den Briefbogen derzeit drei konfigurierbarehorizontale und eine konfigurierbare vertikale Faltmarke. Dazu wird noch eine horizontaleLoch- oder Seitenmittenmarke unterstützt, die nicht in der Vertikalen verschoben werdenkann.

\setplength{tfoldmarkvpos}{Länge }\setplength{mfoldmarkvpos}{Länge }\setplength{bfoldmarkvpos}{Länge }

KOMA-Script kennt für Briefe scrlttr2 insgesamt drei in der vertikalen Platzierung konfi-gurierbare Faltmarken. Die Position der oberen Faltmarke vom oberen Papierrand wird vonder Pseudolänge tfoldmarkvpos bestimmt. Für die Position der mittleren Faltmarke ist Pseu-dolänge mfoldmarkvposv2.97e , für die unteren Faltmarke bfoldmarkvpos zuständig. Mit der Locher-oder Seitenmittenmarke kommt noch eine weitere horizontale Marke dazu. Diese wird jedochimmer in der vertikalen Seitenmitte platziert. Da ihre vertikale Position also nicht konfigu-rierbar ist, existiert auch keine Pseudolänge dafür.Die obere und untere Faltmarke dienen nicht der exakten Drittelung des Papiers beim Fal-

ten. Stattdessen soll das Papier mit ihrer Hilfe so geknickt werden können, dass das Feld für dieAnschrift in einem Fensterbriefumschlag zu sehen ist. Die Einstellungen sind daher in den vor-definierten lco-Dateien unterschiedlich gewählt. Eine Besonderheit stellt DINmtext dar. Hierwird zwingend von einem Briefumschlag im Format C6/5 (auch »C6 lang« genannt) ausge-gangen. Briefe, die mit dieser Option erstellt wurden, sind normalerweise weder für Umschlägeim Format C5 noch für Umschläge im Format C4 geeignet.Die mittlere Faltmarke wird für abendländische Briefe normalerweise nicht benötigt. Bei-

spielsweise in Japan gibt es jedoch so unterschiedliche Briefumschläge, dass eine weitere Falt-marke benötigt wurde (siehe die japanischen lco-Dateien). An dieser Stelle sei darauf hin-

Kapitel 22: Zusätzliche Informationen zur Klasse scrlttr2 und Paket scrletter 540

gewiesen, dass die Bezeichnungen »obere«, »mittlere« und »untere« Faltmarke lediglich eineSprachkonvention darstellen. Tatsächlich ist nicht festgelegt, dass tfoldmarkvpos kleiner alsmfoldmarkvpos und dieses kleiner als bfoldmarkvpos sein muss. Ist eine der Pseudolängenhingegen Null, so wird die entsprechende Faltmarke auch dann nicht gesetzt, wenn sie perOption foldmarks (siehe Abschnitt 4.10, Seite 192) explizit aktiviert wurde.

\setplength{tfoldmarklength}{Länge }\setplength{mfoldmarklength}{Länge }\setplength{bfoldmarklength}{Länge }\setplength{pfoldmarklength}{Länge }

Diesev2.97e vier Pseudolängen bestimmen die Länge der vier horizontalen Marken. Dabei gilt eineBesonderheit. Ist die Länge nämlich mit Null angegeben, so werden bei den Pseudolängentfoldmarklength, mfoldmarklength und bfoldmarklength für die drei in der vertikalenPosition konfigurierbaren Faltmarken stattdessen 2mm als Länge verwendet. Die Länge derLochermarke, pfoldmarklength, wird hingegen auf 4mm gesetzt.

\setplength{foldmarkhpos}{Länge }

Diese Pseudolänge gibt den Abstand aller horizontalen Faltmarken vom linken Papierrand an.Normalerweise sind das 3,5mm. Sie können den Wert aber auch in Ihrer eigenen lco-Dateiändern, falls Sie einen Drucker verwenden, der einen breiteren unbedruckbaren linken Randhat. Ob die Faltmarken überhaupt gesetzt werden, hängt außerdem von der Option foldmarksab (siehe Abschnitt 4.10, Seite 192).

\setplength{lfoldmarkhpos}{Länge }

Nebenv2.97e den horizontalen Faltmarken gibt es auch noch eine vertikale Faltmarke. Deren Ab-stand von der linken Papierkante wird über die Pseudolänge lfoldmarkhpos bestimmt. DieseFaltmarke wird beispielsweise bei Briefen für einige japanische Chou- oder You-Umschlägebenötigt, wenn man diese für A4-Papier verwenden will. Auch für Umschläge im C6-Formatkann sie nützlich sein.

\setplength{lfoldmarklength}{Länge }

Die Pseudolänge lfoldmarklength bestimmt diev2.97e Länge der vertikalen Faltmarke. Auch hiergibt es die Besonderheit, dass bei einer angegebenen Länge von Null stattdessen 4mm ver-wendet werden.

Kapitel 22: Zusätzliche Informationen zur Klasse scrlttr2 und Paket scrletter 541

\setplength{foldmarkvpos}{Länge }

Diev2.97e Pseudolänge gibt den Abstand aller vertikalen Faltmarken vom oberen Papierrand an.Normalerweise sind das 3,5mm. Sie können den Wert aber auch in Ihrer eigenen lco-Dateiändern, falls Sie einen Drucker verwenden, der einen breiteren unbedruckbaren oberen Randhat. Ob die Faltmarken überhaupt gesetzt werden, hängt außerdem von der Option foldmarksab (siehe Abschnitt 4.10, Seite 192). Derzeit gibt es nur eine einzige vertikale Faltmarke, dieals linke vertikale Faltmarke bezeichnet wird.

\setplength{foldmarkthickness}{Länge }

Diesev2.97c Pseudolänge gibt die Dicke aller Faltmarken an. Voreingestellt sind 0,2 pt, also eine sehrdünne Haarlinie. Insbesondere, wenn die Farbe der Faltmarken geändert wird, kann dies zuwenig sein!

22.1.2. Briefkopf

Unter dem Briefkopf verstehen wir alle Angaben, die den Absender betreffen und die über derAnschrift stehen. Normalerweise würde man erwarten, dass diese über den Seitenstil gesetztwerden. Bei der alten Briefklasse scrlettr war dies auch so. Bei scrlttr2 und scrletter wird derBriefkopf jedoch unabhängig vom Seitenstil von der Anweisung \opening ausgegeben. Dabeiwird der Briefkopf absolut positioniert, ist also vom Satzspiegel unabhängig. Die erste Seiteeines Briefes, also die Seite mit dem Briefkopf, wird tatsächlich mit dem Seitenstil emptygesetzt.

\setplength{firstheadvpos}{Länge }

Die Pseudolänge firstheadvpos gibt den Abstand des Briefkopfes von der oberen Papierkantean. Der Wert wird in den vordefinierten lco-Dateien unterschiedlich gesetzt. Ein typischerWert ist 8mm.

\setplength{firstheadhpos}{Länge }

Die Pseudolänge firstheadhposv3.05 gibt bei einem positiven Wert den Abstand des Briefkopfesvon der linken Papierkante an. Ist der Wert sogar größer oder gleich der Breite des Papiers,\paperwidth, so wird der Briefkopf horizontal zentriert auf dem Briefbogen platziert. Einnegativer Wert gibt den Abstand des Briefkopfes von der rechten Papierkante an. Ist der Wertjedoch kleiner oder gleich der negativen Breite des Papiers, so wird der Briefkopf bündig zumlinken Rand des Satzspiegels platziert.Voreingestellt ist typischerweise ein Wert von \maxdimen, also der größtmögliche Wert für

eine Länge. Die Folge ist eine horizontale Zentrierung.

Kapitel 22: Zusätzliche Informationen zur Klasse scrlttr2 und Paket scrletter 542

\setplength{firstheadwidth}{Länge }

Die Pseudolänge firstheadwidth gibt die Breite des Briefkopfes an. Der Wert wird in denvordefinierten lco-Dateien unterschiedlich gesetzt. Während er normalerweise von der Papier-breite und dem horizontalen Abstand der Empfängeradresse vom linken Papierrand abhängt,entspricht er bei KOMAold der Breite des Satzspiegels und ist bei NF fest auf 170mm eingestellt.

\setplength{fromrulethickness}{Länge }\setplength{fromrulewidth}{Länge }

Wie bereits bei Option fromrule in Abschnitt 4.10, Seite 196 erwähnt wurde, kann in denvordefinierten Briefköpfen eine Linie im oder unter dem Absender gesetzt werden. Hat diePseudolänge fromrulewidth die Länge 0, so wird dabei die Länge dieser Linie automatischbestimmt. Dies ist die Voreinstellung bei den vordefinierten lco-Dateien. Die voreingestellteDickev2.97c , fromrulethickness, der Linie beträgt 0,4 pt.

22.1.3. Anschrift

Unter der Anschrift versteht man normalerweise nur den Namen und die Adresse des Emp-fängers. Aber auch die Versandart, beispielsweise bei Infobriefen, oder die Rücksendeadressewerden als Teil des Anschriftfeldes gesetzt.

\setplength{toaddrvpos}{Länge }\setplength{toaddrhpos}{Länge }

Diese Pseudolängen geben den Abstand des Anschriftfensters eines Fensterbriefumschlags vomoberen und vom linken Rand des Papiers an. Sie werden in den vordefinierten lco-Dateienunterschiedlich eingestellt. Für toaddrhpos gilt außerdem eine Besonderheit. Ist der Wertnegativ, so ist sein Betrag der Abstand des Anschriftfeldes vom rechten Rand des Papiers.Sie finden dies beispielsweise bei SN oder NF. Am kleinsten ist der Wert toaddrvpos beiDINmtext. Hier kann es schnell passieren, dass der Briefkopf in das Anschriftfenster ragt.Ob das Anschriftfenster überhaupt gesetzt wird, hängt von der Option addrfield ab (sieheAbschnitt 4.10, Seite 206).

\setplength{toaddrheight}{Länge }

Diese Pseudolänge gibt die Höhe des Anschriftfeldes einschließlich der Versandart an. Ob Nameund Adresse des Empfängers unter Berücksichtigung der Versandart im Anschriftfeld vertikalzentriert werden hängt von Option addrfield ab.

Kapitel 22: Zusätzliche Informationen zur Klasse scrlttr2 und Paket scrletter 543

\setplength{toaddrwidth}{Länge }

Diese Pseudolänge gibt die Breite des Anschriftfensters an. Diese wird in den vordefiniertenlco-Dateien entsprechend der unterschiedlichen Normen unterschiedlich eingestellt. TypischeWerte liegen zwischen 70mm und 100mm.

Beispiel: Angenommen, Sie haben das Problem, dass Ihr Drucker einen sehr breiten unbe-druckbaren rechten oder linken Rand von 15mm besitzt. Dadurch kann bei OptionSN der Briefkopf, die Absenderergänzung und die Anschrift nicht komplett gedrucktwerden. Sie erstellen daher eine neue lco-Datei mit folgendem Inhalt:\ProvidesFile{SNmmarg.lco}

[2002/06/04 v0.1 my own lco]\LoadLetterOption{SN}\addtoplength{toaddrwidth}{%

-\useplength{toaddrhpos}}\setplength{toaddrhpos}{-15mm}\addtoplength{toaddrwidth}{%\useplength{toaddrhpos}}

\endinput

Bis Sie sich einen Drucker mit kleineren Rändern zugelegt haben, verwenden SieSNmmarg anstelle von SN.

\setplength{toaddrindent}{Länge }

Manchmal will man, dass die Anschrift nicht am linken Rand des Anschriftfensters beginntund bis zum rechten Rand des Fensters reicht, sondern ein wenig eingezogen wird. Der Wertdieses Einzugs kann über die Pseudolänge toaddrindent festgelegt werden. Typischerweiseist dieser Wert jedoch 0 pt.Bei jeder der Einstellungenv3.03 addrfield=PP, addrfield=image und addrfield=

backgroundimage (siehe Abschnitt 4.10, Seite 206) wird beim Wert 0 pt stattdessenein Einzug von 8mm verwendet. Soll hier tatsächlich kein Einzug verwendet werden, so kannmit 1 sp ein vernachlässigbar kleiner Einzug gesetzt werden. Des Weiteren wird toaddrindentbei den genannten Einstellungen für addrfield auch für den Abstand zum rechten Rand desAnschriftfensters verwendet.

\setplength{backaddrheight}{Länge }

Bei Fensterbriefumschlägen wird der Absender häufig in einer kleinen Schrift einzeilig über derEmpfängeradresse ausgegeben. Diese Absenderangabe nennt man Rücksendeadresse, da sie imAnschriftfenster sichtbar ist und der Post bei unzustellbaren Briefen für die Rücksendung anden Absender dient. In dieser Adresse muss daher auch nur die Information enthalten sein,die zur Rücksendung notwendig ist.

Kapitel 22: Zusätzliche Informationen zur Klasse scrlttr2 und Paket scrletter 544

Die Höhe, die innerhalb des Anschriftfensters für die Rücksendeadresse zur Verfügung steht,ist in der Pseudolänge backaddrheight abgelegt. Der Wert wird in den vordefinierten lco-Dateien typischerweise auf 5mm eingestellt. Ob die Rücksendeadresse überhaupt gesetzt wird,bestimmt der Anwender mit den Optionen addrfield (siehe Abschnitt 4.10, Seite 206) undbackaddress (siehe Abschnitt 4.10, Seite 206).

\setplength{specialmailindent}{Länge }\setplength{specialmailrightindent}{Länge }

Zwischen Rücksendeadresse und Empfängeradresse kann noch eine optionale Versandartgesetzt werden. Diese wird genau dann gesetzt, wenn die Variable specialmail einenInhalt hat. Die Ausrichtung wird mit Hilfe der Pseudolängen specialmailindent undspecialmailrightindent festgelegt. Diese geben den linken und rechten Einzug der Zeilean. In den vordefinierten lco-Dateien ist specialmailindent auf den dehnbaren Wert \fillgesetzt, während specialmailrightindent auf 1 em eingestellt ist. Damit wird die Versandart1 em vom rechten Rand des Anschriftfensters gesetzt.

\setplength{PPheadheight}{Länge }\setplength{PPheadwidth}{Länge }

Die Pseudolänge PPheadheight gibt bei den beiden Einstellungenv3.03 addrfield=PP undaddrfield=backgroundimage die Höhe an, die am Anfang des Adressfeldes für den Port-Payé-Kopf reserviert wird. Die Pseudolänge PPheadwidth wird nur bei addrfield=PP (sieheAbschnitt 4.10, Seite 206) verwendet und gibt die Breite des linken Feldes des Port-Payé-Kopfmit dem P.P.-Logo, der Postleitzahl und dem Ort an. Die Breite des rechten Feldes mit demCode für den Absender und der Priorität ist durch die Restbreite bestimmt.Den normalerweise voreingestellten Wert von 0mm für Pseudolänge PPheadheight ändert

KOMA-Script selbstständig in 20,74 pt. Den normalerweise voreingestellten Wert von 0mmfür PPheadwidth ändert KOMA-Script selbstständig in 42mm.

\setplength{PPdatamatrixvskip}{Länge }

Durchv3.03 diese Pseudolänge wird der vertikale Abstand zwischen dem Port-Payé-Kopf und derData-Matrix bei addrfield=PP (siehe Abschnitt 4.10, Seite 206) festgelegt. Den normalerweisevoreingestellten Wert von 0mm ändert KOMA-Script selbstständig in 9mm. Die Data-Matrixwird rechtsbündig zum Port-Payé-Kopf gesetzt.

22.1.4. Absenderergänzungen

Reicht der Raum in Briefkopf und Seitenfuß nicht aus, um alle Angaben zum Absender un-terzubringen, kann der Platz neben der Anschrift als Absenderergänzung genutzt werden.

Kapitel 22: Zusätzliche Informationen zur Klasse scrlttr2 und Paket scrletter 545

\setplength{locheight}{Länge }\setplength{lochpos}{Länge }\setplength{locvpos}{Länge }\setplength{locwidth}{Länge }

Die Pseudolängen locwidth und locheightv2.97d geben die Breite und Höhe der Absenderergän-zung an. Die Pseudolängen lochpos und locvpos geben die Abstände von der rechten, obe-ren Papierkante an. Die Werte werden in den vordefinierten lco-Dateien typischerweise auf0 pt gesetzt. Dieser Wert nimmt eine Sonderstellung ein. Er bedeutet, dass die Werte erstbei \opening anhand der Breite des Papiers, der Breite des Anschriftfensters, des Abstan-des des Anschriftfensters von der linken, oberen Papierkante und Option locfield (sieheAbschnitt 4.10, Seite 211) gesetzt werden. Wie bei toaddrhpos nehmen negative Werte fürlochpos eine Sonderstellung ein. Es wird dann statt des Abstandes vom rechten Papierrandder Betrag von lochpos als Abstand vom linken Papierrand verwendet. Die Bedeutung istalso genau umgekehrt zu der bei toaddrhpos (siehe Abschnitt 22.1.3, Seite 542).

22.1.5. Geschäftszeile

Die Geschäftszeile kann auch länger als eine Zeile sein. Sie wird nur gesetzt, wenn mindestenseine der Variablen für die Geschäftszeile nicht leer ist. Es werden nur nicht leere Felder gesetzt.Um ein scheinbar leeres Feld zu setzen, kann man einen scheinbar leeren Variableninhaltwie \mbox{} verwenden. Wird auf die Geschäftszeile verzichtet, so werden an ihrer StelleBezeichnung und Inhalt der Variablen date ausgegeben.

\setplength{refvpos}{Länge }

Diese Pseudolänge gibt den Abstand der Geschäftszeile von der Oberkante des Papiers an. IhrWert wird in den vordefinierten lco-Dateien unterschiedlich eingestellt.

\setplength{refwidth}{Länge }\setplength{refhpos}{Länge }

Die Pseudolänge refwidth gibt die Breite an, die für die Geschäftszeile zur Verfügung steht.Ihr Wert wird in den vordefinierten lco-Dateien typischerweise auf 0 pt gesetzt. Dieser Werthat eine besondere Bedeutung. Damit wird festgelegt, dass die verfügbare Breite erst innerhalbvon \opening ermittelt wird. Diese Breite richtet sich dann nach der Einstellung der Optionrefline (siehe Abschnitt 4.10, Seite 213). Gleichzeitig wird dann auch refhpos entsprechendder Option gesetzt. Bei refline=wide wird die Geschäftszeile zentriert, wohingegen sie beirefline=narrow am Satzspiegel links ausgerichtet wird.

Ist refwidth von Null verschieden, wird die Breite der Geschäftszeile also nicht von derOption refline bestimmt, so gibt refhpos den Abstand der Geschäftszeile von der linkenPapierkante an. Ist dieser Abstand Null, so wird die Geschäftszeile so ausgerichtet, dass dasVerhältnis zwischen ihrem Abstand von der linken Papierkante zu ihrem Abstand von der

Kapitel 22: Zusätzliche Informationen zur Klasse scrlttr2 und Paket scrletter 546

rechten Papierkante dem Verhältnis zwischen dem Abstand des Satzspiegels von der linkenPapierkante zu seinem Abstand von der rechten Papierkante entspricht. Bei auf dem Papierhorizontal zentriertem Satzspiegel wird also auch die Geschäftszeile zentriert.In der Regel werden diese Sonderfälle für die häufigsten Anwendungen von geringem Inter-

esse sein. Die einfachste Regel lautet hier: Entweder wird refwidth auf Null belassen und dieBreite und Ausrichtung der Geschäftszeile über die Option refline bestimmt oder sowohlrefwidth als auch refhpos werden vom Anwender vorgegeben.

\setplength{refaftervskip}{Länge }

Diese Pseudolänge gibt den vertikalen Abstand an, der nach der Geschäftszeile eingefügt wer-den soll. Der Wert wird in den vordefinierten lco-Dateien eingestellt. Er wirkt sich unmittelbarauf die Höhe des Textbereichs der ersten Seite aus. Der typische Wert liegt zwischen einer undzwei Zeilen.

22.1.6. Betreff

Der Betreff eine Briefes wird in unterschiedlichen Ländern unterschiedlich gesetzt. Die einenhaben ihn gerne vor der Anrede, die anderen setzen ihn danach. Einige Berufsgruppen wollenihn teilweise sogar vor der Geschäftszeile haben.

\setplength{subjectvpos}{Länge }

v3.01 Ist der Wert dieser Pseudolänge 0 pt, so bestimmt die Option subject (siehe Abschnitt 4.10,Seite 217) die Position des Betreffs. Dabei spielen dann auch die nachfolgend erklärten Pseu-dolängen subjectbeforevskip und subjectaftervskip ihre Rolle. Bei allen anderen Wertenwird der Betreff mit dem entsprechenden Abstand von der oberen Papierkante platziert. Eswird empfohlen in diesem Fall darauf zu achten, dass genügend Platz zur Verfügung steht,damit Überschneidungen mit anderen Elementen unwahrscheinlich sind.

Beispiel: Einige wenige Berufsgruppen ziehen es vor, wenn der Betreff noch vor der Ge-schäftszeile steht. Hierzu kann man die Position wie folgt wählen, wobei auch diePosition der Geschäftszeile angepasst wird:\ProvidesFile{lawsubj.lco}

[2008/11/03 lawyers lco file]\setplength{subjectvpos}{\useplength{refvpos}}\addtoplength{refvpos}{3\baselineskip}\endinput

Will man, dass zwischen Betreff und Geschäftszeile noch mindestens eine Zeile freibleibt, hat man so Platz für maximal zwei Zeilen Betreff.

Kapitel 22: Zusätzliche Informationen zur Klasse scrlttr2 und Paket scrletter 547

\setplength{subjectbeforevskip}{Länge }\setplength{subjectaftervskip}{Länge }

v3.01 Wird der Betreff nicht absolut platziert, sondern vor oder nach der Anrede, so kann vor undnach dem Betreff ein zusätzlicher Abstand eingefügt werden. Der Abstand vor dem Betrefftrifft dabei gegebenenfalls mit anderen Abständen, etwa dem automatischen Abstand voneiner Zeile nach dem Titel, zusammen. In der Voreinstellung wird daher in der Regel keinweiterer Abstand an dieser Stelle eingefügt. Der Abstand nach dem Betreff beträgt in derVoreinstellung von Klasse und Paket zwei Zeilen.

22.1.7. Schlussgruß

Der Schlussgruß eines Briefes besteht aus mehreren Teilen. Neben der Grußformel selbst gibtes noch die Unterschrift und die Signatur, eine Art Erläuterung zur Unterschrift.

\setplength{sigindent}{Länge }\setplength{sigbeforevskip}{Länge }

Grußfloskel und Erläuterung der Unterschrift werden innerhalb einer Box gesetzt. Die Breitedieser Box wird durch die längste Zeile innerhalb von Grußfloskel und Erläuterung bestimmt.Die Box wird mit dem durch die Pseudolänge sigindent bestimmten Einzug gesetzt. In

den vordefinierten lco-Dateien ist der Einzug auf 0mm gesetzt.Zwischen Grußfloskel und Erläuterung wird ein vertikaler Abstand eingefügt, der mit der

Pseudolänge sigbeforevskip festgelegt ist. In den vordefinierten lco-Dateien ist der Wertauf zwei Zeilen eingestellt. In diese Lücke setzen Sie dann Ihre Unterschrift.

22.1.8. Briefbogenfuß

Die erste Seite eines Briefes, der Briefbogen, enthält nicht nur einen eigenen Kopf, den Brief-kopf. Diese Seite enthält auch einen eigenen Fuß, den Briefbogenfuß. Auch dieser wird nichtüber den Seitenstil, sondern unmittelbar von \opening ausgegeben.

\setplength{firstfootvpos}{Länge }

Diese Pseudolänge gibt den Abstand des Fußes der ersten Briefseite von der Oberkante desPapiers an. Es wird außerdem dafür gesorgt, dass der Textbereich nicht in den Fuß hinein-ragt. Hierzu wird auf der ersten Seite gegebenenfalls die Höhe des Textbereichs mit Hilfe von\enlargethispage verkleinert. Mit Hilfe der Option enlargefirstpage (siehe Abschnitt 4.10,Seite 194) kann dafür gesorgt werden, dass die Höhe des Textbereichs umgekehrt gegebenen-falls auch vergrößert wird. Damit kann dann der Abstand zwischen Textbereich und Fuß derersten Seite auf den Wert der Länge \footskip verringert werden.

Bei Kompatibilitätseinstellungenv2.9t bis Version 2.9t (siehe version in Abschnitt 4.4, Seite 172)wird außer bei KOMAold und NF in allen vordefinierten lco-Dateien (siehe Abschnitt 4.21)

Kapitel 22: Zusätzliche Informationen zur Klasse scrlttr2 und Paket scrletter 548

der Fuß abhängig vom Satzspiegel gesetzt. Damit hat dann auch enlargefirstpage keineWirkung. Ab Version 2.9u bekommt der Fuß eine Position am unteren Ende des Papiers.Damit ist dann die Höhe des Satzspiegels des Briefbogens eventuell auch von der Optionenlargefirstpage abhängig.

Sollte der Briefbogenfuß mittels Option firstfoot=falsev2.97e (siehe Abschnitt 4.10, Sei-te 219) abgeschaltet sein, so wird die Einstellung von firstfootvpos ignoriert und statt-dessen \paperheight angenommen. Es bleibt damit dann ein minimaler unterer Rand von\footskip.

\setplength{firstfoothpos}{Länge }

Die Pseudolänge firstfoothposv3.05 gibt bei einem positiven Wert den Abstand des Briefbogenfu-ßes von der linken Papierkante an. Ist der Wert sogar größer oder gleich der Breite des Papiers,\paperwidth, so wird der Fuß horizontal zentriert auf dem Briefbogen platziert. Ein negativerWert gibt den Abstand des Fußes von der rechten Papierkante an. Ist der Wert jedoch kleineroder gleich der negativen Breite des Papiers, so wird der Fuß bündig zum linken Rand desSatzspiegels platziert.Voreingestellt ist typischerweise ein Wert von \maxdimen, also der größtmögliche Wert für

eine Länge. Die Folge ist eine horizontale Zentrierung.

\setplength{firstfootwidth}{Länge }

Diese Pseudolänge gibt die Breite des Fußes der ersten Briefseite, also des Briefbogens, an.Der Wert stimmt in den vordefinierten lco-Dateien mit firstheadwidth überein.

22.2. Variablen für fortgeschrittene Anwender

Neben der Möglichkeit, vordefinierte Variablen zu verwenden, bietet KOMA-Script auch An-weisungen, um neue Variablen zu definieren oder deren automatische Verwendung innerhalbder Geschäftszeile zu beeinflussen.

\newkomavar[Bezeichnung ]{Name }\newkomavar*[Bezeichnung ]{Name }\removereffields\defaultreffields\addtoreffields{Name }

Mit \newkomavar wird eine neue Variable definiert. Diese Variable wird über Name ange-sprochen. Optional kann eine Bezeichnung für die Variable Name angegeben werden. EineBezeichnung wird dabei im Unterschied zum Name nicht verwendet, um auf eine Variablezuzugreifen. Vielmehr ist die Bezeichnung eine Ergänzung zum Inhalt einer Variable, dieähnlich ihrem Inhalt ausgegeben werden kann.

Kapitel 22: Zusätzliche Informationen zur Klasse scrlttr2 und Paket scrletter 549

Mit der Anweisung \addtoreffields kann die Variable Name der Geschäftszeile (sieheAbschnitt 4.10, Seite 213) hinzugefügt werden. Dabei wird die Bezeichnung und der Inhaltder Variablen an das Ende der Geschäftszeile angehängt, falls ihr Inhalt nicht leer ist. DieSternvariante \newkomavar* entspricht der Variante ohne Stern mit anschließendem Aufrufder Anweisung \addtoreffields. Bei der Sternvariante wird die Variable also automatischzur Geschäftszeile hinzugefügt.

Beispiel: Angenommen, Sie benötigen in der Geschäftszeile ein zusätzliches Feld für eineDurchwahl. Sie können das Feld dann wahlweise mit\newkomavar[Durchwahl]{myphone}\addtoreffields{myphone}

oder kürzer mit\newkomavar*[Durchwahl]{myphone}

definieren.

Im Fall, dass eine Variable für die Geschäftszeile definiert wird, sollten Sie immer eine Be-zeichnung dafür angeben.Mit der Anweisung \removereffields können alle Variablen aus der Geschäftszeile entfernt

werden. Dies betrifft auch die in der Klasse vordefinierten Variablen. Die Geschäftszeile istdann leer. Sie können dies beispielsweise nutzen, wenn Sie die Reihenfolge der Variablen inder Geschäftszeile ändern wollen.Zur Wiederherstellung der Reihenfolge der vordefinierten Variablen in der Geschäftszeile

dient \defaultreffields. Dabei werden auch alle selbst definierten Variablen aus der Ge-schäftszeile entfernt.Das Datum sollte der Geschäftszeile nicht über die Anweisung \addtoreffields hinzuge-

fügt werden. Stattdessen stellt man mit Option refline ein, ob das Datum links, rechts odergar nicht in der Geschäftszeile erscheinen soll. Diese Einstellungen haben darüber hinaus aucheinen Einfluss auf die Position des Datums, wenn gar keine Geschäftszeile verwendet wird.

\usekomavar[Anweisung ]{Name }\usekomavar*[Anweisung ]{Name }

Die Anweisungen \usekomavar und \usekomavar* sind wie alle Anweisungen, von denen eseine Sternvariante gibt oder die ein optionales Argument besitzen, nicht voll expandierbar.Bei Verwendung innerhalb von \markboth, \markright oder ähnlichen Anweisungen mussdennoch kein \protect vorangestellt werden. Selbstverständlich gilt dies bei Verwendung vonscrlayer-scrpage auch für \markleft (siehe Abschnitt 5.5, Seite 275). Allerdings können dieAnweisungen nicht innerhalb von \MakeUppercase und ähnlichen Anweisungen verwendetwerden, die direkten Einfluss auf ihr Argument haben. Diese Anweisungen können jedoch alsoptionales Argument angegeben werden. So erhält man beispielsweise den Inhalt einer Variablein Großbuchstaben mit:

Kapitel 22: Zusätzliche Informationen zur Klasse scrlttr2 und Paket scrletter 550

\usekomavar[\MakeUppercase]{Name }

\ifkomavarempty{Name }{Wahr }{Falsch }\ifkomavarempty*{Name }{Wahr }{Falsch }

Für die exakte Funktion ist wichtig, dass der Inhalt der Variablen soweit expandiert wird,wie dies mit \edef möglich ist. Bleiben dabei Leerzeichen oder unexpandierbare Makros wie\relax übrig, so gilt der Inhalt auch dann als nicht leer, wenn die Verwendung der Variablenzu keiner Ausgabe führen würde.

Auch diese Anweisung kann nicht innerhalb von \MakeUppercase oder ähnlichen Anwei-sungen verwendet werden. Sie ist jedoch robust genug, um beispielsweise als Argument von\markboth oder \footnote zu funktionieren.

\foreachkomavar{Variablenliste }{Befehl }\foreachnonemptykomavar{Variablenliste }{Befehl }\foreachemptykomavar{Variablenliste }{Befehl }\foreachkomavarifempty{Variablenliste }{Dann-Befehl }{Sonst-Befehl }

Mitv3.27 der Anweisung \foreachkomavar wird der angegebene Befehl für jede Variable aus derdurch Komma separierten Variablenliste ausgeführt. Dabei wird der Name der jeweiligenVariablen als Argument an den Befehl angehängt.Die Anweisung \foreachnonemptykomavar führt im Unterschied dazu Befehl nur aus,

wenn die Variable im Sinne von \ifkomavarempty nicht leer ist. Leere Variablen in derVariablenliste haben dagegen keine Auswirkungen.Dagegen führt \foreachemptykomavar den Befehl aus, wenn die Variable im Sinne von

\ifkomavarempty leer ist. Nicht leere Variablen in der Variablenliste haben entsprechendkeine Auswirkungen.Die Anweisung \foreachkomavarifempty ist quasi eine Verschmelzung beider vorgenann-

ten. Sie führt Dann-Befehl für alle leeren Variablen aus, während Sonst-Befehl für die nichtleeren Variablen zur Anwendung kommt. Wie bei Befehl wird in beiden Fällen der Name derjeweiligen Variable als Argument angehängt.

22.3. Ergänzende Informationen zu den Seitenstilen

Im KOMA-Script-Buch [Koh18a] finden sich an dieser Stelle weitere Informationen.

22.4. lco-Dateien für fortgeschrittene Anwender

Obwohl jedes von typearea einstellbare Format verwendbar ist, kann es bei der Ausgabe derersten Briefseite mit manchen Formaten zu unerwünschten Ergebnissen kommen. Leider gibtes keine allgemein gültigen Regeln, um die Position von Anschriftfeldern und Ähnlichem für

Kapitel 22: Zusätzliche Informationen zur Klasse scrlttr2 und Paket scrletter 551

beliebige Papierformate zu berechnen. Vielmehr werden für unterschiedliche Papierformateunterschiedliche Parameter benötigt.Derzeit existieren Parametersätze und lco-Dateien für A4-Papier und letter-Papier. Die

Klasse scrlttr2 versteht aber theoretisch sehr viel mehr Papierformate. Daher ist es notwendigzu überwachen, ob die korrekte Papiergröße eingestellt ist. Dies gilt umso mehr, wenn scrletterverwendet wird, da die Einstellung der Papiergröße dann in erster Linie von der verwendetenKlasse abhängt.

\LetterOptionNeedsPapersize{Optionsname }{Papiergröße }

Damit man bei Verwendung einer in der lco-Datei nicht vorgesehenen Papiergrößezumindest gewarnt wird, sind in den mit KOMA-Script ausgelieferten lco-Dateien\LetterOptionNeedsPapersize-Anweisungen zu finden. Als erstes Argument wird dabei derName der lco-Datei ohne die Endung ».lco« übergeben. Als zweites Argument wird diePapiergröße übergeben, für die diese lco-Datei gedacht ist.Werden nacheinander mehrere lco-Dateien geladen, so kann jede dieser lco-Dateien eine

Anweisung \LetterOptionNeedsPapersize enthalten. Innerhalb von \opening wird jedochnur auf die jeweils letzte angegebene Papiergröße geprüft. Wie das nachfolgende Beispielzeigt, ist es daher für den versierten Anwender leicht möglich, lco-Dateien mit Parametersät-zen für andere Papierformate zu schreiben.

Beispiel: Nehmen wir einmal an, dass Sie A5-Papier in normaler Ausrichtung, also hochkantoder portrait, für Ihre Briefe verwenden. Nehmen wir weiter an, dass Sie diese innormale Fensterbriefumschläge im Format C6 stecken. Damit wäre prinzipiell diePosition des Adressfeldes die gleiche wie bei einem normalen Brief in A4 nach DIN.Der Unterschied besteht im Wesentlichen darin, dass das A5-Papier nur einmalgefaltet werden muss. Sie wollen deshalb verhindern, dass die obere und die untereFaltmarke gesetzt wird. Dies erreichen Sie beispielsweise, indem Sie die Markenaußerhalb des Papiers platzieren.\ProvidesFile{a5.lco}

[2002/05/02 letter class option]\LetterOptionNeedsPapersize{a5}{a5}\setplength{tfoldmarkvpos}{\paperheight}\setplength{bfoldmarkvpos}{\paperheight}\endinput

Eleganter wäre es natürlich, die Marken mit Hilfe der Option foldmarks abzuschal-ten. Außerdem muss auch noch die Position des Seitenfußes, also die Pseudolängefirstfootvpos, angepasst werden. Ich überlasse es dem Leser, dafür einen geeig-neten Wert zu ermitteln. Mit einer solchen lco-Datei ist es lediglich wichtig, dassandere lco-Dateioptionen wie SN vor dem Laden von »a5.lco«, angegeben werden.

Kapitel 22: Zusätzliche Informationen zur Klasse scrlttr2 und Paket scrletter 552

visualize.lco

Wenn man selbst lco-Dateien entwickelt, beispielsweise um die Positionen von verschiedenenFeldern des Briefbogens an eigene Wünsche oder Notwendigkeiten anzupassen, ist es hilfreich,wenn zumindest einige Elemente direkt sichtbar gemacht werden können. Zu diesem Zweckexistiert die lco-Datei visualize.lcov3.04 . Diese kann wie jede lco-Datei geladen werden. Al-lerdings ist das Laden dieser Letter Class Option auf die Dokumentpräambel beschränkt undseine Auswirkungen können nicht wieder rückgängig gemacht werden. Die lco-Datei bedientsich der Pakete eso-pic und graphicx, die nicht zu KOMA-Script gehören.

\showfields{Feldliste }

Mit dieser Anweisung kann bei Verwendung von visualize.lco die Visualisierung von Felderndes Briefbogens aktiviert werden. Das Argument Feldliste ist dabei eine durch Kommaseparierte Liste der Feldern, die visualisiert werden sollen. Folgende Felder werden derzeitunterstützt:

test – ist ein Testfeld der Größe 10 cm auf 15 cm, das jeweils 1 cm vom oberen und linkenPapierrand entfernt ist. Dieses Testfeld existiert zu Debuggingzwecken. Es dientals Vergleichsmaß für den Fall, dass im Dokumenterstellungsprozess die Maßeverfälscht werden.

head – ist der Kopfbereich des Briefbogens. Es handelt sich hier um ein nach unten offenesFeld.

foot – ist der Fußbereich des Briefbogens. Es handelt sich hier um ein nach unten offenesFeld.

address – ist das Anschriftfenster.

location – ist das Feld der Absenderergänzung.

refline – ist die Geschäftszeile. Es handelt sich hier um ein nach unten offenes Feld.

Mit den Anweisungen \setkomafont und \addtokomafont (siehe Abschnitt 4.9, Seite 188)für das Element field kann die Farbe der Visualisierung geändert werden. Voreingestellt ist\normalcolor.

Kapitel 22: Zusätzliche Informationen zur Klasse scrlttr2 und Paket scrletter 553

\setshowstyle{Stil }\edgesize

In der Voreinstellung werden von visualize.lco die einzelnen Felder durch Rahmen markiert.Dies entspricht dem Stil frame. Nach unten offene Felder werden dabei nicht komplett um-rahmt, sondern unten offen mit kleinen Pfeilen nach unten dargestellt. Als Alternative hierzusteht auch der Stil rule zur Verfügung. Dabei wird das Feld farbig hinterlegt. Hierbei kannnicht zwischen geschlossenen und nach unten offenen Feldern unterschieden werden. Stattdes-sen werden nach unten offene Felder mit einer Mindesthöhe dargestellt. Der dritte verfügbareStil ist edges. Dabei werden die Ecken der Felder markiert. Bei nach unten offenen Feldernentfallen dabei die unteren Eckmarkierungen. Die Größe der Eckmarkierungen ist im Makro\edgesize abgelegt und mit 1 ex voreingestellt.

\showenvelope(Breite,Höhe )(HOffset,VOffset )[Zusatz ]\showISOenvelope{Format }[Zusatz ]\showUScommercial{Format }[Zusatz ]\showUScheck[Zusatz ]\unitfactor

Diese Anweisungen dienen bei Verwendung von visualize.lco dazu, eine Seite mit einerZeichnung eines Umschlags auszugeben. Der Umschlag wird dabei immer um 90° gedreht aufeiner eigenen Seite im Maßstab 1:1 ausgegeben. Das Anschriftfenster wird automatisch aus denaktuellen Daten für die Anschriftposition auf dem Briefbogen: toaddrvpos, toaddrheight,toaddrwidth und toaddrhpos, erzeugt. Hierfür ist es notwendig zu wissen, um welchen Wertder gefaltete Briefbogen auf jeder Seite kleiner als die Breite und Höhe des Briefbogens ist.Sind diese beiden Werte, HOffset und VOffset , bei \showenvelope nicht angegeben, so wirdversucht, sie aus den Faltmarken und der Papiergröße selbst zu berechnen.Die Anweisungen \showISOenvelope, \showUScommercial und \showUScheck basieren auf

\showenvelope. Mit \showISOenvelope kann ein ISO-Umschlag im Format C4, C5, C5/6,DL (auch bekannt als C5/6) oder C6 erzeugt werden. Mit \showUScommercial wird hingegenein US-Commercial-Umschlag im Format 9 oder 10 ausgegeben. \showUScheck schließlich istfür Umschläge im US-Check-Format zuständig.Innerhalb des Umschlags wird die Lage des Briefbogens gestrichelt angedeutet. Die da-

bei verwendete Farbe kann mit Hilfe der Anweisungen \setkomafont und \addtokomafont(siehe Abschnitt 4.9, Seite 188) für das Element letter verändert werden. Voreingestellt ist\normalcolor.Die Umschlagzeichnung wird automatisch bemaßt. Die Farbe der Bemaßung und die Größe

deren Beschriftung kann mit Hilfe der Anweisungen \setkomafont und \addtokomafont (sie-he Abschnitt 4.9, Seite 188) für das Element measure verändert werden. Voreingestellt ist hier\normalcolor. Die Bemaßung erfolgt in Vielfachen von \unitlength mit einer maximalenGenauigkeit von 1/\unitfactor, wobei die Genauigkeit der TEX-Arithmetik die tatsächlicheGrenze darstellt. Voreingestellt ist 1. Eine Umdefinierung ist mit \renewcommand möglich.

Kapitel 22: Zusätzliche Informationen zur Klasse scrlttr2 und Paket scrletter 554

Beispiel: Es wird ein Beispielbrief im Format ISO A4 erzeugt. Die unterstützten Felder sollenzwecks Überprüfung ihrer Position mit gelben Rahmenlinien markiert werden. DesWeiteren soll die Position des Fensters in einem Umschlag der Größe DL mit Hilfeeiner Zeichnung überprüft werden. Die Maßlinien in dieser Zeichnung sollen rotund die Maßzahlen in kleinerer Schrift ausgegeben werden, wobei die Maßzahlenin cm mit einer Genauigkeit von 1mm ausgegeben werden sollen. Der gestrichelteBriefbogen im Umschlag soll hingegen grün eingefärbt werden.\documentclass[visualize]{scrlttr2}\usepackage{xcolor}\setkomafont{field}{\color{yellow}}\setkomafont{measure}{\color{red}\small}\setkomafont{letter}{\color{green}}\showfields{head,address,location,refline,foot}\usepackage[ngerman]{babel}\usepackage{lipsum}\begin{document}\setkomavar{fromname}{Peter Musterfrau}\setkomavar{fromaddress}{Hinter dem Tal 2\\

54321 Musterheim}\begin{letter}{%

Petra Mustermann\\Vor dem Berg 1\\12345 Musterhausen%

}\opening{Hallo,}\lipsum[1]\closing{Bis dann}\end{letter}\setlength{\unitlength}{1cm}\renewcommand*{\unitfactor}{10}\showISOenvelope{DL}\end{document}

Auf der ersten Seite findet sich nun der Briefbogen, auf der zweiten Seite wird dieZeichnung des Umschlags ausgegeben.

Bezüglich der Bemaßung ist zu beachten, dass ungünstige Kombinationen von \unitlengthund \unitfactor sehr schnell einen TEX-Fehler der Art arithmetic overflow provozieren. Eben-so kann es geschehen, dass ausgegebene Maßzahlen geringfügig vom tatsächlichen Wert ab-weichen. Beides sind keine Fehler von visualize, sondern lediglich Implementierungsgrenzen.

Kapitel 22: Zusätzliche Informationen zur Klasse scrlttr2 und Paket scrletter 555

22.5. Unterstützung verschiedener Sprachen

Die Klasse scrlttr2 und das Paket scrletter unterstützen viele Sprachen. Dazu zählen Deutsch(german für alte deutsche Rechtschreibung, ngerman für neue deutsche Rechtschreibung,austrian für Österreichisch mit alter deutscher Rechtschreibung und naustrianv3.09 für Öster-reichisch mit neuer deutscher Rechtschreibung), nswissgermanv3.13 für Schweizer Deutsch mitneuer Rechtschreibung und swissgerman für Schweizer Deutsch mit alter Rechtschreibung,Englisch (unter anderem english ohne Angabe, ob amerikanisches oder britisches Englisch,american und USenglish für Amerikanisch, british und UKenglish für Britisch), Fran-zösisch, Italienisch, Spanisch, Niederländisch, Kroatisch, Finnisch, Norwegischv3.02 , Schwedischv3.08 ,Polnischv3.13 , Tschechischv3.13 und Slowakisch.Zwischen den Sprachen wird bei Verwendung des babel-Pakets (siehe [BB13]) mit der An-

weisung \selectlanguage{Sprache } gewechselt. Andere Pakete wie german (siehe [Rai98a])und ngerman (siehe [Rai98b]) besitzen diese Anweisung ebenfalls. In der Regel erfolgt eineSprachumschaltung jedoch bereits aufgrund des Ladens eines solchen Pakets.

Erlauben Sie mir noch einen Hinweis zu den Sprachumschaltpaketen. Das Paket french (siehe[Gau07]) nimmt neben der Umdefinierung der Begriffe aus Tabelle 22.2, Seite 558 weitereÄnderungen vor. So definiert es etwa die Anweisung \opening um. Dabei geht es einfachdavon aus, dass \opening immer wie in der Standardbriefklasse letter definiert ist. Dies istbei KOMA-Script jedoch nicht der Fall. Das Paket french zerstört deshalb die Definition undarbeitet nicht korrekt mir KOMA-Script zusammen. Ich betrachte dies als Fehler des Paketsfrench, der obwohl schon vor Jahrzehnten gemeldet, leider nie beseitigt wurde.Wird das Paket babel für die Umschaltung auf die Sprache verwendet, können vereinzelt

ebenfalls Probleme auftreten. Bei babel lassen sich problematisch Änderungen einer Sprachejedoch meist gezielt abschalten.Es ist nicht auszuschließen, dass mit anderen Sprachen und Paketen ähnliche Probleme

auftreten. Für Deutsch sind solche Probleme jedoch nicht bekannt und treten weder mit denPaketen german oder ngerman noch mit babel auf.

Kapitel 22: Zusätzliche Informationen zur Klasse scrlttr2 und Paket scrletter 556

\yourrefname\yourmailname\myrefname\customername\invoicename\subjectname\ccname\enclname\headtoname\headfromname\datename\pagename\mobilephonename\phonename\faxname\emailname\wwwname\bankname

Die aufgeführten Anweisungen enthalten die jeweiligen sprachtypischen Begriffe. Diese könnenfür die Realisierung einer weiteren Sprache oder aber auch zur eigenen freien Gestaltung wiein Abschnitt 12.4 erklärt angepasst werden. Von KOMA-Script werden die Begriffe erst nachder Präambel, also bei \begin{document} gesetzt. Sie sind daher vorher nicht verfügbar undkönnen vorher auch nicht geändert werden. In Tabelle 22.2, Seite 558 sind die Voreinstellungenfür english und ngerman zu finden.

Kapitel 22: Zusätzliche Informationen zur Klasse scrlttr2 und Paket scrletter 557

\captionsacadian\captionsamerican\captionsaustralien\captionsaustrian\captionsbritish\captionscanadian\captionscanadien\captionscroatian\captionsczech\captionsdutch\captionsenglish\captionsfinnish\captionsfrancais\captionsfrench\captionsgerman\captionsitalian\captionsnaustrian\captionsnewzealand\captionsngerman\captionsnorsk\captionsnswissgerman\captionspolish\captionsslovak\captionsspanish\captionsswedish\captionsswissgerman\captionsUKenglish\captionsUSenglish

Wird die Sprache eines Briefes gewechselt, so werden über diese Anweisungen die Begriffeaus Tabelle 22.2, Seite 558 umdefiniert. Sollte das verwendete Sprachumschaltpaket dies nichtunterstützen, so können obige Anweisungen notfalls auch direkt verwendet werden.

Kapitel 22: Zusätzliche Informationen zur Klasse scrlttr2 und Paket scrletter 558

Tabelle 22.2.: Voreinstellungenfür die sprachabhängigen Begriffebei den Sprachen english undngerman soweit nicht durch diePakete zur Sprachumschaltungbereits definiert

Anweisung english ngerman

\bankname Bank account Bankverbindung\ccname1 cc Kopien an\customername Customer no. Kundennummer\datename Date Datum\emailname Email E-Mail\enclname1 encl Anlagen\faxname Fax Fax\headfromname From Von\headtoname1 To An\invoicename Invoice no. Rechnungsnummer\myrefname Our ref. Unser Zeichen\pagename1 Page Seite\mobilephonename Mobile phone Mobiltelefon\phonename Phone Telefon\subjectname Subject Betrifft\wwwname Url URL\yourmailname Your letter of Ihr Schreiben vom\yourrefname Your ref. Ihr Zeichen

1 Diese Begriffe werden normalerweise bereits von Sprachpaketen wie babel definiert und dann von KOMA-Script nicht überschrieben. Abweichungen imWortlaut sind daher möglich und der Anleitung des verwendetenSprachpakets zu entnehmen.

\dateacadian\dateamerican\dateaustralien\dateaustrian\datebritish\datecanadian\datecanadien\datecroatian\dateczech\datedutch\dateenglish\datefinnish\datefrancais\datefrench\dategerman\dateitalian\datenaustrian\datenewzealand\datengerman\datenorsk\datenswissgerman\datepolish\dateslovak\datespanish\dateswedish\dateswissgerman\dateUKenglish\dateUSenglish

Je nach verwendeter Sprache werden auch die Datumsangaben des nummerischen Datums (sie-he Option numericaldate in Abschnitt 4.10, Seite 212) in unterschiedlicher Form umgesetzt.

Kapitel 22: Zusätzliche Informationen zur Klasse scrlttr2 und Paket scrletter 559

Tabelle 22.3.: Sprachabhängige Ausgabeformate fürdas Datum Anweisung Ausgabebeispiel

\dateacadian 24. 12. 1993\dateamerican 12/24/1993\dateaustralien 24/12/1993\dateaustrian 24. 12. 1993\datebritish 24/12/1993\datecanadian 1993/12/24\datecanadien 1993/12/24\datecroatian 24. 12. 1993.\dateczech 24. 12. 1993\datedutch 24. 12. 1993\dateenglish 24/12/1993\datefinnish 24.12.1993.\datefrancais 24. 12. 1993\datefrench 24. 12. 1993\dategerman 24. 12. 1993\dateitalian 24. 12. 1993\datenaustrian 24. 12. 1993\datenewzealand 24/12/1993\datengerman 24. 12. 1993\datenorsk 24.12.1993\datenswissgerman 24. 12. 1993\datepolish 24. 12. 1993\dateslovak 24. 12. 1993\datespanish 24. 12. 1993\dateswedish 24/12 1993\dateswissgerman 24. 12. 1993\dateUKenglish 24/12/1993\dateUSenglish 12/24/1993

Die genauen Angaben können Tabelle 22.3, Seite 559 entnommen werden.

22.6. Obsolete Anweisungen von scrlttr2

Im KOMA-Script-Buch [Koh18a] finden sich an dieser Stelle weitere Informationen.

Änderungsliste 560

Änderungsliste

Sie finden im folgenden eine Auflistung aller wesentlichen Änderungen der Benutzerschnitt-stelle im KOMA-Script-Paket der neueren Zeit. Die Liste ist sowohl nach Versionen als auchnach Paket- und Klassennamen sortiert. Zu jeder Version, jedem Paket und jeder Klasse istjeweils angegeben, auf welchen Seiten dieser Dokumentation die Änderungen zu finden sind.Auf den entsprechenden Seiten finden Sie dazu passende Randmarkierungen.

scrartclv2.8p . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62, 71, 87, 110, 113, 129, 141, 235v2.8q . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44, 77, 98, 144, 150, 153v2.96a . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33, 58, 114, 172, 294v2.97c . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71, 80, 301v3.00 . . 32, 57, 59, 68, 75, 76, 77, 82, 85, 92, 93, 95, 96, 97, 102, 144, 145, 153, 154, 159,

161, 162, 171, 253, 293, 314, 315, 428, 429, 434, 435, 482, 483v3.01a . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33, 58, 172, 294v3.02 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130v3.05 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142v3.06 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99, 153, 154, 155v3.07 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65, 99v3.08 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82, 84, 502, 503v3.09 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137, 138, 139, 142v3.09a . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142v3.10 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103, 104, 105, 107, 124, 147v3.12 63, 64, 66, 67, 69, 72, 74, 78, 103, 105, 121, 122, 155, 156, 159, 160, 191, 257, 298,

316, 484v3.15 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66, 79, 80, 81, 153, 506, 507, 517, 519, 527v3.17 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60, 117, 505, 506, 519, 520v3.18 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76, 78, 162, 507v3.19 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 505, 509, 524v3.20 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151, 508, 509, 513, 514v3.22 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107, 109v3.23 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99v3.24 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 505, 508v3.25 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59, 70, 151, 506, 520v3.26 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 508, 510, 512v3.27 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107, 109, 518, 526, 527, 528

scrbasev3.05a . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 367v3.08 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 352

Änderungsliste 561

v3.12 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 341, 347, 351, 352, 353, 355, 358, 359, 360, 362, 363v3.15 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 342, 351, 352v3.18 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 343v3.20 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 344, 352v3.21 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 356v3.23 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 347v3.25 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 353v3.27 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 346, 347, 349, 360, 367, 368, 369, 370

scrbookv2.8o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119v2.8p . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62, 71, 87, 110, 113, 123, 129, 141, 235v2.8q . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44, 77, 98, 144, 150, 153v2.96a . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33, 58, 102, 106, 114, 172, 294v2.97c . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71, 80, 301v2.97e . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100v3.00 . 32, 57, 59, 68, 76, 77, 82, 85, 92, 93, 95, 96, 97, 101, 102, 144, 145, 153, 154, 159,

161, 162, 171, 253, 293, 314, 315, 428, 429, 434, 435, 482, 483v3.01a . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33, 58, 172, 294v3.02 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130, 519v3.05 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142v3.06 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99, 153, 154, 155v3.07 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65, 99v3.08 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82, 84, 502, 503v3.09 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137, 138, 139, 142v3.09a . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142v3.10 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103, 104, 105, 107, 124, 147v3.12 63, 64, 66, 67, 69, 72, 74, 78, 103, 105, 121, 122, 155, 156, 159, 160, 191, 257, 298,

316, 484v3.15 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64, 77, 79, 80, 81, 116, 153, 506, 507, 517, 519, 527v3.17 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60, 117, 118, 505, 506, 519, 520v3.18 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76, 78, 102, 162, 507v3.19 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 505, 509, 522, 524v3.20 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151, 508, 509, 513, 514v3.21 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 503v3.22 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107, 109v3.23 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99v3.24 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 505, 508v3.25 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59, 70, 151, 506, 520v3.26 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 508, 510, 511, 512v3.27 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107, 109, 518, 526, 527, 528

Änderungsliste 562

scrdatev3.05a . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 280, 281, 282v3.08b . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 283v3.13 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 283

scrextendv3.01a . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33, 58, 172, 294v3.02 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 311v3.10 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 311v3.12 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63, 64, 66, 67, 191, 257, 298, 299, 302, 303, 316, 484v3.23 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 310v3.25 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 296, 301

scrhackv3.17 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 430v3.18 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 431v3.23 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 432v3.27 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 432

scrjurav0.7 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 323v0.9 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 328v3.26 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 317, 325v3.27 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 317, 318

scrlayerv3.12 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 434v3.16 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 440, 446, 449, 451, 466, 473v3.18 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 441, 442, 443, 445, 447, 458v3.19 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 445, 447, 448v3.24 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 457v3.26 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 447

scrlayer-notecolumnv0.1.2583 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 491

scrlayer-scrpagev3.12 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252, 471v3.14 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261, 265, 267, 277v3.24 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 457v3.25 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254

scrletterv3.27 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 537

scrletterv3.15 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164, 532v3.17 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190, 206, 208, 209, 216, 218

Änderungsliste 563

v3.19 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178, 224v3.26 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 537, 539v3.27 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177, 201, 550

scrlfilev2.96 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 378, 379v3.03 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 378v3.08 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 381, 382v3.09 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 374v3.12 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 381, 382, 383

scrlttr2v2.9i . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169v2.9t . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33, 58, 172, 294, 547v2.95 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177v2.96 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208v2.97 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242v2.97c . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194, 208, 209, 214, 217, 541, 542v2.97d . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 545v2.97e . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192, 195, 219, 539, 540, 541, 548v3.00 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173, 227, 229, 230, 231v3.01 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 546, 547v3.01a . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33, 58, 172, 294v3.02 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235, 555v3.03 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169, 206, 209, 210, 543, 544v3.04 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241, 552v3.05 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 541, 548v3.06 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233v3.07 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189, 233v3.08 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165, 167, 220, 222, 228, 555v3.09 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213, 214, 215, 555v3.12 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166, 190, 200, 201, 215v3.13 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 555v3.14 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241v3.15 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 506v3.17 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190, 206, 208, 209, 216, 218v3.19 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178, 224v3.23 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233v3.25 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173, 506v3.26 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 537, 539v3.27 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177, 201, 537, 550

scrreprt

Änderungsliste 564

v2.8o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119v2.8p . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62, 71, 87, 110, 113, 123, 129, 141, 235v2.8q . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44, 77, 98, 144, 150, 153v2.96a . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33, 58, 102, 106, 114, 172, 294v2.97c . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71, 80, 301v3.00 . . 32, 57, 59, 68, 75, 76, 77, 82, 85, 92, 93, 95, 96, 97, 101, 102, 144, 145, 153, 154,

159, 161, 162, 171, 253, 293, 314, 315, 428, 429, 434, 435, 482, 483v3.01a . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33, 58, 172, 294v3.02 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130, 519v3.05 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142v3.06 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99, 153, 154, 155v3.07 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65, 99v3.08 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82, 84, 502, 503v3.09 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137, 138, 139, 142v3.09a . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142v3.10 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103, 104, 105, 107, 124, 147v3.12 63, 64, 66, 67, 69, 72, 74, 78, 103, 105, 121, 122, 155, 156, 159, 160, 191, 257, 298,

316, 484v3.15 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64, 77, 79, 80, 81, 116, 153, 506, 507, 517, 519, 527v3.17 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60, 117, 118, 505, 506, 519, 520v3.18 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76, 78, 102, 162, 507v3.19 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 505, 509, 522, 524v3.20 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151, 508, 509, 513, 514v3.21 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 503v3.22 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107, 109v3.23 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99v3.24 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 505, 508v3.25 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59, 70, 151, 506, 520v3.26 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 508, 510, 511, 512v3.27 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107, 109, 518, 526, 527, 528

scrtimev3.05a . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 286

tocbasicv3.01 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 399v3.06 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 421, 422v3.09 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 422v3.10 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 398v3.12 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 393, 394, 399, 418v3.17 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 398

Änderungsliste 565

v3.20 . . . . . . . . . . . . . . . . . . . . . . . . . 399, 400, 401, 405, 412, 414, 415, 418, 421, 423, 424, 425v3.21 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 405, 411, 422, 423, 424v3.25 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 425, 426v3.26 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 412v3.27 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 398, 403, 404, 405, 407, 408, 409, 411, 413, 422

typeareav3.00 32, 34, 35, 37, 38, 41, 42, 44, 46, 49, 50, 57, 171, 253, 293, 314, 315, 428, 429, 434,

435, 482, 483v3.01b . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33, 50, 58, 172, 294v3.02c . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50v3.05a . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52v3.11 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 498, 500v3.12 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42, 47v3.17 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51, 497v3.18 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 499v3.20 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52v3.22 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50

v0.1.2583scrlayer-notecolumn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 491

v0.7scrjura . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 323

v0.9scrjura . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 328

v2.8oscrbook . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119scrreprt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119

v2.8pscrartcl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62, 71, 87, 110, 113, 129, 141, 235scrbook . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62, 71, 87, 110, 113, 123, 129, 141, 235scrreprt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62, 71, 87, 110, 113, 123, 129, 141, 235

v2.8qscrartcl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44, 77, 98, 144, 150, 153scrbook . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44, 77, 98, 144, 150, 153scrreprt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44, 77, 98, 144, 150, 153

v2.9iscrlttr2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169

v2.9tscrlttr2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33, 58, 172, 294, 547

v2.95

Änderungsliste 566

scrlttr2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177v2.96

scrlfile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 378, 379scrlttr2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208

v2.96ascrartcl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33, 58, 114, 172, 294scrbook . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33, 58, 102, 106, 114, 172, 294scrreprt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33, 58, 102, 106, 114, 172, 294

v2.97scrlttr2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242

v2.97cscrartcl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71, 80, 301scrbook . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71, 80, 301scrlttr2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194, 208, 209, 214, 217, 541, 542scrreprt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71, 80, 301

v2.97dscrlttr2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 545

v2.97escrbook . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100scrlttr2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192, 195, 219, 539, 540, 541, 548

v3.00scrartcl 32, 57, 59, 68, 75, 76, 77, 82, 85, 92, 93, 95, 96, 97, 102, 144, 145, 153, 154, 159,

161, 162, 171, 253, 293, 314, 315, 428, 429, 434, 435, 482, 483scrbook . . . 32, 57, 59, 68, 76, 77, 82, 85, 92, 93, 95, 96, 97, 101, 102, 144, 145, 153, 154,

159, 161, 162, 171, 253, 293, 314, 315, 428, 429, 434, 435, 482, 483scrlttr2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173, 227, 229, 230, 231scrreprt 32, 57, 59, 68, 75, 76, 77, 82, 85, 92, 93, 95, 96, 97, 101, 102, 144, 145, 153, 154,

159, 161, 162, 171, 253, 293, 314, 315, 428, 429, 434, 435, 482, 483typearea . . 32, 34, 35, 37, 38, 41, 42, 44, 46, 49, 50, 57, 171, 253, 293, 314, 315, 428, 429,

434, 435, 482, 483v3.01

scrlttr2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 546, 547tocbasic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 399

v3.01ascrartcl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33, 58, 172, 294scrbook . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33, 58, 172, 294scrextend . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33, 58, 172, 294scrlttr2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33, 58, 172, 294scrreprt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33, 58, 172, 294

v3.01b

Änderungsliste 567

typearea . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33, 50, 58, 172, 294v3.02

scrartcl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130scrbook . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130, 519scrextend . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 311scrlttr2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235, 555scrreprt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130, 519

v3.02ctypearea . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50

v3.03scrlfile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 378scrlttr2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169, 206, 209, 210, 543, 544

v3.04scrlttr2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241, 552

v3.05scrartcl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142scrbook . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142scrlttr2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 541, 548scrreprt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142

v3.05ascrbase . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 367scrdate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 280, 281, 282scrtime . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 286typearea . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52

v3.06scrartcl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99, 153, 154, 155scrbook . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99, 153, 154, 155scrlttr2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233scrreprt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99, 153, 154, 155tocbasic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 421, 422

v3.07scrartcl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65, 99scrbook . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65, 99scrlttr2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189, 233scrreprt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65, 99

v3.08scrartcl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82, 84, 502, 503scrbase . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 352scrbook . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82, 84, 502, 503scrlfile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 381, 382

Änderungsliste 568

scrlttr2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165, 167, 220, 222, 228, 555scrreprt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82, 84, 502, 503

v3.08bscrdate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 283

v3.09scrartcl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137, 138, 139, 142scrbook . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137, 138, 139, 142scrlfile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 374scrlttr2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213, 214, 215, 555scrreprt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137, 138, 139, 142tocbasic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 422

v3.09ascrartcl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142scrbook . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142scrreprt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142

v3.10scrartcl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103, 104, 105, 107, 124, 147scrbook . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103, 104, 105, 107, 124, 147scrextend . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 311scrreprt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103, 104, 105, 107, 124, 147tocbasic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 398

v3.11typearea . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 498, 500

v3.12scrartcl . . . 63, 64, 66, 67, 69, 72, 74, 78, 103, 105, 121, 122, 155, 156, 159, 160, 191, 257,

298, 316, 484scrbase . . . . . . . . . . . . . . . . . . . . . . . . . . . . 341, 347, 351, 352, 353, 355, 358, 359, 360, 362, 363scrbook . . 63, 64, 66, 67, 69, 72, 74, 78, 103, 105, 121, 122, 155, 156, 159, 160, 191, 257,

298, 316, 484scrextend . . . . . . . . . . . . . . . . . . . . . . . . . . 63, 64, 66, 67, 191, 257, 298, 299, 302, 303, 316, 484scrlayer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 434scrlayer-scrpage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252, 471scrlfile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 381, 382, 383scrlttr2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166, 190, 200, 201, 215scrreprt . . . 63, 64, 66, 67, 69, 72, 74, 78, 103, 105, 121, 122, 155, 156, 159, 160, 191, 257,

298, 316, 484tocbasic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 393, 394, 399, 418typearea . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42, 47

v3.13scrdate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 283

Änderungsliste 569

scrlttr2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 555v3.14

scrlayer-scrpage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261, 265, 267, 277scrlttr2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241

v3.15scrartcl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66, 79, 80, 81, 153, 506, 507, 517, 519, 527scrbase . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 342, 351, 352scrbook . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64, 77, 79, 80, 81, 116, 153, 506, 507, 517, 519, 527scrletter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164, 532scrlttr2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 506scrreprt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64, 77, 79, 80, 81, 116, 153, 506, 507, 517, 519, 527

v3.16scrlayer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 440, 446, 449, 451, 466, 473

v3.17scrartcl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60, 117, 505, 506, 519, 520scrbook . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60, 117, 118, 505, 506, 519, 520scrhack . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 430scrletter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190, 206, 208, 209, 216, 218scrlttr2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190, 206, 208, 209, 216, 218scrreprt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60, 117, 118, 505, 506, 519, 520tocbasic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 398typearea . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51, 497

v3.18scrartcl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76, 78, 162, 507scrbase . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 343scrbook . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76, 78, 102, 162, 507scrhack . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 431scrlayer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 441, 442, 443, 445, 447, 458scrreprt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76, 78, 102, 162, 507typearea . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 499

v3.19scrartcl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 505, 509, 524scrbook . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 505, 509, 522, 524scrlayer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 445, 447, 448scrletter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178, 224scrlttr2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178, 224scrreprt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 505, 509, 522, 524

v3.20scrartcl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151, 508, 509, 513, 514scrbase . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 344, 352

Änderungsliste 570

scrbook . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151, 508, 509, 513, 514scrreprt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151, 508, 509, 513, 514tocbasic . . . . . . . . . . . . . . . . . . . . . . 399, 400, 401, 405, 412, 414, 415, 418, 421, 423, 424, 425typearea . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52

v3.21scrbase . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 356scrbook . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 503scrreprt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 503tocbasic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 405, 411, 422, 423, 424

v3.22scrartcl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107, 109scrbook . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107, 109scrreprt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107, 109typearea . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50

v3.23scrartcl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99scrbase . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 347scrbook . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99scrextend . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 310scrhack . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 432scrlttr2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233scrreprt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99

v3.24scrartcl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 505, 508scrbook . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 505, 508scrlayer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 457scrlayer-scrpage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 457scrreprt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 505, 508

v3.25scrartcl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59, 70, 151, 506, 520scrbase . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 353scrbook . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59, 70, 151, 506, 520scrextend . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 296, 301scrlayer-scrpage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254scrlttr2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173, 506scrreprt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59, 70, 151, 506, 520tocbasic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 425, 426

v3.26scrartcl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 508, 510, 512scrbook . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 508, 510, 511, 512

Änderungsliste 571

scrjura . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 317, 325scrlayer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 447scrletter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 537, 539scrlttr2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 537, 539scrreprt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 508, 510, 511, 512tocbasic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 412

v3.27scrartcl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107, 109, 518, 526, 527, 528scrbase . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 346, 347, 349, 360, 367, 368, 369, 370scrbook . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107, 109, 518, 526, 527, 528scrhack . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 432scrjura . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 317, 318scrletter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 537scrletter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177, 201, 550scrlttr2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177, 201, 537, 550scrreprt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107, 109, 518, 526, 527, 528tocbasic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 398, 403, 404, 405, 407, 408, 409, 411, 413, 422

Literaturverzeichnis 572

Literaturverzeichnis

Sie finden im Folgenden eine ganze Reihe von Literaturangaben. Auf all diese wird im Textverwiesen. In vielen Fällen handelt es sich um Dokumente oder ganze Verzeichnisse, die imInternet verfügbar sind. In diesen Fällen ist statt eines Verlages eine URL angegeben. Wird aufein LATEX-Paket verwiesen, so findet der Verweis in der Regel in der Form „CTAN://Verweis“statt. Der Präfix „CTAN://“ steht dabei für das TEX-Archiv eines jeden CTAN-Servers oder-Spiegels. Sie können den Präfix beispielsweise durch http://mirror.ctan.org/ ersetzen.Bei LATEX-Paketen ist außerdem zu beachten, dass versucht wurde, die Version anzugeben,auf die im Text Bezug genommen wurde. Bei einigen Paketen war es mehr ein Ratespiel, eineeinheitliche Versionsnummer und ein Erscheinungsdatum zu finden. Auch muss die angegebeneVersion nicht immer die neuste verfügbare Version sein. Wenn Sie sich ein Paket neu besorgenund installieren, sollten Sie jedoch zunächst immer die aktuelle Version ausprobieren. Bevor Sieein Dokument oder Paket von einem Server herunterladen, sollten Sie außerdem überprüfen,ob es sich nicht bereits auf Ihrem Rechner befindet.

[Ame02] American Mathematical Society:User’s guide for the amsmath package, Februar 2002.CTAN://macros/latex/required/amslatex/math/.

[BB13] Johannes Braams und Javier Bezos:Babel, Dezember 2013.CTAN://macros/latex/required/babel/.

[BCJ+05] Johannes Braams, David Carlisle, Alan Jeffrey, Leslie Lamport, FrankMittelbach, Chris Rowley und Rainer Schöpf:The LATEX2e Source, Dezember 2005.

[BJ04] Johannes L. Braams und Theo Jurriens:The supertabular environment, Februar 2004.CTAN://macros/latex/contrib/supertabular.

[Car99a] David Carlisle:The keyval package, März 1999.CTAN://macros/latex/required/graphics/.

[Car99b] David Carlisle:The tabularx package, Januar 1999.CTAN://macros/latex/required/tools/.

[Car04] David Carlisle:The longtable package, Februar 2004.CTAN://macros/latex/required/tools/.

Literaturverzeichnis 573

[Car17] David P. Carlisle:Packages in the ‘graphics’ bundle, Juni 2017.CTAN://macros/latex/required/graphics/.

[Dal10] Patrick W. Daly:Natural sciences citations and references, September 2010.CTAN://macros/latex/contrib/natbib/.

[DGS+12] Marco Daniel, Patrick Gundlach, Walter Schmidt, Jörg Knappen, Hubert Partlund Irene Hyna:LATEX2ε-Kurzbeschreibung, Juli 2012.CTAN://info/lshort/german/.

[DUD96] DUDEN:Die deutsche Rechtschreibung. DUDENVERLAG, Mannheim, 21. Auflage, 1996.

[Fai11] Robin Fairbairns:footmisc — a portmanteau package for customising footnotes in LATEX, Juni 2011.

CTAN://macros/latex/contrib/footmisc/.[Fel17] Felix999:

Paket adrconf verlangt nicht vorhandene Datei scrpage.sty, Dezember 2017.https://komascript.de/node/2154.

[Gau07] Bernard Gaulle:Les distributions de fichiers de francisation pour latex, Mai 2007.CTAN://language/french/.

[Gre12] Enrico Gregorio:The xpatch package, extending etoolbox patching commands, Oktober 2012.CTAN://macros/latex/contrib/xpatch/.

[KDP] KOMA-Script Homepage.http://www.komascript.de.

[Keh97] Roger Kehr:XINDY, A Flexible Indexing System, 1997.

[Ker07] Dr. Uwe Kern:Extending LATEX’s color facilities: the xcolor package, Januar 2007.CTAN://macros/latex/contrib/xcolor/.

[Kie10] Axel Kielhorn:adrconv, April 2010.CTAN://macros/latex/contrib/adrconv/.

Literaturverzeichnis 574

[Knu90] Donald E. Knuth:The TEXbook, Band A der Reihe Computers and Typesetting. Addison-WesleyPublishing Company, Reading, Mass., 19. Auflage, 1990.

[Koh02] Markus Kohm:Satzspiegelkonstruktionen im Vergleich. Die TEXnische Komödie, 4:28–48, 2002.DANTE e.V.

[Koh03] Markus Kohm:Moderne Briefe mit KOMA-Script. Die TEXnische Komödie, 2:32–51, 2003.DANTE e.V.

[Koh12] Markus Kohm:Non-floating margin notes with marginnote, März 2012.CTAN://macros/latex/contrib/marginnote/.

[Koh14] Markus Kohm:Creating more than one index using splitidx and splitindex, April 2014.CTAN://macros/latex/contrib/splitindex/.

[Koh15] Markus Kohm:chapteratlists=entry automatisch nur für Kapitel mit Einträgen, Juli 2015.https://komascript.de/comment/5070#comment-5070.

[Koh18a] Markus Kohm:KOMA-Script. Edition DANTE. Lehmanns Media, Berlin, 6. Auflage, 2018,ISBN 978-3-86541-951-4. Print-Ausgabe.

[Koh18b] Markus Kohm:KOMA-Script. Edition DANTE. Lehmanns Media, Berlin, 6. Auflage, 2018,ISBN 978-3-86541-952-1. eBook-Ausgabe.

[Lam87] Leslie Lamport:MakeIndex: An index processor for LATEX, Februar 1987.CTAN://indexing/makeindex/doc/makeindex.pdf.

[Lap08] Olga Lapko:The floatrow package, August 2008.CTAN://macros/latex/contrib/floatrow/.

[Leh11] Philipp Lehman:The etoolbox package, Januar 2011.CTAN://macros/latex/contrib/etoolbox/.

[Lin01] Anselm Lingnau:An improved environment for floats, November 2001.CTAN://macros/latex/contrib/float/.

Literaturverzeichnis 575

[Mit11] Frank Mittelbach:An environment for multicolumn output, Juni 2011.CTAN://macros/latex/required/tools/.

[Nie15] Rolf Niepraschk:The eso-pic package, Juli 2015.CTAN://macros/latex/contrib/eso-pic/.

[Obe16a] Heiko Oberdiek:The ifluatex package, April 2016.CTAN://macros/latex/contrib/oberdiek/.

[Obe16b] Heiko Oberdiek:The selinput package, Mai 2016.CTAN://macros/latex/contrib/oberdiek/.

[Pac] Jean Marie Pacquet:KomaLetter2; Example by Jean-Marie Pacquet (French style). Wiki.http://wiki.lyx.org/Examples/KomaLetter2#toc6.

[Rai98a] Bernd Raichle:german package, Juli 1998.CTAN://language/german/.

[Rai98b] Bernd Raichle:ngerman package, Juli 1998.CTAN://language/german/.

[Sch09] Martin Schröder:The ragged2e package, Juni 2009.CTAN://macros/latex/contrib/ms/.

[Sch13] R Schlicht:The microtype package: An interface to the micro-typographic extensions ofpdfTEX, Mai 2013.CTAN://macros/latex/contrib/microtype/.

[Som13] Axel Sommerfeldt:Anpassen der Abbildungs- und Tabellenbeschriftungen mit Hilfe descaption-Paketes, Mai 2013.CTAN://macros/latex/contrib/caption/.

[Tea98] The NTS Team:The ε-TEX manual, Februar 1998.CTAN://systems/e-tex/v2/doc/etex_man.pdf.

Literaturverzeichnis 576

[Tea05a] LATEX3 Project Team:LATEX2ε font selection, November 2005.CTAN://macros/latex/doc/fntguide.pdf.

[Tea05b] LATEX3 Project Team:LATEX2ε for authors, November 2005.CTAN://macros/latex/doc/usrguide.pdf.

[Tea06] LATEX3 Project Team:LATEX2ε for class and package writers, Februar 2006.CTAN://macros/latex/doc/clsguide.pdf.

[TF11] Geoffrey Tobin und Robin Fairbairns:setspace LATEX package, Dezember 2011.CTAN://macros/latex/contrib/setspace/.

[Tsc60] Jan Tschichold:Erfreuliche Drucksachen durch gute Typographie. Ravensburger Buchverlag OttoMaier GmbH, 1960, ISBN 3-87512-413-8. Nachdruck bei: MaroVerlag, Augsburg,2001.

[Tsc87] Jan Tschichold:Ausgewählte Aufsätze über Fragen der Gestalt des Buches und der Typographie.Birkhäuser Verlag, Basel, 2. Auflage, 1987.

[Ume10] Hideo Umeki:The geometry package, September 2010.CTAN://macros/latex/contrib/geometry/.

[vO04] Piet van Oostrum:Page layout in LATEX, März 2004.CTAN://macros/latex/contrib/fancyhdr/.

[WF00] Hans Peter Willberg und Friedrich Forssman:Erste Hilfe in Typografie. Verlag Hermann Schmidt, Mainz, 2000.

[Wik] Wiki:Deutsche TEX-FAQ.http://projekte.dante.de/DanteFAQ/WebHome.

Index 577

Index

Fett hervorgehobene Zahlen geben die Seiten der Erklärung zu einem Stichwort wieder. Normalgedruckte Zahlen verweisen hingegen auf Seiten mit zusätzlichen Informationen zum jeweiligenStichwort.

Allgemeiner Index

@everystyle@ (Seitenstil) . . . . . . . . . . . . . . . . . . 456

AAbbildungen . . . . . . . . . . . . . . . . . . . . . . . . . . 136–153

Nummern . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100Verzeichnis . . . . . . . . . . . . . . . . . . . 100, 153, 157

Absatz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82Abstand . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82Auslassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 323Auszeichnung . . . . . . . . . . . . 82–84, 222–223Nummerierung . . . . . . . . . . . . . . . . . . . 322–325

Abschnitt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107Nummer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100

Absender . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195, 201Absenderergänzung . . . . 195, 211–212, 544–545Adressdatei . . . . . . . . . . . . . . . . . 247–251, 287, 291Adressdatenbank . . . . . . . . . . . . . . . . . . . . . . . . . . . 291Adressverzeichnis . . . . . . . . . . . . . . . . . . . . . . . . . . 250Alias

Seitenstil . . . . . . . . . . . . . . . . . . . . 451, 452, 453Anhang . . . . . . . . . . . . . . . . . . . . . . . . . . 102, 119, 158Anlagen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183Anrede . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178Anschrift . . . 176–177, 178, 206–211, 542–544Anweisung

→ Index der Befehle etc. . . . . . . . . . . . . . . . 581Ausgabe

erzwungene . . . . . . . . . . . . . . . . . . . . . . . . . . . . 494Ausgleich . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60Autor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71, 301

BBankverbindung . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221Befehl

→ Index der Befehle etc. . . . . . . . . . . . . . . . 581

Betreff . . . . . . . . . . . . . . . . 178, 217–219, 546–547BIBTEX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159Bildunterschrift . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140Bindeanteil . . . . . . . . . . siehe auch BindekorrekturBindekorrektur . . . . . . . . . . . . . . . . . . . 27, 28, 30, 34Bindung . . . . . . . . . 27, siehe auch Bindekorrekturboxed (float-Stil) . . . . . . . . . . . . . . . . . . . . . . . . . . . 147Briefbogen . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191–221Briefbogenfuß . . . . . . . . . 219, 220–221, 547–548Briefe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164–251

Aufbau . . . . . . . . . . . . . . . . . . . . . . . . . . . 174–184Briefkopf . . . . . . . . . 178, 196, 195–196, 541–542Bundsteg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27, 28

CCM-Fonts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112

DDatei→ Index der Dateien etc. . . . . . . . . . . . . . . 595

Dateiendung . . . . . . . . . . . . siehe DateierweiterungDateierweiterung . . . . . . . . . . . . . . . . . . . . . 388–427Datum . . . . . . . . . . . . . . . . . . . 71, 212, 215, 302, 558doppelseitig . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27, 86Durchschuss . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29, 39Durchwahl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213DVI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51

EEbenen . . . . . . . . . . . . . . . . . . . . . . . . . . 434–470, 486

Seitenstil . . . . . . . . . 450, 453–456, 457–459,460–461

EC-Fonts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112einseitig . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27Einzug . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82Element

Index 578

→ Index der Elemente . . . . . . . . . . . . . . . . . 594empty (Seitenstil) . 86–88, 89, 92, 93, 225–228,

229, 230, 305, 306, 456, 485, 489, 541Endfassung . . . . . . . . . . . . . . . . . . . . . . . . 59, 173, 295Entwurf . . . . . . . . . . . . . . . . . . . . . 59, 173, 295–296

FFaltmarke . . . . . . . . . . . . . . . . . . . 178, 192, 539–541Faltmarken . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192Fax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200float-Stile

boxed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147komaabove . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147komabelow . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147plain . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147ruled . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147

Folgeseite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192, 228Formeln . . . . . . . . . . . . . . . . . . . . . . . . . 135–136, 237Fuß . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178, 228, 547

Breite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 277Höhe . . . . . . . . . . . . . . . 47–48, 254–255, 461

Fußnoten . . 72, 94–99, 230–233, 302, 307–310

GGedichte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131, 236Geschäftszeile 178, 212, 213–216, 545–546, 549Gleichungen . . . . . . . . . . . . . . . . . . . . . 135–136, 237

Ausrichtung . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136Nummern . . . . . . . . . . . . . . . . . . . . . . . . . 100, 136

Gleitumgebungen . . . . . . . . . . . . . . . . 136–153, 157Gliederung 105, 100–123, siehe auch Abschnitt,

Kapitel, ÜberschriftenStilchapter . . . . . . . . . . . . . . . . . . . 507, 511, 522part . . . . . . . . . . . . . . . . . . . . . . . 507, 512, 520section . . . . . . . . . . . . . . . . . . . 508, 510, 524

Gruß . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180, 239, 547

HHaken . . 177, 343, 367–371, 416, 417, 451, 452,

453, 454, 455, 456, 457, 459, 500, 526Haken

→ Index der Haken . . . . . . . . . . . . . . . . . . . . 601Handy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200Hauptteil . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100

headings (Seitenstil) . 86–88, 88, 120, 122, 167,225–228, 228, 258, 269, 360, 467, 473

Hochstellung . . . . . . . . . . . . . . . . . . . . . . . 61, 188, 297hook . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177, 500

IInhaltsverzeichnis . . . . . 76–81, 89, 100, 112, 276

KKapitel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107

Anfang . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101Präambel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122Seitenstil . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88, 89Überschrift . . . . . . . . . . . . . . . . . . . . . . . . 102, 119

Klasse→ Index der Dateien etc. . . . . . . . . . . . . . . 595

Kolumnentitel . . . . . . . . . . . . . . . . . . . . . . . . . . . 44, 86automatisch . . . . . . . . . . . . . . . . . . . 86, 112, 120lebend . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 269manuell . . . . . . . . . . . . . . . . . . . . . . . 86, 275, 465statisch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 269

komaabove (float-Stil) . . . . . . . . . . . . . . . . . . . . . . 147komabelow (float-Stil) . . . . . . . . . . . . . . . . . . . . . . 147Kompatibilität . . 33–34, 58–59, 172–173, 294Kopf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178, 228

Breite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 277Höhe . . . . . . . . . . . . . . . 45–46, 254–255, 461

Kürzel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213Kundennummer . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213

LLänge→ Index der Befehle etc. . . . . . . . . . . . . . . . 581→ Index der Längen etc. . . . . . . . . . . . . . . . 593

lco-Datei 169, 170, 221, 241–247, 539, 541, 542,543, 545, 546, 547, 550–554

letter (Seitenstil) . . . . . . . . . . . . . . . . . . . . . 224, 228Letter-Class-Option . . . . . . . . . . . . . . . . . . . 241–247Linie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224Listen . . . . . . . . . . . 126–135, 233–237, 311–312Literaturverzeichnis . . . . . . . . . . . . . . 100, 158–161LM-Fonts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112Lochermarke . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 539Logo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204

MMakro

Index 579

→ Index der Befehle etc. . . . . . . . . . . . . . . . 581Maßlinien . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 272, 463Mathematik . . . . . . . . . . . . . . . . . . . . . 135–136, 237Mobiltelefon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200myheadings (Seitenstil) . . . . . . . . 86–88, 88, 167,

225–228, 228, 269

NNachspann . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100Norm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241Notiz

anhängige . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 494irrtümliche . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 494

Nummerierung . . . . . . . . . . 105, 112, 121, 128, 235

OOption→ Index der Optionen . . . . . . . . . . . . . . . . . 597

Optionen . . . . . . . . . . . . . . . . . 31–33, 56–58, 170–172, 241, 252–254, 292–294, 314–315,428–429, 434–435, 482–483

Ort . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215

PPaginierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43, 86Paket

→ Index der Dateien etc. . . . . . . . . . . . . . . 595Papier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

Ausrichtung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50Format . . . . . . . . . . . . . . . . . . . . . . . 27, 550–551

Paragraphenjuristische . . . . . . . . . . . . . . 314, 317, 319–321

PDF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51plain (float-Stil) . . . . . . . . . . . . . . . . . . . . . . . . . . . 147plain (Seitenstil) 86–88, 88, 93, 225–228, 230,

258, 304, 306plain.letter (Seitenstil) . . . . . . . . . . . . . . . . . . 224plain.scrheadings (Seitenstil) . . 258, 267, 274PostScript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51Postskriptum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180Pseudolänge

→ Index der Längen etc. . . . . . . . . . . . . . . . 593Pseudolängen . . . . . . . . . . . . . . 169–170, 532–548

RRand . . . . . . . . . . . . . . . . . . 28, 28, 43, 134, 236, 312

Randnotizen . . . . . 157–158, 237–238, 312–313Rechnungsnummer . . . . . . . . . . . . . . . . . . . . . . . . . 213Redewendung . . . . . . . . . . . . . . 124–126, 310–311Rücksendeadresse . . . . . . . . . . . . . . . . . . . . . . 208, 543ruled (float-Stil) . . . . . . . . . . . . . . . . . . . . . . . . . . . 147

SSatz

Nummerierung . . . . . . . . . . . . . . . . . . . 324–325Satzspiegel . . . . . . . . . . . . . . . . . . . 27, 28, 31, 43, 48Schlussgruß . . . . . . . . . . . . . . . . . 180, 238–240, 547Schmutztitel . . . . . . . . . . . . . . . . . . . 70, 70, 300, 301Schrift

Art . . 61–68, 87–88, 110–112, 129, 130, 141,187–191, 218, 227–228, 235, 255–257,296–298, 311, 315–317, 483–485

Größe . . . . . 60–61, 110–112, 184–187, 296scrheadings (Seitenstil) . . . . 228, 258, 267, 268Seite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28Seiten

Aufteilung . . . . . . . . . . . . . . . . . . . . . 59–60, 174Format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27Fuß . . . . . . . . . . . . . . . . . . . . . . . . . . . 43, 224, 225gerade . . . . . . . . . . . . . . 84–85, 223, 303–304Kopf . . . . . . . . . . . . . . . . . . . . . . . 43, 85, 224, 225Stil . 85–94, 107, 224–230, 268–277, 304,

305–307, 450, 451, 450–468, 471–474,550

Umbruch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 490ungerade . . . . . . . . . . . . 84–85, 223, 303–304Zahl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86, 90

SeitenstilAlias- . . . . . . . . . . . . . . . . . . . . . . . 451, 452, 453Ebenen- 450, 453–456, 457–459, 460–461

Seitenstile@everystyle@ . . . . . . . . . . . . . . . . . . . . . . . . . 456empty . . . . 86–88, 89, 92, 93, 225–228, 229,

230, 305, 306, 456, 485, 489, 541headings . . . . . . . . 86–88, 88, 120, 122, 167,

225–228, 228, 258, 269, 360, 467, 473letter . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224, 228myheadings 86–88, 88, 167, 225–228, 228,

269plain . . 86–88, 88, 93, 225–228, 230, 258,

304, 306plain.letter . . . . . . . . . . . . . . . . . . . . . . . . . 224

Index 580

plain.scrheadings . . . . . . . . . 258, 267, 274scrheadings . . . . . . . . . . . . 228, 258, 267, 268

Serienbriefe . . . . . . . . . . . . . . . . . . . . . . . . . . . 247–251Serifen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28Signatur . . . . . . . . . . . . . . . . . . . . . . . . . . 238, 239, 547Sprachdefinition . . . . . . . . . . . . . . . . . . . . . . 361–365Sprachen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 555–559Spruch . . . . . . . . . . . . . . . . . . . . . 124–126, 310–311Stichwortverzeichnis . . . . . . . . . . . . . . . . . . . . . . . . 100

Seitenstil . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88Synchronisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 491

TTabellen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136–153

Nummern . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100Überschrift . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140Unterschrift . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140Verzeichnis . . . . . . . . . . . . . . . . . . . 100, 153, 157

Tafeln . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136Teil . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107

Präambel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122Seitenstil . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88

Telefon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200Telefonliste . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 250Text

Auszeichnung . 61–68, 187–191, 255–257,296–298, 315–317, 483–485

Bereich . . . . . . . . . . . . . . . . . . . . 30, 85, 194, 225Tiefstellung . . . . . . . . . . . . . . . . . . . . . . . . 61, 188, 297Titel . . . . . . . . . . . . . . . . 68–74, 178, 216, 298–303

Kopf . . . . . . . . . . . . . . . . . . . . . . . 68, 75, 299, 304Rückseite . . . . . . . . . . . . . . . . . . . . . . . . . . 74, 303Seite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68, 299Seitenkopf . . . . . . . . . . . . . . . . . . . . . . . . . 71, 301Seitenstil . . . . . . . . . . . . . . . . . . . . . . . . . . 88, 304Zeilen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68, 299

Trennlinie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85, 224Trennzeichen . . . . . . . . . . . . . . . . . . . . . 182, 183, 217

Typisierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71, 301

UÜberschriften . . . . . 102, 114, 120, 122, siehe auch

Abschnitt, Gliederung, KapitelUmgebung→ Index der Befehle etc. . . . . . . . . . . . . . . . 581

Umschlag . . . . . . . . . . . . . . . . . . . . . . 69, 73, 299, 302Unterschrift . . . . . . . . . . . . . . . . . . . . . . . 238, 239, 547

VVakatseite . . . . . . 87, 92–94, 101, 104, 228–230,

305–307Variablen . . . . . . . . . . . . . . . . . . 164–169, 548–550

Bezeichnung . . . . . . . . . . . . . . . . . . . . . . . . . . . 164Inhalt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164Name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164

Verlag . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72, 302Versalsatz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 272Versandart . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209, 544Verteiler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182Verträge . . . . . . . . . . . . . . . . . . . . . . . . . 314, 318–325Verzeichnis . . . . . . . . . . . . . . . . . . . . . . . . . . . 388–427

Eintrag . . . . . . . 398, 400–415, 420, 423, 424Vorspann . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100Vorwort . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100

WWidmung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74, 303Wochentag . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 280

ZZähler→ Index der Befehle etc. . . . . . . . . . . . . . . . 581→ Index der Längen etc. . . . . . . . . . . . . . . . 593

Zeilenlänge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29Zeit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 285Zitat . . . . . . . . . . . . . 124–126, 132, 236, 310–311Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . 75–76

Index 581

Befehle, Umgebungen und Variablen

\@addtoplength . . . . . . . . . . . . . . . . . . . . . . . . . . . 537\@currext . . . . . . . . . 391, 393, 394, 396, 416, 417\@dblarg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 527@everystyle@→ Allgemeiner Index . . . . . . . . . . . . . . . . . . 577

\@firstofone . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 396\@fontsizefilebase . . . . . . . . . . . . . . . . . 504, 504\@mkboth . . . . . . . . . . . . . . . . . . . 360, 467–468, 474\@mkdouble . . . . . . . . . . . . . . . . . . . . . 467–468, 474\@mkleft . . . . . . . . . . . . . . . . . . . . . . . . 467–468, 474\@mkright . . . . . . . . . . . . . . . . . . . . . . 467–468, 474\@newplength . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 537\@openbib@code . . . . . . . . . . . . . . . . . . . . . . 529–531\@ptsize . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 430\@seccntformat . . . . . . . . . . . . . . . . . . . . . . . 466, 471\@seccntmarkformat . . . . . . . . . . . . . . . . . . 466, 471\@sect . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 527\@setplength . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 537\@ssect . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 527\@startsection . . . . . . . . . . . . . . . . . . . . . . . . . . . 527\@starttoc . . . . . . . . . . . . . 384, 385, 392, 394, 416\@tempskipa

→ Index der Längen etc. . . . . . . . . . . . . . . . 593\@writefile . . . . . . . . . . . . . . . . . . . . . . . . . . 384, 385\@xsect . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 527\\ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131, 236\\* . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131, 236

Aabstract (Umgebung) . . . . . . . . . . . . . 75–76, 122\abstractname . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 363\activateareas . . . . . . . . . . . . . . . . . . . . . . 498, 506\addchap . . . . . . . . . . . . . . . . 75, 113, 120, 507, 519\addchap* . . . . . . . . . . . . . . . . . . . . . . . . 75, 113, 519\addchapmark . . . . . . . . . . . . . . . . . . . . . . . . 120–121\addchaptertocentry . . . . . . . . . . . . . . . . . . . . . 503\addcontentsline . . . . . . . . . . . . . . . 393, 412, 502\addcontentslinetoeachtocfile . . . . . . . . . 394\AddLayersAtBeginOfPageStyle . . . . . 458–459\AddLayersAtEndOfPageStyle . . . . . . . 458–459\AddLayersToPageStyle . . . . . . . . . . . . . 458–459\AddLayersToPageStyleAfterLayer . . . . . . . 459\AddLayersToPageStyleBeforeLayer . . . . . 459

addmargin (Umgebung) . . . 134–135, 236–237,312, 490

addmargin* (Umgebung) . . 134–135, 236–237,312

\addparagraphtocentry . . . . . . . . . . . . . . . . . . . 503\addpart . . . . . . . . . . . . . . . . . . . . . . . . 113, 507, 519\addpart* . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113, 519\addparttocentry . . . . . . . . . . . . . . . . . . . . . . . . 503\addrchar . . . . . . . . . . . . . . . . . . . . . . 250–251, 287\addrentry . . . . . . . . . . . . . . . . . 248, 287, 288–289\Address . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 288, 289addresseeimage (Variable) . . . . . . 165, 206–211\addsec . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113, 120\addsec* . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113\addsecmark . . . . . . . . . . . . . . . . . . . . . . . . . 120–121\addsectiontocentry . . . . . . . . . . . . . . . . . . . . . 503\addsubparagraphtocentry . . . . . . . . . . . . . . . 503\addsubsectiontocentry . . . . . . . . . . . . . . . . . 503\addsubsubsectiontocentry . . . . . . . . . . . . . . 503\addtocentrydefault . . . . . . . . . . . 502–503, 503\addtocontents . . . . . . . . . . . . . . . . . . . . . . . . . . . 393\AddtoDoHook . . . . . . . . . . . . . . . . . . . . . . . . 369–370\addtoeachtocfile . . . . . . . . . . . . . . . . . . . . . . . 393\addtokomafont . . . 62–67, 188–191, 255–257,

297–298, 316, 484\addtokomafontgobblelist . . . . . . . . . . . . . . . 505\addtokomafontonearglist . . . . . . . . . . . . . . . 505\addtokomafontrelaxlist . . . . . . . . . . . . . . . . 505\AddToLayerPageStyleOptions . . . . . . . . . . . 459\addtolength . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169\addtolengthplength . . . . . . . . . . . . . . . . . . . . . 170\AddtoOneTimeDoHook . . . . . . . . . . . . . . . . 369–370\addtoplength . . . . . . . . . . . . . . . . . . . . . . . 241, 537\addtoreffields . . . . . . . . . . . . . . . . . . . . 548–549\addtotoclist . . . . . . . . . . . . . . . . . . . . . . . 389–390\addxcontentsline . . . . . . . . . . . . . 393–394, 412\addxcontentslinetoeachtocfile . . . . . . . . 394\adrchar . . . . . . . . . . . . . . . . . . . . . . . . 250–251, 287\adrentry . . . . . . . . . . . . . 247–248, 287, 288–289\AfterAtEndOfClass . . . . . . . . . . . . . . . . . 374–376\AfterAtEndOfPackage . . . . . . . . . . . . . . 374–376\AfterBibliographyPreamble . . . . . . . . 161, 530\AfterCalculatingTypearea . . . . . . . . . 487, 500

Index 582

\AfterCalculatingTypearea* . . . . . . . . . . . . . 500\AfterClass . . . . . . . . . . . . . . . . . . . . . . . . . 374–376\AfterClass! . . . . . . . . . . . . . . . . . . . . . . . . 374–376\AfterClass* . . . . . . . . . . . . . . . . . . . . . . . . 374–376\AfterClass+ . . . . . . . . . . . . . . . . . . . . . . . . 374–376\AfterFile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 373\AfterPackage . . . . . . . . . . . . . . . . . . . . . . . 374–376\AfterPackage! . . . . . . . . . . . . . . . . . . . . . . 374–376\AfterPackage* . . . . . . . . . . . . . . . . . . . . . . 374–376\AfterPackage+ . . . . . . . . . . . . . . . . . . . . . . 374–376\AfterReadingMainAux . . . . . . . . . . . . . . 376–378\AfterRestoreareas . . . . . . . . . . . . . . . . . 499–500\AfterRestoreareas* . . . . . . . . . . . . . . . . 499–500\AfterSelectAnyPageStyle . . . . . . . . . . . . . . . 452\AfterSettingArea . . . . . . . . . . . . . . . . . . . . . . . 500\AfterSettingArea* . . . . . . . . . . . . . . . . . . . . . . 500\AfterStartingTOC . . . . . . . . . . . . . . . . . . . . . . . 396\AfterTOCHead . . . . . . . . . . . . . . . . . . . . . . . . 40, 396\aliaskomafont . . . . . . . . . . . . . . . . . . . . . . . . . . . 504\alsoname . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 364\and . . . . . . . . . . . . . . . . . . . . . . . . . . 71–73, 301–303\appendix . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158, 528\appendixmore . . . . . . . . . . . . . . . . . . . . . . . 528–529\appendixname . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 364\areaset . . . . . . . . . . . . . . . . . . . . . . . . . . 48–49, 498\At@startsection . . . . . . . . . . . . . . . . . . . . . . . . 528\AtAddToTocList . . . . . . . . . . . . . . . . . . . . . . . . . . 391\AtBeginDocument . . . . . . . . . . . . . . . . . . . . . . . . . 177\AtBeginLetter . . . . . . . . . . . . . . . . . . . . . . 177–178\AtEndBibliography . . . . . . . . . . . . . . . . . 161, 530\AtEndLetter . . . . . . . . . . . . . . . . . . . . . . . . 177–178\AtEndOfClass . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177\AtEndOfFamilyOptions . . . . . . . . . . . . . . . . . . . 347\AtEndOfFamilyOptions* . . . . . . . . . . . . . . . . . 347\author . . . . . . . . . . . . . . . . . . . . . . 71–73, 301–303\autodot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117–119\automark . . . . . . . . . . . . . . . . . 269–271, 462–463\automark* . . . . . . . . . . . . . . . . 269–271, 462–463

B\babel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 361backaddress (Variable) . . . . . . . . . 165, 206–211backaddressseparator (Variable) . . . . . . . . 165,

206–211\backmatter . . . . . . . . . . . . . . . . . . . . . . . . . . 100, 436\bankname . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 556

\Before@sect . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 528\Before@ssect . . . . . . . . . . . . . . . . . . . . . . . . . . . . 528\BeforeClass . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 374\BeforeClosingMainAux . . . . . . . . . . . . . 376–378\BeforeFamilyProcessOptions . . . . . . 343–344\BeforeFile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 373\BeforePackage . . . . . . . . . . . . . . . . . . . . . . . . . . . 374\BeforeRestoreareas . . . . . . . . . . . . . . . . 499–500\BeforeRestoreareas* . . . . . . . . . . . . . . 499–500\BeforeSelectAnyPageStyle . . . . . . . . . . . . . . 452\BeforeStartingTOC . . . . . . . . . . . . . . . . . . . . . . 396\BeforeTOCHead . . . . . . . . . . . . . . . . . . . . . . . . . . . 396\bib@beginhook . . . . . . . . . . . . . . . . . . . . . . 529–531\bib@endhook . . . . . . . . . . . . . . . . . . . . . . . . 529–531\bibname . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 364\bigskip . . . . . . . . . . . . . . . . . . . . 125, 131, 161, 236\blinddocument . . . . . . . . . . . . . . . . . . . . . . . . . . . 274\botmark . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 466, 473boxed→ Allgemeiner Index . . . . . . . . . . . . . . . . . . 577

\BreakBibliography . . . . . . . . . . . . . . . . . . . . . . 161

C\caption . . . . . . . . . . . . . . 137, 140–141, 421, 426\captionabove . . . . . . . . . . . . . . . . . . . . . . . 140–141\captionaboveof . . . . . . . . . . . . . . . . . . . . 142–143\captionbelow . . . . . . . . . . . . . . . . . . . . . . . 140–141\captionbelowof . . . . . . . . . . . . . . . . . . . . 142–143captionbeside (Umgebung) . . . . . 138, 144–146\captionformat . . . . . . . . . . . . . . . . . . . . . . 147–148\captionof . . . . . . . . . . . . . . . . . . . . . . . . . . 142–143captionofbeside (Umgebung) . . . . . . . . . . . . 147\captionsacadian . . . . . . . . . . . . . . . . . . . . . . . . 557\captionsamerican . . . . . . . . . . . . . . . . . . . . . . . 557\captionsaustralien . . . . . . . . . . . . . . . . . . . . . 557\captionsaustrian . . . . . . . . . . . . . . . . . . . . . . . 557\captionsbritish . . . . . . . . . . . . . . . . . . . . . . . . 557\captionscanadian . . . . . . . . . . . . . . . . . . . . . . . 557\captionscanadien . . . . . . . . . . . . . . . . . . . . . . . 557\captionscroatian . . . . . . . . . . . . . . . . . . . . . . . 557\captionsczech . . . . . . . . . . . . . . . . . . . . . . . . . . . 557\captionsdutch . . . . . . . . . . . . . . . . . . . . . . . . . . . 557\captionsenglish . . . . . . . . . . . . . . . . . . . . . . . . 557\captionsfinnish . . . . . . . . . . . . . . . . . . . . . . . . 557\captionsfrancais . . . . . . . . . . . . . . . . . . . . . . . 557\captionsfrench . . . . . . . . . . . . . . . . . . . . . . . . . . 557

Index 583

\captionsgerman . . . . . . . . . . . . . . . . . . . . . . . . . . 557\captionsitalian . . . . . . . . . . . . . . . . . . . . . . . . 557\captionsnaustrian . . . . . . . . . . . . . . . . . . . . . . 557\captionsnewzealand . . . . . . . . . . . . . . . . . . . . . 557\captionsngerman . . . . . . . . . . . . . . . . . . . . . . . . 557\captionsnorsk . . . . . . . . . . . . . . . . . . . . . . . . . . . 557\captionsnswissgerman . . . . . . . . . . . . . . . . . . . 557\captionspolish . . . . . . . . . . . . . . . . . . . . . . . . . . 557\captionsslovak . . . . . . . . . . . . . . . . . . . . . . . . . . 557\captionsspanish . . . . . . . . . . . . . . . . . . . . . . . . 557\captionsswedish . . . . . . . . . . . . . . . . . . . . . . . . 557\captionsswissgerman . . . . . . . . . . . . . . . . . . . . 557\captionsUKenglish . . . . . . . . . . . . . . . . . . . . . . 557\captionsUSenglish . . . . . . . . . . . . . . . . . . . . . . 557\cc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182–183\ccname . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 364, 556ccseparator (Variable) . . . . . . . . . 165, 182–183\cefoot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 262–265\cefoot* . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265\cehead . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258–261\cehead* . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261–262\centering . . . . . . . . . . . . . . . . . . . . . . . . 99, 233, 310\CenturyPart . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 280\cfoot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 266–267\cfoot* . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267\changefontsizes . . . . . . . . . . . . . . . . . . . . . . . . 504\chapapp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119\chapappifchapterprefix . . . . . . . . . . . . . . . . 119\chapter . 80, 107–112, 113, 121, 432, 507, 519\chapter* . . . . . . . . . . . . . . 75, 112–113, 276, 519\chapterformat . . . . . . . . . . . . . . . . . 105, 117–119\chapterheadendvskip . . . . . . . . . . . . . . 519–520\chapterheadmidvskip . . . . . . . . . . . . . . 519–520\chapterheadstartvskip . . . . . . . . . . . . 519–520\chapterlinesformat . . . . . . . . . . . 119, 522–524\chapterlineswithprefixformat . . . . . . . . . 119,

522–524\chaptermark . . . . . . . . . 120–121, 122, 275, 465\chaptermarkformat 120–121, 274–275, 464,

472\chaptername . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 364\chapternumdepth . . . . . . . . . . . . . . . . . . . . . . . . 121\chapterpagestyle . . . . . . . . . . . . . . . . . . . . . 88–90\chead . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 266–267\chead* . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267

\ClassInfoNoLine . . . . . . . . . . . . . . . . . . . . . . . . 366\ClassName . . . . . . . . . . . . . . . . . . . . . . . . . . 501–502\Clause . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 319–321\Clauseformat . . . . . . . . . . . . . . . . . . . . . . . . . . . . 321\cleardoubleemptypage . . . . . 93–94, 229–230,

306–307\cleardoubleevenemptypage 93–94, 229–230,

306–307\cleardoubleevenpage . . . . . . 93–94, 229–230,

306–307\cleardoubleevenpageusingstyle . . . . . 93–94,

229–230, 306–307\cleardoubleevenplainpage 93–94, 229–230,

306–307\cleardoubleevenstandardpage . . . . . . . 93–94,

229–230, 306–307\cleardoubleoddemptypage . 93–94, 229–230,

306–307\cleardoubleoddpage . . . 90, 93–94, 229–230,

306–307, 499\cleardoubleoddpageusingstyle . . . . . . 93–94,

229–230, 306–307\cleardoubleoddplainpage . 93–94, 229–230,

306–307\cleardoubleoddstandardpage . . . . . . . . 93–94,

229–230, 306–307\cleardoublepage 93–94, 229–230, 306–307,

499\cleardoublepageusingstyle . . . . . . . . . 93–94,

229–230, 306–307\cleardoubleplainpage . . . . . 93–94, 229–230,

306–307\cleardoublestandardpage . 93–94, 229–230,

306–307\clearmainofpairofpagestyles . . . . . . . . . . 476\clearnotecolumn . . . . . . . . . . . . . . . . . . . . . . . . 494\clearnotecolumns . . . . . . . . . . . . . . . . . . . . . . . 494\clearpage . . . . . . . . 93–94, 229–230, 306–307\clearpairofpagestyles . . . . . . . . . . . . . 274, 476\clearplainofpairofpagestyles . . . . . . . . . 476\CloneTOCEntryStyle . . . . . . . . . . . . . . . . . . . . . 414\closing . . . . . . . . . . . . . . . . . . . . . . . . 175, 180, 238\cofoot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 262–265\cofoot* . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265\cohead . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258–261

Index 584

\cohead* . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261–262\Comment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 288, 289\contentsline . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 412\contentsname . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 364contract (Umgebung) . . . . . . . . . . . . . . . . . . . . . 318\coverpagebottommargin . . . . . . . . . 68–69, 299\coverpageleftmargin . . . . . . . . . . . . 68–69, 299\coverpagerightmargin . . . . . . . . . . . 68–69, 299\coverpagetopmargin . . . . . . . . . . . . . 68–69, 299\currentpagestyle . . . . . . . . . . . . . . . . . . . . . . . 451customer (Variable) . . . . . . . . . . . . . 165, 214–216\customername . . . . . . . . . . . . . . . . . . . . . . . . . . . . 556

D\date . . . . . . . . . . . . . . . . . . . . 71–73, 283, 301–303date (Variable) . . . . . . . . . . . . . 165, 212–213, 215\dateacadian . . . . . . . . . . . . . . . . . . . . . . . . 558–559\dateamerican . . . . . . . . . . . . . . . . . . . . . . . 558–559\dateaustralien . . . . . . . . . . . . . . . . . . . . 558–559\dateaustrian . . . . . . . . . . . . . . . . . . . . . . . 558–559\datebritish . . . . . . . . . . . . . . . . . . . . . . . . 558–559\datecanadian . . . . . . . . . . . . . . . . . . . . . . . 558–559\datecanadien . . . . . . . . . . . . . . . . . . . . . . . 558–559\datecroatian . . . . . . . . . . . . . . . . . . . . . . . 558–559\dateczech . . . . . . . . . . . . . . . . . . . . . . . . . . 558–559\datedutch . . . . . . . . . . . . . . . . . . . . . . . . . . 558–559\dateenglish . . . . . . . . . . . . . . . . . . . . . . . . 558–559\datefinnish . . . . . . . . . . . . . . . . . . . . . . . . 558–559\datefrancais . . . . . . . . . . . . . . . . . . . . . . . 558–559\datefrench . . . . . . . . . . . . . . . . . . . . . . . . . 558–559\dategerman . . . . . . . . . . . . . . . . . . . . . . . . . 558–559\dateitalian . . . . . . . . . . . . . . . . . . . . . . . . 558–559\datename . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 556\datenaustrian . . . . . . . . . . . . . . . . . . . . . . 558–559\datenewzealand . . . . . . . . . . . . . . . . . . . . 558–559\datengerman . . . . . . . . . . . . . . . . . . . . . . . . 558–559\datenorsk . . . . . . . . . . . . . . . . . . . . . . . . . . 558–559\datenswissgerman . . . . . . . . . . . . . . . . . . 558–559\datepolish . . . . . . . . . . . . . . . . . . . . . . . . . 558–559\dateslovak . . . . . . . . . . . . . . . . . . . . . . . . . 558–559\datespanish . . . . . . . . . . . . . . . . . . . . . . . . 558–559\dateswedish . . . . . . . . . . . . . . . . . . . . . . . . 558–559\dateswissgerman . . . . . . . . . . . . . . . . . . . 558–559\dateUKenglish . . . . . . . . . . . . . . . . . . . . . . 558–559\dateUSenglish . . . . . . . . . . . . . . . . . . . . . . 558–559\day . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 282

\DayName . . . . . . . . . . . . . . . . . . . . . . . . 281–282, 282\DayNameByNumber . . . . . . . . . . . . . . 281–282, 282\DayNumber . . . . . . . . . . . . . . . . . . . . . . . . . . 280–281\DecadePart . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 280\DeclareLayer . . . . . . . . . . . . . . . . . . . . . . . 439–447\DeclareNewJuraEnvironment . . . . . . . 328–330\DeclareNewLayer . . . . . . . . . . . . . . . . . . . 439–447\DeclareNewNoteColumn . . . . . . . . . . . . . 485–489\DeclareNewPageStyleAlias . . . . . . . . . . . . . . 452\DeclareNewPageStyleByLayers 449, 453–456\DeclareNewSectionCommand 76, 405, 507–517\DeclareNewSectionCommands . . . . . . . 517–518\DeclareNewTOC . . . . . . . . . . . . 405, 414, 421–427\DeclareNoteColumn . . . . . . . . . . . . . . . . . 485–489\DeclareOption . . . . . . . . . . . . . . . . . . . . . . . . . . . 342\DeclarePageStyleAlias . . . . . . . . . . . . . . . . . 452\DeclarePageStyleByLayers . . . . 453–456, 477\DeclareSectionCommand . . . 76, 405, 507–517,

519, 520\DeclareSectionCommands . . . . . . . . . . . 517–518\DeclareSectionNumberDepth . . . . . . . . . . . . . 437\DeclareTOCEntryStyle . . . . . . . . . 412–414, 414\DeclareTOCStyleEntries . . . . . . . . . . . 401–412\DeclareTOCStyleEntry 76, 317, 318, 401–412,

422\dedication . . . . . . . . . . . . . . . . . . . . . . . . . . 74, 303\defaultreffields . . . . . . . . . . . . . . . . . . 548–549\defcaptionname . . . . . . . . . . . . . . . . . . . . 362–365\defcaptionname* . . . . . . . . . . . . . . . . . . . 362–365\deffootnote . . . . . . 97–99, 232–233, 309–310\deffootnotemark . 97–99, 232–233, 309–310\DefineFamily . . . . . . . . . . . . . . . . . . . . . . . 339–340\DefineFamilyKey . . . . . . . . . . . . . . . . . . . 340–342\DefineFamilyMember . . . . . . . . . . . . . . . . 339–340\defineshorthands . . . . . . . . . . . . . . . . . . . . . . . . 325\DefineTOCEntryBooleanOption . . . . . 412–414\DefineTOCEntryCommandOption . . . . . 412–414\DefineTOCEntryIfOption . . . . . . . . . . . 412–414\DefineTOCEntryLengthOption . . . . . . 412–414\DefineTOCEntryNumberOption . . . . . . 412–414\DefineTOCEntryOption . . . . . . . . . . . . . 412–414\defpagestyle . . . . . . . . . . . . . . . . . . . . . . . 477–479\defpairofpagestyles . . . . . . . . . . . . . . 475–476\deftocheading . . . . . . . . . . . . . . . . . . . . . . 397, 399description (Umgebung) . . . . . . . . . . . . 129, 235

Index 585

\DestroyLayer . . . . . . . . . . . . . . . . . . . . . . . . . . . . 450\DestroyPageStyleAlias . . . . . . . . . . . . . . . . . 453\DestroyRealLayerPageStyle . . . . . . . 460–461\dictum . . . . . . . . . . . . . . . 123, 124–126, 310–311\dictumauthorformat . . . . . 124–126, 310–311\dictumrule . . . . . . . . . . . . . . . 124–126, 310–311\dictumwidth . . . . . . . . . . . . . . 124–126, 310–311\dimexpr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 358displaymath (Umgebung) . . . . . . . . . . . . . . . . . . 135\documentclass . . . . . . . . 32, 57, 171, 253, 293,

314–315, 376, 428–429, 434–435, 482\doforeachtocfile . . . . . . . . . . . . . . . . . . 391–392\dospecials . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 491\dots . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 324

E\edgesize . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 553\ellipsispar . . . . . . . . . . . . . . . . . . . . . . . . 323–324\emailname . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 556emailseparator (Variable) . . . . . . 165, 200–204empty

→ Allgemeiner Index . . . . . . . . . . . . . . . . . . 577\encl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183–184\enclname . . . . . . . . . . . . . . . . . . . . . . . . . . . . 364, 556enclseparator (Variable) . . . . . . . 165, 183–184\enlargethispage . . . . . . . . . . . . . . . . . . . . 195, 547enumerate (Umgebung) . . . . . . . . . . . . . . 128, 235eqnarray (Umgebung) . . . . . . . . . . . . . . . . . . . . . 135equation (Umgebung) . . . . . . . . . . . . . . . . . . . . . 135\evensidemargin

→ Index der Längen etc. . . . . . . . . . . . . . . . 593\ExecuteDoHook . . . . . . . . . . . . . . . . . . . . . . . . . . . 368\extratitle . . . . . . . . . . . . . . . . . . . . . . . 70–71, 301

F\FamilyBoolKey . . . . . . . . . . . . . . . . . . . . . . 348–349\FamilyCounterKey . . . . . . . . . . . . . . . . . . . . . . . 351\FamilyCounterMacroKey . . . . . . . . . . . . . . . . . 352\FamilyCSKey . . . . . . . . . . . . . . . . . . . . . . . . 352–353\FamilyElseValues . . . . . . . . . . . . . . . . . . . . . . . 355\FamilyExecuteOptions . . . . . . . . . . . . . . 344, 347\FamilyInverseBoolKey . . . . . . . . . . . . . . . . . . . 349\FamilyKeyState . . . . . . . . . . . . . . . . . . . . 340–342\FamilyKeyStateNeedValue . . . . . . . . . . 340–342\FamilyKeyStateProcessed . . . . . . . . . . 340–342\FamilyKeyStateUnknown . . . . . . . . . . . . 340–342

\FamilyKeyStateUnknownValue . . . . . . 340–342\FamilyLengthKey . . . . . . . . . . . . . . . . . . . . . . . . 352\FamilyLengthMacroKey . . . . . . . . . . . . . . . . . . . 352\FamilyNumericalKey . . . . . . . . . . . . . . . . 350–351\FamilyOption . . . . . . . . . . . . . . . . . . . . . . . 346–347\FamilyOptions . . . . . . . . . . . . . . . . . 345–346, 347\FamilyProcessOptions . . . . . . . . . 342–343, 347\FamilySetBool . . . . . . . . . . . . . . . . . . . . . . 348–349\FamilySetCounter . . . . . . . . . . . . . . . . . . . . . . . 351\FamilySetCounterMacro . . . . . . . . . . . . . . . . . 352\FamilySetInverseBool . . . . . . . . . . . . . . . . . . . 349\FamilySetLength . . . . . . . . . . . . . . . . . . . . . . . . 352\FamilySetLengthMacro . . . . . . . . . . . . . . . . . . . 352\FamilySetNumerical . . . . . . . . . . . . . . . . 350–351\FamilySetUseLengthMacro . . . . . . . . . . . . . . . 352\FamilyStringKey . . . . . . . . . . . . . . . . . . . 352–353\FamilyUnknownKeyValue . . . . . . . . . . . . 353–354\FamilyUseLengthMacroKey . . . . . . . . . . . . . . . 352\faxname . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 556faxseparator (Variable) . . . . . . . . 165, 200–204figure (Umgebung) . . . . . . . . . . . . . . . . . . . . . . . . 149\figureformat . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148\figurename . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 364firstfoot (Variable) . . . . . . . . . . . . 165, 220–221firsthead (Variable) . . . . . . . . . . . . . . . . . 165, 206\firstmark . . . . . . . . . . . . . . . . . . . . . . . . . . . 467, 473\FirstName . . . . . . . . . . . . . . . . . . . . . . . . . . . 288, 289\float@addtolists . . . . . . . . . . . . . . . . . . . . . . . 430\float@listhead . . . . . . . . . . . . . . . . . . . . . . . . . . 430\flushbottom . . . . . . . . . . . . . . 29, 60, 84, 174, 177\fontmatter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92\footheight→ Index der Längen etc. . . . . . . . . . . . . . . . 593

\footnote . . . . . . 95, 95–96, 231, 231, 307, 308\footnotemark . . 95, 95–96, 231, 231, 307, 308\footnotetext . . . . . . . . . . . . . . . 95–96, 231, 308\footref . . . . . . . . . . . . . . . . . . . . 97, 231–232, 308\footskip→ Index der Längen etc. . . . . . . . . . . . . . . . 593

\ForDoHook . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 370\foreachemptykomavar . . . . . . . . . . . . . . . . . . . . 550\foreachkomavar . . . . . . . . . . . . . . . . . . . . . . . . . . 550\foreachkomavarifempty . . . . . . . . . . . . . . . . . 550\ForEachLayerOfPageStyle . . . . . . . . . . 457–458\ForEachLayerOfPageStyle* . . . . . . . . . 457–458

Index 586

\foreachnonemptykomavar . . . . . . . . . . . . . . . . 550\FreeI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 288, 289\FreeII . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 288, 289\FreeIII . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 288, 289\FreeIV . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 288, 289fromaddress (Variable) . . . . . . . . . 166, 196–199frombank (Variable) . . . . . . . . . . . . . 166, 220–221fromemail (Variable) . . . . . . . . . . . . 166, 200–204fromfax (Variable) . . . . . . . . . . . . . . 166, 200–204fromlogo (Variable) . . . . . . . . . . . . . 166, 204–206frommobilephone (Variable) . . . . 166, 200–204fromname (Variable) . . . 166, 196–199, 201, 226fromphone (Variable) . . . . . . . . . . . . 166, 200–204fromurl (Variable) . . . . . . . . . . . . . . 166, 200–204fromzipcode (Variable) . . . . . . . . . 166, 206–211\frontispiece . . . . . . . . . . . . . . . . . . . . 70–71, 301\frontmatter . . . . . . . . . . . . . . . . . . . . . . . . 100, 436

G\g@addto@macro . . . . . . . . . . . . . . . . . . . . . . . . . . . 417\GenericMarkFormat . . . . . . . . . . . . 466, 471–473\GetLayerContents . . . . . . . . . . . . . . . . . . . . . . . 449\GetRealPageStyle . . . . . . . . . . . . . . . . . . . . . . . 453\glossaryname . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 364\glueexpr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 359

H\headfromname . . . . . . . . . . . . . . . . . . . . . . . . . . . . 556\headheight

→ Index der Längen etc. . . . . . . . . . . . . . . . 593headings

→ Allgemeiner Index . . . . . . . . . . . . . . . . . . 577\headmark . . . . . . . . . . . . . . . . . . . . . . 273–274, 464\headtoname . . . . . . . . . . . . . . . . . . . . . . . . . . 364, 556

I\if@atdocument . . . . . . . . . . . . . . . . . . . . . . . . . . . 357\if@chapter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 436\if@dvips . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 357\if@mainmatter . . . . . . . . . . . . . . . . . . . . . . . . . . . 436\IfActiveMkBoth . . . . . . . . . . . . . . . . . . . . 360–361\ifattoclist . . . . . . . . . . . . . . . . . . . . . . . . 388–389\ifcase . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 350\IfChapterUsesPrefixLine . . . . . . . . . . . . . . . 102\ifdimen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 358\ifdvioutput . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 357

\IfExistskomafont . . . . . . . . . . . . . . . . . . . . . . . 506\iffalse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 436\IfIsAliaskomafont . . . . . . . . . . . . . . . . . . . . . . 506\ifiscount . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 359\ifiscounter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 359\ifisdimen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 358\ifisdimension . . . . . . . . . . . . . . . . . . . . . . . . . . . 358\ifisdimexpr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 358\ifisglue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 359\ifisglueexpr . . . . . . . . . . . . . . . . . . . . . . . . . . . . 359\ifisinteger . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 359\ifisnumexpr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 360\ifisskip . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 359\ifkomavar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169\ifkomavarempty . . . . . . . . . . . . . . . . . . . . 169, 550\ifkomavarempty* . . . . . . . . . . . . . . . . . . . 169, 550\IfLayerAtPageStyle . . . . . . . . . . . . . . . . . . . . . 460\IfLayerExists . . . . . . . . . . . . . . . . . . . . . . . . . . . 449\IfLayerPageStyleExists . . . . . . . . . . . . . . . . 460\IfLayersAtPageStyle . . . . . . . . . . . . . . . . . . . . 460\ifnotundefined . . . . . . . . . . . . . . . . . . . . . . . . . . 356\ifnumber . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 360\ifnumbered . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122\ifoot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 266–267\ifoot* . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267\ifpdfoutput . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 357\ifpdftex . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 357\Ifplength . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 537\ifpsoutput . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 357\IfRealLayerPageStyleExists . . . . . . . . . . . 460\IfSectionCommandStyleIs . . . . . . . . . . . . . . . 518\IfSomeLayersAtPageStyle . . . . . . . . . . . . . . . 460\ifstr . . . . . . . . . . . . . . . . . . . . . . . . . . . 354, 358, 503\ifstrstart . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 358\ifthispageodd . . . . . . . . . . . . . . 84–85, 223, 304\iftocfeature . . . . . . . . . . . . . . . . . . . . . . . . . . . . 400\iftrue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 436\ifundefinedorrelax . . . . . . . . . . . . . . . . . . . . . 356\ifunnumbered . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122\IfUseNumber . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 527\IfUsePrefixLine . . . . . . . . . . . . . . . . . . . 117–119\ifVTeX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 357\ihead . . . . . . . . . . . . . . . . . . . . . . . . . . 266–267, 274\ihead* . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267\indexname . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 364

Index 587

\indexpagestyle . . . . . . . . . . . . . . . . . . . . . . . 88–90\InputAddressFile . . . . . . . . . . . . . . 287, 288–289invoice (Variable) . . . . . . . . . . . . . . 166, 214–216\invoicename . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 556\ISODayName . . . . . . . . . . . . . . . . . . . . 281–282, 282\ISODayNumber . . . . . . . . . . . . . . . . . . . . . . . 280–281\ISOToday . . . . . . . . . . . . . . . . . . . . . . . . . . . . 282, 283\IsoToday . . . . . . . . . . . . . . . . . . . . . . . . . . . . 282, 283\item . . . . . 126–127, 128, 129, 130–131, 234,

235–236, 311–312itemize (Umgebung) . . . . . . . . . . . . 126–127, 234

Kkomaabove→ Allgemeiner Index . . . . . . . . . . . . . . . . . . 577

komabelow→ Allgemeiner Index . . . . . . . . . . . . . . . . . . 577

\KOMAClassName . . . . . . . . . . . . . . . . . . . . . . 501–502\KOMAoption

. . . 32–33, 57–58, 171–172, 253–254,293–294, 315, 429, 431, 435, 483

\KOMAoptions . . . . . . . . 32–33, 57–58, 171–172,253–254, 293–294, 315, 421, 429, 431,435, 483

\KOMAScript . . . . . . . . . . . . . . . . . . . . . . . . . . 365, 501\KOMAScriptVersion . . . . . . . . . . . . . . . . . 365–366

L\l@addto@macro . . . . . . . . . . . . . . . . . . . . . . . . . . . 366\label . . . . . . . . . . . . . . . . . . . 97, 178, 231, 308, 325\labelenumi . . . . . . . . . . . . . . . . . . . . . . . . . 128, 235\labelenumii . . . . . . . . . . . . . . . . . . . . . . . . 128, 235\labelenumiii . . . . . . . . . . . . . . . . . . . . . . . 128, 235\labelenumiv . . . . . . . . . . . . . . . . . . . . . . . . 128, 235labeling (Umgebung) . . . . 130–131, 235–236,

311–312\labelitemi . . . . . . . . . . . . . . . . . . . . 126–127, 234\labelitemii . . . . . . . . . . . . . . . . . . . 126–127, 234\labelitemiii . . . . . . . . . . . . . . . . . . 126–127, 234\labelitemiv . . . . . . . . . . . . . . . . . . . 126–127, 234landscape (Umgebung) . . . . . . . . . . . . . . . . . . . . 431\LastName . . . . . . . . . . . . . . . . . . . . . . . . . . . . 288, 289\lastpenalty . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 415\LastTOCLevelWasHigher . . . . . . . . . . . . . . . . . 415\LastTOCLevelWasLower . . . . . . . . . . . . . . . . . . . 415\LastTOCLevelWasSame . . . . . . . . . . . . . . . . . . . . 415

\layercontentsmeasure . . . . . . . . . . . . . . . . . . . 450\layerhalign . . . . . . . . . . . . . . . . . . . . . . . . 447–448\layerheight . . . . . . . . . . . . . . . . . . . 447–448, 479\layervalign . . . . . . . . . . . . . . . . . . . . . . . . 447–448\layerwidth . . . . . . . . . . . . . . . . . . . . 447–448, 479\layerxoffset . . . . . . . . . . . . . . . . . . . . . . . 447–448\layeryoffset . . . . . . . . . . . . . . . . . . . . . . . 447–448\lefoot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 262–265\lefoot* . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265\leftbotmark . . . . . . . . . . . . . . 466–467, 473–474\leftfirstmark . . . . . . . . . . . 466–467, 473–474\leftmark . . . 273–274, 275, 464, 465, 466, 473\lefttopmark . . . . . . . . . . . . . . 466–467, 473–474\lehead . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258–261\lehead* . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261–262\LenToUnit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 448letter→ Index der Längen etc. . . . . . . . . . . . . . . . 593

letter→ Allgemeiner Index . . . . . . . . . . . . . . . . . . 577

letter (Umgebung) . . . . . . . . . . . . . . . . . . 176–177\letterlastpage . . . . . . . . . . . . . . . . . . . . . . . . . . 178\LetterOptionNeedsPapersize . . . . . . . . . . . 551\letterpagestyle . . . . . . . . . . . . . . . . . . . . . . . . 224\linespread . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29, 40\lipsum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 260, 270\listfigurename . . . . . . . . . . . . . . . . . . . . . 361, 364\listofDateierweiterung name . . . . . . 394–396\listofZielendung . . . . . . . . . . . . . . . . . . 386–387\listofeachtoc . . . . . . . . . . . . . . . . . . . . . . 394–396\listoffigures . . . . . . . . . . . . . . . . . . . . . . 156–157\listoftables . . . . . . . . . . . . . . . . . . . . . . . 156–157\listoftoc . . . . . . . . . . . . . . . . . . . . . . . . . . 394–396\listoftoc* . . . . . . . . . . . . . . . . . . . . . . . . . 394–396\listtablename . . . . . . . . . . . . . . . . . . . . . . . . . . . 364\LoadLetterOption . . . . . . . . . . . . . . . . . . 241–247\LoadLetterOptions . . . . . . . . . . . . . . . . . 241–247location (Variable) . . . . . . . . . . . . . 166, 211–212\lofoot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 262–265\lofoot* . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265\lohead . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258–261\lohead* . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261–262\lowertitleback . . . . . . . . . . . . . . . . . . . . . . 74, 303

M\mainmatter . . . . . . . . . . . . . . . . . . . . . . 92, 100, 436

Index 588

\makeatletter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 419\makeatother . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 419\MakeLowercase . . . . . . . . . . . . . . . . . . . . . . . . . . . 282\MakeMarkcase . . . . 88, 272, 276, 396–397, 463\makenote . . . . . . . . . . . . . . . . . . . . . . . 490–491, 492\makenote* . . . . . . . . . . . . . . . . . . . . . . . . . . 490–491\maketitle . . . . . . . . . . 69, 69–74, 299, 300–303\MakeUppercase . . . . . . . . 272, 396, 427, 472, 549\manualmark . . . . . . . . . . . . . . . 269–271, 462–463\marginline . . . . . . . . . . . . . . . 157–158, 238, 313\marginpar . . . . . . . . . . . . . . . . 157–158, 238, 313\marginparsep

→ Index der Längen etc. . . . . . . . . . . . . . . . 593\marginparwidth

→ Index der Längen etc. . . . . . . . . . . . . . . . 593\markboth 86, 88, 227, 228, 228, 275–277, 360,

465, 549\markleft . . . . 88, 227, 228, 275–277, 465, 549\markright . . . 86, 88, 227, 228, 228, 275–277,

465, 467, 473, 549\maxdimen→ Index der Längen etc. . . . . . . . . . . . . . . . 593

\mediaheight→ Index der Längen etc. . . . . . . . . . . . . . . . 593

\mediawidth→ Index der Längen etc. . . . . . . . . . . . . . . . 593

\medskip . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131, 236\microtypesetup . . . . . . . . . . . . . . . . . . . . . . . . . . 398\minisec . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114–115\mobilephonename . . . . . . . . . . . . . . . . . . . . . . . . 556mobilephoneseparator (Variable) . . . . . . . . 166,

200–204\ModifyLayer . . . . . . . . . . . . . . . . . . . . . . . . 439–447\ModifyLayerPageStyleOptions . . . . . . . . . . 459\ModifyLayers . . . . . . . . . . . . . . . . . . . . . . . . . . . . 447\month . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 282\multfootsep . . . . . . . 95, 95, 96, 230–231, 231,

307–308, 308\multiplefootnoteseparator 95–96, 231, 308myheadings

→ Allgemeiner Index . . . . . . . . . . . . . . . . . . 577myref (Variable) . . . . . . . . . . . . . . . . 167, 214–216\myrefname . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 556

N\Name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 288, 289

\nameday . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 283\newbibstyle . . . . . . . . . . . . . . . . . . . 159, 529–531\newblock . . . . . . . . . . . . . . . . . . 159, 160, 529–531\newcaptionname . . . . . . . . . . . . . . . . . . . . 362–365\newcaptionname* . . . . . . . . . . . . . . . . . . . 362–365\newcommand* . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 499\newdaylanguage . . . . . . . . . . . . . . . . . . . . 283–284\newkomafont . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 504\newkomavar . . . . . . . . . . . . . . . . . . . . . . . . . 548–549\newkomavar* . . . . . . . . . . . . . . . . . . . . . . . . 548–549\newlength . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169\newpage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91\newpagestyle . . . . . . . . . . . . . . . . . . . . . . . 477–479\newpairofpagestyles . . . . . . . . . . . . . . 475–476\newplength . . . . . . . . . . . . . . . . . . . . . . . . . . 241, 537nextfoot (Variable) . . . . 167, 190, 226, 227, 228nexthead (Variable) . . . . . . . . . . . . . 167, 226, 228\nobreakspace . . . . . . . . . . . . . . . . . . . . . . . . . 96, 323\nofiles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 489\noindent . . . . . . . . . . . . . . . . . . . . . . . . . 76, 132, 236\nonumberline . . . . . . . . . . . . . . . . . . . . . . . . . . . . 418\nopagebreak . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132\normalfont . . . . . . . . . . . . . . . . . . . . . . . . . . 256, 257\normalmarginpar . . . . . . . . . . . . . . . . . . . . . . . . . 488\numberline . . . . . . . . . . . . . . . . . . . . . . . . . . 401, 405\numexpr . . . . . . . . . . . . . . . . . . . . 280, 360, 366, 367

O\ofoot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 266–267\ofoot* . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267\ohead . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 266–267\ohead* . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267, 274\onecolumn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 399\opening 175, 178–179, 225, 227, 242, 541, 545,

547, 551\othersectionlevelsformat . . . . . . . . . 117–119

P\PackageInfoNoLine . . . . . . . . . . . . . . . . . . . . . . 366\pagebreak . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91\pageheight→ Index der Längen etc. . . . . . . . . . . . . . . . 593

\pagemark . . . . . . . . . . . . . . . . . . . 88, 273–274, 464\pagename . . . . . . . . . . . . . . . . . . . . . . . . . . . . 364, 556\pagenumbering . . . . . . . . . . . . . . . . . . . . . . . . 90–92\pageref . . . . . . . . . . . . . . . . . . . . . . . . . . 97, 178, 308

Index 589

\pagestyle . . . . 86–88, 225–228, 451, 452, 476\pagewidth

→ Index der Längen etc. . . . . . . . . . . . . . . . 593\paperheight

→ Index der Längen etc. . . . . . . . . . . . . . . . 593\paperwidth

→ Index der Längen etc. . . . . . . . . . . . . . . . 593par

→ Index der Längen etc. . . . . . . . . . . . . . . . 593\paragraph . . . . . . . . . . . . . . . . . 107–112, 432, 508\paragraph* . . . . . . . . . . . . . . . . . . . . . . . . . 112–113\paragraphformat . . . . . . . . . . . . . . . . . . . 117–119\paragraphmark . . . . . . . . . . . . . . . . . . . . . . 275, 465\paragraphmarkformat . . . . . . . . . 274–275, 464\paragraphnumdepth . . . . . . . . . . . . . . . . . . . . . . 121\paragraphtocdepth . . . . . . . . . . . . . . . . . . . . . . . 81\parbox . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124, 310\parellipsis . . . . . . . . . . . . . . . . . . . . . . . . 323–324\parfillskip

→ Index der Längen etc. . . . . . . . . . . . . . . . 593\parformat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 323\parformatseparation . . . . . . . . . . . . . . . . . . . . 323\parindent

→ Index der Längen etc. . . . . . . . . . . . . . . . 593\parname . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 331\parshortname . . . . . . . . . . . . . . . . . . . . . . . . . . . . 331\parskip

→ Index der Längen etc. . . . . . . . . . . . . . . . 593\part . . . . . 80, 107–112, 113, 121, 432, 507, 519\part* . . . . . . . . . . . . . . . . . . . . . . . . . . 112–113, 519\partformat . . . . . . . . . . . . . . . . . . . . . . . . . 117–119\partheademptypage . . . . . . . . . . . . . . . . . 519–520\partheadendvskip . . . . . . . . . . . . . . . . . . 519–520\partheadmidvskip . . . . . . . . . . . . . . . . . . 519–520\partheadstartvskip . . . . . . . . . . . . . . . . 519–520\partlineswithprefixformat . . . 119, 520–522\partmark . . . . . . . . . . . . . . . . . . . . . . . . . . . . 275, 465\partmarkformat . . . . . . . . . . . . . . . 274–275, 464\partname . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 365\partnumdepth . . . . . . . . . . . . . . . . . . . . . . . . 81, 121\partpagestyle . . . . . . . . . . . . . . . . . . . . . . . . 88–90\parttocdepth . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81\PassOptionsToPackage . . . . . . . . . . . . . . . . . . . 356\pdflastypos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 490\pdfpageheight

→ Index der Längen etc. . . . . . . . . . . . . . . . 593\pdfpagewidth→ Index der Längen etc. . . . . . . . . . . . . . . . 593

\pdfsavepos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 490\phonename . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 556phoneseparator (Variable) . . . . . . 167, 200–204picture (Umgebung) . . . . . . . . . . . . . . . . . . . . . . . 438place (Variable) . . . . . . . . . . . . . . . . 167, 206–211placeseparator (Variable) . 167, 213, 215–216plain→ Allgemeiner Index . . . . . . . . . . . . . . . . . . 577

plain.letter→ Allgemeiner Index . . . . . . . . . . . . . . . . . . 577

plain.scrheadings→ Allgemeiner Index . . . . . . . . . . . . . . . . . . 577

PPcode (Variable) . . . . . . . . . . . . . . . 167, 206–211PPdatamatrix (Variable) . . . . . . . . 167, 206–211\prefacename . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 365\PreventPackageFromLoading . . . 381–382, 382\PreventPackageFromLoading* . . . . . . 381–382\ProcessOptions* . . . . . . . . . . . . . . . . . . . . . . . . . 342\proofname . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 365\protect . . . . . . . . . . . . . . . . 97, 308, 472, 502, 549\providecaptionname . . . . . . . . . . . . . . . . 362–365\providecaptionname* . . . . . . . . . . . . . . 362–365\ProvideLayer . . . . . . . . . . . . . . . . . . . . . . . 439–447\ProvideNoteColumn . . . . . . . . . . . . . . . . . 485–489\providepagestyle . . . . . . . . . . . . . . . . . . 477–479\ProvidePageStyleAlias . . . . . . . . . . . . . . . . . 452\ProvidePageStyleByLayers . . . . . . . . . 453–456\providepairofpagestyles . . . . . . . . . . 475–476\ProvideSectionCommand . . . . 76, 405, 507–517\ProvideSectionCommands . . . . . . . . . . . 517–518\ps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180–181\publishers . . . . . . . . . . . . . . . . . 71–73, 301–303\putC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 448–449\putLL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 448–449\putLR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 448–449\putUL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 448–449\putUR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 448–449

Qquotation (Umgebung) . . . . . 75, 132–134, 236quote (Umgebung) . . . . . . . . . . . . . . . . . . . 132, 236

Index 590

R\raggedbottom . . . . . . . . . . . . . . . . . . . . . 29, 60, 174\raggedchapter . . . . . . . . . . . . . . . . . . . . . . 116–117\raggedchapterentry . . . . . . . . . . . . . . . . . . . . . 503\raggeddictum . . . . . . . . . . . . 124–126, 310–311\raggeddictumauthor . . . . . 124–126, 310–311\raggeddictumtext . . . . . . . . 124–126, 310–311\raggedfootnote . . . . . . . . . . . . . . . . 99, 233, 310\raggedleft . . . . . . . . . . . . . . . . . . 99, 124, 233, 310\raggedpart . . . . . . . . . . . . . . . . . . . . . . . . . 116–117\raggedright . . . . . . . . . . . . 99, 124, 182, 233, 310\raggedsection . . . . . . . . . . . . . . . . . . . . . . 116–117\raggedsignature . . . . . . . . . . . . . . . . . . . 239–240\raisebox . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145\recalctypearea . . . . . . . . . . 41–42, 61, 185, 296\RedeclareLayer . . . . . . . . . . . . . . . . . . . . 439–447\RedeclareNoteColumn . . . . . . . . . . . . . . 485–489\RedeclarePageStyleAlias . . . . . . . . . . . . . . . 452\RedeclarePageStyleByLayers . . . . . . 453–456\RedeclareSectionCommand . 76, 405, 507–517\RedeclareSectionCommands . . . . . . . . . 517–518\ref . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97, 308, 325\refClause . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 326\refClauseN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 326\refL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 325\refN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 325\refname . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 365\refoot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 262–265\refoot* . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265\refPar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 326\refParL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 326\refParN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 326\refParS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 326\refS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 325\refSentence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 326\refSentenceL . . . . . . . . . . . . . . . . . . . . . . . . . . . . 326\refSentenceN . . . . . . . . . . . . . . . . . . . . . . . . . . . . 326\refSentenceS . . . . . . . . . . . . . . . . . . . . . . . . . . . . 326\refstepcounter . . . . . . . . . . . . . . . . . . . . . . . . . . 329\rehead . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258–261\rehead* . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261–262\relax . . . . . . . . . . . . . . . . . . . . . . . . 99, 233, 310, 503\RelaxFamilyKey . . . . . . . . . . . . . . . . . . . . . . . . . . 342\removefromtoclist . . . . . . . . . . . . . . . . . . . . . . 391\RemoveLayersFromPageStyle . . . . . . . 458–459

\removereffields . . . . . . . . . . . . . . . . . . . 548–549\renewcaptionname . . . . . . . . . . . . . . . . . . 362–365\renewcaptionname* . . . . . . . . . . . . . . . . . 362–365\renewcommand . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 530\renewpagestyle . . . . . . . . . . . . . . . . . . . . 477–479\renewpairofpagestyles . . . . . . . . . . . . 475–476\ReplaceClass . . . . . . . . . . . . . . . . . . . . . . . 379–380\ReplaceInput . . . . . . . . . . . . . . . . . . . . . . . 378–379\ReplacePackage . . . . . . . . . . . . . . . . . . . . 379–380\RequirePackage . . . . . . . . . . . . 339, 376, 380, 381\RequirePackageWithOptions . . . . . . . . 339, 381\ResetPreventPackageFromLoading . 382–383\restylefloat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137\reversemarginpar . . . . . . . . . . . . . . . . . . . . . . . . 488\rightbotmark . . . . . . . . . . . . 466–467, 473–474\rightfirstmark . . . . . . . . . . 466–467, 473–474\rightmark . . 273–274, 275, 464, 465, 466, 473\righttopmark . . . . . . . . . . . . 466–467, 473–474\rofoot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 262–265\rofoot* . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265\rohead . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258–261\rohead* . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261–262ruled→ Allgemeiner Index . . . . . . . . . . . . . . . . . . 577

S\S . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 321\scr@ifdvioutput . . . . . . . . . . . . . . . . . . . . . . . . 357\scr@ifluatex . . . . . . . . . . . . . . . . . . . . . . . . . . . . 356\scr@ifpdfoutput . . . . . . . . . . . . . . . . . . . . . . . . 357\scr@ifpdftex . . . . . . . . . . . . . . . . . . . . . . . . . . . . 357\scr@ifpsoutput . . . . . . . . . . . . . . . . . . . . . . . . . . 357\scr@ifundefinedorrelax . . . . . . . . . . . 356, 417\scr@ifVTeX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 357\scr@startsection . . . . . . . . . . . . . . . . . . 527–528scrheadings→ Allgemeiner Index . . . . . . . . . . . . . . . . . . 577

\scrlayerAddCsToInterface . . . . . . . . . . . . . . 469\scrlayerAddToInterface . . . . . . . . . . . . . . . . 469\scrlayerInitInterface . . . . . . . . . . . . . . . . . 468\scrlayerOnAutoRemoveInterface . . . . . . . . 470\SecDef . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 527–528\secdef . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 527secnumdepth→ Index der Längen etc. . . . . . . . . . . . . . . . 593

\section . . . . . . 80, 107–112, 113, 121, 432, 508

Index 591

\section* . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112–113\sectioncatchphraseformat . . . . 119, 524–525\sectionformat . . . . . . . . . . . . . . . . . . . . . . 117–119\sectionlinesformat . . . . . . . . . . . 119, 524–525\sectionmark . . . . . . . . . . . . . 120–121, 275, 465\sectionmarkformat 120–121, 274–275, 464,

471, 472\sectionnumdepth . . . . . . . . . . . . . . . . . . . . . . . . 121\sectiontocdepth . . . . . . . . . . . . . . . . . . . . . . . . . . 81\seename . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 365\selectfont . . . . . . . . . . . . . . . . . . . . . . . . . . . 82, 222\Sentence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 325sentence

→ Index der Längen etc. . . . . . . . . . . . . . . . 593\sentencename . . . . . . . . . . . . . . . . . . . . . . . . . . . . 331\sentencenumberformat . . . . . . . . . . . . . . . . . . . 325\sentenceshortname . . . . . . . . . . . . . . . . . . . . . . 331\setbibpreamble . . . . . . . . . . . . . . . . . . . . 160–161\setcapdynwidth . . . . . . . . . . . . . . . . . . . . 150–151\setcaphanging . . . . . . . . . . . . . . . . . . . . . . . . . . . 149\setcapindent . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149\setcapindent* . . . . . . . . . . . . . . . . . . . . . . . . . . . 149\setcapmargin . . . . . . . . . . . . . . . . . . . . . . . 150–151\setcapmargin* . . . . . . . . . . . . . . . . . . . . . . 150–151\setcaptionalignment . . . . . . . . . . . . . . 151–153\setcapwidth . . . . . . . . . . . . . . . . . . . . . . . . 150–151\setchapterpreamble . . . . . . . . . . . . . . . . 122–123\setfootnoterule . . . . . . . . . . . . . . . . . . . . 99, 233\setindexpreamble . . . . . . . . . . . . . . . . . . 162–163\setkomafont . . . . . 62–67, 188–191, 255–257,

297–298, 316, 484\setkomavar . . . . . . . . . . . . . . . . . . . . . . . . . 168–169\setkomavar* . . . . . . . . . . . . . . . . . . . . . . . . 168–169\setlength . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169\setlengthtoplength . . . . . . . . . . . . . . . . . . . . . 170\setparsizes . . . . . . . . . . . . . . . . . . . . . . . . 506–507\setpartpreamble . . . . . . . . . . . . . . . . . . . 122–123\setplength . . . . . . . . . . . . . . . . . . . . . . . . . . 241, 537\setplengthtodepth . . . . . . . . . . . . . . . . . . . . . . 539\setplengthtoheight . . . . . . . . . . . . . . . . . . . . . 539\setplengthtototalheight . . . . . . . . . . . . . . . 539\setplengthtowidth . . . . . . . . . . . . . . . . . . . . . . 539\setshowstyle . . . . . . . . . . . . . . . . . . . . . . . . . . . . 553\settime . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 286\setuptoc . . . . . . . . . . . . . . . . . . . . . . . 397–400, 432

\showenvelope . . . . . . . . . . . . . . . . . . . . . . . 553–554\showfields . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 552\showISOenvelope . . . . . . . . . . . . . . . . . . . 553–554\showUScheck . . . . . . . . . . . . . . . . . . . . . . . . 553–554\showUScommercial . . . . . . . . . . . . . . . . . . 553–554signature (Variable) . . . . . . . . . . . . . . . . . 167, 238specialmail (Variable) . . . . . . . . . 167, 206–211\SplitDoHook . . . . . . . . . . . . . . . . . . . . . . . . 370–371\storeareas . . . . . . . . . . . . . . . . . . . . . . . . . 499–500\StorePreventPackageFromLoading . 382–383\SubClause . . . . . . . . . . . . . . . . . . . . . . . . . . 319–321\subject . . . . . . . . . . . . . . . . . . . . . 71–73, 301–303subject (Variable) . . . . . . . . . 167, 217–219, 226\subjectname . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 556subjectseparator (Variable) . . . 167, 217–219\subparagraph . . . . . . . . . . . . . 107–112, 432, 508\subparagraph* . . . . . . . . . . . . . . . . . . . . . . 112–113\subparagraphformat . . . . . . . . . . . . . . . . 117–119\subparagraphmark . . . . . . . . . . . . . . . . . . 275, 465\subparagraphmarkformat . . . . . . 274–275, 464\subparagraphnumdepth . . . . . . . . . . . . . . . . . . . 121\subparagraphtocdepth . . . . . . . . . . . . . . . . . . . . 81\subsection . . . . . . 107–112, 121, 318, 432, 508\subsection* . . . . . . . . . . . . . . . . . . . . . . . . 112–113\subsectionformat . . . . . . . . . . . . . . . . . . 117–119\subsectionmark . . . . . . . . . . 120–121, 275, 465\subsectionmarkformat . . 120–121, 274–275,

464, 471, 472\subsectionnumdepth . . . . . . . . . . . . . . . . . . . . . 121\subsectiontocdepth . . . . . . . . . . . . . . . . . . . . . . 81\subsubsection . . . . . . . 107–112, 121, 432, 508\subsubsection* . . . . . . . . . . . . . . . . . . . . 112–113\subsubsectionformat . . . . . . . . . . . . . . 117–119\subsubsectionmark . . . . . . . . . . . . . . . . . 275, 465\subsubsectionmarkformat . . . . 274–275, 464\subsubsectionnumdepth . . . . . . . . . . . . . . . . . 121\subsubsectiontocdepth . . . . . . . . . . . . . . . . . . . 81\subtitle . . . . . . . . . . . . . . . . . . . . 71–73, 301–303\syncwithnotecolumn . . . . . . . . . . . . . . . . 491–493\syncwithnotecolumns . . . . . . . . . . . . . . . . . . . . 493

Ttable (Umgebung) . . . . . . . . . . . . . . . . . . . . . . . . . 136\tableformat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148\tablename . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 365\tableofcontents . . . . . . . . . . . . . . . . . . . . . 80, 276

Index 592

tabular (Umgebung) . . . . . . . . . . . . . . . . . . . . . . . 136\tb@Dateierweiterung @after@hook . . . . . . 417\tb@Dateierweiterung @before@hook . . . . . 417\Telephone . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 288\textellipsis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 324\textheight→ Index der Längen etc. . . . . . . . . . . . . . . . 593

\textsubscript . . . . . . . . . . . . . . 61–62, 188, 297\textsuperscript . . . 61, 61–62, 188, 188, 297,

297\textwidth→ Index der Längen etc. . . . . . . . . . . . . . . . 593

\thanks . . . . . . . . . . . . . . . . . . . . . . 71–73, 301–303\the . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 280\theenumi . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128, 235\theenumii . . . . . . . . . . . . . . . . . . . . . . . . . . 128, 235\theenumiii . . . . . . . . . . . . . . . . . . . . . . . . . 128, 235\theenumiv . . . . . . . . . . . . . . . . . . . . . . . . . . 128, 235\thefootnotemark . 97–99, 232–233, 309–310thenomenclature (Umgebung) . . . . . . . . . . . . . 432\thepage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88\thepar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 323\thesentence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 325\thisletter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178\thispagestyle . . . . 86–88, 225–228, 304, 451\thistime . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 285\thistime* . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 285\title . . . . . . . . . . . . . . . . . . . . . . . 71–73, 301–303title (Variable) . . . . . . . . . . . . . . . . . . . . . . 167, 216\titlehead . . . . . . . . . . . . . . . . . . . 71–73, 301–303titlepage (Umgebung) . . . . . . . . . . . . . . . . 69, 300\titlepagestyle . . . . . . . . . . . . . 88–90, 261, 304toaddress (Variable) . . . . . . . . . . . . 168, 206–211\tocbasic@@after@hook . . . . . . . . . . . . . . . . . . . 417\tocbasic@@before@hook . . . . . . . . . . . . . . . . . 417\tocbasic@addxcontentsline . . . . . . . . . . . . . 418\tocbasic@DependOnPenaltyAndTOCLevel . 418\tocbasic@extend@babel . . . . . . . . . . . . . . . . . 416\tocbasic@listhead . . . . . . . . . . . . . . . . . 417, 432\tocbasic@listhead@Dateierweiterung . 418\tocbasic@SetPenaltyByTOCLevel . . . . . . . . 418\tocbasic@starttoc . . . . . . . . . . . . . . . . . . . . . . 416\tocbasicautomode . . . . . . . . . . . . . . . . . . . . . . . 392\TOCclone . . . . . . . . . . . . . . . . . . . . . . . . . . . . 386–387tocdepth

→ Index der Längen etc. . . . . . . . . . . . . . . . 593\TOCEntryStyleInitCode . . . . . . . . . . . . 414–415\TOCEntryStyleStartInitCode . . . . . . 414–415\TOCLineLeaderFill . . . . . . . . . . . . . . . . . . . . . . 415\today . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71, 215, 302\todaysname . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 282\todaysnumber . . . . . . . . . . . . . . . . . . . . . . . . . . . . 282toname (Variable) . . . . . . . . . . . . . . . 168, 206–211\toplevelpagestyle . . . . . . . . . . . . . . . . . . . . . . 451\topmargin→ Index der Längen etc. . . . . . . . . . . . . . . . 593

\topmark . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 467, 473\typearea . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41–42

U\UnifyLayersAtPageStyle . . . . . . . . . . . . . . . . 459\unitfactor . . . . . . . . . . . . . . . . . . . . . . . . . 553–554\UnPreventPackageFromLoading . . . . . . . . . . 383\UnPreventPackageFromLoading* . . . . . . . . . 383\UnReplaceClass . . . . . . . . . . . . . . . . . . . . . . . . . . 381\UnReplaceInput . . . . . . . . . . . . . . . . . . . . . . . . . . 381\UnReplacePackage . . . . . . . . . . . . . . . . . . . . . . . 381\unsettoc . . . . . . . . . . . . . . . . . . . . . . . . . . . . 397–400\uppertitleback . . . . . . . . . . . . . . . . . . . . . . 74, 303urlseparator (Variable) . . . . . . . . . . . . . 200–204\useencodingofkomafont . . . 67–68, 191, 257,

298, 316–317, 484–485, 505\usefamilyofkomafont . 67–68, 191, 257, 298,

316–317, 484–485, 505\usefontofkomafont . . . 67–68, 191, 257, 298,

316–317, 484–485, 505\usekomafont . . . . . 62–67, 188–191, 255–257,

297–298, 316, 484, 504\usekomavar . . . . . . . . . . . . . . . . . . . . 169, 549–550\usekomavar* . . . . . . . . . . . . . . . . . . . 169, 549–550\usepackage . 32, 57, 171, 253, 293, 314–315,

339, 381, 428–429, 434–435, 482\useplength . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170\useseriesofkomafont . 67–68, 191, 257, 298,

316–317, 484–485, 505\useshapeofkomafont . . 67–68, 191, 257, 298,

316–317, 484–485, 505\useshorthands . . . . . . . . . . . . . . . . . . . . . . . . . . . 325\usesizeofkomafont . . . 67–68, 191, 257, 298,

316–317, 484–485, 505\usetocbasicnumberline . . . . . . . . . . . . . . . . . 401

Index 593

Vverse (Umgebung) . . . . . . . . . . . . . . 131–132, 236\vspace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 492

W\withoutparnumber . . . . . . . . . . . . . . . . . . . . . . . 323\wwwname . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 556

X\XdivY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 367\XmodY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 367

Y\year . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 282yourmail (Variable) . . . . . . . . . . . . . 168, 214–216\yourmailname . . . . . . . . . . . . . . . . . . . . . . . . . . . . 556yourref (Variable) . . . . . . . . . . . . . . 168, 214–216\yourrefname . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 556

Zzipcodeseparator (Variable) . . . 168, 206–211

Längen und Zähler

\@tempskipa (Länge) . . . . . . . . . . . . . . . . . . 519, 520

Bbackaddrheight . . . . . . . . . . . . . . . . 533, 543–544bfoldmarklength . . . . . . . . . . . . . . . . . . . . 533, 540bfoldmarkvpos . . . . . . . . . . . . . . . . . . 533, 539–540

E\evensidemargin (Länge) . . . . . . . . . . . . . . 69, 299

Ffirstfoothpos . . . . . . . . . . . . . . . . . . . . . . . 533, 548firstfootvpos . . . . . . . . . . . . . . . . . . 533, 547–548firstfootwidth . . . . . . . . . . . . . . . . . . . . . . 533, 548firstheadhpos . . . . . . . . . . . . . . . . . . . . . . . 533, 541firstheadvpos . . . . . . . . . . . . . . . . . . . . . . . 533, 541firstheadwidth . . . . . . . . . . . . . . . . . 533, 542, 548foldmarkhpos . . . . . . . . . . . . . . . . . . . . . . . . 534, 540foldmarkthickness . . . . . . . . . . . . . . . . . . . . . . . 541foldmarkvpos . . . . . . . . . . . . . . . . . . . . . . . . 534, 541\footheight (Länge) . . . . 47–48, 254–255, 461\footskip (Länge) . . . . . . . . . . . . . . . 254, 547, 548fromrulethickness . . . . . . . . . . . . . . . . . . 534, 542fromrulewidth . . . . . . . . . . . . . . . . . . 196, 534, 542

H\headheight (Länge) . . . . . . . . . . . 254–255, 461

Lletter (Zähler) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178lfoldmarkhpos . . . . . . . . . . . . . . . . . . . . . . . 534, 540lfoldmarklength . . . . . . . . . . . . . . . . . . . . 534, 540

locheight . . . . . . . . . . . . . . . . . . . . . . . . . . . . 534, 545lochpos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 534, 545locvpos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 534, 545locwidth . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 534, 545

M\marginparsep (Länge) . . . . . . . . . . . . . . . . . . . . 487\marginparwidth (Länge) . . . . . . . . . . . . . . . . . . . 45\maxdimen (Länge) . . . . . . . . . . . . . . . . . . . . 541, 548\mediaheight (Länge) . . . . . . . . . . . . . . . . . . . . . . 52\mediawidth (Länge) . . . . . . . . . . . . . . . . . . . . . . . . 52mfoldmarklength . . . . . . . . . . . . . . . . . . . . 535, 540mfoldmarkvpos . . . . . . . . . . . . . . . . . . 535, 539–540

P\pageheight (Länge) . . . . . . . . . . . . . . . . . . . . . . . . 52\pagewidth (Länge) . . . . . . . . . . . . . . . . . . . . . . . . . 52\paperheight (Länge) . . . . . . . . . . . . . . . . . . . . . 548\paperwidth (Länge) . . . . . . . . . . . . . . . . . . 541, 548par (Zähler) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 323\parfillskip (Länge) . . . . . . . . . . . . . . . . . . . . . 416\parindent (Länge) . . . . . . . . . . . . . . . . . . . . . . . . 416\parskip (Länge) . . . . . . . . . . . . . . . . . . . . . 416, 506\pdfpageheight (Länge) . . . . . . . . . . . . . . . 52, 490\pdfpagewidth (Länge) . . . . . . . . . . . . . . . . . . . . . 52pfoldmarklength . . . . . . . . . . . . . . . . . . . . 535, 540PPdatamatrixvskip . . . . . . . . . . . . . . . . . . 535, 544PPheadheight . . . . . . . . . . . . . . . . . . . . . . . . 535, 544PPheadwidth . . . . . . . . . . . . . . . . . . . . . . . . . 535, 544

Rrefaftervskip . . . . . . . . . . . . . . . . . . . . . . . 535, 546

Index 594

refhpos . . . . . . . . . . . . . . . . . . . . . . . . . 535, 545–546refvpos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 535, 545refwidth . . . . . . . . . . . . . . . . . . . . . . . . 535, 545–546

Ssecnumdepth (Zähler) . . . . . . . . . . . . . . . . . . 81, 121sentence (Zähler) . . . . . . . . . . . . . . . . . . . . 325, 329sigbeforevskip . . . . . . . . . . . . . . . . . 239, 535, 547sigindent . . . . . . . . . . . . . . . . . . . . . . . 239, 535, 547specialmailindent . . . . . . . . . . . . . . . . . . 536, 544specialmailrightindent . . . . . . . . . . . . 536, 544subjectaftervskip . . . . . . . . . . . . . . . . . . 536, 547subjectbeforevskip . . . . . . . . . . . . . . . . . 536, 547subjectvpos . . . . . . . . . . . . . . . . . . . . 536, 546–547

T\textheight (Länge) . . . . . . . . . . . . . . . . . . . . . . 431\textwidth (Länge) . . . . . . . . . . . . . . . . . . . . . . . . . 45tfoldmarklength . . . . . . . . . . . . . . . . . . . . 536, 540tfoldmarkvpos . . . . . . . . . . . . . . . . . . 536, 539–540toaddrheight . . . . . . . . . . . . . . . . . . . . . . . . 536, 542toaddrhpos . . . . . . . . . . . . . . . . . . . . . . 244, 536, 542toaddrindent . . . . . . . . . . . . . . . . . . . . . . . . 536, 543toaddrvpos . . . . . . . . . . . . . . . . . . . . . . . . . . 536, 542toaddrwidth . . . . . . . . . . . . . . . . . . . . 244, 537, 543tocdepth (Zähler) . . 81, 317, 401, 402, 407, 412\topmargin (Länge) . . . . . . . . . . . . . . . . . . . . 69, 299

Elemente mit der Möglichkeit zur Schriftumschaltung

Name .Clause . . . . . . . . . . . . . . . . . . . . 317, 329, 329

Aaddressee . . . . . . . . . . . . . . . . . . 188, 208, 208, 209author . . . . . . . . . . . . . . . . . . . . . . . 63, 71, 301–302

Bbackaddress . . . . . . . . . . . . . . . . . . . . 189, 209, 209

Ccaption . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63, 141captionlabel . . . . . . . . . . . . . . . . . . . . . . . . . 63, 141chapter . . . . . . . . . . . . 63, 102, 103, 111, 110–112chapterentry . . . . . . . . . . . . . . . . . . . . . . . . . . . 64, 80chapterentrydots . . . . . . . . . . . . . . . . . . 64, 79, 80chapterentrypagenumber . . . . . . . . . . . . . . . 64, 80chapterprefix . . . . . . . . . 64, 102, 111, 110–112Clause . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 317, 320contract.Clause . . . . . . . . . . . . . . . . . . . . 317, 320

Ddate . . . . . . . . . . . . . . . . . . . . . . . . . . . 64, 71–72, 302dedication . . . . . . . . . . . . . . . . . . . . . . . . 64, 74, 303descriptionlabel . . . . . . . . . . 64, 129, 189, 235dictum . . . . . . . . . . . . 64, 124, 125, 310–311, 311dictumauthor . . . . . . . . . . . . . . . . . . . . 64, 125, 311dictumtext . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64disposition . . 64, 103, 111, 112, 110–112, 116

Ffield . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 552foldmark . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189, 194footbotline . . . . . . . . . . . . . . . . . . . . . . . . . 256, 279footnote . 65, 98–99, 189, 232–233, 309–310footnotelabel . . . . . 65, 98–99, 189, 232–233,

309–310footnotereference . . 65, 98, 98–99, 189, 232,

232–233, 309, 309–310footnoterule . . . . . . . . . . . . . . . . 65, 99, 189, 233footsepline . . . . . . . . . . . . . . . . . . . . . . . . . 256, 279fromaddress . . . . . . . . . . . . . . . . . . . . 189, 197, 197fromname . . . . . . . . . . . . . . . . . . . . . . . . 189, 197, 197fromrule . . . . . . . . . . . . . . . . . . . . . . . . 189, 197, 197

Hheadsepline . . . . . . . . . . . . . . . . . . . . . . . . . 256, 279headtopline . . . . . . . . . . . . . . . . . . . . . . . . . 256, 279

Llabelinglabel . . . . . . . . . 65, 130, 130, 189, 236,

235–236, 312, 311–312labelingseparator . . . . 65, 130, 130, 190, 236,

235–236, 312, 311–312letter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 553lettersubject . . . . . . . . . . . . . . . . . . . . . . . 190, 218lettertitle . . . . . . . . . . . . . . . . . . . . . . . . . 190, 216

Index 595

Mmeasure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 553minisec . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65, 114

Nnotecolumn.Name der Notizspalte . 485–486notecolumn.marginpar . . . . . . . . . . . . . . 485–486

Ppagefoot . . 65, 87, 87–88, 190, 227–228, 256,

256, 262pagehead . . . . . . . . . . 65, 190, 256, 257, 259, 263pageheadfoot . . . . . . . . . 65, 87, 87, 87–88, 190,

227–228, 256, 257, 257, 259, 262, 263pagenumber . 65, 87, 87, 87–88, 190, 227–228,

257, 273, 464pagination . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66, 190paragraph . . . . . . . . . . . . . . . . . . . 66, 103, 110–112parnumber . . . . . . . . . . . . . . . . . 110–112, 317, 323part . . . . . . . . . . . . . . . . . . . . . . . . . 66, 111, 110–112partentry . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66, 80partentrypagenumber . . . . . . . . . . . . . . . . . . 66, 80partnumber . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66, 111placeanddate . . . . . . . . . . . . . . . . . . . . . . . . 190, 215PPdata . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209, 210PPlogo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209, 210priority . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209, 209

prioritykey . . . . . . . . . . . . . . . . . . . . . . . . . . 209, 209publishers . . . . . . . . . . . . . . . . . . . . . . . . 66, 72, 302

Rrefname . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190, 214refvalue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190, 214

Ssection . . . . . . . . . . . . . . . . 66, 103, 111, 110–112sectionentry . . . . . . . . . . . . . . . . . . . . . . . . . . . 66, 80sectionentrydots . . . . . . . . . . . . . . . . . . 66, 79, 80sectionentrypagenumber . . . . . . . . . . . . . . . 66, 80sectioning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67sentencenumber . . . . . . . . . . . . . . . . . . . . . . 317, 325specialmail . . . . . . . . . . . . . . . . . . . . 190, 209, 209subject . . . . . . . . . . . . . . . . . . . . . . 67, 71, 218, 301subparagraph . . . . . . . . . . 67, 103, 111, 110–112subsection . . . . . . . . . . . . . 67, 103, 111, 110–112subsubsection . . . . . . . . . 67, 103, 111, 110–112subtitle . . . . . . . . . . . . . . . . . . . . . . . . . . 67, 71, 301

Ttitle . . . . . . . . . . . . . . . . . . . . . . . . 67, 71, 216, 301titlehead . . . . . . . . . . . . . . . . . . . . . . . . . 67, 71, 301toaddress . . . . . . . . . . . . . . . . . . 191, 208, 208, 209toname . . . . . . . . . . . . . . . . . . . . . . 191, 208, 208, 209

Dateien, Klassen und Pakete

Aaddrconv (Paket) . . . . . . . . . . . . . . . . . . . . . . . . . . . 291adrconv (Paket) . . . . . . . . . . . . . . . . . . . . . . . . 248, 250article (Klasse) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56

Bbabel (Paket) . . . 70, 175, 212, 284, 300, 325, 330,

388, 398, 416, 430, 487, 555babelbib (Paket) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158biblatex (Paket) . . . . . . . . . . . . . . . . . . . . . . . . 158, 531blindtext (Paket) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 274book (Klasse) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56

Ccapt-of (Paket) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142caption (Paket) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142

color (Paket) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 491

DDIN.lco . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245DINmtext.lco . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245

Eeso-pic (Paket) . . . . . . . . . . . . . . . . . . . . . . . . . 448, 552etoolbox (Paket) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 366

Ffancyhdr (Paket) . . . . . . . . . . . . . . . . . . . . . . . . 88, 227float (Paket) . . . . . . . . . . . . . . 76, 137, 147, 429, 430floatrow (Paket) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 430fontawesome (Paket) . . . . . . . . . . . . . . . . . . . . . . . . 201fontenc (Paket) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39

Index 596

footmisc (Paket) . . . . . . . . . . . . . . . . . . . 95, 231, 307french (Paket) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 555

Ggeometry (Paket) . . . . . . . . . . . . . . . . 27, 49, 54, 497german (Paket) . . . . . . . . . . . . . . . . . . . . . . . . 361, 555graphics (Paket) . . . . . . . . . . . . . . . . . . . . . . . 204, 211graphicx (Paket) . . . . . . . . . . . . . . . . . . . 94, 211, 552

Hhyperref (Paket) . . . . . . . . . . . . . . 109, 314, 427, 431

Iindex (Paket) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161isodate (Paket) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212

KKakuLL.lco . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245keyval (Paket) . . . . . . . . . . . . . . . . . . . . . 247, 339, 341KOMAold.lco . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245

Llco . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 550–554letter (Klasse) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56lipsum (Paket) . . . . . . . . . . . . . . . . . . . . . . . . . 260, 270listings (Paket) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 430longtable (Paket) . . . . . . . . . . . . 137, 150, 151, 153lscape (Paket) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 431

Mmarginnote (Paket) . . . . . . . . . . . . . . . . . . . . . . . . . 481marvosym (Paket) . . . . . . . . . . . . . . . . . . . . . . . . . . 201microtype (Paket) . . . . . . . . . . . . . 59, 173, 295, 398mparhack (Paket) . . . . . . . . . . . . . . . . . . . . . . . . . . . 481multicol (Paket) . . . . . . . . . . . . . . . . . . . . . . . . 399, 530

Nnameref (Paket) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109natbib (Paket) . . . . . . . . . . . . . . . . . . . . . . . . . 158, 160NF.lco . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245ngerman (Paket) . . . . . . . . . . . . . 212, 284, 361, 555NipponEH.lco . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245NipponEL.lco . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 246NipponLH.lco . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 246NipponLL.lco . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 246NipponRL.lco . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 246nomencl (Paket) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 432

Ppdflscape (Paket) . . . . . . . . . . . . . . . . . . . . . . . . . . . 431

Rragged2e (Paket) . . . . . . . . . 99, 151, 152, 233, 310report (Klasse) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56

Sscraddr (Paket) . . . . . . . . . . . . . . . . . . . . . . . 287–290scrartcl (Klasse) . 80, 86, 121, 56–163, 501–531scrbase (Paket) . . 33, 58, 172, 247, 254, 292, 294,

315, 339–371, 429, 435, 483scrbook (Klasse) . 80, 86, 121, 56–163, 501–531scrdate (Paket) . . . . . . . . . . . . . . . . . . . . . . . 280–284scrextend (Paket) . 230, 233, 292–313, 501–531scrhack (Paket) . . . . . . . . . 137, 390, 396, 428–433scrjura (Paket) . . . . . . . . . . . . . . . . . . . 314–336, 487scrkbase (Paket) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 504scrlayer (Paket) 40, 252, 269, 431, 462, 434–470,

477, 481, 485, 489scrlayer-notecolumn (Paket) . . . . . . . 158, 238, 313,

481–495scrlayer-scrpage (Paket) . . . . . . . . . . . . . . . . . . 47, 86,

87, 88, 120, 225, 226, 227, 228, 252–279,461, 471–480, 481, 485, 487, 489, 549

scrletter (Paket) . . . . . . . 164–251, 292, 532–559scrlettr (Klasse) . . . . . . . . . . . . . . . . . . . . . . . . 241, 245scrlfile (Paket) . . . . . . . . . . . . . . . 247, 292, 372–383scrlttr2 (Klasse) . . . . . . . 164–251, 268, 532–559scrpage2 (Paket) . . . . . . . . . . . . . . . . . . . . . . 227, 252scrreprt (Klasse) . 80, 86, 121, 56–163, 501–531scrtime (Paket) . . . . . . . . . . . . . . . . . . . . . . . 285–286scrwfile (Paket) . . . . . . . . . 384–387, 396, 398, 416selinput (Paket) . . . . . . . . . . . . . . . . . . . . . . . . 115, 487setspace (Paket) . . . . . . . . . . . . 29, 40, 54, 430, 457showframe (Paket) . . . . . . . . . . . . . . . . . . . . . . . . . . 431SN.lco . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 246SNleft.lco . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 246splitidx (Paket) . . . . . . . . . . . . . . . . . . . . . . . . 161, 162supertabular (Paket) . . . . . . . . . . . . . . . . . . . . . . . . 137

Ttabularx (Paket) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177titleref (Paket) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109titletoc (Paket) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 387tocbasic (Paket) 76, 237, 388–427, 430, 503, 508

Index 597

typearea (Paket) . 27–55, 85, 247, 254, 296, 357,461, 487, 497–500, 532, 550

typearea.cfg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 500

UUScommercial9.lco . . . . . . . . . . . . . . . . . . . . . . . 247UScommercial9DW.lco . . . . . . . . . . . . . . . . . . . . . 247

Xxcolor (Paket) . . . . . . . . . . . . 99, 233, 472, 487, 491xpatch (Paket) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 366

Zzref (Paket) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109zref-titleref (Paket) . . . . . . . . . . . . . . . . . . . . . . . . . 109

Klassen- und Paketoptionen

12h=Ein-Aus-Wert . . . . . . . . . . . . . . . . . . . . . . . . 28624h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 286

Aabstract=Ein-Aus-Wert . . . . . . . . . . . . . . . . . . . 75addrfield=Modus . . . . . . . . . . . . . . . . . . . . 206–211addrfield=backgroundimage . . . . . . . . . 543, 544addrfield=image . . . . . . . . . . . . . . . . . . . . . . . . . . 543addrfield=PP . . . . . . . . . . . . . . . . . . . . . . . . . 543, 544adrFreeIVempty . . . . . . . . . . . . . . . . . . . . . . . . . . . 290adrFreeIVshow . . . . . . . . . . . . . . . . . . . . . . . . . . . . 290adrFreeIVstop . . . . . . . . . . . . . . . . . . . . . . . . . . . . 290adrFreeIVwarn . . . . . . . . . . . . . . . . . . . . . . . . . . . . 290appendixprefix=Ein-Aus-Wert . . . . . . . . . . . 102areasetadvanced=Ein-Aus-Wert . . . . . . . . . . 498autoclearnotecolumns=Ein-Aus-Wert

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 494–495autoenlargeheadfoot=Ein-Aus-Wert 254–255automark . . . . . . . . . . . . . . . . . . . 227, 271, 462–463autooneside=Ein-Aus-Wert . . . . 271, 462–463autoremoveinterfaces=Ein-Aus-Wert . . . . 469

Bbackaddress=Wert . . . . . . . . . . . . . . . . . . . 206–211BCOR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48BCOR=Korrektur . . . . . . . . . . . . . . . . . . . . . . . . 34–35BCOR=current . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41bibliography=Einstellung . . . . . . . . . 159–160bibliography=leveldown . . . . . . . . . . . . . 159, 160bibliography=nottotoc . . . . . . . . . . . . . . 159, 160bibliography=numbered . . . . . . . . . . . . . . 159, 160bibliography=oldstyle . . . . . . . . . . . . . . 159, 160bibliography=openstyle . . . . . . . . 159, 160, 530bibliography=standardlevel . . . . . . . . . . . . . 160bibliography=totoc . . . . . . . . . . . . . . . . . . 159, 160

Ccaptions . . . . . . . . . . . . . . . . . . . . . . . . . 140, 144, 145captions=Einstellung . . . . . . . . . . . . . . 137–139captions=bottombeside . . . . . . . . . . . . . . 138, 145captions=centeredbeside . . . . . . . . . . . 138, 145captions=figureheading . . . . . . . . . . . . . 137, 138captions=figuresignature . . . . . . . . . . . 137, 138captions=heading . . . . . . . . . . . . . . . . . . . . 137, 138captions=innerbeside . . . . . . . . . . . . . . . 138, 144captions=leftbeside . . . . . . . . . . . . . . . . 139, 144captions=nooneline . . . . . . . . . . . . . . . . . . 138, 139captions=oneline . . . . . . . . . . . . . . . . . . . . . . . . . 139captions=outerbeside . . . . . . . . . . . . . . . 139, 144captions=rightbeside . . . . . . . . . . . . . . . 139, 144captions=signature . . . . . . . . . . . . . . . . . . 137, 139captions=tableheading . . . . . . . . . . . . . . 137, 139captions=tablesignature . . . . . . . . . . . . 137, 139captions=topbeside . . . . . . . . . . . . . . . . . 139, 145chapteratlists . . . . . . . . . . . . . . . . . . . . . . 106–107chapteratlists=Wert . . . . . . . . . . . . . . . 106–107chapteratlists=entry . . . . . . . . . . . . . . . . . . . . 106chapterentrydots=Ein-Aus-Wert . . . . . . 79, 80chapterprefix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 522chapterprefix=Ein-Aus-Wert . . . . . . . . . . . . 102clausemark=Einstellung . . . . . . . . . . . . . . . . . 321clausemark=both . . . . . . . . . . . . . . . . . . . . . . . . . . 322clausemark=false . . . . . . . . . . . . . . . . . . . . . . . . . 322clausemark=forceboth . . . . . . . . . . . . . . . . . . . . 322clausemark=forceright . . . . . . . . . . . . . . . . . . . 322clausemark=right . . . . . . . . . . . . . . . . . . . . . . . . . 322cleardoublepage . . . . . . . . . . . . 92–93, 229, 305cleardoublepage=Seitenstil . . . . 92–93, 229,

305cleardoublepage=current . . . 92–93, 229, 305clines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 279, 279

Index 598

contract . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 319

Ddeactivatepagestylelayers=Ein-Aus-Wert

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 457–458DIN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245DINmtext . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245DIV . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37–41, 49DIV=Faktor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35–41DIV=areaset . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39, 49DIV=calc . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37–38, 39DIV=classic . . . . . . . . . . . . . . . . . . . . . . . . 37–38, 39DIV=current . . . . . . . . . . . . . . . . . . . . . . . . 39, 38–41DIV=default . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39DIV=last . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39, 38–41draft=Ein-Aus-Wert . 59, 173, 272, 295–296,

450, 463

Eenlargefirstpage=Ein-Aus-Wert . . . 194–195extendedfeature=Möglichkeit . . . . . . . . . . . 295

Ffirstfoot=Ein-Aus-Wert . . . . . . . . . . . . . . . . . 219firstfoot=false . . . . . . . . . . . . . . . . . . . . . . . . . . 548firsthead=Ein-Aus-Wert . . . . . . . . . . . . . . . . . 195fleqn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136float=false . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 430floatrow=false . . . . . . . . . . . . . . . . . . . . . . . . . . . 430foldmarks=Einstellung . . . 192–194, 540, 541fontsize=Größe . . . . . . . . . . . . 61, 184–187, 296footbotline . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 477footbotline=Dicke :Länge . . . . . . . . . . 278–279footheight . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48footheight=Höhe . . . . . . . . . . . . . . . . . . . . . . . 47–48footinclude=Ein-Aus-Wert . . . . . . . . . . . . 43–44footlines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48footlines=Zeilenanzahl . . . . . . . . . . . . . . 47–48footnotes=Einstellung . . . . . . . . 95, 230–231,

307–308footnotes=multiple . . . . . . . . . . . . . . . . . . . . . . . . 95footnotes=nomultiple . . . . . . . . . . . . . . . . . . . . . 95footsepline . . . . . . . . . . . . . . . . . . . . . . . . . . 227, 477footsepline=Dicke :Länge . . . . . . . . . . 278–279footsepline=Ein-Aus-Wert . 85–86, 224–225footwidth=Breite :Offset :Offset . . . . . . . 277

forceoverwrite=Ein-Aus-Wert . . . . . . . . . . . 469fromalign=Methode . . . . . . . . . . . . . . . . . . 195–196fromemail=Ein-Aus-Wert . . . . . . . . . . . . 200–204fromfax=Ein-Aus-Wert . . . . . . . . . . . . . . 200–204fromlogo=Ein-Aus-Wert . . . . . . . . . . . . . 204–206frommobilephone=Ein-Aus-Wert . . . . . 200–204fromphone=Ein-Aus-Wert . . . . . . . . . . . . 200–204fromrule . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 542fromrule=Position . . . . . . . . . . . . . . . . . . 196–199fromurl=Ein-Aus-Wert . . . . . . . . . . . . . . 200–204

Hheadheight . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48headheight=Höhe . . . . . . . . . . . . . . . . . . . . . . . 45–46headinclude . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85headinclude=Ein-Aus-Wert . . . . . . . . . . . . 43–44headings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110, 519headings=Einstellung . . . . . . . . . . . . . . 102–105headings=big . . . . . . . . . . . . . . . . . . . . . . . . . 102, 103headings=normal . . . . . . . . . . . . . . . . . . . . . 102, 103headings=onelineappendix . . . . . . . . . . . . . . . 104headings=onelinechapter . . . . . . . . . . . . . . . . . 104headings=openany . . . . . . . . . . . . . . . . . . . . . . . . . 104headings=openleft . . . . . . . . . . . . . . . . . . . . . . . . 104headings=openright . . . . . . . . . . . . . . . . . . . . . . . 104headings=optiontoheadandtoc . . 103, 104, 107headings=optiontohead . . . . 103, 104, 105, 107headings=optiontotoc . . . . . . . . . . . . . . . 103, 107headings=small . . . . . . . . . . . . . . . . . . . . . . . 102, 105headings=twolineappendix . . . . . . . . . . . . . . . 105headings=twolinechapter . . . . . . . . . . . . . . . . . 105headlines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48headlines=Zeilenanzahl . . . . . . . . . . . . . . 45–46headsepline . . . . . . . . . . . . . . . . . . . . . . . . . . 227, 477headsepline=Dicke :Länge . . . . . . . . . . 278–279headsepline=Ein-Aus-Wert . 85–86, 224–225headtopline . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 477headtopline=Dicke :Länge . . . . . . . . . . 278–279headwidth=Breite :Offset :Offset . . . . . . . 277hmode=Ein-Aus-Wert . . . . . . . . . . . . . . . . 479–480

Iilines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 279, 279index=Einstellung . . . . . . . . . . . . . . . . . . . . . . . 162index=leveldown . . . . . . . . . . . . . . . . . . . . . . . . . . 162index=nottotoc . . . . . . . . . . . . . . . . . . . . . . . . . . . 162

Index 599

index=numbered . . . . . . . . . . . . . . . . . . . . . . . . . . . 162index=standardlevel . . . . . . . . . . . . . . . . . . . . . 162index=totoc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162internalonly=Wert . . . . . . . . . . . . . . . . . . 355–356

Jjuratitlepagebreak=Ein-Aus-Wert . . . . . . 321juratocindent=Einzug . . . . . . . . . . . . . . . . . . . 318juratocnumberwidth=Nummernbreite . . . . . 318juratotoc=Ebenennummer . . . . . . . . . . . . 317–318juratotoc=Ein-Aus-Wert . . . . . . . . . . . . 317–318

KKakuLL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245KOMAold . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245

Lleqno . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136listings=false . . . . . . . . . . . . . . . . . . . . . . . . . . . 430listof=Einstellung . . 153–156, 390, 399, 430listof=chapterentry . . . . . . . . . . . . . . . . . 154, 155listof=chaptergapline . . . . . . . . . . . . . . 154, 155listof=chaptergapsmall . . . . . . . . 106, 154, 155listof=entryprefix . . . . . . . . . . . . . . . . . . . . . . . 155listof=flat . . . . . . . . . . . . . . . . . . . . . . . . . . 154, 155listof=graduated . . . . . . . . . . . . . . . . . . . . 153, 155listof=leveldown . . . . . . . . . . . . . . . . . . . . 156, 398listof=nochaptergap . . . . . . . . . . . . . . . . . 154, 156listof=nonumberline . . . . . . . . . . . . . . . . . . . . . 399listof=nottotoc . . . . . . . . . . . . . . . . . . . . . . . . . . 156listof=numbered . . . . . . . . . . . . . . . . . . . . . 156, 398listof=numberline . . . . . . . . . . . . . . . . . . . . . . . . 399listof=standardlevel . . . . . . . . . . . . . . . . . . . . 156listof=totoc . . . . . . . . . . . . . . . . . . . . . . . . . 156, 399locfield=Einstellung . . . . . . . . . . . . . . 211–212lscape=false . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 431

Mmanualmark . . . . . . . . . . . . . . . . . . . . . 271, 462–463markcase . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 272, 463markcase=Wert . . . . . . . . . . . . . . . . . . . . . . 272, 463markcase=lower . . . . . . . . . . . . . . . . . . . . . . . . . . . 273markcase=noupper . . . . . . . . . . . . . . 272, 273, 463markcase=upper . . . . . . . . . . . 268, 272, 273, 463markcase=used . . . . . . . . . . . . . 268, 272, 273, 463mpinclude=Ein-Aus-Wert . . . . . . . . . . . . . . 44–45

NNF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245NipponEH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245NipponEL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 246NipponLH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 246NipponLL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 246NipponRL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 246nomencl=false . . . . . . . . . . . . . . . . . . . . . . . . . . . . 432numbers=Einstellung . . . . . . . . . . . . . . . 105–106numbers=autoendperiod . . . . . . . . . . . . . . 105, 106numbers=endperiod . . . . . . . . . . . . . . . . . . . 105, 106numbers=noendperiod . . . . . . . . . . . . . . . . . . . . . 106numericaldate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215numericaldate=Ein-Aus-Wert . . . . . . . 212–213

Oolines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 279, 279onpsbackground=Code . . . . . . . . . . . . . . . . . . . . . 457onpsevenpage=Code . . . . . . . . . . . . . . . . . . . . . . . 457onpsfloatpage=Code . . . . . . . . . . . . . . . . . . . . . . 457onpsforeground=Code . . . . . . . . . . . . . . . . . . . . . 457onpsinit=Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . 457onpsnonfloatpage=Code . . . . . . . . . . . . . . . . . . 457onpsoddpage=Code . . . . . . . . . . . . . . . . . . . . . . . . 457onpsoneside=Code . . . . . . . . . . . . . . . . . . . . . . . . 457onpsselect=Code . . . . . . . . . . . . . . . . . . . . . . . . . 457onpstwoside=Code . . . . . . . . . . . . . . . . . . . . . . . . 457open . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94open=Methode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101open=left . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101open=right . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101origlongtable . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153overfullrule=Ein-Aus-Wert . . . . . . . . . 59, 173,

295–296

Ppagenumber . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 228pagenumber=Position . . . . . . . . . . . . . . . . . . . . . 225pagesize . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50pagesize=Ausgabetreiber . . . . . . . . . . . . . 51–53pagesize=automedia . . . . . . . . . . . . . . . . . . . . . . . . 52pagesize=auto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52pagesize=dvipdfmx . . . . . . . . . . . . . . . . . . . . . . . . . 52pagesize=dvips . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52pagesize=false . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52pagesize=luatex . . . . . . . . . . . . . . . . . . . . . . . . . . . 52

Index 600

pagesize=pdftex . . . . . . . . . . . . . . . . . . . . . . . . . . . 52pagestyleset=Einstellung . . . . . . . . . 267–268pagestyleset=KOMA-Script . . . . . . . . . . 267–268pagestyleset=standard . . . . . . . . . . . . . 267–268paper=Ausrichtung . . . . . . . . . . . . . . . . . . . . 50–51paper=Format . . . . . . . . . . . . . . . . . . . . . . . . . . 50–51parnumber=Einstellung . . . . . . . . . . . . . 322–323parnumber=auto . . . . . . . . . . . . . . . . . . . . . . . . . . . 322parnumber=false . . . . . . . . . . . . . . . . . . . . . . . . . . 322parnumber=manual . . . . . . . . . . . . . . . . . . . . . . . . . 322parskip . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 322parskip=Methode . . . . . . . . . . . . 82–84, 222–223parskip=false . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83parskip=full* . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83parskip=full+ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83parskip=full- . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83parskip=full . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83parskip=half* . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84parskip=half+ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83parskip=half . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83parskip=never . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84parskip=half- . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83plainfootbotline=Ein-Aus-Wert . . . . . . . . . 279plainfootsepline=Ein-Aus-Wert . . . . . . . . . 279plainheadsepline=Ein-Aus-Wert . . . . . . . . . 279plainheadtopline=Ein-Aus-Wert . . . . . . . . . 279priority=Priorität . . . . . . . . . . . . . . . . 206–211

Rref=Einstellung . . . . . . . . . . . . . . . . . . . . 326–327ref=long . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 327ref=numeric . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 327ref=parlong . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 327ref=parnumeric . . . . . . . . . . . . . . . . . . . . . . . . . . . 327ref=paroff . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 327ref=parshort . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 327ref=sentencenumeric . . . . . . . . . . . . . . . . . . . . . 327ref=sentenceoff . . . . . . . . . . . . . . . . . . . . . . . . . . 327ref=sentenceshort . . . . . . . . . . . . . . . . . . . . . . . . 327ref=short . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 327refline . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215refline=Einstellung . . . . . . . . . . 213–216, 545refline=dateleft . . . . . . . . . . . . . . . . . . . . . . . . . 549refline=dateright . . . . . . . . . . . . . . . . . . . . . . . . 549refline=narrow . . . . . . . . . . . . . . . . . . . . . . . . . . . 545refline=nodate . . . . . . . . . . . . . . . . . . . . . . . . . . . 549

refline=wide . . . . . . . . . . . . . . . . . . . . . . . . . 244, 545

Ssectionentrydots=Ein-Aus-Wert . . . . . . 79, 80setspace=false . . . . . . . . . . . . . . . . . . . . . . . . . . . 431singlespacing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40singlespacing=Ein-Aus-Wert . . . . . . . . . . . . 457SN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244, 246SNleft . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 246standardsections . . . . . . . . . . . . . . . . . . . . . . . . 432subject=Einstellung . . . . . . . . . . 217–219, 546symbolicnames=Wert . . . . . . . . . . . . . . . . 200–204

Ttitlepage . . . . . . . . . . . . . . . . . . . . . . . . . 68–69, 299titlepage=Ein-Aus-Wert . . . . . . . . . 68–69, 299titlepage=false . . . . . . . . . . . . . . . . . . . . . . . . . . 304titlepage=firstiscover . 68–69, 73, 299, 303toc=Einstellung . . . . . . . . . . . . . . . . . . . . . . . 76–79toc=bibliographynumbered . . . . . . . . . . . . . 76, 77toc=bibliography . . . . . . . . . . . . . . . . . . . . . . . . . . 77toc=chapterentrywithdots . . . . . . . . . . . . . 77, 80toc=chapterentrywithoutdots . . . . . . . . . . . . . 77toc=flat . . . . . . . . . . . . . . . . . . . . . . . . . . . 77, 78, 154toc=graduated . . . . . . . . . . . . . . . . . . . . . . . . . . 77, 78toc=indexnumbered . . . . . . . . . . . . . . . . . . . . . . . . . 76toc=index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76, 78toc=listofnumbered . . . . . . . . . . . . . . . 76, 78, 153toc=listof . . . . . . . . . . . . . . . . . . . . . . . . . 76, 78, 153toc=nobibliography . . . . . . . . . . . . . . . . . . . . . . . . 79toc=noindex . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79toc=nolistof . . . . . . . . . . . . . . . . . . . . . . . . . . 79, 153toc=nonumberline . . . . . . . . . . . . . . . . . . . . . . . . . 399toc=numberline . . . . . 78, 155, 156, 399, 405, 406toc=sectionentrywithdots . . . . . . . . . . . . . 79, 80toc=sectionentrywithoutdots . . . . . . . . . . . . . 79twocolumn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60, 122twocolumn=Ein-Aus-Wert . . . . . . . . . . . . . . . . . . 43twoside . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42, 60, 264twoside=Ein-Aus-Wert . . . . . . . . . . . . . . . . . . . . . 42twoside=semi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

UUScommercial9 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247UScommercial9DW . . . . . . . . . . . . . . . . . . . . . . . . . . 247usegeometry=Ein-Aus-Wert . . . . . . . . . 497–498

Index 601

Vversion . 33–34, 50, 58–59, 60, 172–173, 294,

507version=Wert . . 33–34, 58–59, 172–173, 294

version=first . . 33–34, 58–59, 172–173, 294version=last . . . 33–34, 58–59, 172–173, 294visualize . . . . . . . . . . . . . . . . . . . . . . . . . . . . 552–554

Haken (do-hooks)

Hheading/begingroup/Name . . . . . . . . . . . . . . . . 526heading/branch/nostar/Name . . . . . . . . . . . . 526heading/branch/star/Name . . . . . . . . . . . . . . . 526

heading/endgroup/Name . . . . . . . . . . . . . . . . . . 526heading/postinit/Name . . . . . . . . . . . . . . . . . . 526heading/preinit/Name . . . . . . . . . . . . . . . . . . . 526