Sie sind hier

Bekannte Probleme und Änderungen in KOMA-Script 3.20

Bild von Markus Kohm

Diese Version wurde inzwischen durch Version 3.21 ersetzt. Es wird empfohlen, bei Problemen auf die neuste Version zu updaten. Wenden Sie sich ggf. an Ihren Distributor oder Administrator.

Bekannte Probleme:

scrartcl, scrreprt, scrbook:
  • Bei Überschriften ab \section abwärts kann die Angabe einer Farbe im individuellen Element zu einem Seitenumbruch zwischen Farbeinstellung und Ausführung der Überschrift führen, wodurch die Farbinformation verloren gehen kann.
    Workaround: Nach \color{} ein explizites \nobreak einfügen.
    Hinweis: Dieser Fehler ist ab Prerelease v3.21.2476 behoben.
  • Abstände über und unter \caption etc. stimmen nicht.
    Workaround: Paket caption verwenden.
    Hinweis: Dieser Fehler ist ab Prerelease v3.21.2468 behoben. Da es sich hier um die Beseitigung eines Formatierungs-Bugs handelt, ist mit Änderungen des Umbruchs zu rechnen!
scrbase:
  • em und ex werden von \ifdimen ebenso wenig als gültige Einheiten akzeptiert wir das nur bei PDF-Ausgabe von pdflatex oder lualatex vorhandene px.
    Hinweis: Dieser Fehler ist ab Prerelease v3.21.2465 behoben.
  • \ifpdfoutput bzw. das interne \scr@ifpdfoutput erkennen bei lualatex nach Version 0.85 die PDF-Ausgabe nicht.
    Hinweis: Dieser Fehler ist ab Prerelease v3.21.2465 behoben.
scrlttr2:
typearea:
  • Fehlermeldung:
    Missing number, treated as zero.
    <to be read again> 
    p
    l.2 \begin{document}
    bei Verwendung von lualatex.
    Ursache: Blöder Tippfehler.
    Workaround: Darauf verzichten, die Papiergröße zu setzen und darauf hoffen, dass die Voreinstellung passt, also pagesize=false verwenden oder Paket luatex85 vor typearea laden.
    Hinweis: Diese Fehler ist ab Prerelease v3.21.2464 behoben.

Wichtige Änderungen:

Es sei ausdrücklich darauf hingewiesen, dass der Umbau im Bereich der Verzeichniseinträge weitreichende Folgen für all jene haben kann, die bisher Warnungen in diesem Bereich missachtet haben oder mit unsauberen Tricks etwa der Verwendung interner Makros gearbeitet haben.

scrartcl:
  • Verzeichniseinträge im Stil part oder section beachten Option tocindent von \DeclareSectionCommand etc.
  • \DeclareSectionCommand etc. haben eine neue Option tocstyle=Verzeichnisstil, mit dem sich der Stil des Verzeichniseintrags bestimmten lässt. Derzeit gibt es folgende klassenspezifischen Stile:
    part
    von Stil tocline abgeleiteter Stil für Einträge der Ebene part,
    section
    von Stil tocline abgeleiteter Stil für Einträge der Ebene section,
    subsection
    von Stil tocline abgeleiteter Stil für Einträge der Ebenen subsection bis subparagraph sowie für Einträge in Verzeichnisse wie das Abbildungs- oder das Tabellenverzeichnis,
    default
    von Stil subsection abgeleiteter Stil für Einträge nicht vorkonfigurierter Ebenen.
    Näheres zur Definition und Verwendung von Verzeichniseintragsstilen ist den Erweiterungen für Paket tocbasic zu entnehmen.
scrartcl, scrbook, scrreprt:
  • Während \DeclareSectionCommands etc. weiterhin alle für irgendwelche Stile definierten Optionen akzeptieren, melden \DeclareSectionCommand etc. Optionen, die für den aktuellen Stil nicht definiert sind, als Fehler.
  • Wie bereits durch entsprechende Warnungen seit KOMA-Script 3.12 angekündigt werden die seit zwanzig Jahren vom LaTeX-Kern selbst nicht mehr bereitgestellten veralteten Font-Anweisungen \rm, \sf, \tt, \bf, \it, \sl, \sc und \sfb nicht mehr angeboten bzw. melden nun einen Fehler. In der Hilfe zur Fehlermeldung wird ausführlich erklärt, wie man den Fehler ggf. los wird. Dazu gehört für Notfälle auch die vorübergehende Bereitstellung einer Option, die aus der Fehlermeldung wieder eine Warnung macht.
scrbase:
  • Auch bei Verwendung von polyglossia werden nun die für die Sprachen ngerman, austrian, naustrian, swiss oder nswiss in \captions definierten Begriffe verwendet, wenn bei polyglossia die Sprache german mit den entsprechenden Einstellungen für variant und spelling gewählt wird. Das hat beispielsweise Auswirkungen auf die Ausgabe von \phonename in scrlttr2 oder scrletter.
  • Neue Anweisung \ifislengthprimitiv{Anweisung}{Dann-Code}{Sonst-Code} führt Dann-Code genau dann aus, wenn Anweisung eines der Primitive \baselineskip, \parskip, \parindent, \hsize, \vsize, \pdfpagewidth, \pdfpageheight gefolgt von beliebig vielen \relax ist. Anderenfalls wird Sonst-Code ausgeführt.
  • Neue Anweisung \ifisdefchar{Anweisung}{Dann-Code}{Sonst-Code} führt Dann-Code genau dann aus, wenn Anweisung eine mit \chardef definierte Zeichennummer ist. Anderenfalls wird Sonst-Code ausgeführt.
  • \ifisdimension wurde neu implementiert. Der Test kann nun etwas zuverlässiger prüfen, ob das erste Argument als Wert für ein \dimen-Register taugt. Allerdings führen viele Syntaxfehler noch immer zu Fehlermeldungen, da nach wie vor eine Heuristik verwendet wird. Eine wirklich zuverlässige Implementierung, die mit der Zuverlässigkeit von \ifisinteger vergleichbar wäre, war mir schlicht zu aufwändig.
  • \ifisglue wurde neu implementiert. Der Test kann nun etwas zuverlässiger prüfen, ob das erste Argument als Wert für eine LaTeX-Länge oder ein \skip-Register taugt. Allerdings führen viele Syntaxfehler noch immer zu Fehlermeldungen, da nach wie vor eine Heuristik verwendet wird. Eine wirklich zuverlässige Implementierung, die mit der Zuverlässigkeit von \ifisinteger vergleichbar wäre, war mir schlicht zu aufwändig.
  • \ifisinteger wurde neu implementiert. Der Test kann nun sehr zuverlässig überprüfen, ob das erste Argument (ggf. über mehrere Stufen) genau zu einer ganzen Zahl gefolgt von beliebig vielen \relax expandiert. Die alte Implementierung hatte dagegen beispielsweise mit nicht voll expandierbaren Anweisungen im ersten Argument erhebliche Probleme. Nach wie vor ist die Anweisung selbst nicht voll expandierbar.
  • \ifisnumexpr wurde neu implementiert. Der Test kann nun sehr zuverlässig überprüfen, ob das erste Argument (ggf. über mehrere Stufen) genau zu einer \numexpr gefolgt von beliebig vielen \relax expandiert. Die alte Implementierung hatte dagegen beispielsweise mit nicht voll expandierbaren Anweisungen im ersten Argument erhebliche Probleme. Nach wie vor ist die Anweisung selbst nicht voll expandierbar und führt bei fehlerhaften Ausdrücken zu Fehlermeldungen.
  • \ifisglueexpr wurde neu implementiert. Der Test kann nun sehr zuverlässig überprüfen, ob das erste Argument (ggf. über mehrere Stufen) genau zu einer \glueexpr gefolgt von beliebig vielen \relax expandiert. Die alte Implementierung hatte dagegen beispielsweise mit nicht voll expandierbaren Anweisungen im ersten Argument erhebliche Probleme. Nach wie vor ist die Anweisung selbst nicht voll expandierbar und führt bei fehlerhaften Ausdrücken zu Fehlermeldungen.
  • \ifisdimexpr wurde neu implementiert. Der Test kann nun sehr zuverlässig überprüfen, ob das erste Argument (ggf. über mehrere Stufen) genau zu einer \dimexpr gefolgt von beliebig vielen \relax expandiert. Die alte Implementierung hatte dagegen beispielsweise mit nicht voll expandierbaren Anweisungen im ersten Argument erhebliche Probleme. Nach wie vor ist die Anweisung selbst nicht voll expandierbar und führt bei fehlerhaften Ausdrücken zu Fehlermeldungen.
  • \ifisdimen wurde neu implementiert. Der Test kann nun sehr zuverlässig überprüfen, ob das erste Argument (ggf. über mehrere Stufen) genau zu einem \dimen-Register gefolgt von beliebig vielen \relax expandiert. Die alte Implementierung hatte dagegen beispielsweise mit nicht voll expandierbaren Anweisungen im ersten Argument erhebliche Probleme. Nach wie vor ist die Anweisung selbst nicht voll expandierbar!
  • \ifisskip wurde neu implementiert. Der Test kann nun sehr zuverlässig überprüfen, ob das erste Argument (ggf. über mehrere Stufen) genau zu einem \skip-Register gefolgt von beliebig vielen \relax expandiert. Die alte Implementierung hatte dagegen beispielsweise mit nicht voll expandierbaren Anweisungen im ersten Argument erhebliche Probleme. Nach wie vor ist die Anweisung selbst nicht voll expandierbar! Wie angedeutet werden \baselineskip und \parskip nicht länger als \skip-Register akzeptiert.
  • \ifiscount wurde neu implementiert. Der Test kann nun sehr zuverlässig überprüfen, ob das erste Argument (ggf. über mehrere Stufen) genau zu einem \count-Register gefolgt von beliebig vielen \relax expandiert. Die alte Implementierung hatte dagegen beispielsweise mit nicht voll expandierbaren Anweisungen im ersten Argument erhebliche Probleme. Nach wie vor ist die Anweisung selbst nicht voll expandierbar!
scrbook, scrreprt:
  • Verzeichniseinträge im Stil part oder chapter beachten Option tocindent von \DeclareSectionCommand etc.
  • \DeclareSectionCommand etc. haben eine neue Option tocstyle=Verzeichnisstil, mit dem sich der Stil des Verzeichniseintrags bestimmten lässt. Zunächst gibt es die folgenden klassenspezifischen Stile:
    part
    von Stil tocline abgeleiteter Stil für Einträge der Ebene part,
    chapter
    von Stil tocline abgeleiteter Stil für Einträge der Ebene chapter,
    section
    von Stil tocline abgeleiteter Stil für Einträge der Ebenen section bis subparagraph sowie für Einträge in Verzeichnisse wie das Abbildungs- oder das Tabellenverzeichnis,
    default
    von Stil section abgeleiteter Stil für Einträge nicht vorkonfigurierter Ebenen.
    Näheres zur Definition und Verwendung von Verzeichniseintragsstilen ist den Erweiterungen für Paket tocbasic zu entnehmen.
tocbasic:
Das Paket hat Unterstützung für Verzeichniseintragsstile erhalten. Es können sowohl neue als auch vorhandene Eintragsebenen mit einem Verzeichniseintragsstil versehen werden. Die Verzeichniseintragsstile bieten unterschiedliche Eigenschaften, die abhängig von der Ebene unterschiedliche Einstellungen haben können. Darüber werden dann beispielsweise Einzug und Nummernbreite festgelegt. Es gibt auch sehr flexible Eintragsstile, bei denen das Aussehen des Eintrags weitreichend über Eigenschaften beeinflusst werden kann. Zentral für die Verwendung von Verzeichniseintragsstilen sind folgende Befehle:
  • \DeclareTOCEntryStyle{Stil}[Initialisierungscode]{Code} erlaubt die Definition eines neuen Verzeichniseintragsstils.
  • \DeclareTOCStyleEntry[Optionenliste]{Eintragsebene}{Stil} erlaubt einer Eintragsebene einen Stil zuzuweisen und über die Optionenliste dabei die Eigenschaften festzulegen bzw. zu ändern.
Mehrere Verzeichnisstile sind vordefiniert. Die Eigenschaften der Verzeichnisstile können bei Verwendung einer KOMA-Script-Klasse auch über \DeclareSectionCommand etc. gesetzt werden. Dazu sind die Eigenschaften der Verzeichnisstile mit dem Präfix toc zu versehen. Vordefiniert sind folgende Verzeichniseintragsstile:
gobble:
Der einfachste Stil, der vorstellbar ist. Er tut schlicht nichts, vernichtet also die Einträge quasi und das unabhängig von deren Ebene.
largetocline:
Das ist der von den Standardklassen bekannte Stil für Einträge der Ebene part. Er existiert tatsächlich nur aus Gründen der Kompatibilität und als Beispielimplementierung für Paketautoren. Es empfohlen, stattdessen den sehr viel mächtigeren Stil tocline entsprechend konfiguriert zu verwenden.
undottedtocline:
Das ist der von den Standardklassen bekannte Stil für Einträge der Ebene chapter (Klasse book und Klasse report) bzw. section (Klasse article). Er existiert tatsächlich nur aus Gründen der Kompatibilität und als Beispielimplementierung für Paketautoren. Es empfohlen, stattdessen den sehr viel mächtigeren Stil tocline entsprechend konfiguriert zu verwenden.
dottedtocline:
Das ist der von den Standardklassen bekannte Stil für Einträge aller Art. Er basiert auf der Anweisung \@dottedtocline und existiert tatsächlich nur aus Gründen der Kompatibilität und als Beispielimplementierung für Paketautoren. Es empfohlen, stattdessen den sehr viel mächtigeren Stil tocline entsprechend konfiguriert zu verwenden.
tocline:
Stark konfigurierbarer Stil für ein- und mehrzeilige Verzeichniseinträge. Davon abgeleitete Stile werden auch von den KOMA-Script-Klassen für sämtliche Einträge in das Inhaltsverzeichnis oder Gleitumgebungsverzeichnisse wie das Abbildungs- oder Tabellenverzeichnis verwendet.
Näheres zu Verzeichnisstilen ist der Anleitung zu entnehmen.
Comments for "Bekannte Probleme und Änderungen in KOMA-Script 3.20" abonnieren