Ich weiß nicht, ob das ein Fehler von KOMA-Script ist, oder ob ich etwas falsch gemacht und es übersehen habe. Setzt man direkt nach einer Abschnittsüberschrift eine addmargin-Umgebung und darin eine minisec-Überschrift, dann wirft LaTeX mit KOMA-Script v3.19a eine Fehlermeldung aus. Das war bei KOMA-Script v3.09 nicht. Mit anderen Versionen, anderen als Abschnittsüberschriften und anderen Umgebungen habe ich es nicht getestet. Minimalbeispiel:
\documentclass[parskip=half]{scrreprt} \usepackage[utf8]{inputenc} \usepackage[german]{babel} \usepackage{blindtext} \newenvironment{env}{% \begin{addmargin}{5em} \minisec{\centering Mini} }{% \end{addmargin}% } \begin{document} \chapter{Kapitel} Das Zusammentreffen von section, addmargin und darin enthaltener minisec erzeugt einen Fehler, der gestern mit KOMA-Script v3.09 nicht aufgetreten ist, erst nach dem Update auf v3.19a. Die parskip-Option und das Zentrieren der Minisecs wären für das Minimalbeispiel nicht nötig, sollen aber zeigen, wie es im Originaldokument aussehen soll. Ursprünglich waren die Miniüberschriften nicht zentriert, deswegen stehen sie (noch) innerhalb der addmargin-Umgebung. Stehen sie außerhalb, tritt der Fehler nicht auf. \section{Abschnitt} \begin{env} \blindtext \end{env} Aussehen sollte das eigentlich so: \section{Abschnitt} Text. \begin{env} \blindtext \end{env} Das funktioniert mit KOMA-Script v3.19a nicht, wenn direkt vor addmargin ein section-Makro steht, ohne Text (Absatz?) dazwischen, während es mit KOMA-Script v3.09 noch ging: \section{Abschnitt} \begin{addmargin}{5em} \minisec{\centering Mini} \blindtext \end{addmargin} Beides jeweils allein direkt nach einem section-Makro macht keine Probleme: \section{Abschnitt} \begin{addmargin}{5em} \blindtext \end{addmargin} \section{Abschnitt} \minisec{\centering Mini} Mit minisec außerhalb von addmargin funktioniert es: \section{Abschnitt} \minisec{\centering Mini} \begin{addmargin}{5em} \blindtext \end{addmargin} \end{document}
Kein Fehler in KOMA-Script
Das ist eine ganz normale Beschränkung von Überschriften und Listenumgebungen in LaTeX:
Die Ursache dürfte in der Absatzänderung (via
\everypar
) von Überschriften liegen. Bereits ein\csname @nobreakfalse\endcsname
oder das einfachere\leavevmode
nach der\section
-Überschrift kann hier Abhilfe schaffen, führt aber auch zu zusätzlichem vertikalem Abstand und ermöglicht einen Seitenumbruch zwischen Überschrift und Listenumgebung. Man kann an der Stelle aber auch ein\vskip
und ein\nopagebreak
verwenden:In Deine eigene Umgebung könntest Du am Anfang
einbauen.
Es ginge auch schlicht
\@noskipsectrue
am Anfang deraddmargin
-Umgebung, aber dann hat man einen größeren vertikalen Abstand.BTW:
\centering
innerhalb von Überschriften ist nicht zulässig. Das gilt auch für\minisec
. Wenn es dadurch zu Problemen kommt, gibt es dafür keinen Support. Dafür kann man\raggedsection
umdefinieren.Dass das ganze bei KOMA-Script v3.09 noch kein Problem war, liegt daran, dass
\minisec
dort noch keine echte Überschrift war. Dafür gab es andere Probleme. Du kannst aber mitversion=3.13
auch auf eine Version zurück schalten, bei der das alte Verhalten verwendet wird.Danke.
Ich habe
\if@nobreak…\fi
benutzt. Da darf man nur\makeat…
nicht vergessen …