| [ << Changing defaults ] | [Top][Contents][Index] | [ Markup commands >> ] |
[ < Using break-visibility ] | [ Up : Visibility of objects ] | [ Rotating objects > ] |
Special considerations
Visibility following explicit changes
The break-visibility property controls the visibility of
key signatures and changes of clef only at the start of lines,
i.e., after a break. It has no effect on the visibility of the
key signature or clef following an explicit key change or an
explicit clef change within or at the end of a line. In the
following example the key signature following the explicit change
to B-flat major is still visible, even though all-invisible
is set.
\relative { \key g \major f'4 g a b % Try to remove all key signatures \override Staff.KeySignature.break-visibility = #all-invisible \key bes \major f4 g a b \break f4 g a b f4 g a b }![]()
The visibility of such explicit key signature and clef changes is
controlled by the explicitKeySignatureVisibility and
explicitClefVisibility properties. These are the equivalent
of the break-visibility property and both take a vector of
three Booleans or the predefined functions listed above, exactly like
break-visibility. Both are properties of the Staff context,
not the layout objects themselves, and so they are set using the
\set command. Both are set by default to all-visible.
These properties control only the visibility of key signatures and
clefs resulting from explicit changes and do not affect key
signatures and clefs at the beginning of lines;
break-visibility must still be overridden in the appropriate
object to remove these.
\relative { \key g \major f'4 g a b \set Staff.explicitKeySignatureVisibility = #all-invisible \override Staff.KeySignature.break-visibility = #all-invisible \key bes \major f4 g a b \break f4 g a b f4 g a b }![]()
Visibility of cancelling accidentals
To remove the cancelling accidentals printed at an explicit key
change, set the Staff context property printKeyCancellation
to #f:
\relative { \key g \major f'4 g a b \set Staff.explicitKeySignatureVisibility = #all-invisible \set Staff.printKeyCancellation = ##f \override Staff.KeySignature.break-visibility = #all-invisible \key bes \major f4 g a b \break f4 g a b f4 g a b }![]()
With these overrides only the accidentals before the notes remain to indicate the change of key.
Note that when changing the key to C major or A minor
the cancelling accidentals would be the only indication of
the key change. In this case setting printKeyCancellation to
#f has no effect:
\relative { \key g \major f'4 g a b \set Staff.explicitKeySignatureVisibility = #all-invisible \set Staff.printKeyCancellation = ##f \key c \major f4 g a b \break f4 g a b f4 g a b }![]()
To suppress the cancelling accidentals even when the key is
changed to C major or A minor, override
the visibility of the KeyCancellation grob instead:
\relative { \key g \major f'4 g a b \set Staff.explicitKeySignatureVisibility = #all-invisible \override Staff.KeyCancellation.break-visibility = #all-invisible \key c \major f4 g a b \break f4 g a b f4 g a b }![]()
Transposed clefs
The small transposition symbol on transposed clefs is produced by the
ClefModifier layout object. Its visibility is automatically
inherited from the Clef object, so it is not necessary to apply
any required break-visibility overrides to the ClefModifier
layout objects to suppress transposition symbols for invisible clefs.
For explicit clef changes, the explicitClefVisibility
property controls both the clef symbol and any transposition symbol
associated with it.
See also
Learning Manual: Visibility and color of objects.
| [ << Changing defaults ] | [Top][Contents][Index] | [ Markup commands >> ] |
[ < Using break-visibility ] | [ Up : Visibility of objects ] | [ Rotating objects > ] |
![[image of music]](../da/lily-4dc098c8.png)
![[image of music]](../13/lily-c3179a84.png)
![[image of music]](../c1/lily-dca20b8c.png)
![[image of music]](../bf/lily-3dce23fd.png)
![[image of music]](../19/lily-bc6f51d2.png)