Sie sind hier

Bekannte Probleme und Änderungen in KOMA-Script 3.16

Bild von Markus Kohm

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

Klarstellungen:

scrartcl, scrbook, scrreprt, scrlttr2:
  • Eine Änderung der Grundschriftgröße nach dem Laden der Klasse passt keineswegs alle Längen, die von der Klasse oder gar von Paketen verwendet werden, an die neue Grundschriftgröße an. Das ist auch technisch kaum möglich, da die Information ob eine Länge von der Grundschriftgröße abhängt oder nicht, nicht einmal beim Setzen der Länge eindeutig ist und nach dem Setzen der Länge überhaupt nicht mehr verfügbar ist. Daher sollte die eigentliche Grundschriftgröße des Dokument auch bei KOMA-Script immer beim Laden der Klasse angegeben werden. Eine spätere Änderung sollte sich wirklich nur auf Ausnahmefälle wie den in der Anleitung erwähnten Fall eines (eher kurzen) Anhangs in anderer Schriftgröße beschränken oder wenn ganz bewusst nur eine teilweise Anpassung gewünscht wird!

Bekannte Fehler und Probleme:

scrartcl, scrbook, scrreprt:
  • \addpart verwendet, wenn \partmark nicht \@gobble ist, immer \@mkboth mit leerem zweitem Argument. Dadurch kann es im Zusammenspiel mit scrlayer auch bei \automark[part]{part} keine zwei Marken für den Kolumnentitel setzen.
    Hinweis: Im Quellcode-Repository wurde der Fehler gerade durch eine Änderung ähnlich zu KOMA-Script 3.12 behoben.
  • Die Absatzeinstellungen werden bei später Änderung der Grundschriftgröße unvollständig angepasst. Hinweis: Da eine Änderung erheblichen Einfluss auf den Umbruch haben kann, wird sie nur für zukünftige Versionen von KOMA-Script gelten. Im Quellcode-Repository ist die notwendige Änderung bereits enthalten.
  • Die Abstände, die über \DeclareSectionCommand etc. für die Überschriften oder das Inhaltsverzeichnis eingestellt sind, ändern sich nicht wenn nach \documentclass die Grundschriftgröße geändert wird.
    Hinweis: Dieses Problem wird in der nächsten Version gelöst. Im Quellcode-Repository sind die dafür notwendigen Änderungen/Erweiterungen bereits enthalten.
  • Die Verwendung von \useshapeofkomafont ergibt eine Fehlermeldung wegen nicht definierter Anweisung \useshapeofkomafont.
    Workaround:
    \providecommand*\useshapeofkomafont{\useshaperofkomafont}
    in die Dokumentpräambel einfügen.
    Hinweis: Im Quellcode-Repository wurde der Fehler beseitigt.
scrfontsizes:
scrguide
  • Tabelle 21.1 bis 21.3 sind bezüglich der Definitionen nicht mehr korrekt. Die dort angegebenen Werte für die Abstände stimmen zwar, allerdings werden diese auf andere Weise realisiert. Wer die korrekte Definition wissen muss, solle sie derzeit per \show\chapterheadendvskip etc. abfragen Sollen hingegen nur die Abstände geändert werden, so sei die Verwendung von \RedeclareSectionCommand empfohlen.
    Hinweis: Im Quellcode-Repository wurden die Quellen der Anleitung bereits entsprechend geändert.
scrguien
  • Table 21.1 to 21.3 do not show the real definitions any longer. Nevertheless, the length values of the tables are correct, but the distances are set with other commands. If you need to know the real definitions you should use, e.g., \show\chapterheadendvskip. I recommend usage of \RedeclareSectionCommand to change the distances.
    Note: At the source code repository the manual source already has been changed.
scrlayer-scrpage:
  • Die nicht dokumentierte Verwendung von headtopline=false, headsepline=false, footsepline=false oder footbotline=false führt im Gegensatz zu den ebenfalls nicht dokumentierten headtopline=true, headsepline=true, footsepline=true und footbotline=true zu einer Fehlermeldung.
    Hinweis: Obwohl die Möglichkeit dieser symbolischen Werte nicht dokumentiert ist, wird zukünftig auch false funktionieren, weil Anwender offenbar nicht in der Lage sind, die Funktion von globalen Optionen zu verstehen, sich aber andererseits genau darauf ständig verlassen.
    Im Quellcode-Repository sind die dafür notwendigen Änderungen/Erweiterungen bereits enthalten.
  • Bei Verwendung von scrlayer-scrpage zusammen mit scrlttr2 (oder scrletter) wird die Alias-Warnung für das Element pagehead nicht korrekt deaktiviert.
    Hinweis: Da es trotzdem funktioniert, ist kein Workaround notwendig.
    Im Quellcode-Repository sind die dafür notwendigen Änderungen/Erweiterungen bereits enthalten.
scrletter (BETA-Paket!)
  • Da die KOMA-Script-Klassen bereits ein Element title kennen, kann scrletter kein eigenes solches Element definieren und verwendet stattdessen die Schrifteinstellung des Elements der KOMA-Script-Klassen. Dessen Voreinstellung entspricht aber nicht dem des gleichnamigen Elements bei scrlttr2.
    Hinweis: Zukünftig wird es für den Brieftitel ein eigenes Element, lettertitle geben. Für scrlttr2 wird title dann nur noch ein Alias für lettertitle sein. Beta-Tester können dies mit der Version aus dem Quellcode-Repository bereits testen.
  • Da die KOMA-Script-Klassen bereits ein Element subject kennen, kann scrletter kein eigenes solches Element definieren und verwendet stattdessen die Schrifteinstellung des Elements der KOMA-Script-Klassen. Dessen Voreinstellung entspricht aber nicht dem des gleichnamigen Elements bei scrlttr2.
    Hinweis: Zukünftig wird es für den Brieftitel ein eigenes Element, lettertsubject geben. Für scrlttr2 wird subject dann nur noch ein Alias für lettersubject sein. Beta-Tester können dies mit der Version aus dem Quellcode-Repository bereits testen.
  • Da die KOMA-Script-Klassen die Paginierungsanweisung \pagemark bereits anderweitig definiert haben, kann scrletter diese nicht einfach neu vordefinieren. Daher erfolgt die Paginierung bei scrletter nicht mit »Seite Nummer«, sondern in der Voreinstellung der verwendeten KOMA-Script-Klasse. Hinweis: Zukünftig wird es für Briefe mit scrletter eine eigene Paginierungsanweisung \letterpagemark geben. Beta-Tester können dies mit der Version aus dem Quellcode-Repository bereits testen.
  • Während bei scrlttr2 Option headsepline auch eine Linie in den Kopf der Seiten im voreingestellten Seitenstil plain erzeugt, wird diese bei scrletter für plain.letter nur bei zusätzlicher Verwendung von plainheadsepline angezeigt. Dies ist beabsichtigt, da es konsistent mit dem Verhalten von Linien bei anderen Seitenstilpaaren ist.
scrletter, scrlttr2
  • Da \date eine Anweisung des LaTeX-Kerns ist, kann man die Variable date derzeit auch darüber verändern, ohne dass sich die Klasse oder das Paket darüber beschwert. Allerdings funktioniert das nur so lange, bis es jemand richtig macht und beispielsweise \setkomavar{date}{\today} aufruft. Danach kann man mit \date nichts mehr erreichen.
    Hinweis: Es ist in der Anleitung ausdrücklich dokumentiert, dass man \setkomavar{date}{…} verwenden soll, um das Datum einzustellen. Daher ist das Verhalten kein Fehler, sondern korrekt.
    Hinweis: Zukünftig wird die Verwendung von \date min. eine Warnung ergeben, damit die ganzen Leute, die entsprechend fehlerhafte Vorlagen verbreiten, den verdienten Tritt in den Hintern bekommen!
typearea
  • Entgegen der Anleitung führt ein Wechsel der Einstellung von Option twoside nicht auf eine neue rechte Seite, wenn zuvor der doppelseitige Modus aber gleichzeitig open=left aktiv war.
    Workaround: In diesem Fall vor der Änderung von twoside \cleardoubleoddpage aufrufen.
    Hinweis: Im Quellcode-Repository wurde der Fehler beseitigt.

Wichtige Änderungen:

scrlayer:
  • Die Anweisungen \leftfirstmark, \lefttopmark, \leftbotmark, \rightfirstmark, \righttopmark und \rightbotmark können analog zu \leftmark (entspricht \leftbotmark) und \rightmark (entspricht \rightfirstmark) verwendet werden. Dabei nutzen sie entsprechend ihrem Namen das linke oder rechte Element der TeX-Marken \firstmark, \topmark oder \botmark.
  • \toplevelpagestyle gibt den obersten Seitenstil an, der mit \pagestyle aktiviert wurde. Während also nach \pagestyle{plain} \currentpagestyle beispielsweise plain.scrheadings sein kann, ist \toplevelpagestyle dann plain.
  • Mit der Anweisung \GetLayerContents{Ebene} kann man auf den Inhalt einer Ebene zugreifen. Man muss dabei aber selbst darauf achten, keine unendlichen Rekursionen zu schaffen, beispielsweise durch die Verwendung der Anweisung bei der Definition des Inhalts derselben Ebene.
  • Es gibt neue Ebenenattribute, mit denen man den existierenden Werten eines Ebenenattributes einen neuen Wert hinzufügen kann. Die Attribute addhoffset, addvoffset, addwidth und addheight addieren dabei den neuen Wert zum bisherigen Wert. Das Attribute addcontents hängt an den bisherigen Inhalt der Ebene Code an, während pretocontents den Code dem bisherigen Inhalt der Ebene voranstellt.