Can someone explain to me why \overrideProperty Staff.BarLine.color #red colors the barlines in *all* staves while \override Staff.BarLine.color = #red only affects the current Staff context?

I have just re-read http://lilypond.org/doc/v2.19/Documentation/notation/set-versus-override and am scratching my head. I do claim to have some experience by now but this page isn't actually really helpful:

   "The commands ... |\overrideProperty| change grob properties by
   bypassing all context properties completely and, instead, catch
   grobs as they are being created, setting properties on them ... for
   a specific override."

This doesn't give a clue when \overrideProperty should (or must) be used instead of \override or what the difference in behaviour actually is.

\overrideProperty is also present on http://lilypond.org/doc/v2.19/Documentation/notation/available-music-functions#index-overrideProperty-1

   |overrideProperty| [music] - grob-property-path (list of indexes or
   symbols) value (any type)
       Set the grob property specified by grob-property-path to value.
       grob-property-path is a symbol list of the form
       |Context.GrobName.property| or |GrobName.property|, possibly
       with subproperties given as well.

       As opposed to |\override| which overrides the context-dependent
       defaults with which a grob is created, this command uses
       |Output_property_engraver| at the grob acknowledge stage. This
       may be necessary for overriding values set after the initial
       grob creation.

This gives an indication for why it may in some cases be necessary to use \overrideProperty but it doesn't explain why it seems to affect objects in all contexts instead of just the one where it is used.

I'd be glad about any clarification, for reference: this relates to this issue: https://github.com/openlilylib/stylesheets/issues/5

Best
Urs

_______________________________________________
lilypond-user mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/lilypond-user

Reply via email to