von Gast » Sa 7. Sep 2019, 18:12
LaTeX setzt per \everypar oder durch Umdefinierung von \par \clubpenalty immer wieder neu selbst entweder auf den Wert von \@clubpenalty oder \@M (das ist übrigens ebenfalls 10000). Eine dieser Gelegenheiten ist das Ende einer trivlist und damit auch das Ende jeder Listenumgebung. Wie in der KOMA-Script-Anleitung zu lesen ist, ist addmargin eine Listenumgebung. Eine andere Gelegenheit ist \item. Was nicht in der KOMA-Script-Anleitung zu lesen ist, was aber eigentlich logisch ist, wenn addmargin eine Listenumgebung ist, dass am Anfang der addmargin-Umgebung ein implizites \item ausgeführt wird.
Es gibt auch noch weitere Gelegenheiten wie die \@xsect oder \@afterheading. Deshalb kann man sich nicht darauf verlassen, dass eine Änderung von \clubpenalty auch nur das Ende des aktuellen Absatzes geschweige denn den Anfang einer neuen Umgebung oder eines Gliederungsbefehls o. ä. übersteht. Das Minimum wäre, lokal nicht nur \clubpenalty sondern auch \@clubpenalty zu ändern. Am besten definiert man sich dafür einen Befehl, der beide Werte ändert. \@clubpenalty ist übrigens ein TeX-Zähler, also bitte nicht mit [r]\renewcommand][/tt] sondern einfach per Wertzuweisung ändern. Je nachdem, was du tatsächlich vor hast, genügt eventuell auch \@nobreaktrue. Oder du willst eventuell eine minipage innerhalb der addmargin-Umgebung. Das kann ich nicht beurteilen, weil du nicht dein eigentliches Problem angegeben hast, sondern nur welches Problem du mit deinem eigenen Lösungsversuch hattest.
LaTeX setzt per [tt]\everypar[/tt] oder durch Umdefinierung von [tt]\par[/tt] [tt]\clubpenalty[/tt] immer wieder neu selbst entweder auf den Wert von [tt]\@clubpenalty[/tt] oder [tt]\@M[/tt] (das ist übrigens ebenfalls 10000). Eine dieser Gelegenheiten ist das Ende einer [tt]trivlist[/tt] und damit auch das Ende jeder Listenumgebung. Wie in der KOMA-Script-Anleitung zu lesen ist, ist [tt]addmargin[/tt] eine Listenumgebung. Eine andere Gelegenheit ist [tt]\item[/tt]. Was nicht in der KOMA-Script-Anleitung zu lesen ist, was aber eigentlich logisch ist, wenn [tt]addmargin[/tt] eine Listenumgebung ist, dass am Anfang der [tt]addmargin[/tt]-Umgebung ein implizites [tt]\item[/tt] ausgeführt wird.
Es gibt auch noch weitere Gelegenheiten wie die [tt]\@xsect[/tt] oder [tt]\@afterheading[/tt]. Deshalb kann man sich nicht darauf verlassen, dass eine Änderung von [tt]\clubpenalty[/tt] auch nur das Ende des aktuellen Absatzes geschweige denn den Anfang einer neuen Umgebung oder eines Gliederungsbefehls o. ä. übersteht. Das Minimum wäre, lokal nicht nur [tt]\clubpenalty[/tt] sondern auch [tt]\@clubpenalty[/tt] zu ändern. Am besten definiert man sich dafür einen Befehl, der beide Werte ändert. [tt]\@clubpenalty[/tt] ist übrigens ein TeX-Zähler, also bitte nicht mit [r]\renewcommand][/tt] sondern einfach per Wertzuweisung ändern. Je nachdem, was du tatsächlich vor hast, genügt eventuell auch [tt]\@nobreaktrue[/tt]. Oder du willst eventuell eine [tt]minipage[/tt] innerhalb der [tt]addmargin[/tt]-Umgebung. Das kann ich nicht beurteilen, weil du nicht dein eigentliches Problem angegeben hast, sondern nur welches Problem du mit deinem eigenen Lösungsversuch hattest.