Sie sind hier

Platzierung der Gleitobjekte innerhalb der aktuellen Gliederung erzwingen

Hallo zusammen

In meiner Arbeit habe ich relativ viele Gleitobjekte und ich finde es unschön, wenn diese in die nächste (sub)section rutschen.

Momentan löse ich das so, dass ich manuell vor jeden Gliederungsbefehl eine \FloatBarrier einfüge.

Meine Frage: Gibt es mit KOMA-Script eine einfachere Möglichkeit dafür? (Klassenoption, umdefinieren der Gliederungsbefehle, ... ?)

Viele Grüsse
Robert

Bild von Markus Kohm

Prinzip dabei:

\newcommand*{\OriginalSection}{}% Anweisung "reservieren"
\let\OriginalSection\section% Originaldefinition kopieren
\renewcommand*{\section}{\FloatBarrier\OriginalSection}% Vor der Originaldefinition noch eine Gleitgrenze einfügen

Die \section-Argument werden dabei erst von \OriginalSection gelesen und ausgewertet. Wenn man nach der Originaldefinition noch etwas zusätzliches ausführen will, geht das natürlich so nicht. Dann muss man bei der Umdefinierung von \section selbst die Argumente (Stern-Variante nicht vergessen!) lesen und explizit an \OriginalSection weiterleiten.

Bild von Markus Kohm

Sollte man aus irgendwelchen Gründen, beispielsweise weil man sonst an einer Stelle überhaupt keinen vernünftigen Seitenumbruch mehr hinbekommt, doch einmal eine Überschrift ohne Barriere haben wollen, kann man dafür natürlich einfach \OriginalSection an Stelle von \section verwenden. Dementsprechend könnte man in meinem Codevorschlag auch \OriginalSection durch \NoBarrierSection ersetzen und hätte damit einen semantisch sinnvollen Namen für die Anweisung.

Genau so habe ich mir das vorgestellt!

Vielen Dank für die Hilfe!
Robert

Bild von Markus Kohm

Demnächst braucht man da übrigens nichts mehr umzudefinieren. Stattdessen kann man mit \AddtoDoHook{heading/preinit/section}{\FloatBarrier} theoretisch die Grenze auch per Do-Hook ziehen. Allerdings verstößt man dabei dann gegen den Hinweis in der Anleitung, dass Hooks keine Ausgabe tätigen und keinen Einfluss auf den Umbruch haben sollen …

Comments for "Platzierung der Gleitobjekte innerhalb der aktuellen Gliederung erzwingen" abonnieren