[ << Changing defaults ] | [Top][Contents][Index] | [ Notation manual tables >> ] |
[ < 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] | [ Notation manual tables >> ] |
[ < Using break-visibility ] | [ Up : Visibility of objects ] | [ Rotating objects > ] |