lilypond-user
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Contexts affected by \override and \overrideProperty


From: David Kastrup
Subject: Re: Contexts affected by \override and \overrideProperty
Date: Mon, 18 Feb 2019 17:30:36 +0100
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/27.0.50 (gnu/linux)

Urs Liska <address@hidden> writes:

> 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.

Because the respective engraver is only active at Score level and
overrides the properties in _all_ contexts of the given type.

-- 
David Kastrup



reply via email to

[Prev in Thread] Current Thread [Next in Thread]