Sie sind hier

Bekannte Probleme und Änderungen in KOMA-Script 3.06

Bild von Markus Kohm

Der Support für diese Version ist definitiv eingestellt. Wenden Sie sich ggf. an Ihren Distributor oder Administrator.

Wichtige Änderungen:

scrbase
Neue Rechenfunktionen für ganze Zahlen (\numexpr) unter Nutzung von e-TeX.
\XdivY{X}{Y}
berechnet X div Y.
\XmodY{X}{Y}
berechnet X mod Y.
scrtime
Es wird die Optionenschnittstelle von KOMA-Script verwendet. Damit ist die Option 24h obsolet, dafür ist 12h als key=value-Schalter realisiert.
scrdate
Das Paket wurde zu 90% neu geschrieben und bietet diverse neue Anweisungen, die allesamt voll expandierbar sind, also auch innerhalb von \MakeUppercase und \MakeLowercase verwendet werden können.
\CenturyPart{Jahr}
Gibt den Jahrhundertteil des angegebenen Jahres aus. Dabei ist das Jahr 10 wirklich das Jahr 10 und nicht das Jahr 2010!. Für das Jahr 2010 würde beispielsweise 20 zurückgegeben.
ACHTUNG: Die Rückgabe ist eine Zahl, keine Ausgabe. Will man die Zahl ausgeben, so muss man beispielsweise \the voranstellen!
\DecadePart{Jahr}
Gibt den Teil ohne den Jahrhundertteil des angegebenen Jahres aus. Für das Jahr 2010 würde beispielsweise 10 ausgegeben.
ACHTUNG: Die Rückgabe ist eine Zahl, keine Ausgabe. Will man die Zahl ausgeben, so muss man beispielsweise \the voranstellen!
\DayName{Jahr}{Monat}{Tag}
Es wird der Wochentags zu dem angegebenen Datum ausgegeben. Dabei ist es erlaubt, statt eines einfachen Tages auch eine einfache Rechnung mit den vier Grundrechenarten anzugeben, um beispielsweise den Wochentag in 4 Tagen zu bestimmen.
\DayNameByNumber{Nummer}
Gibt den Namen des zur Nummer passenden Wochentags zurück (siehe \DayNumber). Dabei darf die Nummer auch eine einfache Rechnung mit den vier Grundrechenarten sein.
\DayNumber{Jahr}{Monat}{Tag}
Es wird die Nummer des Wochentags zu dem angegebenen Datum zurück gegeben. Dabei ist es erlaubt, statt eines einfachen Tages auch eine einfache Rechnung mit den vier Grundrechenarten anzugeben, um beispielsweise den Wochentag in 4 Tagen zu bestimmen. Die Wochentage werden beginnend mit Sonntag=0, Montag=1 bis Samstag=6 nummeriert.
ACHTUNG: Die Rückgabe ist eine Zahl, keine Ausgabe. Will man die Zahl ausgeben, so muss man beispielsweise \the voranstellen!
\ISODayName{Jahr-Monat-Tag}
Entspricht \DayName mit Übergabe des Datums in ISO-Schreibweise als ein einziges Argument.
\ISODayNumber{Jahr-Monat-Tag}
Entspricht \DayNumber mit Übergabe des Datums in ISO-Schreibweise als ein einziges Argument.
\ISOToday
Gibt das aktuelle ISO-Datum aus, wobei einstellige Monate und einstellige Tage zweistellig ausgegeben werden (2010-01-08).
\IsoToday
Gibt das aktuelle ISO-Datum aus, wobei einstellige Monate und einstellige Tage auch einstellig ausgegeben werden (2010-1-8).
\todaysnumber
Gibt die Nummer des aktuellen Wochentags zurück (siehe \DayNumber).
typearea
pagesize=dvipdfmx
Mit dieser Option wird die Fähigkeit des Programms dvipdfmx unterstützt, das Papierformat auch innerhalb des Dokuments per \special{papersize=...} zu ändern.
scrbook, scrreprt, scrartcl
listof=entryprefix
Setzt bei allen Gleitungebungsverzeichnissen, für die ein \listofDateikürzelentryname gesetzt ist, selbiges vor die Nummern der jeweiligen Einträge. Für die Dateikürzel lot und lof ist das jeweilige Makro als \tablename bzw. \figurename definiert. Damit kann man also im Tabellen- und Abbildungsverzeichnis die völlig überflüssigen Präfixe »Tabelle« bzw. »Abbildung« vor die Tabellen- bzw. Abbildungsnummern setzen lassen. Damit das von der Formatierung her auch funktioniert, wird gleichzeitig listof=flat aktiviert.
listof=...
Die Einstellungen wirken sich nicht nur auf die Verzeichnisse des Besitzers float unter Kontrolle von tocbasic aus, die bereits an tocbasic gemeldet wurden, sondern auch auf all jene, die tocbasic erst noch gemeldet werden. Damit werden in dem Beispiel
\documentclass[listof=leveldown,listof=numbered]{scrbook}
\usepackage{listings}
\usepackage{scrhack}% u. a. \lstlistoflistings unter Kontrolle von tocbasic stellen
 
\begin{document}
\chapter{Verzeichnisse}
\listoffigures
\lstlistoflistings
\chapter{Test}
\begin{figure}
  \centering
 
  \caption{Erste Abbildung}
  \label{fig:test1}
\end{figure}
 
\begin{lstlisting}[caption={Erstes Listing}]
Test
\end{lstlisting}
 
\end{document}

sowohl das Abbildungsverzeichnis als auch das Verzeichnis der Listings als nummerierter Abschnitt (\section) ausgegeben.

scrbook, scrreprt, scrartcl, scrlttr2
\setfootnoterule[Höhe]{Länge}
Setzt die Fußnoten-Trennlinie auf eine bestimmte Höhe und Länge. Dabei werden die Höhe und Länge erst beim Setzen der Linie selbst abhängig von \normalsize ausgewertet. Die Höhe kann komplett entfallen und wird dann nicht geändert. Ist das Argument für die Höhe oder Länge leer, so wird die jeweilige Größe nicht geändert. Es gibt sowohl beim Setzen als auch bei Verwendung der Größen für unplausible Werte eine Warnung.
scrjura
juratitlepagebreak=Ein-/Auswert (Option)
In der Voreinstellung sind ab Version 0.5b Seitenumbrüche in Paragraphen-Überschriften verboten. Mit der Option können diese jedoch erlaubt (und auch wieder verboten) werden.
ref=nopar (Option)
schaltet die Ausgabe des Absatzes bei \ref und \refPar ab.
ref=nosentence (Option)
schaltet die Ausgabe des Satzes bei \ref und \refSentence ab.
ref=OnlyParagraph (Option)
vereinigt ref=nopar und ref=nosentence.
tocbasic
  • Ist das Paket microtype geladen, so wird ab sofort innerhalb von Verzeichnissen character protrusion abgeschaltet, da dies zu fehlerhaften Pünktchen bei den den Einträgen führen kann. Will man dies nicht, soll also in einem Verzeichnis doch mit protrusion gearbeitet werden, so kann man die automatische protrusion-Behandlung per \setuptoc mit dem Feature noprotrusion abschalten. Das Feature bedeutet also nicht etwa kein character protrusion, sondern analog zu nobabel keine protrusion-Behandlung.
\DeclareNewTOC[Optionen]{Dateierweiterung}
Mit Hilfe dieser Anweisung, kann der gesamte Code aus dem bisherigen Abschnitt 12.4, »Ein komplexes Beispiel«, auf einen Schlag ausgeführt werden. Dazu kennt die Anweisung folgende key=value-Optionen:

counterwithin=LaTeX-Zähler
Falls eine neue Gleitumgebung oder eine nicht gleitende Umgebung definiert wird, so wird für diese auch ein neuer Zähler Eintragstyp (siehe Option type) angelegt. Dieser Zähler kann in gleicher Weise wie beispielsweise der Zähler figure bei book-Klassen von Zähler chapter abhängt von einem LaTeX-Zähler ahängig gemacht werden.
float
Es wird nicht nur ein neuer Verzeichnistyp definiert, sondern auch Gleitumgebungen Eintragstyp (siehe Option type) und Eintragstyp* (vgl. figure und figure*).
floatpos=Gleitverhalten
Jede Gleitumgebung hat ein voreingestelltes Gleitverhalten, das über das optionale Argument der Gleitumgebung überladen werden kann. Mit dieser Option wird das Gleitverhalten für die optional erstellbare Gleitumgebung (siehe Option float) festgelegt. Die Syntax und Semantik ist dabei mit der des optionalen Arguments für die Gleitumgebung identisch. Wird die Option nicht verwendet, so ist das voreingestellte Gleitverhalten tbp, also top, bottom, page.
floattype=Gleittyp
Jede Gleitumgebung hat einen numerischen Typ. Gleitumgebungen, bei denen im Gleittyp nur unterschiedliche Bits gesetzt sind, können sich gegenseitig überholen. Die Gleitumgebungen figure und table haben normalerweise die Typen 1 und 2, können sich also gegenseitig überholen. Es sind Typen von 1 bis 31 (alle Bits gesetzt, kann also keinen anderen Typ überholen und von keinem anderen Typen überholt werden) zulässig. Wir kein Typ angegeben, so wird mit 16 der höchst mögliche Ein-Bit-Typ verwendet.
forcenames
Siehe Option name und listname.
hang=Einzug
Mehrzeilige Verzeichniseinträge besitzen ab der zweiten Zeile einen Einzug von links. Dieser Einzug wird auch für die Position des Textes in der ersten Zeile eines nummerierten Eintrags verwendet. Der Wert des Einzugs kann über diese Option bestimmt werden. Ohne diese Option wird als Einzug 1,5 em verwendet.
indent=Einzug
In der hierarchischen Form besitzt jeder Verzeichniseintrag einen Einzug von links. Der Wert des Einzugs kann über diese Option bestimmt werden. Ohne diese Option wird als Einzug 1 em verwendet.
level=Gliederungsebene
Jeder Eintrag in ein Verzeichnis hat eine nummerische Gliederungsebene, die über diese Option gesetzt werden kann. Ist diese Option nicht angegeben, so wird der Standardwert 1 verwendet.
listname=Verzeichnistitel
Jedes Verzeichnis hat eine Überschrift, die durch diese Option bestimmt werden kann. Ist die Option nicht angegeben, so wir als Verzeichnistitel »List of Mehrzahl des Eintragstyps« (siehe Option types) verwendet, wobei das erste Zeichen der Mehrzahl des Eintragstyps in einen Großbuchstaben gewandelt wird. Es wird auch ein Makro \listEintragstypname mit diesem Wert definiert, der jederzeit geändert werden kann. Dieses Makro wird jedoch nur definiert, wenn es nicht bereits definiert ist oder zusätzlich Option forcenames gesetzt ist.
name=Eintragsname
Sowohl als optionaler Präfix für die Einträge im Verzeichnis als auch für die Beschriftung in einer Gleitumgebung (siehe Option float) oder einer nicht gleitenden Umgebung (siehe Option nonfloat) wird ein Name für einen Eintrag in das Verzeichnis benötigt. Ohne diese Option wird als Eintragsname der Eintragstyp verwendet, bei dem das erste Zeichen in einen Großbuchstaben gewandelt wird. Es wird auch ein Makro \Eintragstypname mit diesem Wert definiert, der jederzeit geändert werden kann. Dieses Makro wird jedoch nur definiert, wenn es nicht bereits definiert ist oder zusätzlich Option forcenames gesetzt ist.
nonfloat
Es wird nicht nur ein neuer Verzeichnistyp definiert, sondern auch eine nicht gleitende Umgebungen Eintragstyp- (siehe Option type), die ähnlich wie eine Gleitumgebung verwendet werden kann, jedoch nicht gleitet und auch nicht die Grenzen der aktuell gültigen Umgebung durchbricht.
owner=Besitzer
Jedes neue Verzeichnis hat bei tocbasic einen Besitzer (siehe Anleitung). Dieser kann hier angegeben werden. Ist kein Besitzer angegeben, so wird der Besitzer »float« verwendet.
type=Eintragstyp
Der Eintragstyp gibt den Typ der Einträge in das entsprechende Verzeichnis an. Der Typ wird auch als Basisname für verschiedene Makros und ggf. Umgebungen und Zähler verwendet. Er sollte daher nur aus Buchstaben bestehen. Wird diese Option nicht verwendet, so wird für Eintragstyp die Dateierweiterung verwendet.
types=Mehrzahl des Eintragstyps
An verschiedenen Stellen wird auch die Mehrzahlform des Eintragstyps verwendet, beispielsweise um eine Anweisung \listofMehrzahl des Eintragstyps zu definieren. Wird diese Option nicht verwendet, so wird als Mehrzahl des Eintragstyps einfach »Eintragstyps« verwendet.

Das Beispiel aus Abschnitt 12.4, »Ein komplettes Beispiel«, schrumpft damit zu

\DeclareNewTOC[%
  type=remarkbox,%
  types=remarkboxes,%
  float,% Es sollen Gleitumgebungen definiert werden.
  floattype=4,%
  name=Merksatz,%
  listname={Verzeichnis der Merks\"atze}%
]{lor}
\setuptoc{lor}{chapteratlist}

zusammen. Anschließend sind neben den Umgebungen remarkbox und remarkbox* auch der Zähler remarkbox und die Anweisungen \theremarkbox, \remarkboxformat, \remarkboxname, \listremarkboxname, \listofremarkboxes und einige intern verwendete Anweisungen mit Bezug auf die Dateiendung lor definiert. Soll der Gleitumgebungstyp dem Paket überlassen werden, so kann Option floattype im Beispiel zusätzlich entfallen. Wird zusätzlich die Option nonfloat angegeben, so wird zusätzlich ein Umgebung remarkbox- definiert, in der ebenfalls \caption verwendet werden kann, die jedoch nicht gleitet.

Mögliche Probleme:

  • Die englische Anleitung hat teilweise noch den alten Aufbau und gibt noch nicht alle neuen Möglichkeiten von KOMA-Script 3 an.
  • Mit anderen parskip-Einstellung als false funktioniert die vertikale Zentrierung der Anschrift in scrlttr2 nicht.
    Workaround: Die Einstellung erst nach \opening per \KOMAopion{parskip}{full} (statt full sind natürlich auch alle anderen Werte erlaubt) wählen und mit \selectfont aktivieren. Siehe dazu auch das Beispiel im Forum.
  • Bei mehrfacher Verwendung der in tocbasic Version 3.06 neu hinzugekommenen Anweisung \DeclareNewTOC gibt es eine Fehlermeldung.
    Ursache: Besitzer und Dateiendung werden beim \addtotoclist nicht expandiert, die Definition von \DeclareNewTOC geht aber genau davon aus.
    Abhilfe: Warten auf die nächste KOMA-Script-Version.
    Notlösung: Den in der Anleitung ebenfalls beschriebenen umständlicheren Weg ohne \DeclareNewTOC verwenden.
  • Folgt auf der Seite nach \cleardoublepage keine Anweisung wie \chapter oder \addchap oder \thispagestyle, so kann der Seitenstil auf dieser Seite ggf. falsch sein, wenn von \cleardoublepage keine Vakatseite eingefügt wurde. Dies gilt auch für alle anderen Varianten von \cleardoublepage, die KOMA-Script zur Verfügung stellt.
    Ursache: Die Definitionen von \cleardoublepageusingpagestyle, \cleardoubleoddpagesusingpagestyle und \cleardoubleevenpageusingpagestyle sind vermutlich seit KOMA-Script 3.01a fehlerhaft.
    Abhilfe: Warten auf die nächste KOMA-Script-Version.
    Notlösung: Nach diesen Befehlen immer ein \thispagestyle mit dem aktuellen Seitenstil (meist headings, scrheadings oder plain) einfügen.