8
1

Hier wurde geklärt, wie man die Abstände um chapter ändert; und darum gebeten, die gleiche Frage für die anderen Ebenen in einen neuen Thread zu verschieben.

Minimalbeispiel:

Open in writeLaTeX
\documentclass[
%numbers=noenddot
]{scrreprt}
\usepackage[ngerman]{babel}
\usepackage{blindtext}
%\usepackage{showframe}% zum Anzeigen des Seitenlayouts

%% Abstände um Chapter
%\renewcommand*\chapterheadstartvskip{\vspace*{-\topskip}}
%\renewcommand*\chapterheadendvskip{%
%  \vspace*{1\baselineskip plus .1\baselineskip minus .167\baselineskip}}

\begin{document}
\part{Sonnensystem}
\chapter{Erde}
Der eigentliche Text.
\section{Europa}
Der eigentliche Text.
\subsection{Italien}
Der eigentliche Text.
\subsubsection{Toskana}
Der eigentliche Text.
\paragraph{Florenz}
Der eigentliche Text.
\subparagraph{Dom}
Der eigentliche Text

  \tableofcontents
  \Blinddocument
\end{document}

alt text (Bild leicht falsch)

gefragt 17 Nov '14, 17:06

cis's gravatar image

cis
9.5k75452491
Akzeptiert-Rate: 29%

bearbeitet 17 Nov '14, 17:06


Update (Januar 2015)

Seit der KOMA-Script Version 3.15 ist das Einstellen von Abständen vor und nach Überschriften wesentlich einfacher.

Open in Online-Editor
\documentclass[headings=small]{scrreprt}

\RedeclareSectionCommand[
  beforeskip=-1\baselineskip,
  afterskip=.5\baselineskip]{section}
\RedeclareSectionCommand[
  beforeskip=-.75\baselineskip,
  afterskip=.5\baselineskip]{subsection}
\RedeclareSectionCommand[
  beforeskip=-.5\baselineskip,
  afterskip=.25\baselineskip]{subsubsection}
\RedeclareSectionCommand[
  beforeskip=.5\baselineskip,
  afterskip=-1em]{paragraph}
\RedeclareSectionCommand[
  beforeskip=-.5\baselineskip,
  afterskip=-1em]{subparagraph}

\begin{document}
\part{Sonnensystem}
\chapter{Erde}
Der eigentliche Text.\par
Test
\section{Europa}
Der eigentliche Text.
\subsection{Italien}
Der eigentliche Text.
\subsubsection{Toskana}
Der eigentliche Text.
\paragraph{Florenz}
Der eigentliche Text.
\subparagraph{Dom}
Der eigentliche Text
\end{document}

alt text

Sollen die Änderungen für mehrere Überschriftenebenen gleich sein, dann kann man den Befehl \RedeclareSectionCommands nutzen. Im folgenden Beispiel werden einheitlich 0.5\baselineskip vor und 0.25\baselineskip nach section, subsection und subsubsection Überschriften eingestellt. Für paragraph und subparagraph wird dagegen ein negativer Wert als afterskip gesetzt, was zu einem horizontalen statt vertikalen Abstand führt.

Open in Online-Editor
\documentclass[headings=small]{scrreprt}

\RedeclareSectionCommands[
  beforeskip=-.5\baselineskip,
  afterskip=.25\baselineskip
]{section,subsection,subsubsection}
\RedeclareSectionCommands[
  beforeskip=.5\baselineskip,
  afterskip=-1em]{paragraph,subparagraph}

\begin{document}
\part{Sonnensystem}
\chapter{Erde}
Der eigentliche Text.\par
Test
\section{Europa}
Der eigentliche Text.
\subsection{Italien}
Der eigentliche Text.
\subsubsection{Toskana}
Der eigentliche Text.
\paragraph{Florenz}
Der eigentliche Text.
\subparagraph{Dom}
Der eigentliche Text
\end{document}

alt text

Der in Version 3.15 eingeführte Einzug für subparagraph lässt sich durch

Open in Online-Editor
\RedeclareSectionCommand[indent=0pt]{subparagraph}

entfernen. Darüber hinaus gibt es eine Reihe weiterer Einstellmöglichkeiten, die alle in der zugehörigen Doku erklärt sind.


Ursprüngliche Antwort

Entsprechend einem Vorschlag von Markus Kohm auf www.komascript.de verwendet die Orginal-Definitionen der für das Dokument verwendeten KOMA-Script-Klasse und passt diese an. Damit erhält man sich die Möglichkeit alle Optionen und Einstellmöglichkeiten, die diese Klasse bietet, weiter nutzen zu können.

Dabei muss die Änderung für alle Ebenen einzeln erfolgen. Der Abstand oberhalb der Überschrift wird jeweils im dritten Argument von \@startsection angegeben, der Abstand unterhalb im vierten. Ein negativer Wert für den Abstand davor sorgt dafür, dass der erste Absatz nach der Überschrift ohne Einzug gesetzt wird. Ist der angegebene Wert für den Abstand danach negativ, dann wird er als horizontaler Abstand statt als vertikaler Abstand gesetzt.

Für die inzwischen veraltete Version 3.12 von scrreprt wäre das:

Open in Online-Editor
\documentclass[headings=small]{scrreprt}
\usepackage[ngerman]{babel}
\usepackage{blindtext}

\makeatletter
 %%Warnen, falls die vorgefundenen Originaldefinitionen nicht
 %%den erwarteten Originaldefinitionen entsprichen:
\CheckCommand\section{%
  \@startsection{section}{\sectionnumdepth}{\z@}%
  {-3.5ex \@plus -1ex \@minus -.2ex}%
  {2.3ex \@plus.2ex}%
  {\ifnum \scr@compatibility>\@nameuse{scr@v@2.96}\relax
    \setlength{\parfillskip}{\z@ plus 1fil}\fi
    \raggedsection\normalfont\sectfont\nobreak\size@section}%
}
\CheckCommand\subsection{%
  \@startsection{subsection}{\subsectionnumdepth}{\z@}%
  {-3.25ex\@plus -1ex \@minus -.2ex}%
  {1.5ex \@plus .2ex}%
  {\ifnum \scr@compatibility>\@nameuse{scr@v@2.96}\relax
    \setlength{\parfillskip}{\z@ plus 1fil}\fi
    \raggedsection\normalfont\sectfont\nobreak\size@subsection
  }%
}
\CheckCommand\subsubsection{%
  \@startsection{subsubsection}{\subsubsectionnumdepth}{\z@}%
  {-3.25ex\@plus -1ex \@minus -.2ex}%
  {1.5ex \@plus .2ex}%
  {\ifnum \scr@compatibility>\@nameuse{scr@v@2.96}\relax
    \setlength{\parfillskip}{\z@ plus 1fil}\fi
    \raggedsection\normalfont\sectfont\nobreak\size@subsubsection
  }%
}
 %%Definition ändern:
\renewcommand\section{%
  \@startsection{section}{\sectionnumdepth}{\z@}%
  {-.5\baselineskip}%
  {.25\baselineskip}%
  {\ifnum \scr@compatibility>\@nameuse{scr@v@2.96}\relax
    \setlength{\parfillskip}{\z@ plus 1fil}\fi
    \raggedsection\normalfont\sectfont\nobreak\size@section}%
}
\renewcommand\subsection{%
  \@startsection{subsection}{\subsectionnumdepth}{\z@}%
  {-.5\baselineskip}%
  {.25\baselineskip}%
  {\ifnum \scr@compatibility>\@nameuse{scr@v@2.96}\relax
    \setlength{\parfillskip}{\z@ plus 1fil}\fi
    \raggedsection\normalfont\sectfont\nobreak\size@subsection
  }%
}
\renewcommand\subsubsection{%
  \@startsection{subsubsection}{\subsubsectionnumdepth}{\z@}%
  {-.5\baselineskip}%
  {.25\baselineskip}%
  {\ifnum \scr@compatibility>\@nameuse{scr@v@2.96}\relax
    \setlength{\parfillskip}{\z@ plus 1fil}\fi
    \raggedsection\normalfont\sectfont\nobreak\size@subsubsection
  }%
}
\makeatother

\begin{document}
\part{Sonnensystem}
\chapter{Erde}
Der eigentliche Text.\par
Test
\section{Europa}
Der eigentliche Text.
\subsection{Italien}
Der eigentliche Text.
\subsubsection{Toskana}
Der eigentliche Text.
\paragraph{Florenz}
Der eigentliche Text.
\subparagraph{Dom}
Der eigentliche Text

\tableofcontents
\Blinddocument
\end{document}

Im Ergebnis sieht man, dass dann eigentlich auch die Abstände für \paragraph und \subparagraph angepasst werden müssten.

alt text


Mit der ebenfalls veralteten Version 3.14 müsste die Umdefinition ein klein wenig anders aussehen:

Open in Online-Editor
\makeatletter
 %%Warnen, falls die vorgefundenen Originaldefinitionen nicht
 %%den erwarteten Originaldefinitionen entsprichen:
\CheckCommand\section{%
  \scr@startsection{section}{\sectionnumdepth}{\z@}%
  {-3.5ex \@plus -1ex \@minus -.2ex}%
  {2.3ex \@plus.2ex}%
  {\ifnum \scr@compatibility>\@nameuse{scr@v@2.96}\relax
    \setlength{\parfillskip}{\z@ plus 1fil}\fi
    \raggedsection\normalfont\sectfont\nobreak\size@section}%
}
\CheckCommand\subsection{%
  \scr@startsection{subsection}{\subsectionnumdepth}{\z@}%
  {-3.25ex\@plus -1ex \@minus -.2ex}%
  {1.5ex \@plus .2ex}%
  {\ifnum \scr@compatibility>\@nameuse{scr@v@2.96}\relax
    \setlength{\parfillskip}{\z@ plus 1fil}\fi
    \raggedsection\normalfont\sectfont\nobreak\size@subsection
  }%
}
\CheckCommand\subsubsection{%
  \scr@startsection{subsubsection}{\subsubsectionnumdepth}{\z@}%
  {-3.25ex\@plus -1ex \@minus -.2ex}%
  {1.5ex \@plus .2ex}%
  {\ifnum \scr@compatibility>\@nameuse{scr@v@2.96}\relax
    \setlength{\parfillskip}{\z@ plus 1fil}\fi
    \raggedsection\normalfont\sectfont\nobreak\size@subsubsection
  }%
}
 %%Definition ändern:
\renewcommand\section{%
  \scr@startsection{section}{\sectionnumdepth}{\z@}%
  {-.5\baselineskip}%
  {.25\baselineskip}%
  {\ifnum \scr@compatibility>\@nameuse{scr@v@2.96}\relax
    \setlength{\parfillskip}{\z@ plus 1fil}\fi
    \raggedsection\normalfont\sectfont\nobreak\size@section}%
}
\renewcommand\subsection{%
  \scr@startsection{subsection}{\subsectionnumdepth}{\z@}%
  {-.5\baselineskip}%
  {.25\baselineskip}%
  {\ifnum \scr@compatibility>\@nameuse{scr@v@2.96}\relax
    \setlength{\parfillskip}{\z@ plus 1fil}\fi
    \raggedsection\normalfont\sectfont\nobreak\size@subsection
  }%
}
\renewcommand\subsubsection{%
  \scr@startsection{subsubsection}{\subsubsectionnumdepth}{\z@}%
  {-.5\baselineskip}%
  {.25\baselineskip}%
  {\ifnum \scr@compatibility>\@nameuse{scr@v@2.96}\relax
    \setlength{\parfillskip}{\z@ plus 1fil}\fi
    \raggedsection\normalfont\sectfont\nobreak\size@subsubsection
  }%
}
\makeatother
Permanenter link

beantwortet 17 Nov '14, 21:43

esdd's gravatar image

esdd
17.7k254256
Akzeptiert-Rate: 62%

bearbeitet 18 Okt '15, 21:53

Au weia! Man könnte ja fast meinen, Änderung der Abstände soll um jeden Preis verhindert werden.... Könnte er doch auch mal als einfache Optionen in die Klasse aufnehmen ;) Danke jedenfalls.

(17 Nov '14, 22:34) cis

@cis Wenn ich es richtig verstehe, gehört das zu den geplanten Änderungen für die nächste Version von KOMA-Script.

(24 Nov '14, 14:21) esdd

Kann ich auch pauschal oberhalb von Section/Kapitel/Subsection einen Abstand von 14pt einbauen und unterhalb Pauschal einen Abstand von 12pt?

(02 Dez '14, 00:07) wiewowas

Du kannst in jeder Definition/renewcommand je ein Hilfsmakro für oben und unten einsetzen und kannst dann dieses global ändern. Momentan ist oben -.5\baselineskip und unten .25\baselineskip bei jedem Eintrag eingetragen.

(02 Dez '14, 08:28) Johannes

Danke für die tolle Beschreiben oben.

Ist es möglich den Abstand zwischen einzelnen aufeinanderfolgenden Überschriften zu verringern? (siehe auch Frage: [1] )

Global sollten die Einstellungen bestehen bleiben, doch punktuell würde ich gerne ähnlich Word (iiieeee ich weiß) manuell den Abstand der direkt aufeinanderfolgenden Überschriften bestimmen können.

Dieser blöde Stil ist leider als Vorgabe gewünscht.

[1] http://texwelt.de/wissen/fragen/11294/kein-absatz-zwischen-aufeinanderfolgenden-kapiteln

(27 Jan '15, 19:38) AlexM

Der Abstand soll ja sicher trotzdem nicht kleiner sein, als wenn Text folgen würde. Genau so ist es auch:

\documentclass{scrreprt}% ggf. mit Option headings=small
\usepackage{mwe}
\begin{document}
\chapter{chapter}
\section{section}
\subsection{subsection}
\chapter{chapter}
\blindtext
\section{section}
\blindtext
\subsection{subsection}
\blindtext
\end{document}
Wenn da bei Dir auf der ersten Seite größere Abstände sind als auf er zweiten, dann hast Du ein veraltetes KOMA-Script (oder sonst etwas entscheidendes anders).

(28 Jan '15, 07:35) saputello

@Andr beforeskip=-1\baselineskip

(18 Okt '15, 15:58) Johannes

Das erste Beispiel mit \RedeclareSectionCommand ergibt bei mir ein:

Package scrbase Error: unknown option ` beforeskip=-baselineskip '. afterskip=.5baselineskip]{section}

TeX Live habe ich frisch aktualisiert. Was läuft hier schief?

(18 Okt '15, 18:17) André

@André: Siehe den Hinweis @Johannes.

(18 Okt '15, 19:07) saputello

Die Option afterskip auf einen sehr geringen Wert gesetzt (z. B. .1\baselineskip) erzeugt immer noch einen recht großen Abstand. Sobald afterskip Null oder negativ wird, wird der nachfolgende Text direkt in der Zeile der Überschrift fortgeführt. Kann man den nachfolgenden Abstand mit \RedeclareSectionCommand nur in einem bestimmten Ausmaß verringern?

(18 Okt '15, 19:10) André

Verwendest Du vielleicht die Option parskip, d.h. Absatzabstand statt Absatzeinzug? Dann ist der Abstand immer mindestens so groß wie der Absatzabstand.

(18 Okt '15, 21:56) esdd

@André: Der geringste Abstand wäre 1sp und wird zusätzlich zum Absatzabstand eingefügt. Zusätzlich zum Absatzabstand deshalb, weil eine Überschrift, die nicht als Spitzmarke gesetzt werden soll, natürlich auch immer ein Absatz ist. Es sieht auch extrem seltsam aus, wenn der Absatzabstand fehlt. Das wirkt dann wie eine Spitzmarke, bei der die Zeile frühzeitig umbrochen wurde.

(18 Okt '15, 22:29) saputello
Ergebnis 5 von 12 show 7 more comments
Deine Antwort
Vorschau umschalten

Folgen dieser Frage

Per E-Mail:

Wenn sie sich anmelden, kommen Sie für alle Updates hier in Frage

Per RSS:

Antworten

Antworten und Kommentare

Markdown-Grundlagen

  • *kursiv* oder _kursiv_
  • **Fett** oder __Fett__
  • Link:[Text](http://url.com/ "Titel")
  • Bild?![alt Text](/path/img.jpg "Titel")
  • nummerierte Liste: 1. Foo 2. Bar
  • zum Hinzufügen ein Zeilenumbruchs fügen Sie einfach zwei Leerzeichen an die Stelle an der die neue Linie sein soll.
  • grundlegende HTML-Tags werden ebenfalls unterstützt

Frage-Themen:

×130
×57
×55

gestellte Frage: 17 Nov '14, 17:06

Frage wurde gesehen: 77,921 Mal

zuletzt geändert: 18 Okt '15, 22:29