von KOMA » Mo 29. Mär 2010, 16:05
Das Problem ist, dass nicht das Paket den Zähler zurücksetzt, sondern die Anweisung, die vom Paket für die Fortsetzung definiert wird, das Ende der Bsp-Umgebung nicht überlegt. Ein Umgebungsende ist nun einmal auch immer ein Gruppen-Ende. Gruppen-Enden überleben aber nur globale Makros.
Die einzige schnelle Lösung, die mir für dieses Problem einfällt, wäre
\makeatletter
\g@addto@macro\endbsp{%
\global\let\enit@resume@enumarabic\enit@resume@enumarabic
}
\makeatother
nach der Definition von bsp. Allerdings darf man dann keinesfalls bsp innerhalb von enumarabic verwenden. Weitere Nebenwirkungen sind nicht ausgeschlossen!
Vielleicht ein wenig besser wäre (ungetestet):
\makeatletter
\g@addto@macro\endbsp{%
\global\let\global@enit@resume@enumarabic\enit@resume@enumarabic
\aftergroup\let\aftergroup\enit@resume@enumarabic\aftergroup\global@enit@resume@enumarabic
}
\makeatother
Das Problem ist, dass nicht das Paket den Zähler zurücksetzt, sondern die Anweisung, die vom Paket für die Fortsetzung definiert wird, das Ende der Bsp-Umgebung nicht überlegt. Ein Umgebungsende ist nun einmal auch immer ein Gruppen-Ende. Gruppen-Enden überleben aber nur globale Makros.
Die einzige schnelle Lösung, die mir für dieses Problem einfällt, wäre [code]\makeatletter
\g@addto@macro\endbsp{%
\global\let\enit@resume@enumarabic\enit@resume@enumarabic
}
\makeatother[/code] nach der Definition von bsp. Allerdings darf man dann keinesfalls bsp innerhalb von enumarabic verwenden. Weitere Nebenwirkungen sind nicht ausgeschlossen!
Vielleicht ein wenig besser wäre (ungetestet): [code]\makeatletter
\g@addto@macro\endbsp{%
\global\let\global@enit@resume@enumarabic\enit@resume@enumarabic
\aftergroup\let\aftergroup\enit@resume@enumarabic\aftergroup\global@enit@resume@enumarabic
}
\makeatother[/code]