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
Umdefinieren der Gliederungsbefehle geht immer
Prinzip dabei:
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.Einen Hinweis noch
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.Danke
Genau so habe ich mir das vorgestellt!
Vielen Dank für die Hilfe!
Robert
Demnächst
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 …