[ < ] [ > ]   [ << ] [Plus haut] [ >> ]         [Racine] [Table des matières] [Index] [ ? ]

4.4 Espacement vertical

@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.


[ < ] [ > ]   [ << ] [Plus haut] [ >> ]         [Racine] [Table des matières] [Index] [ ? ]

4.4.1 Espacement vertical au sein d’un système

@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 :

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.


[ < ] [ > ]   [ << ] [Plus haut] [ >> ]         [Racine] [Table des matières] [Index] [ ? ]

Propriétés d’espacement au sein d’un système

@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éePoint de référence
ChordNamesligne de base
NoteNamesligne de base
Lyricsligne de base
Dynamicsmi-hauteur du « m »
FiguredBasspoint le plus haut
FretBoardsligne supérieure

En voici une représentation graphique :

[image of music]

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.

Propriétés de l’objet VerticalAxisGroup

Les 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-spacing

Il 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-spacing

Il 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-affinity

Il 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-spacing

Il 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-spacing

Il 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-spacing

Il 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.

Propriétés de l’objet StaffGrouper

Les 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-spacing

Il 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-spacing

Il 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.

Voir aussi

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] [ ? ]

Espacement de portées isolées

@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 :

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 | }
>>

[image of music]

Voir aussi

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] [ ? ]

Espacement de portées regroupées

@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 :

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 }
  >>
>>

[image of music]

Voir aussi

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] [ ? ]

Espacement des lignes rattachées à des portées

@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 :

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 }
>>

[image of music]

Voir aussi

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] [ ? ]

4.4.2 Positionnement explicite des portées et systèmes

@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 :

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 :

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' }
      }
    >>
  }
}

[image of music]

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' }
      }
    >>
  }
}

[image of music]

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' }
      }
    >>
  }
}

[image of music]

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' }
      }
    >>
  }
}

[image of music]

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' } }
      >>
    >>
  }
}

[image of music]

Quelques points à prendre en considération :

Voir aussi

Morceaux choisis : (snippets)Spacing section ‘Espacements’ dans Morceaux choisis.


[ < ] [ > ]   [ << ] [Plus haut] [ >> ]         [Racine] [Table des matières] [Index] [ ? ]

4.4.3 Résolution des collisions verticales

@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
}

[image of music]

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
}

[image of music]

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
}

[image of music]

Voir aussi

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.