Brent Annable <[email protected]> writes: > Hi all, > > I'm trying to set the default Lilypond behaviour *not* to print natural > signs before restored accidentals, but I can't figure out the proper > syntax. Can someone tell me why the \override line in the following example > doesn't work but the \tweak does, and what I need to do to apply this > behaviour to the whole file? Obviously I'm missing something, but I can't > figure out what. > > \version "2.22.1" > \relative c' { > \key b \major > \override Accidental.restore-first = ##f > cisis2 cis2 > cisis2 \tweak Accidental.restore-first ##f cis2 > } > > Many thanks as always,
I have been digging through the code, and the Accidental_engraver sets this property based on the extraNatural context property. So because of the Accidental_engraver's context location, you need to set \set Staff.extraNatural = ##f Now the restore-first property is documented as a "user backend property" rather than an internal one, so overriding it in this manner seems like a breach of promise. Directing this behavior through a context property, however, would be consistent with where accidental rules are normally established. There is a Documentation snippet that tweaks one instant of restore-first (to ##t), strengthening the impression that this is a user-level property. So this is somewhat of a mess. Setting Staff.extraNatural should usually be what you want. -- David Kastrup
