Aktuell verwende ich das Paket titlesec um den Platz vor und nach Section Überschriften anzupassen. Konkret wollte ich den Platz verringern, weil ich den Eindruck hatte, dass dieser zu groß war oder zu groß gestreckt werden konnte.
Mit titlesec geht das dann wie folgt:
% spacing before and after sections \titlespacing*{\section}{0pt}{*2.0}{*0.5} \titlespacing*{\subsection}{0pt}{*1.5}{*0.5} \titlespacing*{\subsubsection}{0pt}{*1.5}{*0.5}
Die Überschriften sind dabei schon mit small eingestellt:
\KOMAoptions{headings=small}
Die Frage wäre, ob diese Abstände auch direkt mit KOMA-Script Klassen oder Paketen einstellen kann.
Nicht auf Anwenderebene
Auf Entwicklerebene sei auf die Definitionen der Befehle im dokumentierten Quelltext verwiesen.
BTW: Wenn Du die Überschriften mit einem Paket umdefinierst, musst Du beachten, dass dabei Teile der Funktionalität von KOMA-Script verloren gehen. So ist dann nicht mehr gewährleistet, dass Option
headings
noch eine Auswirkung hat oder dass die Erweiterungen für das optionale Argument der Gliederungsbefehle noch funktionieren.Bedenkenswert?
Wäre es nicht bedenkenswert, für diese skips auch veränderliche Werte à la
\chapterheadstartvskip
,\chapterheadendvskip
(u. Ä. bei Parts) einzuführen? Das würde das Ausweichen auf andere Pakete (und damit Verlust schöner KOMA-Einstellungen) vermeiden.Nicht vergleichbar
\chapterheadendvskip
und\chapterheadstartvskip
sind weit mehr als nur skips. Und wenn man die Kontrolle über die Überschriften der unteren Ebenen unbedingt auf Anwenderebene haben möchte braucht man doch nur einund hat dann alles, was man braucht. Natürlich ist es sinnvoll, in dem Fall die Voreinstellungen von KOMA-Script für diese Befehle anzuschauen, damit man möglichst viel davon übernimmt und so möglichst viele Features erhält. Und natürlich ändern sich diese Voreinstellungen von Zeit zu Zeit im Detail, um Verbesserungen zu ermöglichen. Genau aus letzterem Grund sehe ich es auch extrem kritisch diese Anweisung auf Anwenderebene anzubieten. Eben nur
\@startsection
zu haben, sollte dem Anwender davon signalisieren: Pass auf, wenn Du an der Stelle etwas änderst! Du bist selbst dafür verantwortlich!eben deshalb
Wenn ich mir die Verwendung zum Beispiel in scrartcl ansehe
dann ist dort alles bis auf die vertikalen Abstände bereits als Makro, nicht als fester Wert eingetragen. Es wäre ein kleiner Schritt, das zu komplettieren. Die Argumente, warum es weniger gut ist, etwas so komplexes wie \@startsection komplett zu überschreiben hast Du ja selbst gebracht.
Danke!
Ich sehe gerade dass es im aktuellen Skript gute Möglichkeiten gibt, die Abstände genau zu definieren.
Herzlichen Dank dafür!
Geht jetzt doch
Gerne nehme ich Tobias' Hinweis auf und verweise darauf, dass seit Version 3.15
\DeclareSectionCommand
u. ä. zur Verfügung stehen, um neue Gliederungsbefehle zu definieren oder alte zu ändern. Näheres dazu ist der Anleitung zu entnehmen.Kompatibilität
Kann es sein, daß eine
\@startsection
Deklaration mit Komascript Fontmakros wie oben (in eigenen Paketen) irgendwann nicht mehr funktioniert, oder sind diese Werte fixiert?Klar
Bereits heute verwendet KOMA-Script intern nicht mehr
\@startsection
, sondern\scr@startsection
. Aber warum sollte ein Anwender überhaupt den Weg über\@startsection
gehen, wenn er inzwischen einfach\DeclareSectionCommand
,\DeclareNewSectionCommand
oder\RedeclareSectionCommand
verwenden kann?¹1 Ja, das ist eine rhetorische Frage.