Utilisation de break-visibility

La plupart des objets de rendu ne sont imprimés qu’une seule fois ; certains cependant, tels les barres de mesure, clefs, métriques ou armures, apparaîtront deux fois lors d’un saut de ligne – une première fois en fin de ligne, puis à nouveau au début de la ligne suivante. Ces objets, que l’on peut traiter de changeables (breakable en anglais) disposent de la propriété break-visibility spécialement chargée de contrôler leur visibilité aux trois endroits où il sont susceptibles d’apparaître : en début de ligne, en cours de ligne ou en fin de ligne – si tant est qu’un changement s’y produise.

Par exemple, la métrique est imprimée par défaut au début de la première ligne, et nulle part ailleurs. En cas de modification, une nouvelle métrique sera imprimée à l’endroit du changement. Dans le cas où ce changement intervient en fin de ligne, la nouvelle métrique s’imprime au début de la ligne suivante, et une métrique « de précaution » viendra se placer au bout de la ligne précédente.

Ce comportement est géré par la propriété break-visibility, dont vous trouverez une explication à la rubrique Visibilité et couleur des objets. Cette propriété est constituée d’un vecteur de trois booléens qui, dans l’ordre, déterminent si l’objet sera imprimé à la fin, en cours, et au début d’une ligne – on pourrait aussi dire avant un saut de ligne, là où il n’y a pas de saut de ligne, et après un saut de ligne.

Les huit combinaisons possibles sont aussi disponibles sous la forme de fonctions prédéfinies, regroupées dans le fichier scm/output-lib.scm. Le tableau suivant vous les présente ; les trois dernières colonnes indiquent l’endroit où l’objet sera visible.

FormeFormeAvantHorsAprès
fonctionnellevectoriellesautsautsaut
all-visible#(#t #t #t)ouiouioui
begin-of-line-visible#(#f #f #t)nonnonoui
center-visible#(#f #t #f)nonouinon
end-of-line-visible#(#t #f #f)ouinonnon
begin-of-line-invisible#(#t #t #f)ouiouinon
center-invisible#(#t #f #t)ouinonoui
end-of-line-invisible#(#f #t #t)nonouioui
all-invisible#(#f #f #f)nonnonnon

Les réglages par défaut de la propriété break-visibility diffèrent selon l’objet de rendu. Le tableau suivant présente, pour la plupart des objets comportant la propriété break-visibility, ces réglages par défaut.

Objet de renduContexte habituelRéglage par défaut
BarLineScorecalculé
BarNumberScorebegin-of-line-visible
BreathingSignVoicebegin-of-line-invisible
ClefStaffbegin-of-line-visible
CustosStaffend-of-line-visible
DivisioStaffbegin-of-line-invisible
DoublePercentRepeatVoicebegin-of-line-invisible
KeySignatureStaffbegin-of-line-visible
ClefModifierStaffbegin-of-line-visible
RehearsalMarkScoreend-of-line-invisible
TimeSignatureStaffall-visible

Voici un exemple d’utilisation de la forme vectorielle pour contrôler la visibilité des barres de mesure :

\relative {
  f'4 g a b
  f4 g a b
  % Remove bar line at the end of the current line
  \once \override Score.BarLine.break-visibility = ##(#f #t #t)
  \break
  f4 g a b
  f4 g a b
}

[image of music]

Lors d’un forçage de break-visibility sous une forme vectorielle, les trois éléments doivent impérativement être mentionnés. Ces formes vectorielles ne sont d’ailleurs pas prises en charge par tous les objets de rendu, et certaines combinaisons peuvent entraîner des erreurs ; nous citerons entre autres :


GNU LilyPond – Manuel de notation v2.25.22 (development-branch).