**Update** (Dezember 2014)
Mit (Januar 2015)
Seit der [aktuellen KOMA-Script [KOMA-Script Version 3.15][1], die man sich bereits als "[current version][2]" über die KOMA-Script Webseite installieren kann, wird 3.15][1] ist das Einstellen von Abständen vor und nach Überschriften wesentlich einfacher.
\documentclass[headings=small]{scrreprt}
\RedeclareSectionCommand[
beforeskip=-\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][3]
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.
\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][4]
Der in Version 3.15 eingeführte Einzug für `subparagraph` lässt sich durch
\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][5] 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:
\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][6]
----------
Mit der derzeit bei CTAN, TeX Live und MiKTeX noch [aktuellen Version 3.14][7] müsste die Umdefinition ein klein wenig anders aussehen:
\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
[1]: http://www.komascript.de/release3.15
[2]: http://www.komascript.de/current
[3]: http://texwelt.de/wissen/upfiles/redeclaresection.png
[4]: http://texwelt.de/wissen/upfiles/redeclaresection1.png
[5]: http://www.komascript.de/comment/3372#comment-3372
[6]: http://texwelt.de/wissen/upfiles/abstaende_2.png
[7]: http://www.komascript.de/release3.14