Änderungen in KOMA-Script-Versionen vor 3.28#

Ab KOMA-Script 3.28 finden sich alle bekannten Probleme und wichtigen Änderungen entweder im Wiki oder im Issue-Tracker. Nachfolgend sind Fehlerbehebungen und Änderungen an früheren Versionen aufgeführt, wobei jeweils die Version genannt wird, in der die Änderung vorgenommen wurde:

Version 3.20 bis 3.27#

3.27

To be continued …

3.26b

To be continued …

3.26a

To be continued …

3.26

To be continued …

3.25

To be continued …

3.24

To be continued …

3.23

To be continued …

3.22

To be continued …

3.21
  • scrartcl, scrbook, scrreprt:

    • Das Problem mit dem möglichen Seitenumbruch zwischen der Farbeinstellung einer Überschrift aus dem individuellen Element der Überschrift und der Ausgabe der Überschrift bei gleichzeitigem Verschwinden der Farbe bei Überschriften des Stils section wurde behoben. Es muss nun also nicht mehr explizit \nobreak nach \color{…} eingefügt werden.
    • Die vertikalen Abstände über und unter \caption wurden korrigiert. Dafür extra das Paket caption zu laden, ist also nicht mehr notwendig.
  • scrbase:

    • em, ex und das nur bei pdflatex und lualatex vorhandene px werden von \ifdim als Einheit akzeptiert. Zuvor war das leider nicht der Fall.
    • \ifpdfoutput (bzw. das interne \scr@ifpdfoutput) erkennen nun auch bei LuaLaTeX nach Version 0.85 die PDF-Ausgabe.
  • scrlttr2:

    • Die Verwendung von \item innerhalb von description-Umgebungen führt nun nicht mehr zu einem Fehler:
      ! Undefined control sequence.
      \descfont ->\@gr@gsffamily
      						  \bfseries
      Der Workaround
      \setkomafont{descriptionlabel}{\sffamily\bfseries}
      in der Dokumentpräambel entfällt damit.
  • typearea:

    • Fehlermeldung
      Missing number, treated as zero. 
      p l.2 \begin{document}
      bei Verwendung von LuaLaTeX ohne \usepackage{luatex85} behoben.

To be continued …

3.20
  • scrartcl, scrbook, scrreprt, scrlttr2:

    • Die erste Schriftänderung nach \begin{document} erfolgt nicht mehr unabhängig von den Einstellungen immer mit parskip=relative.
  • scrartcl, scrbook, scrreprt:

    • Die Änderung der Formatierung von \caption via \KOMAoption{captions=heading} oder \KOMAoptions{captions=signature} funktioniert nun auch innerhalb einer figure- oder table-Umgebung. Der Workaround der expliziten Verwendung von \captionabove oder \captionbelow entfällt damit.
    • Die automatische Ausführung von \sloppy bei Verwendung von twocolumn als Klassenoption funktioniert nun. Es wird also kein explizites \sloppy mehr benötigt.
    • Der Überschriftenstil section setzt \parfillskip nun korrekt auf 0pt plus 1fil wenn afterskip positiv ist. Zuvor gab es fälschlich eine Abhängigkeit von einer negativen Einstellung für beforeskip.
    • Die Einstellung counterwithin für \DeclareSectionCommand definiert nun \theZählername korrekt.
    • Die Absatzeinstellungen für die Titelseiten bei Verwendung von titlepage=firstistcover wurden korrigiert. Die Inhalte von \uppertitleback und \lowertitleback um \parindent werden also nicht mehr zu weit rechts platziert.
    • 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.
    • Verzeichniseinträge im Stil part oder section beachten Option tocindent von \DeclareSectionCommand etc.
    • 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.
  • scrartcl:

    • \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, ein von Stil tocline abgeleiteter Stil für Einträge der Ebene part,
      • section, ein von Stil tocline abgeleiteter Stil für Einträge der Ebene section,
      • subsection, ein 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, ein 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.
  • scrbook, scrreprt:

    • \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, ein von Stil tocline abgeleiteter Stil für Einträge der Ebene part,
      • chapter, ein von Stil tocline abgeleiteter Stil für Einträge der Ebene chapter,
      • section, ein 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, ein 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.
  • scrbook:

    • Bei Verwendung der Voreinstellung twoside wird nun korrekt \flushbottom ausgeführt. Zuvor funktionierte das nur, wenn explizit twoside als Option bei \documentclass angegeben war.
  • 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!
  • scrhack:

    • scrhack kann jetzt auch vor pdfpages geladen werden. Zuvor trat in diesem Fall ein obskurer Fehler während des Ladens von xpatch innerhalb des lscape-Hacks auf. Die Ursache lag primär darin, dass pdfpages unsauber pdflscape via \AtBeginDocument lädt, was es natürlich nicht tun sollte. Man muss jetzt also nicht mehr auf die Reihenfolge achten oder selbst pdflscape noch vor pdfpages laden.
  • scrjura:

    • Querverweise auf den ersten Satz eines Paragraphen sind nun bei Nummerierung dieses Satzes per \Sentence korrekt. Der Workaround mit:
      \makeatletter
      \@ifpackagelater{scrjura}{2015/11/03}{}{%
        \renewcommand*{\contract@sentence}{%
      	\ifvmode
      	  \leavevmode
      	\else
      	  \refstepcounter{sentence}%
      	\fi
      	\textsuperscript{\thesentence}\nobreak\hskip\z@
        }
      }
      \makeatother
      in der Dokumentpräambel nach dem Laden von scrjura entfällt damit.
    • Die interne Umdefinierung von \@doendpe berücksichtigt die Änderungen in LaTeX 2015-01-01.
  • 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.

  • typearea:

    • Bis Version 3.18a wurden im Zusammenspiel mit den KOMA-Script-Klassen innerhalb des (ersten) optionalen Arguments von \documentclass bei Abfolgen der Optionen headsepline (nur ohne Wert oder mit den Werten für true oder false) und headinclude die Einstellungen für headinclude immer bevorzugt. Das geschah aufgrund eines Bugs. Durch Behebung des Bugs wirkte sich ab Version 3.18a nun ein Designfehler aus, der dazu führte, dass headsepline=true (oder entsprechendes) sich durchsetzt. Tatsächlich gewünscht ist, dass sich immer die letzte Einstellung durchsetzt, was nun auch der Fall ist.
    • Bis Version 3.18a wurden im Zusammenspiel mit den KOMA-Script-Klassen innerhalb des (ersten) optionalen Arguments von \documentclass bei Abfolgen der Optionen footsepline (nur ohne Wert oder mit den Werten für true oder false) und footinclude die Einstellungen für footinclude immer bevorzugt. Das geschah aufgrund eines Bugs. Durch Behebung des Bugs wirkte sich ab Version 3.18a ein Designfehler aus, der dazu führt, dass footsepline=true (oder entsprechendes) sich durchsetzt. Tatsächlich gewünscht ist, dass sich immer die letzte Einstellung durchsetzt, was nun auch der Fall ist.

Version 3.10 bis 3.19a#

3.19a
  • scrbook:
    • Kapitel werden nach \frontmatter (bis \mainmatter) und nach \backmatter nicht mehr nummeriert (schon gar nicht, ohne die Nummer zu erhöhen).
3.19
  • scrartcl, scrbook, scrreprt, scrlttr2:

    • Bei den Optionen parskip=half*, parskip=half+, parskip=full* und parskip=full+ wird \parfillskip nun korrekt berechnet. Durch die zuvor fehlerhafte Berechnung endten alle Absätze mit einer Winzigzeile und es kam teilweise auch zu vielen overfull \hbox-Meldungen.
      Der frühere Workaround, in der Dokumentpräambel bei Verwendung einer der genannten Optionen unmittelbar nach dem Laden der Klasse bzw. nach der Anweisung zum Setzen der Option
      \makeatletter
      \ifx\par@update\default@par@update\else
      \AtBeginDocument{\par@updaterelative}
      \fi
      \makeatother
      einzufügen, entfällt damit.
  • scrartcl, scrbook, scrreprt:

    • \DeclareSectionCommand etc. kennen als Umkehrung von counterwithin nun auch eine Eigenschaft counterwithout.
    • Neue Anweisung \sectionlinesformat{Ebene}{indent}{Nummer}{Text} zur eigentlichen Formatierung von Überschriften im section-Stil, wenn ein- oder mehrzeilige Überschriften verwendet werden. Die Ebene ist dabei der Name der Gliederungsebene, also beispielsweise section, subsection etc. Für nicht nummerierte Überschriften ist Nummer ggf. leer. Bei Umdefinierung ist der Anwender ggf. selbst dafür verantwortlich, dass zwischen den Zeilen der Überschrift kein Seitenumbruch erfolgen kann. Das Absatzende wird hingegen nach der Formatierungsanweisung automatisch herbeigeführt.
    • Neue Anweisung \sectioncatchphraseformat{Ebene}{indent}{Nummer}{Text} zur eigentlichen Formatierung von Überschriften im section-Stil, wenn Spitzmarken verwendet werden. Die Ebene ist dabei der Name der Gliederungsebene, also beispielsweise section, subsection etc. Für nicht nummerierte Überschriften ist Nummer ggf. leer.
  • scrbook, scrreprt:

    • Neue Anweisung \chapterlinesformat{Ebenenname}{Nummer}{Text} zur eigentlichen Formatierung von Überschriften im chapter-Stil, wenn ein- oder mehrzeilige Überschriften mit hängender Nummer verwendet werden. Für nicht nummerierte Überschriften ist Nummer ggf. leer. Bei Umdefinierung ist der Anwender ggf. selbst dafür verantwortlich, dass zwischen den Zeilen der Überschrift kein Seitenumbruch erfolgen kann. Das Absatzende wird hingegen nach der Formatierungsanweisung automatisch herbeigeführt.
    • Neue Anweisung \chapterlineswithprefixformat{Ebenenname}{Nummer}{Text} zur eigentlichen Formatierung von Überschriften im chapter-Stil, wenn mehrzeilige Überschriften mit Nummerpräfixzeile verwendet werden. Für nicht nummerierte Überschriften ist Nummer ggf. leer. Ansonsten beinhaltet Nummer neben den Fonteinstellungen auch das \chapterheadmidvskip für den vertikalen Abstand nach der Nummer.
  • scrlttr2, scrletter:

    • Ist eine nicht leere Anweisung \letterpagestyle definiert, so legt der Inhalt innerhalb von \begin{letter} per \pagestyle{\letterpagestyle} den Seitenstil von Briefen fest. Während die Anweisung bei scrlttr2 leer voreingestellt ist, sorgt sie beim Paket scrletter mit dem Inhalt plain.letter dafür, dass der plain-Stil des Seitenstil-Paars letter verwendet wird.
    • Briefe werden referenzierbar nummeriert. Der Zählername dafür lautet konsequenter Weise letter, obwohl ich mir bewusst bin, dass einige Anwender bereits einen gleichnamigen Zähler verwenden, der nun eventuell doppelt erhöht wird. Das lässt sich aber auf Anwenderseite ganz einfach dadurch ändern, dass der eigene Zählercode deaktiviert wird. Die Nummer des aktuellen Briefes lässt kann mit \thisletter ermittelt werden. Im Gegensatz zu \theletter wird dabei auch ein eventuell definierter Präfix (\p@letter) berücksichtigt. Es ist Sorge getragen, dass auch \ref{\thisletter.lastpage} einen korrekten Wert ergibt, nämlich letztlich dasselbe wie \thisletter.
    • \letterlastpage gibt die letzte Seitenzahl des aktuellen Briefes aus. Letztlich ist das nichts anderes als ein \pageref{\thisletter.lastpage}.
  • scrbase:

    • In die Ausführung des Codes von Schlüsseln ohne Säumniswert wird kein störendes Leerzeichen mehr am Ende eingefügt. Dieser Fehler betraft über \DefineFamilyKey auch davon abgeleitete Befehle wie \FamilyBoolKey, bei denen der Anwender keinen Einfluss auf den Code hat.
    • Obwohl \baselineskip und \parskip tatsächlich keine skip-Register sind, sondern Primitive mit ähnlicher Funktion, werden sie still und leise von \ifisskip als skip akzeptiert.
      Hinweis: Diese Änderung steht bis auf weiteres zur Disposition, da sie genau genommen ein Verstoß gegen die Spezifikation darstellt und inkonsequent ist (so wird beispielsweise derzeit \pdfpaperwidth nicht als dimen behandelt, obwohl das vergleichbar wäre).
  • scrhack:

    • Es gibt einen neuen Hack lscape, der eine Inkonsistenz und ein Problem mit der Behandlung von \textheight innerhalb der landscape-Umgebung des lscape-Pakets beseitigt. Dieser Hack verbessert nicht nur die Zusammenarbeit von lscape mit scrlayer, sondern beispielsweise auch mit showframe. Bei Bedarf lässt sich die Wirkung des Hacks auch zur Laufzeit deaktivieren (und reaktivieren) wenn der Hack beim Laden von lscape bzw. scrhack nicht deaktiviert ist.
      Hinweis: Selbstverständlich wurde eine Verbesserung direkt in lscape angestrebt – leider vergeblich.
  • scrlayer:

    • Das neue Ebenenattribut mode legt fest, auf welche Weise eine Ebene ausgegeben wird. Vordefiniert sind die Werte text und raw, die beide dem bisherigen Verfahren entsprechen und picture die den Inhalt innerhalb einer picture-Umgebung ausgeben, deren Ursprung in der linken unteren Ecke der Ebene liegt. In diesem picture-Modus gibt es außerdem die Befehle:
      • \putLL{Argument}: zur Ausgabe von Argument relativ zur linken, unteren Ecke der Ebene,
      • \putUL{Argument}: zur Ausgabe von Argument relativ zur linken, oberen Ecke der Ebene,
      • \putLR{Argument}: zur Ausgabe von Argument relativ zur rechten, unteren Ecke der Ebene,
      • \putUR{Argument}: zur Ausgabe von Argument relativ zur rechten oberen Ecke der Ebene,
      • \putC{Argument}: zur Ausgabe von Argument relativ zum Zentrum der Ebene.
    • Innerhalb von Ebenen kann mit \layerhalign auf die horizontale Ausrichtung der Ebene zugegriffen werden, die bei der Definition der Ebene aus der Eigenschaft align resultiert.
    • Innerhalb von Ebenen kann mit \layervalign auf die vertikale Ausrichtung der Ebene zugegriffen werden, die bei der Definition der Ebene aus der Eigenschaft align resultiert. Diese Information wird ggf. zur Definition eines eigenen Ebenenmodus benötigt.
  • typearea:

    • Die Fehlermeldung über einen nicht definierten Befehl \set@pdftextpagesize bei Verwendung von Option pagesize=automedia wurde beseitigt. Der Workaround mit
      \makeatletter
      \def\set@pdftextpagesize{\set@pdftexpagesize}
      \makeatother
      in der Dokumentpräambel entfällt daher.
3.18
  • scrartcl, scrbook, scrreprt:

    • Entgegen jeglicher Überzeugung und verm. ohne jegliche Dokumentation werden die Optionen index=numbered, index=leveldown, index=standardlevel und toc=indexnumbered nun doch verstanden. Support gibt es dafür aber nicht!
    • \part und \part* werden per \DeclareSectionCommand definiert. Dazu wird der Stil part vollständig unterstützt.
    • \addpart wurde komplett neu implementiert und verwendet intern nun \part[…]{…}. Daher verwendet es (im Gegensatz zu \addpart*) auch nicht mehr \addpartmark sondern (indirekt) \partmark und wenn dieses \@gobble ist sogar \@mkboth{}{} (\addpart* macht das auch, aber verwendet derzeit überflüssiger Weise zusätzlich \addpartmark{}).
    • \addsec wurde komplett neu implementiert und verwendet intern nun \section[…]{…}. Daher verwendet es (im Gegensatz zu \addsec*) auch nicht mehr \addsecmark sondern (indirekt) \sectionmark.
  • scrbook, scrreprt:

    • Mit der Anweisung \IfChapterUsesPrefixLine{Dann-Code}{Sonst-Code} kann Code in Abhängigkeit davon ausgeführt werden, ob Überschriften im Stil chapter mit einer Präfixzeile gesetzt werden oder nicht. Dabei wird auf Option chapterprefix bzw. appendixprefix getestet, so dass die Anweisung im Gegensatz zu \IfUsePrefixLine auch außerhalb von Gliederungsbefehlen gültig ist.
    • \addchap wurde komplett neu implementiert und verwendet intern nun \chapter[…]{…}. Daher verwendet es (im Gegensatz zu \addchap*) auch nicht mehr \addchapmark sondern (indirekt) \chaptermark.
    • \DeclareSectionCommand kennt für den Stil part zusätzlich die Eigenschaft innerskip, die den Abstand zwischen Präfixzeile und Überschriftentext festlegt und für die Definition von Überschriften dieses Stils zwingend ist.
    • \DeclareSectionCommand kennt für den Stil part zusätzlich die Eigenschaft pagestyle, die den Seitenstil der Startseite festlegt und für die Definition von Überschriften dieses Stils zwingend ist.
    • \DeclareSectionCommand kennt für den Stil chapter zusätzlich die Eigenschaft pagestyle, die den Seitenstil der Startseite festlegt und für die Definition von Überschriften dieses Stils zwingend ist.
    • Der Überschriftenstil chapter ist so weit vervollständigt, dass man beispielsweise den Stil von \section in chapter ändern kann oder eine umdefinierte Anweisung \chapter mit \RedeclareSectionCommand{chapter} wieder auf ihre ursprüngliche Definition zurück ändern kann.
    • Die beforeskip-Voreinstellung von \chapter wurde negiert. Damit entfällt nach \RedeclareSectionCommand[style=section]{chapter} der Einzug nach der Überschrift genau wie bei den vordefinierten Überschriften im Stil section.
  • scrbase:

    • Kann bereits vor \documentclass geladen werden.
    • Mit der Anweisung \BeforeFamilyProcessOptions[Mitglied]{Familie}{Code} kann man (ggf. auch bereits bevor das Paket oder die Klasse geladen ist) Code unmittelbar vor die Ausführung von \FamilyProcessOptions in dem Paket oder der Klasse des angegebenen Mitglieds ausführen lassen. Ist das Mitglied leer (aber angegeben), so wird Code für jedes Mitglied der Familie ausgeführt.
  • scrlayer, scrlayer-scrpage:

    • Bei Kombination mit der Klasse scrlttr2 funktioniert deren Option pagenumber für Seitenzahlen im Fuß links oder rechts nun korrekt. Der Workaround, selbst mit \lofoot{\pagemark} oder \rofoot{\pagemark} nachzuhelfen entfällt.
    • Bei Verwendung von multicol sind Hintergrundebenen nun nicht mehr vertikal um ca. eine Zeile (bzw. \ht\strutbox) nach oben verschoben, während die multicols-Umgebung aktiv ist. Das Problem betraf beispielsweise die Kopfzeilen von scrlayer-scrpage (solange man sie nicht in den Vordergrund verschob).
  • scrlayer:

    • Von \ForEachLayerOfPageSyle gibt es eine Sternvariante, bei der die eigentliche Ausführung nicht mehr innerhalb einer Gruppe erfolgt. Mit der Sternvariante sind dann Aufrufe wie unlängst auf goLaTeX vorgeschlagen möglich.
    • Neues Ebenenattribut backandforeground, das die Einschränkung auf Vorder- oder Hintergrund aufhebt. Dieses Attribute ist wenig sinnvoll und besteht nur aus Gründen der Vollständigkeit.
    • Neues Ebenenattribut oddorevenpage, das die Einschränkung auf gerade oder ungerade Seiten aufhebt.
    • Neues Ebenenattribut floatornonfloatpage, das die Einschränkung auf Gleitumgebungsseiten oder Nicht-Geitumgebungsseiten aufhebt.
    • Neues Ebenenattribut everypage, das oddorevenpage und floatornonfloatpage vereint.
    • Neues Ebenenattribute everyside, das die Einschränkung auf einseitige- oder doppelseitige Dokumente aufhebt.
    • Neues Ebenenattribut unrestricted, das alle einschränkenden Attribute aufhebt. Da dies auch die Einschränkung auf Vorder- oder Hintergrund einschließt, ist es sinnvoll, danach wiederum background oder foreground explizit zu setzen.
  • scrlayer-scrpage:

    • Das erste optionale Argument von \setheadtopline, \setheadsepline, \setfootsepline und \setfootbotline funktioniert nun wieder wie bei scrpage2. Zuvor wurde die Linienlänge (auch bei nicht gesetztem optionalem Argument) immer auf die Kopf- bzw. Fußbreite gesetzt.
      Dessen ungeachtet wird empfohlen, diese veralteten Befehle nicht mehr zu verwenden und stattdessen die entsprechenden Optionen von scrlayer-scrpage zu nutzen.
  • tocbasic:

    • Von \DeclareNewTOC werden nun beim Weglassen von name oder listname die Einstellungen für diese Optionen korrekt erzeugt. Die zuvor verwendete, defekte Methode resultierte in unerwünschtem Versalsatz in Überschriften oder Verzeichniseinträgen und konnte auch komplett falsche Namen generieren.
    • Bei \DeclareNewTOC muss das Argument von type expandierbar sein. Nicht expandierbare Teile sind durch \protect zu schützen.
  • typearea:

    • Mit den Anweisungen \BeforeRestoreareas{Code} und \AfterRestoreareas{Code} kann Code am Anfang bzw. Ende der mit \storeareas definierten Anweisungen ausgeführt werden. Es gibt auch jeweils eine Sternvariante der Befehle, die sich nur auf zukünftig per \storeareas definierte Anweisungen auswirken.
3.17c
  • scrlttr2:

    • Der Alias title für das neue Element lettertitle funktioniert nun. Es wird dennoch empfohlen künftig direkt lettertitle zu verwenden, um den Umstieg auf das Paket scrletter zu erleichtern.
    • Der Alias subject für das neue Element lettersubject funktioniert nun. Es wird dennoch empfohlen künftig direkt lettersubject zu verwenden, um den Umstieg auf das Paket scrletter zu erleichtern.
  • typearea:

    • Die Meldung über eine nicht geschlossene Gruppe und die Warnung vor Verwendung von \typearea innerhalb group level 2 bei Verwendung von Option pagesize=false beim Laden von typearea wurde beseitigt.
    • Mit Option pagesize=false kann nun wirklich verhindert werden, dass der (neue) Default pagesize=auto aktiv wird.
3.17a
  • scrjura:
    • Will man die Paragraphen bei neu definierten juristischen Umgebungen automatisch nummerieren lassen, so wurde fälschlich als Nummer immer die des aktuell letzten Paragraphen einer contract-Umgebung angegeben. Dies wurde korrigiert.
    • Will man die Unterparagraphen bei neu definierten juristischen Umgebungen automatisch nummerieren lassen, so wurde als Nummer fälschlich immer die des aktuell letzten Unterparagraphen einer contract-Umgebung angegeben. Dies wurde korrigiert.
3.17
  • In den Anleitungen wurden die Tabellen 21.1 und 21.3 korrigiert. Diese waren in früheren Versionen nicht mehr korrekt. Die dort angegebenen Werte für die Abstände stimmten zwar, allerdings werden diese auf andere Weise realisiert. Wer die korrekte Definition wissen muss, kann sie übrigens derzeit per \show\chapterheadendvskip etc. abfragen. Sollen hingegen nur die Abstände geändert werden, so sei die Verwendung von \RedeclareSectionCommand empfohlen.

  • scrartcl, scrbook, scrreprt:

    • Problem behoben, dass \addpart, wenn \partmark nicht \@gobble ist, immer \@mkboth mit leerem zweitem Argument verwendet hat. Dadurch konnte im Zusammenspiel mit scrlayer auch bei \automark[part]{part} keine zwei Marken für den Kolumnentitel gesetzt werden.
    • Die Absatzeinstellungen werden bei später Änderung der Grundschriftgröße nun korrekt angepasst. Allerdings kann dies durch Option version=3.16 (oder kleiner) deaktiviert werden.
    • Die Abstände, die über \DeclareSectionCommand etc. für die Überschriften oder das Inhaltsverzeichnis eingestellt sind, ändern sich nun wenn nach \documentclass die Grundschriftgröße geändert wird.
    • Die Anweisung \useshapeofkomafont heißt nun wirklich so. Der Workaround mit der Zeile:
      \providecommand*\useshapeofkomafont{\useshaperofkomafont}
      in die Dokumentpräambel entfällt.
    • Analog zu \addchapmark seit KOMA-Script 3.12 gibt es jetzt ein \addpartmark.
    • Eine späte Änderung der Grundschriftgröße über Option fontsize oder \changefontsize passt die über KOMA-Script-Methoden vorgenommenen Absatzeinstellungen an. Dies erfordert allerdings auch eine Änderung der Schriftgrößendateien, so dass selbst erstellte oder erzeugte Schriftgrößendateien diese Änderung ggf. nicht enthalten.
      Da die Änderung die Kompatibilität beeinträchtigt, wird sie bei Einstellungen für version=3.16 (oder kleiner) nicht ausgeführt.
    • \RedeclareSectionCommand kann über die zusätzliche Eigenschaft prefixfont=Fonteinstellung auch die Fonteinstellung der Präfixzeile in Kapitelüberschriften mit Präfixzeile und der Nummer in Teileüberschriften verändern. (Namen könnte sich bei Teileüberschriften eventuell noch ändern).
    • \RedeclareSectionCommand kann über die zusätzliche Eigenschaft innerskip=Abstand auch den Abstand zwischen Prefixzeile und Textzeile in Kapitel- und Teileüberschriften mit Präfixzeile verändern.
    • \DeclareSectionCommand etc. expandieren Werte für Längen zwar weiterhin, werten diese aber in der Voreinstellung nur testweise aus. Mit der zusätzlichen Eigenschaft expandtopt=einfacher Schalter kann jedoch auch weiterhin dafür gesorgt werden, dass das Ergebnis der Auswertung (also der pt-Wert) an Stelle des expandierten Werts gespeichert wird.
    • Die späte Wahl von Option twoside verhält sich bezüglich des vertikalen Ausgleichs nun wie die frühe Wahl der Option.
      Da die Änderung die Kompatibilität beeinträchtigt, wird bei Einstellungen für version=3.16 (oder kleiner) stattdessen ein zu früheren Versionen kompatibles Verhalten gewählt.
    • Die späte Wahl von Option twocolumn verhält sich bezüglich des vertikalen Ausgleichs und \sloppy wie die frühe Wahl der Option. Allerdings führt ein Deaktivieren von twocolumn dabei nicht zu \fussy. Das bedeutet insbesondere, dass ein \KOMAoption{twocolumn}{true,false} einem \sloppy gleich kommt.
      Da die Änderung die Kompatibilität beeinträchtigt, wird bei Einstellungen für version=3.16 (oder kleiner) stattdessen ein zu früheren Versionen kompatibles Verhalten gewählt.
    • Bereits seit KOMA-Script 3.15 werden für alle Gliederungsebenen \…format-Anweisunen definiert. Bisher wurden aber nur \partformat und \chapterformat verwendet und für die anderen Ebenen stattdessen \othersectionlevelsformat. Da letztere Anweisung etwas schwer zu verstehen ist, wird sie künftig nur noch verwendet, wenn keine \…format-Anweisung vorhanden ist. Stattdessen werden die \…format-Anweisungen nun bei allen Ebenen auch wirklich verwendet. Das hat allerdings zur Konsequenz, dass einige bisherige Lösungen, die auf \othersectionlevelsformat basieren, nur noch funktionieren, wenn man \sectionformat bis \subparagraphformat absichtlich auf \relax setzt. Diese Änderung ist über Option version abgesichert.
  • scrfontsizes:

    • Die Definition von \footnotesize in der erzeugten Datei wurde korrigiert. Man muss die Datei jetzt also nicht mehr editieren, um in der Definition von \footnotesize das \small ganz am Anfang durch \footnotesize zu ersetzen.
  • scrhack:

    • Es gibt einen neuen Hack setspace. Das gleichnamige Paket setspace definiert \onehalfspacing und \doublespacing unter Verwendung von \@ptsize. Dabei geht es davon aus, dass das klasseninterne Makro \@ptsize immer definiert ist und immer zu einer ganzen Zahl expandiert. Schon davon auszugehen, dass \@ptsize definiert ist, ist fragwürdig, da nicht festgelegt ist, dass Klassen dieses Makro definieren müssen. Dann auch noch davon auszugehen, dass es immer zu einer ganzen Zahl expandiert, ist schlicht im Fall von KOMA-Script falsch. Da KOMA-Script gebrochene Schriftgrößen erlaubt, kann \@ptsize auch zu einer gebrochenen Dezimalzahl expandieren. Außerdem arbeitet setspace aufgrund der Verwendung von \@ptsize nie relativ zur tatsächlichen Schriftgröße, sondern relativ zur angeforderten Grundschriftgröße, die davon abweichen kann (und es bereits im Fall von 11pt auch tut). Mit scrhack wird zumindest relativ zur aktuellen Größe gearbeitet und es funktioniert auch mit gebrochenen Schriftgrößen. Die Abhängigkeit von \@ptsize entfällt dabei. Eine (eigentlich notwendige) Anpassung an spätere Änderungen der Schriftgröße findet aber auch damit nicht statt. Damit ist der aktuelle Hack eine Verbesserung aber meiner Meinung nach noch nicht der Idealfall. Für den Idealfall müsste man das Paket grundlegend neu schreiben.
  • scrlayer-scrpage:

    • Die nicht dokumentierte Verwendung von headtopline=false, headsepline=false, footsepline=false oder footbotline=false führt nun genau wie bisher schon bei den ebenfalls nicht dokumentierten headtopline=true, headsepline=true, footsepline=true und footbotline=true zu keiner Fehlermeldung mehr.
      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.
    • Die Alias-Warnung für das Element pagehead, die bei Verwendung von scrlayer-scrpage zusammen mit scrlttr2 (oder scrletter) auftrat, wurde nun korrekt deaktiviert.
  • 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!
    • Da die KOMA-Script-Klassen bereits ein Element title kennen, kann das Paket scrletter kein eigenes solches Element definieren und verwendet stattdessen nun nicht mehr die Schrifteinstellung des Elements der KOMA-Script-Klassen. Dessen Voreinstellung entspricht nämlich nicht dem des gleichnamigen Elements bei scrlttr2. Stattdessen wird nun das Element lettertitle verwendet.
    • Da die KOMA-Script-Klassen bereits ein Element subject kennen, kann scrletter kein eigenes solches Element definieren und verwendet stattdessen nunn nicht mehr die Schrifteinstellung des Elements der KOMA-Script-Klassen. Dessen Voreinstellung entspricht nämlich nicht dem des gleichnamigen Elements bei scrlttr2. Stattdessen wird nun das Element lettersubject verwendet.
    • Mit der neuen Einstellung addrfield=topaligned wird die Anschrift nicht mehr vertikal im Adressfenster zentriert, sondern oben ausgerichtet.
  • scrletter:

    • 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.
    • Für Paginierung mit „Seite Nummer“ wird eine neue Paginierungsanweisung \letterpagemark bereitgestellt, die auch von den vordefinierten Seitenstilen verwendet wird.
    • 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.
  • scrlttr2:

    • Das Element title ist nun nur noch ein Aliasname für das neue Element lettertitle.
    • Das Element subject ist nun nur noch ein Aliasname für das neue Element lettersubject.
  • typearea:

    • Entsprechend der Anleitung führt ein Wechsel der Einstellung von Option twoside auf eine neue rechte Seite, wenn zuvor der doppelseitige Modus aber gleichzeitig open=left aktiv war. Der Workaround, vor der Änderung von twoside \cleardoubleoddpage aufzurufen entfällt.
    • Innerhalb von \activateareas – und damit auch innerhalb von \recalctypearea, \typearea, \areaset oder Änderungen von DIV oder BCOR – wird nun \par@updaterelative ausgeführt. Das bedeutet, dass die parskip- oder \setparsizes-Einstellungen erneut ausgeführt werden, vorausgesetzt niemand hat nachträglich an \parskip, \parfillskip oder \parindent gefummelt. Da die Änderung inkompatibel zu früheren Versionen ist, ist sie über version abgesichert.
    • Option pagesize ist Voreinstellung.
      Hinweis: Die Änderung erfolgte nicht aus echter Überzeugung, sondern wegen nerviger Fragen im Support von Leuten, die nicht in der Lage sind die Anleitung zu lesen. Bei Verwendung von Paket preview oder standalone sollte man die Option auch besser explizit abschalten.
3.16
  • Die deutschen Anleitungen werden wieder mit deutschen Trennmustern erstellt und strotzt deshalb nicht mehr vor falschen Trennungen.

  • scrbook, scrreprt:

    • Der Code für die Ausgabe der Präambel über \chapter wurde überarbeitet, weil die Warnung für zu große Präambel über \chapter bereits \dp\strutbox zu früh ausgegeben wurde. Dabei wurde auch die vertikale Platzierung einer tatsächlich übervollen Präambel verbessert.
    • Der vertikale Abstand vor der Überschrift von \addpart bzw. \addpart* wurde dem bei \part* oder bei früheren Versionen angepasst.
    • Der Fehler bei Verwendung von \subsectionmarkformat, \subsubsectionmarkformat, \paragraphmarkformat oder \subparagraphmarkformat wegen nicht definiertem \endskip wurde behoben. Damit ist der Workaround: \newcommand*{\endskip}{\enskip} in der Dokumentpräambel bzw. noch vor \documentclass nicht mehr erforderlich.
  • 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.
3.15
  • In der deutschen und englischen Anleitung ist nun korrekt \ifisinteger statt fälschlich \ifisnumber dokumentiert.

  • scrbase:

    • Die Fehlermeldung über ein nicht definiertes \@temskipa bei Verwendung von \FamilySetLengthMacro wurde behoben.
  • scrartcl:

    • Über Option sectionentrydots kann gewählt werden, ob die Inhaltsverzeichniseinträge der Abschnittsebene ebenfalls mit Pünktchen versehen werden sollen. Falls dem so ist, wird die Schrit über das gleichnamige Element eingestellt. Voreingestellt ist dabei \normalfont. Es existieren auch passende Werte für Option toc.
  • scrartcl, scrbook, scrreprt, scrextend, scrlttr2:

    • Neuer Befehl \IfExistskomafont{Element}{Dann-Code}{Sonst-Code} führt den Dann-Code genau dann aus, wenn KOMA-Script für Element den Font über \addtokomafont und \setkomafont ändern kann. Anderenfalls wird der Dann-Code ausgeführt.
  • scrartcl, scrbook, scrreprt:

    • Bei \subparagraph funktioniert nun der horizontale Einzug, außer man setzte version=3.14 (oder kleiner).
    • Wurde der Absatzeinzug nicht über unmittelbares Setzen von \parindent statt durch die empfohlene Verwendung einer parskip-Option oder \setparsizes verändert, wird bei \subparagraph in der Voreinstellung ein Absatzeinzug verwendet. Da der fehlende Absatzeinzug für KOMA-Script vor Version 3.15 als Feature definiert wurde, gilt dies nicht, wenn über Option version eine kleinere Kompatibilitätseinstellung als 3.15 gewählt wurde.
    • Die Gliederungsbefehle von \section bis \subparagraph (einschließlich deren abhängige Befehle) werden über \DeclareSectionCommand[…]{…} definiert und können über \DeclareSectionCommand[Eigenschaften]{Name} oder \RedeclareSectionCommand[Eigenschaften]{Name} geändert werden. Ebenso können neue Befehle über \DeclareNewSectionCommand[Eigenschaften]{Name} bzw. \ProvideSectionCommand[Eigenschaften]{Name} definiert werden. Über \DeclareSectionCommands[Eigenschaften]{Namensliste}, \DeclareNewSectionCommands[Eigenschaften]{Namensliste}, \RedeclareSectionCommands[Eigenschaften]{Namensliste} oder \ProvidesSectionCommands[Eigenschaften]{Namensliste} kann dasselbe auch für eine ganze Reihe an Gliederungsbefehlen auf einmal erfolgen.
  • scrbook, scrreprt:

    • Kein zusätzlicher Abstand mehr zwischen der Kapitelüberschrift des Inhaltsverzeichnisses und dem ersten Eintrag, wenn dies ein Kapiteleintrag oder ein Teileintrag ist. Diese Änderung ist durch Option version=3.14 (oder kleiner) deaktivierbar.
    • Über Option chapterentrydots kann gewählt werden, ob die Inhaltsverzeichniseinträge der Kapitelebene ebenfalls mit Pünktchen versehen werden sollen. Falls dem so ist, wird die Schrit über das gleichnamige Element eingestellt. Voreingestellt ist dabei \normalfont. Es existieren auch passende Werte für Option toc.
    • Auf vielfachen Wunsch kann man über Umdefinierung von \raggedchapter die Ausrichtung der Kapitelüberschriften und nur der Kapitelüberschriften ändern.
  • scrbase:

    • Mit \RelaxFamilyKey[Mitglied]{Familie}{Schlüssel} kann ein Schlüssel für ein Mitglied einer Familie quasi undefiniert werden.
    • Die Befehle \FamilyCounterKey, \FamilyCounterMacroKey, \FamilyLengthKey und \FamilyLengthMacroKey unterstützen einen optionalen Säumniswert, der nach dem Schlüssel anzugeben ist.
  • scrlayer:

    • Die beiden underfull \hbox-Meldungen auf jeder zweispaltigen Seite wurden behoben.
  • scrjura:

    • Die Befehle \Paragraph und \SubParagraph werden in \Clause und \SubClause umbenannt. Entsprechend werden abhängige Befehle wie \Paragraphmark und \SubParagraphmark sowie abhängige Zähler wie Paragraph und SubParagraph, sowie die zu den Zählern gehörenden Befehle umbenannt.
    • Über den Befehl \DeclareNewJuraEnvironment{Umgebungsname}[Optionen]{Anfangscode}{Endecode} können neue juristische Umgebungen definiert werden. In der Voreinstellung entspricht eine solche Umgebung contract, verfügt aber über eigene Zähler.
  • scrletter: Dieses Paket stellt die Funktionalität von scrlttr2 mit den KOMA-Script-Klassen scrartcl, scrreprt und scrbook zur Verfügung. Allerdings ist das Paket in der Anleitung noch als BETA eingestuft.

  • scrsize10pt.clo, scrsize11pt.clo, scrsize12pt.cli:

    • Die Abstände in einigen Listen, die selbst \@listi nicht ausführen (beispielsweise das Literaturverzeichnis von biblatex) wurden korrigiert. Damit entfällt der Workaround, \csname @listi\endcsname nach dem Laden der Klasse und nach jeder Verwendung von Option fontsize in der Dokumentpräambel oder im Dokument einzufügen.
3.14
  • Die englische Anleitung wurde vor allem von Jana und Arndt Schubert auf Vermittlung von Elke Schubert gründlich unter die Lupe genommen und in diversen Kapiteln deutlich verbessert.

  • scrartcl, scrbook, scrreprt:

    • Bei Verwendung von Option bibliography=leveldown wird nicht mehr fälschlich immer \rightmark verwendet. Stattdessen geschieht dies nur noch, wenn \@mkboth nicht \@gobbletwo, wenn also mit lebenden Kolumnentiteln gearbeitet wird.
    • Das optionale Argument von \chapter, \section etc. wird nicht mehr nach key=value-Syntax behandelt, wenn es ein kopiertes obligatorisches Argument ist. Zuvor führte beispielsweise
      \documentclass[headings=optiontohead]{scrartcl}
      \usepackage[ngerman]{babel}
      
      \begin{document}
      \tableofcontents
      \part{rot!=gelb}
      \section{physikalisch"=naturwissenschaftlichen}
      \end{document}	
      zu Fehlern. Diese Fehler konnte man übrigens durch zusätzliche Gruppenklammern im obligatorischen Argument umgehen.
    • \minisec vergrößert nun nicht mehr den Abstand nach einer Überschrift, wenn es direkt auf diese folgt.
    • Die Anweisung \SecDef kann an Stelle von \secdef verwendet werden, um Befehle zu definieren, die kompatibel mit \part oder \addpart sind.
    • Die Anweisung \At@startsection{Code} kann von Paketautoren verwendet werden, um innerhalb des KOMA-Script eigenen Ersatzes von \@startsection Code nach der Einstellung von \if@afterindent und \@tempskipa auszuführen.
    • Die Anweisung \Before@sect{Code} kann von Paketautoren verwendet werden, um innerhalb des KOMA-Script eigenen Ersatzes von \@startsection Code unmittelbar vor dem Aufruf von \@sect auszuführen.
    • Die Anweisung \Before@ssect{Code} kann von Paketautoren verwendet werden, um innerhalb des KOMA-Script eigenen Ersatzes von \@startsection Code unmittelbar vor dem Aufruf von \@ssect auszuführen.
  • scrartcl, scrbook, scrreprt, scrlttr2:

    • Option footsepline führt wie bereits zuvor dokumentiert nicht mehr zu einer Neuberechnung des Satzspiegels.
    • Option footsepline führt nicht mehr fälschlich zu einer Änderung von headinclude, sondern footinclude.
  • scrbase:

    • \FamilyOption, \FamilyOptions und \FamilyExecuteOptions erlauben die Verwendung von \par im Wert einer Option.
  • scrlayer:

    • \ModifyLayer ändert nun wirklich die angegebene Ebene und nicht die zuletzt mit \DeclareLayer definierte Ebene.
    • \RemoveLayersFromPageStyle funktioniert nun auch für alle Ebenen eines Seitenstils. Zuvor konnte die letzte verbliebene Ebene nicht entfernt werden.
  • scrlayer-scrpage:

    • Die Namen der Layer sind nun korrekt. Zuvor waren …head.odd und …head.even bzw. …foot.odd und …foot.even vertauscht.
    • Optionen headwidth und footwidth erlauben einen zweiten Offset. In diesem Fall ist der erste Offset für rechte=ungerade Seiten und der zweite Offset für linke=gerade Seiten.
    • Die Befehle \ihead, \ohead etc. bekommen Sternvarianten an die Seiten gestellt, bei denen bei einem nicht vorhandenen optionalen Argument das obligatorische Argument in das optionale kopiert wird. Bei vorhandenem optionalem Argument unterscheiden sich die Formen nicht. Man kann so beispielsweise \ofoot[\pagemark]{\pagemark} einfach als \ofoot*{\pagemark} abkürzen.
  • scrlttr2:

    • LCO-Datei DINmtext führt mit Option fromalign=false wieder zu einer geänderten Darstellung der Absenderadresse, wie das bis Version 3.07 der Fall war.
    • Neue Anweisung \LoadLetterOptions{LCO,…}, die wie \LoadLetterOption arbeitet, aber statt nur einer LCO eine Komma separierte Liste von LCOs akzeptiert.
  • tocbasic:

    • \DeclareNewTOC fügt dem Format des Zähler kein \autodot mehr an, wenn es sich um einen hierarchischen Zähler handelt.
3.13
  • scrartcl, scrbook, scrreprt:

    • Werte für Option toc, die auf andere Optionen abgebildet werden, können nun nicht nur bei \documentclass gesetzt werden, sondern auch bei \KOMAoption und \KOMAoptions.
    • Werte für Option listof, die auf Option chapteratlists abgebildet werden, können nun nicht nur bei \documentclass gesetzt werden, sondern auch bei \KOMAoption und \KOMAoptions.
  • scrbase:

    • In der Sonderbehandlung für die Benutzung der Optionen-Schnittstelle nach der veralteten Methode ist die Ausgabe einer Warnung nun robust gegen Befehle, die nicht expandiert werden sollten. Zuvor konnte es beispielsweise zu Fehlern kommen, wenn einer Option als Wert \includegraphics übergeben wird.
  • scrdate:

    • Unterstützung von Polnisch (polish), Tschechisch (czech), Slovakisch (slovak) und diversen zusätzlichen Dialekten von Englisch, Deutsch und Französisch.
  • scrlayer-notecolumne:

    • Es gibt Dank Arndt Schubert eine gute englische Übersetzung der Anleitung.
  • scrlayer-scrpage:

    • Option pagestyleset wird nun auch dann korrekt verarbeitet, wenn sie bei \documentclass oder \usepackage angegeben wird. Der Workaround, sie per \KOMAoption oder \KOMAoptions zu setzen, entfällt damit.
    • Die Optionen standardstyle und komastyle führen nicht mehr zu einer Fehlermeldung wegen nicht definierter Option version. Es bleibt bei der Empfehlung diese veralteten Optionen durch Option pagestyleset zu ersetzen.
    • Das Seitenstil-Paar scrheadings + plain.scrheadings führt nicht mehr zu Problemen mit scrlttr2. Die Empfehlung mit scrlttr2 weiterhin scrpage2 zu verwenden entfällt damit.
    • Die Warnung wegen des in den Klassen nicht vorhanden Elements pagefoot wurde beseitigt.
  • scrlttr2:

    • Das Kompatibilitätsproblem mit scrlayer-scrpage wurde behoben.
    • Mit den Sprachen ngerman, austrian und naustrian wird nun „Telefon“ und „Mobiltelefon“ statt „Telephon“ und und „Mobiltelephon“ verwendet. Bei german bleibt es bei der Schreibweise mit „ph“. Wer das ändern will, kann
      \renewcaptionname{german}\phonename{Telefon}
      \renewcaptionname{german}\mobilephonename{Mobiltelefon}
      in die Dokumentpräambel einfügen.
    • Unterstützung von Polnisch (polish), Tschechisch (czech), Slovakisch (slovak) und diversen zusätzlichen Dialekten von Englisch, Deutsch und Französisch.
  • scrpage2:

    • Das Paket ist obsolet, bleibt aber vorerst mit eigener Anleitung (also nicht mehr in der KOMA-Script-Anleitung) Bestandteil von KOMA-Script.
3.12
  • scrartcl:

    • Die nicht verwendeten Anweisungen \chapterheadstartvskip und \chapterheadendvskip werden nicht mehr definiert.
  • scrartcl, scrbook, scrreprt:

    • Die undokumentierte Option emulatestandardclasses, die nur beim Laden der Klasse angegeben werden kann, ändert diverse Voreinstellungen so, dass sie der Standardklasse ähneln. Diese Option benötigt außerdem das Paket scrlayer-scrpage.
  • scrartcl, scrbook, scrreprt, scrlttr2:

    • Die Verwendung veralteter Font-Anweisungen wie \bf führt zu einer Warnung.
  • scrartcl, scrbook, scrreprt, scrextend:

    • Fehler bei den vertikalen Abstände von \captionabove und \captionbelow (und damit auch von \caption) in longtable bei Verwendung von

      color oder xcolor korrigiert.

    • Option captions=figureheading funktioniert.

    • Verwendung von captions=heading innerhalb einer figure-Umgebung funktioniert.

    • Der Code für \maketitle wurde teilweise neu geschrieben, damit per \thanks oder \footnote gesetzte Fußnoten auf der korrekten Seite ausgegeben werden. Gleichzeitig wird nun ein \extratitle bei gleichzeitiger Verwendung der Optionen titlepage=false und twocolumn nicht mehr als Kopf über dem Haupttitelkopf ausgegeben.

    • Außer bei Kompatibilität zu früheren Versionen können in einem Dokument mehrere \maketitle-Anweisungen einschließlich mehrerer Titeldefinitionen verwendet werden.

    • Außer bei Kompatibilität zu früheren Versionen wird die Rückseite der Titelseite nur noch erzeugt, wenn diese einen Inhalt hat oder eine Widmungsseite folgt.

    • Option titlepage=firstiscover formatiert die erste mit \maketitle erstellte Titelseite als Umschlagseite mit abweichenden Rändern. Die Ränder können durch Umdefinierung von \coverpagetopmargin, \coverpagebottommargin, \coverpageleftmargin und \coverpagerightmargin verändert werden. In der Voreinstellungen entspricht \coverpagestopmargin dem oberen Rand des Dokuments ohne die Kopfzeile(n), \coverpagebottommargin ist das Doppelte davon, \coverpageleftmargin und \coverpagerightmargin entsprechen dem linken Rand einer linken Seite.

    • Neue Font-Elemente titlehead, author, date, publishers, dedication.

    • Mit bibliography=leveldown kann das Literaturverzeichnis eine Gliederungsebene nach unten verschoben werden (vgl. listof=leveldown).

    • Um die bekannten Probleme bezüglich der Kopfzeile bei Verwendung von \addchap oder \addsec zusammen mit Kopfzeilenpaketen wie scrpage2 oder fancyhdr beherrschbarer zu machen, werden auch diese beiden Befehle künftig \chaptermark bzw. \sectionmark aufrufen, zuvor aber lokal \if@mainmatter auf \iffalse setzen und secnumdepth auf -1. Wenn Anwender und Pakete bei der Umdefinierung von \chaptermark bzw. \sectionmark sauber gearbeitet haben, führt das zum korrekten Ergebnis. Anderenfalls enthält die Kopfzeile unerwünschter Weise eine Nummer und der Anwender muss ggf. nacharbeiten. Die Korrektur ist dann jedoch in jedem Fall einfach zu bewerkstelligen. Bei dieser Gelegenheit sei darauf hingewiesen, dass fancyhdr in seinem vordefinierten \chaptermark \if@mainmatter zwar ignoriert, secnumdepth aber sowohl bei \chaptermark als auch \sectionmark durchaus beachtet.

    • Neue Optionen toc=numberline, toc=nonumberline, listof=numberline bzw. listof=nonumberline um das neue tocbasic-Feature numberline für das Inhaltsverzeichnis bzw. die Gleitumgebungsverzeichnisse zu aktivieren und zu deaktivieren.

    • Intern werden nun alle Verzeichniseinträge via \addchaptertocentry, \addsectiontocentry etc. mit \addxcontentsline (siehe tocbasic-Änderungen) erstellt.

    • Unterstützung für \float@addtolists weitgehend entfernt (wie seit Jahren angekündigt).

  • scrartcl, scrbook, scrreprt, scrextend, scrlttr2:

    • Option fontsize: Außer bei Verwendung von Option version=3.11b (oder kleiner) werden \intextsep, \floatsep und \dblfloatsep bei der Notlösung für berechnete Schriftgrößen nun auf korrekte Werte gesetzt. Abstände größer 0pt und kleiner 1pt werden auf 1pt gerundet.
    • \usesizeofkomafont{Element}: schaltet nur auf die Schriftgröße und den Grundlinienabstand des angegebenen Elements um.
    • \useencodingofkomafont{Element}: schaltet nur auf das Font-Encoding des angegebenen Elements um.
    • \usefamilyofkomafont{Element}: schaltet nur auf die Font-Family des angegebenen Elements um.
    • \useseriesofkomafont{Element}: schaltet nur auf die Font-Series des angegebenen Elements um.
    • \useshapeofkomafont{Element}: schaltet nur auf die Font-Shape des angegebenen Elements um.
    • \usefontofkomafont{Element}: schaltet nur auf die (oben genannten) Schriftattribute des angegebenen Elements um. Das ist insbesondere dann von Interesse, wenn im Element entgegen der ursprünglichen Spezifikation auch andere Dinge wie die Farbe festgelegt sind.
  • scrbase:

    • \ifstrstart{Zeichenfolge}{Zeichenfolge}{Dann-Teil}{Sonst-Teil} expandiert die beiden Zeichenketten und führt den Dann-Code genau dann aus, wenn abgesehen von Leerzeichen die erste Zeichenkette mit der zweiten beginnt.
    • \ifisdim{Zeichenfolge}{Dann-Teil}{Sonst-Teil} führt den Dann-Code genau dann aus, wenn die Expansion der Zeichenfolge in einem \dimen, also einem TeX-Längenregister resultiert. Anderenfalls wird der Sonst-Code ausgeführt. Die Anweisungen \ifisskip, \ifiscount, \ifisdimexpr, \ifisglueexpr und \ifisnumexpr funktionieren entsprechend, wobei bei den letzten drei fehlerhafte Ausdrücke zu Fehlermeldungen führen.
    • \ifiscounter{LaTeX-Zähler}{Dann-Teil}{Sonst-Teil} führt den Dann-Code genau dann aus, wenn der LaTeX-Zähler bereits definiert ist. Anderenfalls wird der Sonst-Code ausgeführt.
    • Die Behandlung nicht bekannter Werte wird sich komplett ändern. Dies hat Auswirkungen auf die Definition eigener Optionen mit allen von scrbase dafür bereitgestellten Befehlen. Da es bisher in TeX Live kein einziges Paket gibt, das darauf zurückgreift, sehe ich jedoch kein großes Problem darin. Zur Vermeidung der gravierendsten möglichen Probleme, wird das bisherige eher unzureichend dokumentierte Verhalten zwar nicht adaptiert, aber das bisherige Vorgehen zumindest zum Teil toleriert. Trotzdem werden teilweise Änderungen erforderlich sein, teilweise sind sie ratsam. KOMA-Script selbst wird in allen Bereichen die entsprechenden, notwendigen Änderungen erfahren.
    • Neue Anweisung \defcaptionname zu unbedingten Definierung eines sprachabhängigen Bezeichners.
    • Die Anweisungen \defcaptionname, \newcaptionname, \renewcaptionname und \providecaptionname definieren einen Begriff in \extrasSprache, falls der Begriff bereits darin definiert war, sonst wird weiterhin \captionsSprache verwendet. Zusätzlich existiert jeweils eine Sternvariante, die immer \extrasSprache verwendet. Dazu wurden all diese Befehle komplett neu implementiert.
    • Die Anweisungen \defcaptionname, \newcaptionname, \renewcaptionname und \providecaptionname akzeptieren in ihrem ersten Argument nun eine durch Komma getrennte Liste von Sprachen. Leerzeichen sind in dieser Liste jedoch nicht erlaubt!
    • Die Anweisungen \defcaptionname, \newcaptionname, \renewcaptionname und \providecaptionname werden nun automatisch bis \begin{document} verzögert, falls sie vorher verwendet werden, was ausdrücklich erwünscht ist.
      Hinweis: Die Änderungen bei \defcaptionname etc. werden einfach durch folgendes Beispiel offenbar, das nun wie gewünscht funktioniert:
      \documentclass{scrartcl}
      \usepackage[ngerman,naustrian,german]{babel}
      \usepackage{hyperref}
      \renewcaptionname{ngerman,naustrian}\figureautorefname{Abb.}
      \begin{document}
      \section{Test A (german)}
      Siehe dazu auch \autoref{fig:TestA}, \autoref{fig:TestB} und
      \autoref{fig:TestC}.
      \begin{figure}
        \centering
        \rule{1cm}{1cm}
        \caption{Testabbildung A}
        \label{fig:TestA}
      \end{figure}
      
      \selectlanguage{naustrian}
      \section{Test B (naustrian)}
      Siehe dazu auch \autoref{fig:TestA}, \autoref{fig:TestB} und
      \autoref{fig:TestC}.
      \begin{figure}
        \centering
        \rule{1cm}{1cm}
        \caption{Testabbildung B}
        \label{fig:TestB}
      \end{figure}
      
      \selectlanguage{ngerman}
      \section{Test B (ngerman)}
      Siehe dazu auch \autoref{fig:TestA}, \autoref{fig:TestB} und
      \autoref{fig:TestC}.
      \begin{figure}
        \centering
        \rule{1cm}{1cm}
        \caption{Testabbildung C}
        \label{fig:TestC}
      \end{figure}
      \end{document}
  • scrjura:

    • \Paragraph und \SubParagraph führen im horizontalen Modus zu keiner Fehlermeldung mehr.
    • Der hängende Einzug von Überschriften mit \Paragraph und \SubParagraph wurde korrigiert.
    • Die bisher nicht dokumentierte Anweisung \paragraphformat wurde aus Gründen der Konsistenz in \Paragraphformat umbenannt.
    • Es sind nun Paragraphen bzw. Subparagraphen mit derselben Nummer möglich.
  • scrlayer, scrlayer-scrpage:

    • Diese Pakete werden Teil von KOMA-Script und ersetzen künftig scrpage2.
  • scrlettr:

    • Nachdem der Support für diese Klasse bereits seit Jahren eingestellt ist und auch seit Jahren empfohlen wird, stattdessen scrlttr2 zu verwenden, wird diese Klasse zukünftig nicht mehr Teil der Distribution von KOMA-Script sein. Wer die Klasse haben will, muss sie sich ggf. aus den Quellen selbst erzeugen, die im Repository erhalten bleiben.
  • scrlfile:

    • \ReplaceInput ist nun entsprechend der Anleitung verfügbar.
    • \UnPreventPackageFromLoading{Paketliste} entfernt nur die aufgeführten Pakete von der Verhinderungsliste. Es existiert auch eine Sternvariante, die außerdem den Stattdessencode (siehe neues optionales Argument von \PreventPackageFromLoading) beseitigt.
    • \PreventPackageFromLoading und die Sternvariante haben ein neues optionales, erstes Argument, in dem Code angegeben werden kann, der an Stelle des Ladens des Pakets verwendet werden kann. Pakete oder andere Dateien dürfen an dieser Stelle jedoch nicht geladen werden.
    • Die undokumentierte Anweisung \ReplaceFile erzeugt nun eine Fehlermeldung.
    • Mit den neuen Anweisungen UnReplaceFile{Dateiname}, UnReplacePackage{Paketname} und UnReplaceClass{Klassenname} kann die Ersetzung einer Datei, eines Pakets oder einer Klasse wieder aufgehoben werden.
  • scrlttr2:

    • Der Fehler bei Verwendung ohne Sprachpaket aber mit dem hyphen.cfg aus babel im Format wurde behoben. Es wird trotzdem empfohlen, auch für Englisch babel zu laden.
    • Option symbolicnames schaltet für diverse Elemente des Absenders von sprachabhängigen Bezeichnern zu sprachunabhängigen Symbolen des Pakets marvosym um. Dies betrifft fromphone, frommobilephone, fromfax und fromemail. Gleichzeitig wird für fromurl der Bezeichner abgeschaltet. Die Trennzeichen werden entsprechend angepasst (Doppelpunkt entfällt).
    • Es gibt eine neue Variable frommobilephone und eine gleichnamige Option, um die Handynummer in den Briefkopf zu bekommen. Es erfolgt jedoch kein Test, ob der Briefkopf dadurch ggf. zu hoch wird!
    • Die Klasse funktioniert mit einem babel-3.9f-basierten LaTeX-Format auch ohne dass das Paket babel geladen wird.
    • Das neue Font-Element placeanddate wird verwendet, wenn statt einer vollen Geschäftszeile nur eine Zeile mit Ort und Datum gesetzt wird.
  • scrpage:

    • Nachdem der Support für dieses Paket bereits seit Jahren eingestellt ist und auch seit Jahren empfohlen wird, stattdessen scrpage2 zu verwenden, wird das Paket zukünftig nicht mehr Teil meiner TDS-Distribution von KOMA-Script sein. Wer das Paket haben will, muss es sich ggf. aus den Quellen selbst erzeugen, die im Repository erhalten bleiben.
  • scrpage2:

    • Die Erkennung, ob beim Laden des Pakets bereits automatische oder manuelle Kolumnentitel eingestellt sind, wurde verbessert. Es bleibt jedoch bei der Empfehlung, das Paket immer entweder mit Option automark oder manualmark zu laden, um klare Verhältnisse zu schaffen.
    • Die vertikale Position der unteren Fußlinie wurde korrigiert.
    • Die vertikale Position des Kopfes bzw. der oberen Kopflinie wurde korrigiert.
    • Einige Dinge dieses Pakets werden als überholt (deprecated) deklariert.
  • scrwfile:

    • Der Konflikt mit hyperref während des ersten LaTeX-Laufs wurde behoben.
  • tocbasic:

    • Option floatpos in \DeclareNewTOC korrigiert.
    • Die Werte der Optionen atbegin und atend werden nun bei \DeclareNewTOC nicht mehr unmittelbar expandiert. Dadurch entfällt der Workaround:
      \makeatletter
      \@ifpackagelater{tocbasic}{2012/04/05}{}{%
      \define@key{tocbasic}{atbegin}{%
      \def\tb@nt@atbegin{#1}%
      }
      \define@key{tocbasic}{atend}{%
      \def\tb@nt@atend{#1}%
      }
      }
      \makeatother
      in der Dokumentpräambel vor der ersten Verwendung von \DeclareNewTOC.
    • \DeclareNewTOC deklariert nun selbst einen Verzeichnispräfix für Einträge. So dass bei Verwendung von KOMA-Script-Option listof=entryprefix nicht mehr selbst ein solcher Präfix mit
      \providecommand*{\listof{<Dateiendung>entryname}{<Präfix>}
      definiert werden muss.
    • Es gibt ein neues Feature numberline, das auch bei nicht nummerierten Einträgen für einen Einzug des Textes wie bei nummerierten Einträgen sorgt. Dazu müssen diese Einträge aber entweder \nonumberline selbst vor dem Text einfügen oder mit \addxcontentsline erstellt worden sein.
    • Die Verwendung des neuen Befehls \addxcontentsline{Dateierweiterung}{Eintragstyp}[Nummer]{Text} wird an Stelle von \addcontentsline empfohlen. Für nummerierte Einträge ist dabei das optionale Argument zu verwenden, für nicht nummerierte ist dieses entweder weg oder leer zu lassen. Diese Anweisung ermöglicht im Gegensatz zu \addcontentsline die Berücksichtigung von numberline (s. o.).
    • Die Anweisung \addxcontentslinetoeachtocfile[Besitzer]{Dateierweiterung}{Eintragstyp}[Nummer]{Text} analog zu \addcontentslinetoeachtocfile.
  • tocstyle:

    • Das Paket verwendet endlich die Font-Elemente partentry, partentrypagenumber, chapterentry, chapterentrypagenumber, sectionentry und sectionentrypagenumber wenn eine entsprechende KOMA-Script-Klasse geladen ist.
  • typearea:

    • Option footheight=Länge kann analog zu headheight verwendet werden, um die Höhe des Fußes einzustellen (wichtig vor allem bei Option footinclude).
    • Option footlines=Anzahl kann analog zu headlines verwendet werden, um die Höhe des Fußes einzustellen (wichtig vor allem bei Option footinclude).
3.11b
  • scrbook, scrreprt:
    • Die vertikale Ausrichtung von \addpart wurde entsprechend der von \part korrigiert.
3.11a
  • scrbase:

    • Globale Optionen mit nummerischen Werten, die per \FamilyNumericalKey oder unter Verwendung von \FamilySetNumerical definiert wurden, werden nicht mehr aus der Liste der unbekannten, globalen Optionen entfernt, wenn ihnen ein unbekannter Wert übergeben wurde.
    • Unbekannte Werte für globale Optionen – das sind Optionen bei \documentclass – führen bei \FamilyProcessOptions generell nicht mehr zu Fehlermeldungen, sondern ggf. zu einer Info in der log-Datei und der Standard-LaTeX-Warnung über nicht verwendete globale Optionen.
    • Fehlermeldungen zu unbekannten Werten für boolsche Operationen korrigiert. Hier wurde anstelle des falschen Werts eine interne Information ausgegeben, die für Anwender nutzlos war.
    • Ein Problem mit neuen Werten für alte Optionen bei Verwendung von \LoadClassWithOptions wurde behoben.
  • scrlfile:

    • Problem mit dem Vergessen von bisher ausgeschlossenen Paketen bei erneutem \PreventPackageFromLoading behoben. Der Workaround
      \usepackage{etoolbox}
      
      \makeatletter
      \patchcmd{\PreventPackageFromLoading}{%
      \edef\scrlfile@excludedpackages{,\reserved@a}%
      }{%
      \edef\scrlfile@excludedpackages{\scrlfile@excludedpackages,\reserved@a}%
      }{\typeout{Patch done}}{\typeout{Patch not needed, not done}}
      \makeatother
      wird also nicht mehr benötigt.
3.11
  • Die englische Anleitung hatte teilweise noch den alten Aufbau und gab noch nicht alle neuen Möglichkeiten von KOMA-Script 3 an. Ab jetzt entspricht die englische Anleitung endlich der deutschen. Danke an alle Helfer!

  • scrartcl, scrbook, scrreprt:

    • Meldung
      (\end occured when \ifx on line XX was incomplete)
      bei Verwendung von \addpart,ggf. auch in Verbindung mit Fehlermeldungen, beispielsweise, wenn \addpart in einer per \include geladenen Datei steht, behoben. Ursache war ein fehlendes \fi in \@addpart.
      Workaround war:
      % Put this code into the preamble of your document
      \usepackage{etoolbox}
      \makeatletter
      \patchcmd{\@addpart}{%
      \ifx\scr@ds@tocentry\@empty\else
      \expandafter\addparttocentry\expandafter{\expandafter}\expandafter{%
      \scr@ds@tocentry}%
      \@spart{#2}%
      }{%
      \ifx\scr@ds@tocentry\@empty\else
      \expandafter\addparttocentry\expandafter{\expandafter}\expandafter{%
      \scr@ds@tocentry}%
      \fi
      \@spart{#2}%
      }{}{}
      \makeatother
      in der Dokumentpräambel
  • scrartcl, scrbook, scrreprt, scrlttr2:

    • Fehlermeldung
      ! Undefined control sequence.
       \@EverySelectfont@Init
      l.144 \if@raggedtwoe@footmisc
      beim Laden von ragged2e oder everysel innerhalb von \begin{document} behoben. Dieser trat beispielsweise bei Verwendung von Paket sidecap auf.
      Workaround war ein explizites \usepackage{everysel} vor \begin{document}.
  • typeare:

    • \AfterSettingArea analog zu \AfterCalculatingTypearea aber für \areaset statt für \typearea.
    • areasetadvanced=true ist eine experimentelle Option, um die Randberechnung von \areaset weiter an die Randberechnung von \typearea anzunähern. Allerdings werden hier oberer und unterer Rand direkt verteilt, während bei \typearea bekanntlich nur der untere Rand angepasst wird, um die Höhe des Satzspiegels durch Zeilen teilbar zu erhalten. Auf den Namen und die Funktion dieser Option sollte man sich noch nicht verlassen. Sie wird daher auch vorerst nicht offiziell dokumentiert!
3.10a
  • scrartcl, scrbook, scrreprt:
    • Fehlermeldung
      ! Argument of \MakeMarkcase has an extra }.
      <inserted text> 
                      \par 
      l.1 \begin{theindex}
      
      Runaway argument?
      ! Paragraph ended before \MakeMarkcase was complete.
      <to be read again> 
                         \par 
      l.1 \begin{theindex}
      beim Einbinden eines Index aufgrund einer falschen Klammerung in der Definition von \idx@heading behoben. Workaround war:
      \makeatletter
      \@ifclassloaded{scrartcl}{%
        \CheckCommand*{\idx@heading}{%
      	\twocolumn[\idx@@heading{\indexname}]%
      	\@mkboth{\MakeMarkcase{\indexname}}\MakeMarkcase{{\indexname}}%
        }%
        \renewcommand*{\idx@heading}{%
      	\twocolumn[\idx@@heading{\indexname}]%
      	\@mkboth{\MakeMarkcase{\indexname}}{\MakeMarkcase{\indexname}}%
        }%
      }{%
        \CheckCommand*{\idx@heading}{%
      	\if@openright\cleardoublepage\else\clearpage\fi%
      	\twocolumn[\idx@@heading{\indexname}]%
      	\@mkboth{\MakeMarkcase{\indexname}}\MakeMarkcase{{\indexname}}%
        }%
        \renewcommand*{\idx@heading}{%
      	\if@openright\cleardoublepage\else\clearpage\fi%
      	\twocolumn[\idx@@heading{\indexname}]%
      	\@mkboth{\MakeMarkcase{\indexname}}{\MakeMarkcase{\indexname}}%
        }%
      }
      \makeatother
3.10
  • scrartcl, scrbook, scrreprt:

    • \MakeMarkcase wird in allen automatisch erzeugten Kolumnentiteln beachtet.
    • headings=optiontotocandhead oder headings=optiontoheadandtoc aktiviert die Erweiterung für das optionale Argument der Gliederungsbefehle. In der Voreinstellung wird das optionale Argument für Kolumnentitel und Inhaltsverzeichniseintrag verwendet.
    • headings=optiontotoc aktiviert die Erweiterung für das optionale Argument der Gliederungsbefehle. In der Voreinstellung wird das optionale Argument nur für den Inhaltsverzeichniseintrag verwendet.
    • headings=optiontohead aktiviert die Erweiterung für das optionale Argument der Gliederungsbefehle. In der Voreinstellung wird das optionale Argument nur für den Kolumnentitel verwendet.
    • Ist die Erweiterung für das optionale Argument der Gliederungsbefehle aktiv und befindet sich ein Gleichheitszeichen im optionalen Argument eines Gliederungsbefehls, so wird das Argument als Schlüssel=Wert Liste mit folgenden Schlüsseln interpretiert:
      • head=Text: Für den Kolumneneintrag wird Text verwendet. Es wird empfohlen Text in geschweifte Klammern zu setzen.
      • tocentry=Text: Für den Inhaltsverzeichniseintrag wird Text verwendet. Ist Text komplett leer, so wird kein Inhaltsverzeichniseintrag erzeugt. Es wird empfohlen nicht leere Werte für Text in geschweifte Klammern zu setzen.
    • Ist das Argument für den Inhaltsverzeichniseintrag eines Gliederungsbefehls leer, so wird kein Inhaltsverzeichniseintrag erzeugt.
  • scrartcl, scrbook, scrreprt, scrextend, scrlttr2:

    • Option footnotes=multiple funktioniert nun auch als Klassen- bzw. Paketoption.
      Workaround: Verwendung von \KOMAoptions oder \KOMAoption.
    • Option parskip funktioniert nun auch bei Verwendung von Paket tracefnt.
    • Option parskip funktioniert bei Verwendung von Paket everysel nun auch nach \begin{document}.
  • scrextend: Option footnotes=multiple funktionierte nun auch bei Verwendung einer Standardklasse nicht wie dokumentiert ohne den Workaround: \deffootnotemark{\textsuperscript{\thefootnotemark}} in der Dokumentpräambel nach dem Laden von scrextend.

  • scrjura: Die Nummerierung des ersten Absatzes funktioniert bei Verwendung von Option number für \Paragraph oder \SubParagraph funktioniert wieder.

  • scrwfile: Neues Paket wurde integriert, nachdem sich endlich einige Tester gefunden haben.

    • \TOCclone[Verzeichnisname]{Kürzel des Quellverzeichnisses}{Kürzel des Zielverzeichnisses}: Kopiert alle Einträge für das Quellverzeichnis in das Zielverzeichnis. Mit Hilfe des optionalen Arguments kann außerdem ein neues Zielverzeichnis definiert werden.
    • \@starttoc benötigt kein \newwrite mehr, was zu einer signifikanten Reduzierung der Anzahl der benötigten \newwrite führt.

Version 3.00 bis 3.09a#

3.09a
  • scrbase: Die Optionen und ihre Werte werden nicht mehr vollständig expandiert. Dadurch bleiben Makros im Wert ggf. über das gesamte Dokument hinweg erhalten. In erster Linie werden dadurch aber die Fehlermeldungen:
    ! Argument of … has an extra }.
    beseitigt.
    Ursache: Bei Verwendung von sogenannten zerbrechlichen Anweisungen innerhalb der Werte konnte die vollständige Expansion u. a. zu obiger Fehlermeldung führen. Abhilfe schafft hier normalerweise die Verwendung von \protect vor der zerbrechlichen Anweisung.
  • tocbasic: Per \DeclareNewTOC implementierte Gleitumgebungen unterstützen auch das optionale Argument für die Gleitposition.
3.09
  • scrartcl, scrbook, scrreprt:

    • \captionaboveof{Gleitumgebung}[Verzeichniseintrag}{Titel}: fügt einen als Überschrift formatierten Gleitumgebungstitel ein und funktioniert im Unterschied zu \caption auch außerhalb einer Gleitumgebung.
    • \captionbelowof{Gleitumgebung}[Verzeichniseintrag}{Titel}: fügt einen als Unterschrift formatierten Gleitumgebungstitel ein und funktioniert im Unterschied zu \caption auch außerhalb einer Gleitumgebung.
    • captions=(heading|above|top): Die Funktion von \caption wird auf \captionabove, die von \captionof auf \captionaboveof eingestellt.
    • captions=(signature|below|bot|bottom): Die Funktion von \caption wird auf \captionbelow, die von \captionof auf \captionbelowof eingestellt.
    • captions=(figureheading|figureabove|abovefigure|topatfigure): Die Funktion von \caption wird innerhalb von figure- und figure*-Umgebungen auf \captionabove eingestellt.
    • captions=(figuresignature|figurebelow|belowfigure|bottomatfigure): Die Funktion von \caption wird innerhalb von figure- und figure*-Umgebungen auf \captionbelow eingestellt.
  • scrbase:

    • Anweisungen \FamilyNumericalKey funktioniert auch mit leerem optionalem Argument.
    • Anweisung \FamilyKeyString korrigiert.
  • scrdate:

    • Unterstützung für die bereits in Version 3.08a dokumentierte Sprache austrian.
    • Unterstützung für die Sprache naustrian.
  • scrfontsizes: Neues Paket zur Generierung von Schriftgrößendateien.

    • \generatefontfile{Dateinamenpreäfix}[Grundlinienabstand]{Schriftgröße}: Erzeugt eine neue Schriftgrößendatei. Dazu bedient es sich der Anweisung \changefontsizes. Als Dateinamenpräfix ist alles erlaubt außer »scrsize«. Die mit KOMA-Script ausgelieferten Schriftgrößendateien können auf diesem Weg also nicht ersetzt werden. Um eine der erzeugten Dateien zu verwenden, muss man daher zunächst \@fontsizefilebase umdefinieren.__ Ein einfaches Beispiel zur Erzeugung der Datei test10dd.clo wäre daher:
      \documentclass{minimal}
      \usepackage{scrfontsizes}
      \generatefontfile{test}{10dd}
      \begin{document}\end{document}
      Danach kann man die so erzeugte Datei weiter anpassen, beispielsweise wenn \small andere Einstellungen verwenden soll. Verwenden kann man die Datei dann in einem beliebigen KOMA-Script-Dokument beispielsweise so:
      \makeatletter
      \renewcommand*{\@fontsizefilebase}{test}
      \makeatother
      \documentclass[fontsize=10dd]{scrartcl}
      Wie das Beispiel zeigt, ist das ganze eher etwas für Autoren von Wrapperklassen, die bestimmte Schriftgrößeneinstellungen vornehmen müssen, aber nicht alles von Hand machen wollen. Die Anweisung kann übrigens nur in der Dokumentpräambel verwendet werden.
  • scrlfile:

    • \AfterClass+{Klasse}{Anweisungen}: Führt die Anweisungen aus, falls oder sobald die Klasse vollständig geladen wurde, aber – falls die Klasse zum Zeitpunkt des Aufrufs noch nicht vollständig geladen wurde – noch bevor \AtEndOfClass-Code ausgeführt wird.
    • \AfterClass!{Klasse}{Anweisungen}: Führt Anweisungen aus, falls oder sobald die Klasse vollständig geladen und auch \AtEndOfClass-Code ausgeführt wurde. Die Ausführung findet daher grundsätzlich nicht mehr im Kontext der Klasse statt.

    Der Unterschied zwischen \AfterClass*, \AfterClass+ und \AfterClass! erschließt sich nur bei Betrachtung des Falls, dass Klasse gerade geladen wird, wenn die Anweisung für diese Klasse aufgerufen wird.

    • \AfterAtEndOfClass{Klasse}{Anweisungen}: Diese Anweisung arbeitet grundsätzlich wie \AfterClass, führt die angegebenen Anweisungen aber nach \AtEndOfClass-Anweisungen der jeweiligen Klasse und nicht mehr im Kontext der Klasse aus.
    • \AfterPackage+{Paket}{Anweisungen}: Führt die Anweisungen aus, falls oder sobald das Paket vollständig geladen wurde, aber – falls das Palet zum Zeitpunkt des Aufrufs noch nicht vollständig geladen wurde – noch bevor \AtEndOfPackage-Code ausgeführt wird.
    • \AfterPackage!{Paket}{Anweisungen}: Führt Anweisungen aus, falls oder sobald das Paket vollständig geladen und auch \AtEndOfPackage-Code ausgeführt wurde. Die Ausführung findet damit auch grundsätzlich nicht mehr in Kontext des Pakets statt.

    Der Unterschied zwischen \AfterPackage*, \AfterPackage+ und \AfterPackage! erschließt sich nur bei Betrachtung des Falls, dass Paket gerade geladen wird, wenn die entsprechende Anweisung für dieses Paket aufgerufen wird. So ergibt beispielsweise:

    \begin{filecontents}{requireA.sty}
    \ProvidesPackage{requireA}
    \AtEndOfPackage{\typeout{AtEndOfPackage by A}}
    \RequirePackage{requireB}
    \typeout{finish package requireA}
    \end{filecontents}
    \begin{filecontents}{requireB.sty}
    \ProvidesPackage{requireB}
    \AfterPackage+{requireA}{\typeout{>+ from B}}
    \AfterPackage!{requireA}{\typeout{>! from B}}
    \AfterPackage*{requireA}{\typeout{>* from B}}
    \AfterPackage{requireA}{\typeout{>from B}}
    \end{filecontents}
    
    \documentclass{article}
    \usepackage{scrlfile}
    \AfterPackage!{requireA}{\typeout{>! global}}
    \AfterPackage+{requireA}{\typeout{>+ global}}
    \AfterPackage*{requireA}{\typeout{>* global}}
    \AfterPackage{requireA}{\typeout{>global}}
    \usepackage{requireA}
    \begin{document}
    \end{document}

    die Ausgabe:

    (./requireA.sty (./requireB.sty
    >* from B
    )
    finish package requireA
    )
    >+ global
    >* global
    >global
    >+ from B
    >from B
    AtEndOfPackage by A
    >! global
    >! from B

    Man beachte hier die sehr unterschiedliche Positionen der Ausgaben »>* from B«, »>+ from B« und »>! from B«.

    • \AfterAtEndOfPackage{Paket}{Anweisungen}: Diese Anweisung arbeitet grundsätzlich wie \AfterPackage, führt die angegebenen Anweisungen aber nach \AtEndOfPackage-Anweisungen des jeweiligen Pakets und nicht mehr im Kontext des Pakets aus.
  • scrlttr2:

    • refline=dateleft: Setzt das Datum in der Geschäftszeile links.
    • refline=dateright: Setzt das Datum in der Geschäftszeile rechts (Voreinstellung).
    • refline=nodate: Setzt das Datum gar nicht in der Geschäftszeile.
    • Die Sprache naustrian wird unterstützt.
  • tocbasic:

    • \DeclareNewTOC kennt die neue Option atbegin=Code, um am Anfang der gleitenden oder nicht gleitenden Umgebung Code ausführen zu lassen.
    • \DeclareNewTOC kennt die neue Option atend=Code, um am Ende der gleitenden oder nicht gleitenden Umgebung Code ausführen zu lassen.
    • Behebung einer Endlosschleife (\def\@currext{\@currext}) bei Verwendung von \listofeachtoc mit optionalem Argument.
3.08a
  • scrlttr2: Die für Version 3.08 beschriebenen Änderungen bezüglich \firsthead, \firstfoot, \nexthead und \nextfoot sind in der Anleitung dokumentiert.
  • scrlfile: Behebung der Fehlermeldung bei Verwendung von ntheorem:
    ERROR: LaTeX Error: Command \@gobbleopt already defined.
    Ursache: Das Paket definiert diese Anweisung, die auch von scrlfile definiert wird, ebenfalls und verwendet dabei \newcommand. Denselben Fehler gibt es übrigens, wenn man bei Verwendung einer beliebigen Klasse das Paket nohyperref vor ntheorem lädt.
    Workaround: Folgendes noch vor dem Laden von ntheorem sollte helfen:
    \makeatletter
    \BeforePackage{ntheorem}{%
      \let\@gobbleopt\relax
      \AtEndOfPackage{\renewcommand{\@gobbleopt}[1][]{}}%
    }
    \makeatother
3.08
  • scrartcl, scrbook, scrreprt, scrlttr2:
    • parskip=never: Diese neue Einstellung fügt im Gegensatz zu parskip=false auch dann keinen vertikalen Abstand zwischen den Absätzen ein, wenn dies für den vertikalen Ausgleich (siehe Anweisung \flushbottom) notwendig wäre.
    • parskip=…: Änderungen an der Absatzauszeichnung führen ein implizites \selectfont aus und sind deshalb ab dem nächsten Absatz verfügbar.
  • scrbase:
    • In der Optionenliste bzw. Werteliste von \FamilyOptions und \FamilyOption sind leere Elemente erlaubt. Dies widerspricht eindeutig der Spezifikation und Dokumentation der Befehle und wurde entgegen meiner Überzeugung nur implementiert, damit ich endlich meine Ruhe vor entsprechenden Anfragen habe.
    • \FamilyStringKey[Familienmitglied]{Familie}{Schlüssel}{\Makroname}: Abkürzung für \DefineFamilyKey[Familienmitglied]{Familie}{Schlüssel}{\def\Makroname{#1}}.
    • \FamilyStringKey[Familienmitglied]{Familie}{Schlüssel}[Säumniswert]{\Makroname}: Abkürzung für \DefineFamilyKey[Familienmitglied]{Familie}{Schlüssel}[Säumniswert]{\def\Makroname{#1}}.
  • scrbook, scrreprt: Das Font-Element chapterprefix, das bereits seit Version 2.96b existiert, wurde dokumentiert.
  • scrlttr2:
    • visualize.lco zeigt das Adressfeld und das Feld für die Absenderergänzung nun mit korrekter Höhe an.
    • Dank Benjamin Hell wird als Sprache nun auch Swedisch (swedish) und Dänisch (danish) unterstützt.
    • Die Anweisungen \firsthead, \firstfoot, \nexthead und \nextfoot werden durch die Variablen firsthead, firstfoot, nexthead und nextfoot ersetzt. Die alten Anweisungen funktionieren weiterhin, erzeugen aber entsprechende Warnungen. Die direkte Verwendung interner Anweisungen aus diesem Bereich funktioniert nur noch teilweise und erzeugt dann ebenfalls Warnungen. Die Änderungen verbessern scrlttr2 jedoch in Hinblick auf eine konsistente Benutzerschnittstelle. Außerdem ist damit beispielsweise möglich, innerhalb von nexthead auf den Inhalt von firsthead zuzugreifen. Das gilt auch dann, wenn der Inhalt von firsthead über Optionen automatisch festgelegt wird.
  • scrdate: Dank Benjamin Hell wird als Sprache nun auch Swedisch (swedish) und Dänisch (danish) unterstützt.
  • scrlfile:
    • Wird innerhalb von \BeforeClosingMainAux zum Schreiben in die aux-Datei auf \protected@write zurück gegriffen, so wird stattdessen automatisch die neue interne Anweisung \protected@immediate@write verwendet. Dadurch können Anweisung wie \addcontentsline oder \addtocontents in \BeforeClosingMainAux verwendet werden.
    • \PreventPackageFromLoading{Paketliste}: Für alle in Paketliste angegebenen Pakete wird verhindert, dass diese zukünftig geladen werden. Dies betrifft sowohl das Laden mit \usepackage als auch das Laden mit \RequirePackage also auch das Laden innerhalb von anderen Paketen, die zwingend auf die entsprechenden Pakete angewiesen sind! Wird die Anweisung mehrfach aufgerufen, so werden die neu angegebenen Pakete an die bereits existierende Ausnahmeliste angehängt.
    • \ResetPreventPackageFromLoading: Setzt die von \PreventPackageFromLoading definierte Ausnahmeliste zurück. Gleichzeitig werden die Umdefinierungen von \RequirePackage und \usepackage rückgängig gemacht.
    • \StorePreventPackageFromLoading{Macro}: Speichert die aktuelle Ausnahmeliste von \PreventPackageFromLoading im angegebenen Macro. Diese kann beispielsweise nach einem \ResetPreventPackageFromLoading verwendet werden, um die Liste mit \PreventPackageFromLoading{Macro}} wieder her zu stellen:
      \PreventPackageFromLoading{foo}% Verhindere, dass Paket foo geladen wird.
      \StorePreventPackageFromLoading{\MeineListe}% Speichere die aktuelle Ausnahmeliste in \MeineListe.
      \ResetPreventPackageFromLoading% Entferne die Ausnahmeliste und deren Behandlung und ...
      \usepackage{bar}% ... erlaube bar so alle möglichen Pakete zu laden.
      \PreventPackageFromLoading{\MeineListe}% Stelle die gespeicherte Ausnahmen wieder her.
3.07
  • scrbook, scrreprt, scrartcl, scrlttr2, scrextend: Mit Hilfe der Anweisungen \setkomafont und \addtokomafont kann über das neue Element footnoterule die Farbe der Fußnotentrennlinie geändert werden. Voreingestellt ist dabei keinerlei Änderung an Schrift oder Farbe der Linie.
3.06
  • 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: Mit Option pagesize=dvipdfmx wird die Fähigkeit des Programms dvipdfmx unterstützt, das Papierformat auch innerhalb des Dokuments per code>\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.

  • \MakeUppercase{\todayname} und \MakeLowercase{\todaysname} funktionierten mit scrdate nicht wie erwartet, sondern liefern immer unkown.
    Ursache: Die mangelnde Expandierbarkeit von \todaysname. Das Problem existierte vermutlich schon seit scrdate 1.0.
  • Die Umgebung addmargin fügte einen doppelten Absatzabstand ein, wenn sie unmittelbar nach einem Absatz verwendet wird.
    Ursache: \partopsep war falsch gesetzt.
    Notlösung: \parskip vor der Verwendung von addmargin lokal auf 0pt setzen.
3.05
  • scrlttr2: neue Pseudolängen firstheadhpos und firstfoothpos.
  • scrartcl, scrbook, scrreprt: \captionof wie auch von den Paketen capt-of und caption bekannt.
  • Die Verwendung einer obsoleten Option konnte u. U. zu einer Fehlermeldung statt einer reinen Warnung führen.
    Lösung: Die obsolete Option durch ihr eine aktuelle Option ersetzen.
  • In tocbasic gab es ein paar Fehler in Anweisungen, die von KOMA-Script selbst nicht verwendet werden.
3.04a
  • \KOMAoptions{titlepage=...} funktionierte im Gegensatz zu \documentclass[titlepage=...]{...} nicht.
    Ursache: Die Option wurde nicht zur Laufzeit, sondern bereits beim Laden der Klasse ausgewertet und beeinflusste dann nur die Definition von \maketitle und abstract.
    Lösung: Die Wahl bereits beim Laden der Klasse also im optionalen Argument von \documentclass treffen.
  • Die Verwendung von KOMAold für scrlttr2 führte zu der Fehlermeldung:
    Runaway argument?
    {\@setplength {foldmarkhpos}{3.5mm} \@setplength {tfoldmarkvpos}{103.\ETC.
    ! File ended while scanning use of \@setkomaname.
    Ursache: Die Generierung von KOMAold.lco aus scrklco.dtx war fehlerhaft.
3.04
  • Bei Verwendung von \addtoeachtocfile oder \listofeachtoc wurde ein Fehler wegen nicht definiertem \doforeachfocfile gemeldet.
    Ursache: Ein Tippfehler in tocbasic.sty bzw. tocbasic.dtx.
    Notnagel: In der Präambel \let\doforeachfocfile\doforeachtocfile einfügen.
  • Die dokumentierte Variable addresseeimage in scrlttr2 funktionierte nicht, sondern ergab eine Fehlermeldung.
    Ursache: Schreibfehler in der Klasse.
    Notlösung:
    \ifkomavar{addresseeimage}
      {\setkomavar{addresseeimage}{...}}
      {\setkomavar{addresseimage}{...}}
  • Die Kompatibilitätseinstellungen version=3.03 und version=3.03a führten zu demselben Ergebnis wie version=first.
    Workaround: Kompatibilitätseinstellung version=3.02c verwenden, die mit version=3.03 und version=3.03a identisch ist.
    Hinweis: Die Einstellung version=last ist von dem Problem nicht betroffen. Da diese Einstellung von der Version abhängig ist, ist sie jedoch im Gegensatz zu version=3.02c kein Ersatz für version=3.03 oder version=3.03a.
3.03a
  • Die labeling-Umgebung funktionierte nicht.
    Abhilfe: Folgenden Code in die Dokumentpräambel einfügen:
    \makeatletter
    \ifstr{\KOMAScriptVersion}{2009/04/01 v3.03 KOMA-Script}{%
      \renewenvironment{labeling}[2][]{%
        \def\sc@septext{#1}%
        \list{}{\settowidth{\labelwidth}{%
            {%
              \usekomafont{labelinglabel}{#2%
                \usekomafont{labelingseparator}{\sc@septext}}%
            }%
      	}%
          \leftmargin\labelwidth \advance\leftmargin by \labelsep
          \let\makelabel\labelinglabel
        }%
      }{%
        \endlist
      }%
    }{}
    \makeatother
  • Die Optionen chapterprefix and appendixprefix führten bei Sprachen wie Spanisch, bei denen ~ ein shortcut-Zeichen ist, zu Problemen.
    Abhilfe: Folgenden Code in die Dokumentpräambel einfügen:
    \newcommand*{\chapterformat}{%
      \mbox{\chapappifchapterprefix{\nobreakspace}\thechapter\autodot\enskip}%
    }
3.03
  • Verwendete man die seit 3.02 neue Möglichkeit per Font-Element labelinglabel oder labelingseparator die Schriften in einer labeling-Umgebung einzustellen, dann stimmt die Berechnung des längsten Elements nicht.
    Hintergrund: Es wurde schlicht vergessen, bei der Berechnung die entsprechenden Elemente bereits zur Anwendung zu bringen.
    Notlösung: Das Font-Element labelingseparator nicht verwenden, sondern stattdessen die Schrift des optionalen Argument direkt im optionalen Argument von labeling mit angeben. Das Element labelinglabel konnte verwendet werden, die entsprechende Schriftumschaltung sollte jedoch im obligatorischen Argument von labeling zusätzlich auch angegeben werden.
    Alternativlösung: Genau wie vor Version 3.02 arbeiten und die beiden Elemente bis ignorieren.
3.02b
  • Werden Verzeichnisse per Option nummeriert, fehlte die Nummer im Kolumnentitel.
  • Bei gleichzeitiger Verwendung von amsmath stimmte die vertikale Ausrichtung der Bildunterschriften nicht exakt.
    Ursache: amsmath definiert \smash inkompatibel um und KOMA-Script verlässt sich darauf, dass \smash wie im LaTeX-Kern definiert ist.
    Workaround: Vor dem Laden von amsmath folgende Zeilen in die Präambel einfügen:
    \makeatletter
    \let\orig@smash\smash
    \let\orig@scr@smashdp\scr@smashdp
    \renewcommand*{\scr@smashdp}{\let\smash\orig@smash\orig@scr@smashdp}
    \makeatother
    Damit wird dann an der kritischen Stelle die Originaldefinition verwendet. Da dies innerhalb einer Gruppe geschieht, wird ansonsten weiterhin die \smash Version von amsmath verwendet.
  • Wird die Schriftgröße für das Element caption beispielsweise per \setkomafont{caption}{\footnotesize} verkleinert, so wurden einzeilige \caption-Texte vertikal falsch (nämlich für \normalsize) ausgerichtet.
    Ursache: Bei der Sonderbehandlung für einzeilige \captions wurde die Schrift zu spät umgeschaltet.
    Workaround: Kann man auf die Sonderbehandlung für einzeilige captions verzichten, so hilft die Option captions=nooneline, die man beim Laden der Klasse oder per \KOMAoptions bzw. \KOMAoption setzen kann. Anderenfalls halft nur, das Setzen der \captions nicht der Klasse zu überlassen, sondern beispielsweise das Paket captions zusätzlich zu laden.
3.02a
  • Diese Version war ein Versehen. Offiziell gibt es sie nicht.
3.02
  • Bei Verwendung von scrpage2, Version 2.2f konnte es bei gleichzeitiger Verwendung von titlesec zu einer eigenartigen Fehlermeldung wegen angeblicher Undefined control sequence \def@onesidehead kommen.
    Ursache: Dämlicherweise hatte ich mit einem \string\if@mainmatter in einer Ausgabe die \if...\fi-Schachetelungserkennung von TeX ausgehebelt.
3.01b
  • \providecaptionname, \newcaptionname und \renewcaptionname funktionierten nur solange noch keine Sprache ausgewählt wurden korrekt. Wurde bereits eine Sprache ausgewählt, konnte die Entscheidung, ob der Begriff für diese Sprache neu ist, falsch sein. Dadurch konnte bei mehrsprachigen Dokumenten, bei denen Begriffe mit einer dieser Anweisungen definiert wurden, eine ungewollte Sprachenmischung entstehen.
  • Paket scrextend meldete Fehler, wenn Option extendedfeature=title nicht verwendet wurde.
    Notlösung: Die angegebenen Option verwenden und den Titel von scrextend bauen lassen.
3.01a
  • Die Verwendung von Absätzen in Fußnoten führte zu einer Fehlermeldung.
    Ursache: Die Umdefinierung von \@footnotetext erfolgte leider nicht long.
    Lösung: Die einfachste Lösung bestand darin \endgraf statt \par oder Leerzeile zu verwenden, weil dabei ein Absatz ausgeführt wird, ohne dass der Absatztest für das Argument, die erkennt.
    Hack: Sollte die Lösung aus irgendwelchen Gründen nicht in Frage kommen, konnte mit
    \makeatletter
    \renewcommand{\@footnotetext}[1]{\scr@saved@footnotetext{#1}\csname FN@mf@prepare\endcsname}
    \makeatother
    in der Präambel die Ursache des Problems beseitigt werden. Nachteil dieser Methode ist, dass das Dokument damit von einer internen Definition und internen Macros abhängig wurde und damit nicht zukunftssicher ist!
    Danke für die Problemanalyse und Meldung an: J. S.
3.01
  • Das Paket tocbasic enthält seit Version 1.0 die interne Anweisung \@addtotoclist. Leider definiert das Paket flowfram eine gleichlautende Anweisung. Dadurch konnte das Paket flowfram nicht zusammen mit tocbasic oder einer KOMA-Script-Klasse verwendet werden. Deshalb wurde \@addtotoclist in \scr@addtotoclist umbenannt.
    Ursache: Ich hatte bei der Implementierung von tocbasic versäumt interne Anweisungen darauf abzuklopfen, dass sie nicht bereits von anderen Paketen definiert werden.
  • Verzeichnisse im Zweispalten-Modus führten zu einer Fehlermeldung.
    Ursache: Ein Tippfehler im Paket tocbasic. Notlösung: \newcommand*{\twocolumne}{\twocolumn} in der Dokumentpräambel.
  • scrartcl schaltete bei Verzeichnissen in den Einspalten-Modus (bei den anderen Klassen war das schon immer so und ist dort korrekt). Ursache: Verzeichnisse werden ab KOMA-Script 3 mit dem Paket tocbasic gesetzt. In Version 1.0 dieses Pakets ist die Unterbindung der Umschaltung nicht vorgesehen. Ab Version 3.01 wird hingegen das Umschalten auf einspaltigen Satz als neue Eigenschaft definiert und entsprechend von den KOMA-Script-Klassen genutzt. Außer dass damit das alte Verhalten bei scrartcl wieder vorhanden ist, erhält der Anwender damit sozusagen als kleine Entschädigung eine Wahlmöglichkeit.
    Notlösung: \begingroup\let\onecolumn\relax\let\twocolumn\relax\tableofcontents\endgroup (für andere Verzeichnisse entsprechend).
  • Die Initialisierung von \topsep, \itemsep und \leftmargin fehlte in den Schriftgrößendateien, was beispielsweise zu Problemen mit amsthm führt.
    Notlösung: \makeatletter\@listi\makeatother nach dem Laden der Klasse einfügen.
3.00
  • Vermutlich alle Versionen von KOMA-Script erkannten bei nummerierten Verzeichnissen im Anhang nicht, dass diese nicht arabisch nummeriert werden und deshalb die Gliederungsnummern mit einem Punkt abschließen sollten. Dieser Fehler machte sich natürlich nur bemerkbar, wenn man außer Verzeichnissen keine weiteren nummerierten Kapitel oder Abschnitte im Anhang hat.
    Lösung: Manuell per Option den Punkt einschalten.

Version 2.95 bis 2.98c#

2.98c
  • Es fehlte noch die Übersetzung einer kleinen Passage in der englischen Anleitung.
  • Die Optionen headsepline, noheadsepline, footsepline und nofootsepline konnten nicht nach \begin{document} gesetzt werden. Notlösung: Diese Optionen vor \begin{document} setzen
2.98b
  • Es gab dummerweise noch immer einen Fehler beim Setzen der Absenderergänzung. Konkret wurde diese nicht gesetzt, wenn \firsthead verwendet wird.
2.98a
  • Die Option twocolumn in \documentclass schalteten auch die Option twoside auf denselben Wert.
    Lösung: Nach twocolumn=true oder twocolumn=false die Option twoside mit dem gewünschten Wert in einer eigenen \KOMAoptions-Anweisung setzen oder die Option twocolumn ausschließlich per \KOMAoptions setzen.
    Hintergrund: Die Optionen twocolumn und twoside sind eigentlich Satzspiegeloptionen und daher Optionen des Pakets typearea. Einige wenige Wrapper-Klassen-Autoren wollten aber unbedingt, dass sie die Option auch an die Klasse schicken können. Das steht zwar im Widerspruch zu meinen eigenen Überzeugungen, aber ich hatte mich mal wieder breit schlagen lassen. Dabei hatte ich zunächst implementiert, dass die KOMA-Script-Klassen die Option twoside an typearea weiterreichen. Danach habe ich diese Funktion für die Option twocolumn kopiert und dabei vergessen ein twoside in twocolumn zu ändern. Deshalb setzten nun die KOMA-Script-Klassen bei Angabe der Option twocolumn dessen Wert für das Paket typearea als Wert für twoside. Der Bug war damit aus zwei Gründen besonders ärgerlich: Zum einen war es ein Anfängerfehler. Zum anderen hätte es ihn nicht gegeben, wenn ich mich nicht mal wieder gegen meinen Überzeugungen hätte breit schlagen lassen.
  • Bei Verwendung der Option fromalign=center wurde der Inhalt der Variablen location von scrlttr2 nicht ausgegeben. Eigentlich entspricht dieses Verhalten dem, was in der Implementierungsdoku bereits in früheren Versionen angegeben war. Aus der Anwenderanleitung ging das jedoch so nicht hervor. Daher wurde die Verhaltenänderung als Bug deklariert und behoben.
2.98
  • Es gab noch ein paar kleinere Fehler in der englischen Anleitung, wie beispielsweise zwei nicht aufgelöste Referenzen.
  • In der Geschäftszeile wurden nicht nur die Bezeichner, sondern auch die Werte in \sffamily\scriptsize gesetzt.
    Lösung: \setkomafont{refvalue}{}
  • Wenn ein Betreff gesetzt ist, führte scrlttr2 eine \show-Anweisung aus, die von einigen LaTeX-Shells als Fehler interpretiert werden.
    Notlösung: Im interaktiven Modus einmal Taste Return/Enter drücken oder \renewcommand*{\show}[1]{} in die Präambel einfügen.
  • Wenn man nicht \setkomafont{refvalue}{} verwendet, stimmte das vertikal spacing beim Datum nicht.
    Notlösung: Die genannte Anweisung verwenden.
2.97d
  • Es gab noch ein paar kleinere Fehler in der englischen Anleitung.
  • Leerzeichnen in \KOMAoptions waren signifikant. Da in der Doku nicht explizit steht, dass das nicht der Fall ist, war das zwar kein Bug, es wurde aber dennoch behoben.
2.97c
  • Es gibt eine brauchbare englische Anleitung.

  • locfield=narrow verhielt sich wie locfield=wide und umgekehrt.

  • Bei Briefen lieferte \flushbottom teilweise unerwartete Ergebnisse.
    Lösung: Unmittelbar vor der Ende des Briefes \raggedbottom einfügen.

  • Unter ungünstigen Umständen führte die Verwendung des color- oder

    xcolor-Pakets zu unerwünschten Seitenumbrüchen beispielsweise zwischen aufeinanderfolgenden Überschriften.
    Lösung: \setkomafont{disposition}{\normalcolor\nobreak\sffamily\bfseries} in der Präambel einfügen.

2.97b
  • Die Verwendung der Option chapterprefix führte bei \chapter zu einer Fehlermeldung.
    Notlösung: \let\endgraph\endgraf in die Präambel einfügen.
  • Die Logik bei \ifundefined warf einen Fehler, falls man TeX an Stelle von e-TeX verwendet hat.
    Lösung: Entsprechend der Empfehlung des LaTeX-Teams e-TeX für LaTeX verwenden.
2.97a
  • Ein dummer Fehler in einer neuen Funktion von scrlfile führte zu Fehlermeldungen, wenn das optionale Argument beim Laden von Paketen oder Klassen mit \LoadClassWithOptions oder \RequiresPackageWithOptions verwendet wurde.
2.97
  • Kompatibilitätsprobleme mit ifvtex.sty behoben.
    Notlösung: Option internalonly=/ifvtex.
  • Option cleardoublestandard führte zu einer fehlerhaften Info-Ausgabe und einem Fehler.
    Empfehlung: Option weglassen, da Voreinstellung.
  • Das Automatische Setzen des Punktes bei Gliederungnummern (falls in der Gliederung auch römische Zahlen oder Buchstaben vorkommen) funktionierte nicht.
    Notlösung: Den Punkt per Option erzwingen.
  • In der Anleitung fehlten alle Randnotizen auf geraden Seiten (bzw. lagen außerhalb der sichtbaren Seite).
2.96
  • Die Klassen kammen zwar bei der nicht dokumentierten Option fontsize mit gebrochenen Größen zurecht, typearea verursachte dann aber einen Fehler.
  • Option headsepline aktivierte nicht automatisch headinclude.
  • Option footsepline aktivierte nicht automatisch footinclude.
  • Aliasnamen für Fontelemente führten bei \usekomafont zur Ausgabe des Namen des Elements statt zu dessen Verwendung. Dies führte zu einer Inkompatibilität mit Paketen/Klassen/Dokumenten, in denen \usekomafont{sectioning} verwendet wird, da sectioning neuerdings ein Alias für disposition ist. Man konnte den Fehler auch in der Anleitung sehen. Ein Workaround wäre \usekomafont{sectioning} durch \usekomafont{disposition} zu ersetzen.
  • typearea sollte vor xkeyval geladen werden.
  • Für Listen wurde dummerweise \parskip statt \parsep gesetzt.
  • Kompatibilitätsprobleme mit graphicx bei Verwendung des Treibers pdftex behoben.
2.95b
  • Die Entscheidung von \ifthispageodd funktionierte häufig nicht korrekt.
2.95a
2.95
  • Die deutsche Anleitung scrguide.pdf präsentierte sich mit einem falschen Datum.
    Hintergrund: Das Datum wurde automatisch aus den \ProvidesFile-, \ProvidesClass-, \ProvidesPackage-Anweisungen aller an der Doku beteiligten Dateien erzeugt. In den KOMA-Script3-Quellen, auf denen die PDF-Datei (und nur diese) basiert, ist in der Anleitung zu scrpage2 ein falscher Datumseintrag.
  • komascript.md5 auf CTAN enthielt eine falsche Prüfsummen für scrguide.pdf und ChangeLog.
  • Listen (und alles, was darauf basiert) reagierten nur auf parskip-Optionen, nicht jedoch auf direkte Veränderungen von \parskip.
  • Bei scrbook sorgte die Option oneside nicht gleichzeitig für \raggedbottom, sondern es wurde weiterhin mit \flushbottom gearbeitet.
    Workaround: ggf. selbst \raggedbottom zusätzlich zur Klassenoption oneside verwenden.
  • Faltmarken in scrlttr2 waren vom Satzspiegel abhängig.