Hi,

On Sun, Mar 8, 2015 at 9:35 AM, Pierre Perol-Schneider <
pierre.schneider.pa...@gmail.com> wrote:

> No clue.
> I just know that some grobs, like 'StaffSymbol' too, need to be reverted
> that way :
>

Consider this snippet:

\version "2.19.16"

#(define ledgerInfo
   (lambda (grob)
     (let* ((refp (ly:grob-system grob))
            (all (ly:grob-array->list (ly:grob-object refp 'all-elements)))
            (ledgers (filter (lambda (l)
                               (grob::has-interface l
'ledger-line-spanner-interface))
                             all)))
       (display ledgers) (newline))))


\relative c' {
  \override Staff.StaffSymbol.after-line-breaking =
   #(lambda (grob) (display grob) (newline))
  \override Staff.LedgerLineSpanner.after-line-breaking = #ledgerInfo
  \override NoteHead.color = #grey
  \override Stem.color = #grey
  \override Staff.LedgerLineSpanner.color = #grey
  \override Staff.StaffSymbol.color = #grey
  a4 a a a
  %\stopStaff
  %\startStaff
  \revert NoteHead.color
  \revert Stem.color
  \revert Staff.LedgerLineSpanner.color
  \revert Staff.StaffSymbol.color
  %\startStaff
  a a a a
}
%%%%%%%%

Notice that with the \stopStaff and \startStaff commented out, there is a
single StaffSymbol grob in the example.  It makes sense that any override
will apply to the whole object.  When \stopStaff and \startStaff are in
effect, a second StaffSymbol grob is created, and it can of course take a
new override or revert.

Very surprisingly, there is only a single LedgerLineSpanner per StaffSymbol
object!  This means that any override of LedgerLineSpanner will affect all
of them.

--David
_______________________________________________
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user

Reply via email to