<xsl:templatematch="lb[not(name(preceding-sibling::node()[1]) = 'pb')][not(parent::p and (count(preceding-sibling::node()) = 0) or matches(preceding-sibling::node()[1],'^\s*$'))][* or matches(., '\w') or not(@xml:id)]"mode="step3">
<xsl:templatematch="lb[not(name(preceding-sibling::node()[1]) = 'pb')][not(parent::p and (count(preceding-sibling::node()) = 0))][* or matches(., '\w') or not(@xml:id)]"mode="step3">
<!-- Letztere Klammer verhindert, dass 2 Zeilenumbrüche hintereinander stehen. -->
<xsl:choose>
<xsl:whentest="not(parent::p/*[1][self::lb][not(* or matches(., '\w') or not(@xml:id))])">