>> Note that `spanner-broken` is an internal property, not to be >> modified by the user. A search in the code yields the command >> `\breakDynamicSpan` as user syntax – introduced more than 10 years >> ago in version 2.13.23... I will document that soon. > > Excellent! >
>> Unfortunately, it doesn't cover the case where a dynamic mark is >> immediately followed by a hairpin: >> >> { >> <>^\markup { \typewriter "e''2\\f\\> f2\\p" } >> e''2\f\> f2\p | \break >> >> <>^\markup { \typewriter "e''2\\f\\breakDynamicSpan\\> f2\\p" >> (doesn't work) } >> e''2\f\breakDynamicSpan\> f2\p | \break >> >> <>^\markup { \typewriter "e''2\\f\\> f2\\breakDynamicSpan\\p" >> (works) } >> e''2\f\> f2\breakDynamicSpan\p | \break >> } >> >> Can this be fixed easily? This is, making the hairpin listen to a >> `BreakDynamicSpanEvent` at the creation time of a >> `DynamicLineSpanner`? It's probably a special case, since the >> dynamic mark *should* influence the horizontal position of the >> hairpin's starting point. > > At least I have not found a way to fix it easily :-( To answer my own question: No, it can't be fixed as outlined above. Reason is that the order of events at a given moment is not specified. This means that it is not possible to make a reliable distinction between \f \< ... \breakDynamicSpan \p \< ... \f and \f \< ... \p \breakDynamicSpan \< ... \f However, I could imagine that a property `no-dynamic-span` gets added to the `DynamicText` grob. The `Dynamic_align_engraver` checks this while creating a `DynamicLineSpanner` grob; if set, the `DynamicText` grob is not added as a child to `DynamicLineSpanner`. Werner