Diese Version wurde inzwischen durch Version 3.28 ersetzt. Es wird empfohlen, bei Problemen auf die neuste Version zu updaten. Wenden Sie sich ggf. an Ihren Distributor oder Administrator.
chapterentrydots
bzw. sectionentrydots
wird nie verwendet.
\renewcaptionname
erzeugt einen Fehler, falls ein Begriff in der Dokumentpräambel noch nicht definiert ist, wohl aber während \begin{document}
definiert wird, wie das für einige Begriffe von babel oder KOMA-Script-Klassen der Fall ist.
\ModifyLayerPageStyleOptions
durch Zuweisung eines leeren Wertes ist nicht möglich. Stattdessen muss beispielsweise \relax
als Wert übergeben werden.
\markleft
ist im Gegensatz zu \markboth
und \markright
aus LaTeX ab 2019-10-01 nicht robust.
\begin{letter}
eine Anweisung wie \raggedright
, \raggedleft
oder \centering
(oder auch die entsprechenden Anweisungen aus ragged2e) verwendet, die \\
auf eine Bedeutung umdefiniert, die mit \protected@edef zerbricht und zu Fehlern führt und befindet sich im bei \begin{letter}{…}
angegebenen Empfänger, wie üblich ein \\
, dann gibt es Fehlermeldungen.
\AtBeginLetter
verzögern. Allerdings funktioniert das nicht für andere zerbrechliche Anweisungen in der Anschrift. Andere zerbrechliche Anweisungen in der Anschrift sollten aber ohnehin mit \protect
geschützt werden.
\AfterAtEndOfPackage
wirkt sich auch aus, wenn ein Paket bereits geladen ist. Wird dann versucht, das Paket ein weiters Mal zu laden, so wird der Code ausgeführt, obwohl das Paket gar nicht mehr geladen wird und natürlich auch kein \AtEndOfPackage
-Code ausgeführt wird.
\AfterPackage!
quasi ein (nicht implementiertes) \AfterAtEndOfPackage+
.\AfterPackage+
, \AfterClass+
, \AfterPackage!
und \AfterClass!
funktionieren unter gewissen Umständen nicht wie dokumentiert. Ursache ist u. a. ein Problem in LaTeX.
Hinweis: Die Angabe einer bestimmten Versionsnummer in der nachfolgenden Liste bedeutet nicht, dass genau diese Version auch bereits über den jeweils angegebenen Link verfügbar ist. Die Auflistung eines Features ist auch keine Garantie, dass dieses in der dokumentierten Weise wirklich in der nächsten Version enthalten sein wird.
svn up
aktualisiert und selbst erzeugt, sollte daher unbedingt erst make distclean
aufrufen, um alle temporären Dateien zu löschen.\KOMAClassName
weiterhin die alten Namen. Es gibt aber zusätzlich dann auch ein \KOMALongClassName
, das eigentlich überflüssig ist, weil man es einfach aus scr\ClassName
bilden könnte.
headings=optionto…
) den neuen Schalter nonumber
, um die Nummerierung abzuschalten. Für Kapitel und Abschnitte entspricht das letztlich \addchap
und \addsec
(ohne Stern!).
\bprot@dottedtocline
ist veraltet und gibt eine entsprechende Warnung aus. Es ist durchaus geplant, sie zukünftig aus den Klassen zu entfernen.
\setcounter{secnumdepth}{-\maxdimen}
abgeschaltet werden kann (was beispielsweise scrartcl unter gewissen Umständen für Kolumnentitel nutzt), sind bei \DeclareSectionCommand
nur noch level
-Werte größer als -\maxdimen
erlaubt.
\IfUseNumber{
TRUE-Code}{
FALSE-Code}
, kann innerhalb der Überschriften und nur dort dazu verwendet werden, festzustellen, ob die aktuell in Verarbeitung befindliche Überschrift mit einer Nummer versehen wird oder nicht. Das schließt die Stellung von secnumdepth
ebenso wie die Verwendung einer Sternform einer Gliederungsüberschrift oder \addpart
, \addchap
oder \addsec
und bei scrbook auch \frontmatter
, \mainmatter
und \backmatter
ein. Bei einigen Do-Hooks (siehe unten) kann diese Anweisung ggf. nützlich sein. Sie ist aber nicht bei allen Do-Hooks zulässig. Bisher ist sichergestellt, dass sie bei headings/begingroup/… und headings/endgroup/… gültig ist.
\ExecuteDoHook
wurden bisher implementiert:
\partlineswithprefixformat
, \chapterlineswithprefixformat
, \chapterlinesformat
, \sectionlinesformat
bzw. \sectioncatchphraseformat
ausgeführt werden.\partlineswithprefixformat
, \chapterlineswithprefixformat
, \chapterlinesformat
, \sectionlinesformat
bzw. \sectioncatchphraseformat
ausgeführt werden.\At@startsection
. Die Anweisung ist jedoch nicht nur für den section-Stil, sondern auch für chapter und part verfügbar. Die veraltete Anweisung \At@startsection
funktioniert weiterhin (nur für Überschriften im Stil section) wird aber auf den neuen Do-Hook abgebildet.\Before@sect
. Die Anweisung ist jedoch nicht nur für den section-Stil, sondern auch für chapter und part verfügbar. Die veraltete Anweisung \Before@sect
funktioniert weiterhin (nur für Überschriften im Stil section) wird aber auf den neuen Do-Hook abgebildet.\Before@ssect
. Die Anweisung ist jedoch nicht nur für den section-Stil, sondern auch für chapter und part verfügbar. Die veraltete Anweisung \Before@ssect
funktioniert weiterhin (nur für Überschriften im Stil section) wird aber auf den neuen Do-Hook abgebildet.\DeclareSectionCommand
etc. angegeben wird.
\FamilyOptions
und \FamilyOption
führen nun ebenfalls @else@
-Optionen (vgl. \FamilyExecuteOptions
) sowohl der Familienmitglieder als auch der Familie selbst aus. Besitzt ein Mitglied eine @else@
-Option, so wird diese immer dann gesetzt, wenn das Mitglied eine angegebene Option nicht hat. Sie wird jedoch nicht ausgeführt, wenn das Mitglied die angegebene Option zwar kennt, nicht jedoch den übergebenen Wert. Dagegen wird eine @else@
-Option der Familie nur ausgeführt, wenn keines der Mitglieder die Option mit Ergebnis \FamilyKeyStateProcessed
verarbeiten konnte.
\DefineFamilyKey
mit explizit leerem erstem, optionalem Argument liefert nun keine Fehlermeldung wegen unbekanntem Mitglied mehr, sondern definiert eine Familienoption.
@else@
-Optionen durch \FamilyOptions
in KOMA-Script 3.27.3170 implementiert.\defcaptionname
, \newcaptionname
, \renewcaptionname
, \providecaptionname
in der Dokumentpräambel aufgerufen, so definieren sie ab KOMA-Script 3.27.3168 die entsprechende Anweisung unmittelbar, wenn die aktuelle Sprache einer der Sprachen aus dem ersten Argument entspricht. Um Fehlermeldungen bei Konstrukten wie \newcommand*{\Fooname}{Foo} \newcaptionname{english}{\Fooname}{Foo}
\newcaptionname
den Begriff in der Dokumentpräambel aber nur unmittelbar, wenn er nicht bereits (sprachunabhängig) definiert ist. Dies stellt keinen substantiellen Nachteil dar, da die korrekte Umschaltung dann ggf. bei \begin{document}
erfolgt und dort dann ggf. auch die entsprechende Fehlermeldung ausgegeben wird, wenn \Fooname
bereits sprachabhängig definiert ist.
\def
o. ä. explizit definiert werden müssen.\IfArgIsEmpty
ist nun \long
.
\ExecuteDoHook{
Spezifikator}
: Diese Anweisung ist Paketautoren vorbehalten und dient dazu einen Do-Hook in der Implementierung eines Befehls zu verankern. Der Spezifikator darf nicht leer sein. Zunächst wird der erste String des Spezifikators abgetrennt. Dann wird String zum Hookname hinzugefügt und der Hook mit dem Rest des Spezifikators als angehängtes Argument ausgeführt. War der Rest nicht leer, wird er anschließend zum neuen Spezifikator und rekursiv die Ausführung von Code fortgesetzt, bis er leer ist.
\ExecuteDoHook{heading/preinit/subsection}
führt zunächst den Code von Hook heading mit dem Argument preinit/subsection aus. Dann den Code von heading/preinit mit Argument subsection und schließlich den Code von heading/preinit/subsection mit einem leeren Argument.\AddtoDoHook{
Hook}{
Befehl}
: Fügt den Befehl dem Hook hinzu. Zu beachten ist, dass bei Ausführung von Befehl immer ein Argument angefügt wird.
\AddtoDoHook{heading/preinit}{\typeout}
wird der Befehl \typeout
dem Hook heading/preinit hinzugefügt. So wird beispielsweise \ExecuteDoHook{heading/preinit/chapter}
die Anweisung \typeout{chapter}
ausführen, \ExecuteDoHook{heading/preinit/section}
wird \typeout{section}
ausführen etc. Wird dagegen mit \AddtoDoHook{heading/preinit/section}{\typeout}
derselbe Befehl dem Hook heading/preinit/section hinzugefügt, so wird lediglich \ExecuteDoHook{heading/preinit/section}
die Anweisung \typeout{}
ausführen, während \ExecuteDoHook{heading/preinit/chapter}
den Befehl nicht ausführen wird.\AddtoOneTimeDoHook{
Hook}{
Befehl}
arbeitet wie \AddtoDoHook{
Hook}{
Befehl}
, allerdings wird der Code für den Hook nach Ausführung gelöscht. Code für One-Time-Hooks wird grundsätzlich nach dem Code für dauerhafte Hooks ausgeführt.\ForDoHook{
Spezifikator}{
Code}
: Durchläuft, wie für \ExecuteDoHook
angegeben, die Teilspezifikatoren und führt für jede Unterteilung einmal Code aus. Dem Code werden dabei zwei Parameter angehängt: das Kopfelement und der Rest des Spezifikators.
\ExecuteDoHook
. Normalerweise sollten Paketautoren (und erst recht Anwender) diese Anweisung nicht benötigen.\SplitDoHook{
Spezifikator}{
Kopfbefehl}{
Restbefehl}
: Der Spezifikator wird, wie bei \ExecuteDoHook
erklärt, in den ersten String und den Rest-Spezifikator aufgeteilt. Der Kopfbefehl wird als der erste String und der Restbefehl als der Rest definiert.
\SplitDoHook{heading/preinit/section}{\Kopf}{\Rest}
führt zu \def\Kopf{heading}\def\Rest{preinit/section}
.standardsections
aktiviert werden. In diesem Fall werden die Gliederungsbefehle \part
bis \subparagraph
und die Ausgaben der zugehörigen Zähler genau wie bei den Standardklassen hart definiert. Bei Klassen, die über \mainmatter
verfügen, werden außerdem \if@mainmatter
, \frontmatter
, \mainmatter
und \backmatter
entsprechend hart definiert.
\DeclareTOCStyleEntry
für die Definition der Inhaltsverzeichniseinträge.
\bprot@dottedtocline
endlich als veraltet zu kennzeichnen, was in TODO ebenfalls lange angekündigt ist.\catcode
-Werte der in \dospecials
abgelegten Zeichen werden vor dem Einlesen der Hilfsdatei mit den Notizspalten wieder auf die Werte eingestellt, die sie bei \begin{document}
hatten. Ausnahme ist der \catcode
von @
, der auf 11 (letter) gestellt wird. Dadurch funktionieren Notizspalten nun beispielsweise auch, wenn während einer verbatim
-Umgebung ein Seitenumbruch erfolgt. und neue Notizen aus der Hilfsdatei gelesen werden müssen.
newcommands
oder NewCommands
kann bereits dazu führen, dass die Ausrichtung nicht vollkommen korrekt ist. Obwohl das in meinen Augen eindeutig kein Bug von scrlayer-scrpage ist, sondern ein Misfeature der entsprechenden anderen Pakete, verwendet scrlayer-scrpage ab KOMA-Script 3.27.3140 die genannten Anweisungen nicht mehr direkt, sondern nutzt stattdessen \LaTeXcentering
, \LaTeXraggedright
und \LaTeXraggedleft
. Sind diese Anweisungen beim Laden von scrlayer-scrpage bereits (beispielsweise von ragged2e) definiert, so bleiben sie unverändert. Anderenfalls werden sie mit der aktuellen Definition von \centering, \raggedright und \raggedleft versehen. Damit gibt es in scrlayer-scrpage nun auch einen Workaround für das auf TeX.Stackexchange gemeldete Problem bei mehrzeiligen Kopf-/Fußzeilen während eine longtabu
verarbeitet wird.\opening
noch benötigt (u. a. um die richtige vertikale Position für den Briefanfang automatisch zu finden). Ein Teil der Arbeit wird eventuell auch noch in die Definition der letter
-Umgebung verlagert. Daher ist diese Änderung ab KOMA-Script 3.27.3231 wieder deaktiviert und wird wohl noch nicht in der nächsten Version Einzug halten.symbolicnames
kennt die neuen Werte marvosym
, fontawesome
und awesome
. Der Wert marvosym
entspricht den bisherigen Werten true
, on
und yes
. Die beiden Werte fontawesome
und awesome
verwenden dagegen das Pakte fontawesome für die Symbole.
\foreachkomavar{
Variable,
…}{
Code}
führt Code{
Variable}
für jede Variable aus.
\foreachkomavarifempty{
Variable,
…}{
True-Code}{
False-Code}
führt True-Code{
Variable}
für jede Variable aus, die leer ist, und False-Code{
Variable}
für jede Variable, die nicht leer ist.
\foreachemptykomavar{
Variable,
…}{
Code}
führt Code{
Variable}
für jede Variable aus, die leer ist.
\foreachnonemptykomavar{
Variable,
…}{
Code}
führt Code{
Variable}
für jede Variable aus, die nicht leer ist.
\raggedbottom
gesetzt. Eine Änderung ist nur noch mit \flushbottom
innerhalb von \begin{letter}…\end{letter}
bzw. über \AtBeginLetter{\flushbottom}
möglich.\DeclareTOCStyleEntry
ein Additionsoperator +=
unterstützt. Derzeit ist jedoch nicht geplant diese Möglichkeit auf die indirekte Verwendung der Optionen beispielsweise per \DeclareNewTOC
auszuweiten.
\DeclareTOCStyleEntry
einen neuen Kopieroperator :=
. Damit erwarten die Optionen als Wert nicht mehr die normalerweise erwarteten Werte, sondern den Namen einer anderen Verzeichnisebene, dessen Wert dann kopiert wird. Mit indent:=figure
kann man also beispielsweise als Wert für den Einzug denselben Wert wie bei figure
-Einträgen einstellen. Ist der entsprechende Wert für die angebene Verzeichnisebene nicht bekannt, so wird ein Fehler ausgegeben. Dieser Kopieroperator funktioniert für die Optionen der Verzeichniseinträge mit Präfix tocentry
auch bei \DeclareNewTOC
.
toctext
, der alle aufeinanderfolgenden Einträge dieses Stils innerhalb eines Absatzes ausgibt. Die Optionen ähneln denen von tocline
, allerdings werden nicht alle Optionen unterstützt und es gibt ein paar zusätzliche.
\par
auszuführen.tocline
bietet die neue Option rightindent
über die \@tocrmarg
abhängig von der Eintragsebene ersetzt werden kann.
tocline
bietet die neue Option pagenumberwidth
über die \@pnumwidth
abhängig von der Eintragsebene ersetzt werden kann.
noindent
. Dies ermöglicht kooperierenden Verzeichniseintragsstilen wie tocline
das Ignorieren der Einstellung für den Einzug, so dass ein komplett linksbündiges Verzeichnis entsteht (vlg. listof=flat
, wobei listof=flat
weit mehr tut!).