Liebes Forum,
ich habe ein Problem mit der Umdefinition von Überschriften. Wenn ich \RedeclareSectionCommand
verwende, um die Abstände vor und nach Überschriften zu ändern, ändert sich das Verhalten der Absatzeinrückung im Fließtext (scrreport).
Schreibe ich in der Präambel:
\RedeclareSectionCommand[beforeskip=3\baselineskip, afterskip=4\baselineskip]{chapter} \RedeclareSectionCommands[beforeskip=2\baselineskip, afterskip=\baselineskip]{section,subsection,subsubsection}
dann wird der erste Absatz eines Abschnitts eingezogen, auch wenn ich parskip=off
setze (was ja das Standardverhalten von Koma ist) und eigentlich bewirkt, dass der erste Absatz eines Abschnittes NICHT eingezogen wird. Das gleiche Problem habe ich, wenn ich anstatt \baselineskip den Durchschuss in Punkt angebe (z.B. \RedeclareSectionCommands[beforeskip=25,6pt, afterskip=12,8pt]{section}
)
Habe ich eine Option übersehen, die ich mitangeben muss?
Folgendes Minimalbeispiel, wenn man die \RedeclareSectionCommand
Zeilen auskommentiert, ändert sich die Einrückung des jeweils ersten Absatzes:
\documentclass[ parskip=off, %% keine vertikale Absatzeinrückung (off = Koma Standard) ]{scrreprt} %%%% Abstände vor und nach Überschriften \RedeclareSectionCommand[beforeskip=3\baselineskip, afterskip=4\baselineskip]{chapter} \RedeclareSectionCommands[beforeskip=2\baselineskip, afterskip=\baselineskip]{section,subsection,subsubsection} %% 2 Leerzeilen vor, 1 Leerzeile nach Sections \RedeclareSectionCommands[beforeskip=2\baselineskip, afterskip=1sp]{paragraph,subparagraph} %% 2 Leerzeilen vor, 1 singlespacing (neue Zeile) nach paragraph % \usepackage{blindtext} \begin{document} \chapter{This is a chapter} \blindtext[3] \section{This is a section} \blindtext[3] \end{document}
Ich freue mich über Anregungen :-)
Oliver
Vorzeichen von beforeskip beachten
Ein Blick in die Dokumentation hilft ;-) Dort sind die beiden Optionen
beforeskip
undafterskip
recht ausführlich erklärt und Du findest auch die bei den KOMA-Script Klassen voreingestellten Werte für die Überschriften.Der Betrag des bei
beforeskip
angegebenen Wertes ist der Abstand, der vor der jeweiligen Überschrift eingefügt wird. Auch ein negativer Wert fürbeforeskip
führt also zu einem positiven Abstand! Das Vorzeichen bestimmt dagegen, ob der erste Absatz nach der Überschrift eingezogen wird (positiver Wert) oder nicht (negativer Wert). Bis einschließlich Version 3.21 gab es für\chapter
eine Ausnahme und es wurde der erste Absatz nach einer Kapitelüberschrift auch bei positivembeforeskip
nicht eingezogen. Wenn das bei Dir noch der Fall ist, dann solltest Du über ein Update nachdenken.Der Betrag des bei
afterskip
angegebenen Wertes ist der Abstand, der nach der jeweiligen Überschrift eingefügt wird. Hier entscheidet das Vorzeichen, ob dieser Abstand vertikal ist (positiver Wert) oder horizontal (negativer Wert).Du möchtest also eigentlich:
Ja, so solltes es aussehen!
Ich wollte gerade noch hinzufügen, dass ich mit Version 3.22 arbeite, da ist schon die Lösung online :-)
Ich habe zwar über Vorzeichen in der Doku gelesen, aber ich wollte es wohl nicht verstehen. Da
beforeskip
ja für den Abstand ÜBER der Überschrift zuständig ist, bin ich davon ausgegangen, dass es irgendwo am Wert vonafterskip
liegen müsse.Wieder was gelernt.
Herzlichen Dank!
Warum so implementiert?
Gibt es eigentlich einen Grund, dass die Einstellung für den Einzug in dem Vorzeichen des Abstandes vor der Überschrift „versteckt“ ist? So richtig eingängig finde ich das nicht und würde mir eine Option wie
afterindent = true|false
bzw. sowas wieinline = true|false
anstelle des Vorzeichens beim Abstand danach wünschen.Viele Grüße
Tobi
Tobi W_
Grafikdesign und TeX-Beratung
tobiw.de
mail@tobiw.de
Mein Blog: TeX-Beispiel des Monats
Das musst Du das LaTeX-Team oder sogar Lamport fragen
Die Anweisungen, auf denen die Gliederungsbefehle basieren, sind im LaTeX-Kern so definiert. Zwar habe ich von Version zu Version immer mehr davon ersetzt oder erweitert, aber im Prinzip sind das noch immer die Kern-Anweisungen
\@startsection
,\@sect
,\@ssect
,\secdef
und verwenden auch weiterhin interne Anweisungen des LaTeX-Kerns, wie\@xsect
. Von einigen gibt es in KOMA-Script sogar zwei Fassungen, je nachdem ob die Original-Makros des LaTeX-Kerns vorgefunden werden oder nicht.Irgendwo zwischen Version 3.20 und 3.23 habe ich kurz überlegt, ob ich an der Stelle nicht Tabula-Rasa machen soll. Aber zum einen besteht immer die Gefahr von Nebenwirkungen, wenn man sich von den vorgesehenen Kern-Anweisungen entfernt (die Probleme mit titlesec sind dafür ein gutes Beispiel, ein anderes Beispiel ist die häufig anzutreffende Umdefinierung von
\l@…
-Befehlen mit\@dottedtocline
, mit der man bei KOMA-Script einiges kaputt machen kann). Es hätte in letzter Konsequenz bedeutet, dass einige Anweisungen zwei Argumente mehr bekommen hätten (die Unterscheidung nach dem Vorzeichen gilt ja sowohl für den Abstand davor als auch den danach). Zum anderen war mir der Aufwand zu groß. Und letztlich war es zu dem Zeitpunkt eigentlich schon zu spät die Schnittstelle noch einmal zu ändern. Vielleicht mag es interessieren, dass ich im Zuge dieser Überlegungen die Kompatibilität zum LaTeX-Kern sogar erhöht habe und beispielsweise die Sonderrolle von\@tempskipa
als quasi heimlicher Parameter in einige KOMA-Script-Makros übernommen habe, in denen das zuvor nicht so war.Spezialbedeutung nach Vorzeichen sind aber auch sonst nicht ungewöhnlich bei KOMA-Script. So haben negative Vorzeichen bei den Pseudolängen für horizontale Positionen in scrlttr2 und scrletter von je her eine Spezialbedeutung. Dort hat sogar die 0 oftmals eine zusätzliche dritte Bedeutung. Genau genommen kam scrlttr2 ein paar Monate zu früh heraus. Kurz darauf gab es vom LaTeX-Team endlich die Empfehlung, e-TeX und großzügige Speichereinstellungen als Basis für das LaTeX-Format zu verwenden. Wäre das früher geschehen, gäbe es heute keine Pseudolängen und einige Dinge wären wären weniger sparsam definiert. Aber das ist ein anders Thema.
Wir dürfen auch nicht vergessen, dass die Schnittstelle aus gutem Grund in Teil II der Anleitung dokumentiert ist. Es steht zwar schon lange auf der TODO-Liste die Frage, ob das nicht für normale Anwender frei gegeben werden sollte. Es ist aber tatsächlich schon von Vorteil, wenn die Leute genau lesen und Dinge wie Absolutwert oder Betrag verstehen können. Deshalb sehe ich derzeit nicht, dass das in Teil I wandern wird. Vorlagenersteller sollten das beherrschen, auch wenn das nicht für die Anfänger gilt, die sich üblicherweise auf YouTube oder an neun von zehn Unis dazu auserkoren fühlen. Wenn die dann reinfallen und deshalb noch einmal genauer hinschauen müssen, dann ist aber auch das gerade gut.
Und dann sei noch auf »Warum sind die Voreinstellungen so gewählt?« verwiesen, das sinngemäß auch hier gilt.
Wäre KOMA-Script ein ConTeXt-Modul liefe das übrigens anders. Dann würde ich jede Idee, die ich für besser halte, ohne Rücksicht auf Verluste umsetzen. Und würde ich noch einmal zehn Jahre in die Zukunft planen, würde ich tatsächlich einen echten, inkompatiblen KOMA-Script-Nachfolger entwickeln.