| [ < ] | [ > ] | [ << ] | [Plus haut] | [ >> ] | [Racine] | [Table des matières] | [Index] | [ ? ] |
@translationof Vertical spacing
L’espacement vertical dépend de trois éléments : la surface disponible – format de papier et marges –, l’espace qui doit séparer les systèmes, et l’espace qui sépare les portées d’un même système.
| 4.4.1 Espacement vertical au sein d’un système | ||
| 4.4.2 Positionnement explicite des portées et systèmes | ||
| 4.4.3 Résolution des collisions verticales |
| [ < ] | [ > ] | [ << ] | [Plus haut] | [ >> ] | [Racine] | [Table des matières] | [Index] | [ ? ] |
@translationof Flexible vertical spacing within systems
LilyPond dispose de trois différents mécanismes permettant de contrôler l’espacement au sein d’un système selon trois catégories :
ChoirStaff, etc.), et
Lyrics, ChordNames, etc.).
La hauteur de chaque système se détermine en deux phases. Les portées sont tout d’abord espacées selon la surface disponible. Puis les lignes autres que des portées, comme les paroles ou les accords, sont réparties entre les portées.
Les paragraphes qui suivent traitent exclusivement de la manière de
gérer l’espacement entre les lignes d’un système – portée musicale ou
non. Pour ce qui a trait aux espacements entre les systèmes,
mouvements, annotations et marge, ils sont contrôlés par des variables
attachées au bloc \paper et font l’objet du chapitre
Variables d’espacement vertical fluctuant.
| Propriétés d’espacement au sein d’un système | ||
| Espacement de portées isolées | ||
| Espacement de portées regroupées | ||
| Espacement des lignes rattachées à des portées |
| [ < ] | [ > ] | [ << ] | [Plus haut] | [ >> ] | [Racine] | [Table des matières] | [Index] | [ ? ] |
@translationof Within-system spacing properties
L’espacement entre les portées est géré par deux jeux de propriétés
d’objet graphique (grob). Le premier, associé à l’objet
graphique VerticalAxisGroup, est créé pour toute ligne de portée
ou de non-portée. Le second, associé à l’objet graphique
StaffGrouper, doit être explicitement créé pour un regroupement
de portées particulier. Les propriétés qui leur sont attachées sont
abordées en fin de section.
Le nom de ces propriétés, sauf staff-affinity, suit le schéma
item1-item2-spacing – item1 et
item2 étant les éléments à espacer. Notez bien que
item2 n’est pas forcément placé au-dessous : c’est le
cas pour la propriété nonstaff-relatedstaff-spacing qui spécifie
l’espacement d’une ligne de non-portée alors que sa
staff-affinity a été déterminée à UP.
Toutes ces distances sont mesurées entre les points de référence
respectifs des éléments considérés.
Le point de référence d’une portée est le centre vertical du
StaffSymbol – la ligne médiane si line-count est impair,
l’interligne médian si line-count est pair.
Quant aux lignes rattachées à des portées – lignes de non-portée – le
tableau suivant présente le point de référence pour chacune
d’elles :
| Ligne de non-portée | Point de référence |
|---|---|
ChordNames | ligne de base |
NoteNames | ligne de base |
Lyrics | ligne de base |
Dynamics | mi-hauteur du « m » |
FiguredBass | point le plus haut |
FretBoards | ligne supérieure |
En voici une représentation graphique :
Hormis staff-affinity – propriété attachée au grob
VerticalAxisGroup –, chacune de ces propriétés est enregistrée
sous la forme d’une liste associative dont la structure est
identique à celle des variables du bloc \paper que nous avons
examinées au chapitre
Variables d’espacement vertical fluctuant. Les particularités en
matière de modification d’une liste associative font l’objet d’un
(notation)Modification de listes associatives section ‘chapitre particulier’ dans Manuel de notation.
Les propriétés des objets graphiques se règlent avec un \override
mentionné dans un bloc \score ou \layout, pas dans le bloc
\paper.
L’exemple suivant illustre deux façons de modifier une liste associative. La première déclaration n’agit que sur une seule clé, alors que la seconde redéfinit la propriété dans son intégralité.
\new Staff \with {
\override VerticalAxisGroup.default-staff-staff-spacing.basic-distance = #10
} { … }
\new Staff \with {
\override VerticalAxisGroup.default-staff-staff-spacing =
#'(('basic-distance . 10)
(minimum-distance . 9)
(padding . 1)
(stretchability . 10))
} { … }
|
La modification d’un espacement au niveau global se mentionne au sein du
bloc \layout :
\layout {
\context {
\Staff
\override VerticalAxisGroup.default-staff-staff-spacing.basic-distance = #10
}
}
|
Les réglages concernant les propriétés d’espacement vertical des objets graphiques sont répertoriées aux chapitres (internals)VerticalAxisGroup section ‘VerticalAxisGroup’ dans Référence des propriétés internes et (internals)StaffGrouper section ‘StaffGrouper’ dans Référence des propriétés internes. Les propriétés relatives aux lignes de non-portée sont répertoriées selon la définition de leur contexte dans la (internals)Contexts section ‘Référence des propriétés internes’ dans Référence des propriétés internes.
VerticalAxisGroupLes propriétés de l’objet VerticalAxisGroup s’ajustent à l’aide
d’un \override au niveau d’un contexte Staff (ou son
équivalent).
staff-staff-spacingIl s’agit de la distance entre la portée en cours et la portée qui suit
au sein du même regroupement, qu’il y ait ou des lignes de non-portée
(Lyrics ou autre entre les deux. Cette propriété ne s’applique
pas à la dernière portée d’un système.
En tout état de cause, la fonction Scheme staff-staff-spacing
d’un VerticalAxisGroup affectera les propriétés du
StaffGrouper si la portée est incluse dans un regroupement ;
elle s’appliquera au default-staff-staff-spacing en l’absence de
regroupement. Les portées peuvent donc s’aligner différemment selon
qu’elles sont ou non regroupées. Pour obtenir le même espacement sans
tenir compte des éventuels regroupements, cette fonction peut faire
place à une complète redéfinition des espacements fluctuants à l’aide de
règles dérogatoires comme vu précédemment.
default-staff-staff-spacingIl s’agit de la distance qui s’appliquera par défaut aux portées
isolées, à moins que staff-staff-spacing n’ait été redéfini
explicitement par un \override.
staff-affinityIl s’agit de la direction – UP, DOWN ou CENTER –
que prendra une ligne de non-portée pour aller s’accoler aux portées
adjacentes. Si vous lui attribuez CENTER, cette ligne de
non-portée ira se placer à équidistance entre les portées qui
l’encadrent, tout en tenant compte des éventuels risques de collision et
autres contraintes d’espacement. Des lignes de non-portée
adjacentes devraient avoir une staff-affinity allant de haut en
bas – autrement dit, pas de UP après un DOWN.
Une ligne de non-portée en dessous d’un système devrait avoir sa
staff-affinity définie à UP. De la même manière, lorsque
cette ligne surplombe un système, sa staff-affinity devrait être
définie à DOWN. Prenez garde à la valeur que vous affectez à
staff-affinity : si vous affectez la valeur #f à
une ligne de non-portée, cette ligne sera considérée comme étant une
portée ; à l’inverse, utiliser la propriété staff-affinity
pour une portée lui fera perdre cette qualité.
nonstaff-relatedstaff-spacingIl s’agit de la distance entre la ligne de non-portée en cours et la
portée la plus proche selon la staff-affinity, à la double
condition qu’il n’y ait pas déjà une autre ligne de non-portée et que la
valeur de staff-affinity soit UP ou DOWN. Lorsque
la valeur de staff-affinity est égale à CENTER, la valeur
de nonstaff-relatedstaff-spacing servira à centrer la ligne de
non-portée entre les deux portées adjacentes même si une autre
non-portée est présente (quelque soit le côté). Le positionnement
d’une ligne de non-portée dépend donc à la fois des portées qui
l’entourent tout comme des autres lignes de non-portée adjacentes.
L’affectation d’une faible valeur à la propriété stretchability
de l’un de ces types d’espacement l’avantagera ; lui affecter une
valeur élevée aura pour conséquence de diminuer l’influence de
l’espacement considéré.
nonstaff-nonstaff-spacingIl s’agit de la distance entre deux lignes de non-portée selon
l’orientation définie par staff-affinity et dès lors qu’elles ont
la même orientation. Bien entendu, ceci ne peut concerner que les
valeurs UP et DOWN de staff-affinity.
nonstaff-unrelatedstaff-spacingIl s’agit de la distance entre une ligne de non-portée et la portée à
l’opposé de l’orientation adoptée, à la double condition qu’il n’y ait
pas déjà une autre ligne de non-portée et que la valeur de
staff-affinity soit UP ou DOWN. Cette propriété
trouve toute sa légitimité pour décaler une ligne de Lyrics de la
portée à laquelle elle ne correspond pas.
StaffGrouperLes propriétés de l’objet StaffGrouper s’ajustent à l’aide
d’un \override au niveau d’un contexte StaffGroup (ou son
équivalent).
staff-staff-spacingIl s’agit de la distance entre deux portées consécutives d’un même
système. La propriété staff-staff-spacing de l’objet
VerticalAxisGroup d’une portée en particulier peut se redéfinir à
l’aide de règles dérogatoires.
staffgroup-staff-spacingIl s’agit de la distance entre la dernière portée d’un regroupement et
la portée suivante, au sein d’un même système, y compris lorsqu’une ou
plusieurs lignes de non-portée (tel Lyrics) s’insèrent entre les
deux. Cette propriété ne concerne pas la dernière portée d’un système.
Dans le cas où la propriété staff-staff-spacing d’une portée du
regroupement a été ajustée au niveau de son propre
VerticalAxisGroup, cette dernière aura préséance.
Manuel de notation : Modification de listes associatives, Variables d’espacement vertical fluctuant.
Fichiers d’initialisation : ‘ly/engraver-init.ly’, ‘scm/define-grobs.scm’.
Référence des propriétés internes : (internals)Contexts section ‘Contexts’ dans Référence des propriétés internes, (internals)VerticalAxisGroup section ‘VerticalAxisGroup’ dans Référence des propriétés internes, (internals)StaffGrouper section ‘StaffGrouper’ dans Référence des propriétés internes.
| [ < ] | [ > ] | [ << ] | [Plus haut] | [ >> ] | [Racine] | [Table des matières] | [Index] | [ ? ] |
@translationof Spacing of ungrouped staves
Les Staff, DrumStaff, TabStaff entre autres sont
des contextes de « portée » pouvant contenir plusieurs voix, mais pas
une portée.
L’espacement de ces portées isolées est géré par les propriétés suivantes :
VerticalAxisGroup :
default-staff-staff-spacing
staff-staff-spacing
Ces propriétés d’objet graphique sont expliquées une à une au chapitre Propriétés d’espacement au sein d’un système.
Certaines propriétés supplémentaires s’appliqueront dès lors que ces portées sont regroupées – voir Espacement de portées regroupées.
L’exemple suivant illustre la manière de gérer l’espacement de portées
isolées à l’aide de la propriété default-staff-staff-spacing.
Les mêmes règles appliquées de manière dérogatoire au
staff-staff-spacing produiront les mêmes effets, y compris au
sein de regroupements.
\layout { \context { \Staff \override VerticalAxisGroup.default-staff-staff-spacing = #'((basic-distance . 8) (minimum-distance . 7) (padding . 1)) } } << % The very low note here needs more room than 'basic-distance % can provide, so the distance between this staff and the next % is determined by 'padding. \new Staff { b,2 r | } % Here, 'basic-distance provides enough room, and there is no % need to compress the space (towards 'minimum-distance) to make % room for anything else on the page, so the distance between % this staff and the next is determined by 'basic-distance. \new Staff { \clef bass g2 r | } % By setting 'padding to a negative value, staves can be made to % collide. The lowest acceptable value for 'basic-distance is 0. \new Staff \with { \override VerticalAxisGroup.default-staff-staff-spacing = #'((basic-distance . 3.5) (padding . -10)) } { \clef bass g2 r | } \new Staff { \clef bass g2 r | } >>
Fichiers d’initialisation : ‘scm/define-grobs.scm’.
Morceaux choisis : (snippets)Spacing section ‘Espacements’ dans Morceaux choisis.
Référence des propriétés internes : (internals)VerticalAxisGroup section ‘VerticalAxisGroup’ dans Référence des propriétés internes.
| [ < ] | [ > ] | [ << ] | [Plus haut] | [ >> ] | [Racine] | [Table des matières] | [Index] | [ ? ] |
@translationof Spacing of grouped staves
Dans les partitions orchestrales ou de grande ampleur, il arrive souvent que des portées soient regroupées. L’espacement est alors plus important entre deux regroupements qu’entre les portées d’un même groupe.
Les regroupements de portées tels le StaffGroup ou le
ChoirStaff sont des contextes qui peuvent contenir simultanément
une ou plusieurs portées.
L’espacement entre les portées d’un même regroupement est géré par les propriétés suivantes :
VerticalAxisGroup :
staff-staff-spacing
StaffGrouper :
staff-staff-spacing
staffgroup-staff-spacing
Ces propriétés d’objet graphique sont expliquées une à une au chapitre Propriétés d’espacement au sein d’un système.
L’exemple suivant illustre la manière de gérer l’espacement de portées
regroupées, à l’aide des propriétés de l’objet graphique
StaffGrouper :
\layout { \context { \Score \override StaffGrouper.staff-staff-spacing.padding = #0 \override StaffGrouper.staff-staff-spacing.basic-distance = #1 } } << \new PianoStaff \with { \override StaffGrouper.staffgroup-staff-spacing.basic-distance = #20 } << \new Staff { c'1 } \new Staff { c'1 } >> \new StaffGroup << \new Staff { c'1 } \new Staff { c'1 } >> >>
Fichiers d’initialisation : ‘scm/define-grobs.scm’.
Morceaux choisis : (snippets)Spacing section ‘Espacements’ dans Morceaux choisis.
Référence des propriétés internes : (internals)VerticalAxisGroup section ‘VerticalAxisGroup’ dans Référence des propriétés internes, (internals)StaffGrouper section ‘StaffGrouper’ dans Référence des propriétés internes.
| [ < ] | [ > ] | [ << ] | [Plus haut] | [ >> ] | [Racine] | [Table des matières] | [Index] | [ ? ] |
@translationof Spacing of non-staff lines
Les lignes de non-portée, comme les Lyrics ou les
ChordNames sont des contextes dont les objets de rendu sont
gravés à l’instar des portées – une ligne horizontale dans un système.
En fait, les lignes de non-portée sont des contextes qui vont créer un
objet de rendu VerticalAxisGroup auxquel est attaché le
(internals)Axis_group_engraver section ‘Axis_group_engraver’ dans Référence des propriétés internes.
L’espacement des lignes de non-portée est géré par les propriétés suivantes :
VerticalAxisGroup :
staff-affinity
nonstaff-relatedstaff-spacing
nonstaff-nonstaff-spacing
nonstaff-unrelatedstaff-spacing
Ces propriétés d’objet graphique sont expliquées une à une au chapitre Propriétés d’espacement au sein d’un système.
L’exemple suivant utilise la propriété nonstaff-nonstaff-spacing
pour gérer l’espacement entre des lignes consécutives de non-portée.
Vous noterez que la valeur élevée attribuée à la clé
stretchability permet aux paroles de s’étirer plus que de raison.
\layout { \context { \Lyrics \override VerticalAxisGroup.nonstaff-nonstaff-spacing.stretchability = #1000 } } \new StaffGroup << \new Staff \with { \override VerticalAxisGroup.staff-staff-spacing = #'((basic-distance . 30)) } { c'1 } \new Lyrics \with { \override VerticalAxisGroup.staff-affinity = #UP } \lyricmode { up } \new Lyrics \with { \override VerticalAxisGroup.staff-affinity = #CENTER } \lyricmode { center } \new Lyrics \with { \override VerticalAxisGroup.staff-affinity = #DOWN } \lyricmode { down } \new Staff { c'1 } >>
Fichiers d’initialisation : ‘ly/engraver-init.ly’, ‘scm/define-grobs.scm’.
Morceaux choisis : (snippets)Spacing section ‘Espacements’ dans Morceaux choisis.
Référence des propriétés internes : (internals)Contexts section ‘Contexts’ dans Référence des propriétés internes, (internals)VerticalAxisGroup section ‘VerticalAxisGroup’ dans Référence des propriétés internes.
| [ < ] | [ > ] | [ << ] | [Plus haut] | [ >> ] | [Racine] | [Table des matières] | [Index] | [ ? ] |
@translationof Explicit staff and system positioning
Pour bien comprendre comment fonctionnent les réglages de
VerticalAxisGroup et de \paper abordés dans les deux
rubriques précédentes, rien ne vaut une collection d’exemples illustrant
les différentes mises au point du décalage vertical appliqué aux portées
et systèmes distribués sur une page.
Une autre approche de l’espacement vertical est le recours à
NonMusicalPaperColumn.line-break-system-details. Alors que
VerticalAxisGroup et \paper gèrent un décalage vertical,
NonMusicalPaperColumn.line-break-system-details spécifiera le
positionnement vertical absolu sur la page.
NonMusicalPaperColumn.line-break-system-details prend en charge
une liste associative de quatre mises au point :
X-offset
Y-offset
extra-offset
alignment-distances
Les dérogations en matière d’objet graphique, y compris celles
concernant les NonMusicalPaperColumn ci-dessus, peuvent se placer
à trois différents endroits de votre fichier source :
\context
\with
Le réglage de NonMusicalPaperColumn s’effectue à l’aide d’une
simple commande \override au sein d’un bloc \context ou
\with. Dans le cas où il est stipulé au fil des notes, c’est la
commande spécifique \overrideProperty qui doit intervenir. Voici
quelques exemples de réglages de NonMusicalPaperColumn à l’aide
de la commande \overrideProperty :
\overrideProperty NonMusicalPaperColumn.line-break-system-details
#'((X-offset . 20))
\overrideProperty NonMusicalPaperColumn.line-break-system-details
#'((Y-offset . 40))
\overrideProperty NonMusicalPaperColumn.line-break-system-details
#'((X-offset . 20)
(Y-offset . 40))
\overrideProperty NonMusicalPaperColumn.line-break-system-details
#'((alignment-distances . (15)))
\overrideProperty NonMusicalPaperColumn.line-break-system-details
#'((X-offset . 20)
(Y-offset . 40)
(alignment-distances . (15)))
|
Nous allons maintenant voir ces différents réglages en action. Commençons par examiner un exemple dépourvu de toute mise au point.
\header { tagline = ##f } \paper { left-margin = 0\mm } \book { \score { << \new Staff << \new Voice { s1*5 \break s1*5 \break s1*5 \break } \new Voice { \repeat unfold 15 { c'4 c' c' c' } } >> \new Staff { \repeat unfold 15 { d'4 d' d' d' } } >> } }
Cette partition isole les informations de saut de ligne ou de page dans une voix spécifique. La mise en forme est ainsi séparée des événements musicaux ; ceci nous permettra d’y voir plus clair au fur et à mesure que nous avancerons. Pour plus de précisions, relisez Sauts.
Les \break explicites répartissent la musique en lignes de cinq
mesures chacune. L’espacement vertical est celui que LilyPond attribue
par défaut. Nous pouvons, afin de fixer explicitement le point
d’attache vertical de chacun des systèmes, définir un doublet
Y-offset en tant qu’attribut du line-break-system-details
de l’objet NonMusicalPaperColumn :
\header { tagline = ##f } \paper { left-margin = 0\mm } \book { \score { << \new Staff << \new Voice { \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 0)) s1*5 \break \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 40)) s1*5 \break \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 60)) s1*5 \break } \new Voice { \repeat unfold 15 { c'4 c' c' c' } } >> \new Staff { \repeat unfold 15 { d'4 d' d' d' } } >> } }
Vous aurez remarqué que nous n’avons déterminé qu’une seule valeur, même
si la liste associative de line-break-system-details peut en
comporter un certain nombre. Vous aurez aussi noté que la propriété
Y-offset détermine ici le point de départ de chacun des systèmes
de la page.
Contrairement au positionnement absolu accessible par Y-offset et
X-offset, il est possible d’opter pour un positionnement relatif
à l’aide de la propriété extra-offset des
line-break-system-details. Le placement sera relatif à la mise en
forme par défaut ou au positionnement absolu géré par X-offset et
Y-offset. La propriété extra-offset prend en argument une
paire constituée des déplacements sur les axes horizontal et
vertical.
\header { tagline = ##f } \paper { left-margin = 0\mm } \book { \score { << \new Staff << \new Voice { s1*5 \break \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((extra-offset . (0 . 10))) s1*5 \break \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((extra-offset . (0 . 10))) s1*5 \break } \new Voice { \repeat unfold 15 { c'4 c' c' c' } } >> \new Staff { \repeat unfold 15 { d'4 d' d' d' } } >> } }
Maintenant que chaque système est explicitement positionné, nous pouvons
jouer sur la distance séparant les portées de chacun des systèmes, grâce
à la sous-propriété alignment-distances de
line-break-system-details.
\header { tagline = ##f } \paper { left-margin = 0\mm } \book { \score { << \new Staff << \new Voice { \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 20) (alignment-distances . (10))) s1*5 \break \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 60) (alignment-distances . (15))) s1*5 \break \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 85) (alignment-distances . (20))) s1*5 \break } \new Voice { \repeat unfold 15 { c'4 c' c' c' } } >> \new Staff { \repeat unfold 15 { d'4 d' d' d' } } >> } }
Nous avons maintenant assigné deux valeurs différentes à l’attribut
line-break-system-details de l’objet
NonMusicalPaperColumn. line-break-system-details pourrait
prendre bien d’autres paramètres d’espacement, y compris un doublet
X-offset, mais nous n’avons utilisé que Y-offset et
alignment-distances pour contrôler le positionnement de chaque
système et de chaque portée. Vous noterez enfin que
alignment-distances traite le positionnement des portées, non
d’un regroupement de portées.
\header { tagline = ##f } \paper { left-margin = 0\mm } \book { \score { << \new Staff << \new Voice { \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 0) (alignment-distances . (30 10))) s1*5 \break \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 60) (alignment-distances . (10 10))) s1*5 \break \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 100) (alignment-distances . (10 30))) s1*5 \break } \new Voice { \repeat unfold 15 { c'4 c' c' c' } } >> \new StaffGroup << \new Staff { \repeat unfold 15 { d'4 d' d' d' } } \new Staff { \repeat unfold 15 { e'4 e' e' e' } } >> >> } }
Quelques points à prendre en considération :
alignment-distances, les paroles et
autres lignes de non-portée ne comptent pas pour une portée.
X-offset, Y-offset,
extra-offset et alignment-distances sont considérés comme
des multiples de la distance entre des portées adjacentes. Des valeurs
positives remontent les portées et paroles, des valeurs négatives les
descendent.
NonMusicalPaperColumn.line-break-system-details
permet de positionner systèmes et portées n’importe où sur une page,
vous pourriez être en contradiction avec les dimensionnements de la
feuille ou bien aboutir à des surimpressions. Soyez donc raisonnable
quant aux différentes valeurs que vous affectez à ces réglages.
Morceaux choisis : (snippets)Spacing section ‘Espacements’ dans Morceaux choisis.
| [ < ] | [ > ] | [ << ] | [Plus haut] | [ >> ] | [Racine] | [Table des matières] | [Index] | [ ? ] |
@translationof Vertical collision avoidance
Vous savez de manière intuitive qu’un certain nombre d’objets en matière de notation musicale appartiennent à la portée, et que d’autres se placent en dehors de la portée. Entre autres objets externes, nous avons les marques repères, les textes et les nuances ; nous les appellerons « objets extérieurs à la portée ». La règle adoptée par LilyPond pour positionner verticalement ces objets extérieurs consiste à les placer au plus près de la portée tout en prenant garde d’éviter qu’il y ait chevauchement.
LilyPond utilise la propriété outside-staff-priority afin de
déterminer si un objet est ou non un objet extérieur à la portée :
lorsque la valeur de outside-staff-priority est numérique, il
s’agit d’un objet extérieur à la portée. De plus, la propriété
outside-staff-priority indique à LilyPond l’ordre dans lequel ces
objets doivent être disposés.
Tout d’abord, LilyPond dispose tous les objets qui ne sont pas externes.
Les objets extérieurs à la portée sont alors triés selon l’ordre
croissant de leur outside-staff-priority. Enfin, LilyPond prend
chacun des ces objets et les positionne de telle sorte qu’il n’entrent
pas en collision avec ceux qui on déjà été placés. Autrement dit,
lorsque deux objets devraient se placer au même endroit, celui dont la
outside-staff-priority est la plus faible sera disposé au plus
près de la portée.
Une liste des outside-staff-priorities est disponible à la
rubrique
(learning)La propriété outside-staff-priority section ‘La propriété outside-staff-priority’ dans Manuel d’initiation.
\relative c'' { c4_"Text"\pp r2. \once \override TextScript.outside-staff-priority = #1 c4_"Text"\pp % this time the text will be closer to the staff r2. % by setting outside-staff-priority to a non-number, % we disable the automatic collision avoidance \once \override TextScript.outside-staff-priority = ##f \once \override DynamicLineSpanner.outside-staff-priority = ##f c4_"Text"\pp % now they will collide }
Le décalage vertical entre des objets extérieurs à la portée se contrôle
par la propriété outside-staff-padding.
\relative { \once \override TextScript.outside-staff-padding = #0 a'4-"outside-staff-padding = #0" \once \override TextScript.outside-staff-padding = #3 d-"outside-staff-padding = #3" c-"outside-staff-padding par défaut" b-"outside-staff-padding par défaut" R1 }
Par défaut, les objets extérieurs à la portée sont positionnés en
évitant les collisions horizontales avec des objets précédemment
positionnés. Ceci peut cependant générer des situations où des objets
se trouvent horizontalement trop proches. Comme l’illustre l’exemple
suivant, la propriété outside-staff-horizontal-padding permet
d’accroître l’espace horizontal requis et repoussera verticalement un
objet pour éviter qu’il ne soit trop proche d’éventuelles lignes
supplémentaires.
\relative { c''4^"Word" c c''2 R1 \once \override TextScript.outside-staff-horizontal-padding = #1 c,,4^"Word" c c''2 }
Morceaux choisis : (snippets)Spacing section ‘Espacements’ dans Morceaux choisis.
| [ < ] | [ > ] | [ << ] | [Plus haut] | [ >> ] |
Ce document a été généré le le 13 juillet 2020 par gub en utilisant texi2html 1.82.
Autres langues : English, català, deutsch, español, italiano, 日本語.
À propos de la sélection automatique de la langue.