GNU LilyPond – Manuel de notation : 1.8.1 Writing text
Description: GNU LilyPond – Manuel de notation: 1.8.1 Writing text
Keywords: GNU LilyPond – Manuel de notation: 1.8.1 Writing text

### 1.8.1 Writing text

#### Text scripts

Vous pouvez placer arbitrairement des chaînes de caractères, ou Formatting text en langage LilyPond, au dessus ou au dessous des notes en employant la syntaxe `c^"text"`. Par défaut, ces indications n’affecteront en rien l’espacement des notes, sauf à utiliser la commande `\textLengthOn`.

>     c4^"longtext" \textLengthOn c4_"longlongtext" c4

Pour revenir à l’espacement par défaut, utilisez `\textLengthOff`.

Des constructions plus élaborées d’étiquette peuvent être obtenues en ayant recours à la commande markup :

>     c'4^\markup { bla \bold bla }

La commande `\markup` est décrite plus en détails dans la section Formatting text.

#### Predefined commands

`\textLengthOn`, `\textLengthOff`.

#### Commonly tweaked properties

S’assurer que tous les éléments textuels et les paroles respectent les marges du document requiert des calculs relativement lourds ; c’est la raison pour laquelle LilyPond, par défaut, ne s’en préoccupe pas. Vous pouvez cependant l’y forcer en définissant

>     \override Score.PaperColumn #'keep-inside-line = ##t

#### See also

Dans ce manuel : Formatting text.

Référence du programme : TextScript.

#### Text and line spanners

Certaines indications d’interprétation comme rallentando, accelerando ou trilles, s’incrivent textuellement et se prolongent sur plusieurs mesures à l’aide d’une ligne pleine, pointillée ou ondulée.

Les routines chargées de matérialiser un glissando sont tout à fait adaptées à une gestion précise, à la fois du placement du texte, et du calcul de l’envergure de sa ligne d’extension. La routine `ly:line-interface::print` est plus particulièrement en charge de déterminer les points d’ancrage de la ligne et de la dessiner selon le style requis.

Voici un exemple qui illustre les différents styles de ligne disponibles, ainsi que la manière de les personnaliser.

    d2 \glissando d'2
    \once \override Glissando #'style = #'dashed-line
    d,2 \glissando d'2
    \override Glissando #'style = #'dotted-line
    d,2 \glissando d'2
    \override Glissando #'style = #'zigzag
    d,2 \glissando d'2
    \override Glissando #'style = #'trill
    d,2 \glissando d'2

L’information qui va déterminer les extrémités est calculée à la volée pour chaque objet graphique. Il est tout à fait possible de les régler vous-même :

    e2 \glissando f
    \once \override Glissando #'(bound-details right Y) = #-2
    e2 \glissando f

L’objet `Glissando`, comme tous ceux qui utilisent la routine `ly:line-interface::print`, comporte une liste d’associations. Dans le code ci-dessus, la valeur de `Y` est fixée, dans la liste d’associations, à `-2` pour l’ancrage à droite. Vous pouvez naturellement ajuster l’extrémité gauche en remplaçant `right` (pour `droite`) par `left`.

Si `Y` n’est pas fixé, sa valeur sera calculée en fonction de la hauteur du point de référence droite de la ligne.

Lorsque survient un saut de ligne, la liste des ancrages est augmentée d’une liste complémentaire contenant `left-broken` (brisure à gauche) et `right-broken` (brisure à droite), comme dans l’exemple suivant :

    \override Glissando #'breakable = ##T
    \override Glissando #'(bound-details right-broken Y) = #-3
    c1 \glissando \break
    f1

Vous disposez des propriétés suivantes :

`Y`

  Fixe l’ordonnée (coordonnée-Y) de l’extrémité, mesurée en taille de portée. Il s’agit par défaut du centre de l’objet de rattachement ; pour un glissando, ce sera le milieu de la tête de note.

  Pour des marques horizontales, telles du texte ou le trait d’un trille, cette valeur est figée à 0.

`attach-dir`

  Détermine l’endroit où la ligne commence et finit, relativement à l’objet de rattachement. Autrement dit, une valeur de `-1` (ou `LEFT` pour gauche) fera commencer ou finir la ligne du côté gauche de la tête de note de référence.

`X`

  Coordonnée absolue du point final. Dans la mesure où elle est calculée à la volée, il n’y a pas vraiment de raison de l’outrepasser.

`stencil`

  Sous-propriété contenant les éventuels symboles présents avant ou après la ligne. Destinée à un usage interne, nous vous recommendons d’utiliser plutôt `text`.

`text`

  Marqueur qui sera analysé pour alimenter `stencil`. On y trouve habituellement les cresc. ou tr des extenseurs horizontaux.

  >     \override TextSpanner #'(bound-details left text)
  >        = \markup { \small \bold Slower }
  >     c2\startTextSpan b c a\stopTextSpan

`stencil-align-dir-y`
`stencil-offset`

  Lorsqu’ils ne sont pas définis, le tracé est tout simplement positionné conformément aux sous-propriétés `X` et `Y`. En fixant soit `stencil-align-dir-y`, soit `stencil-offset`, vous pouvez décaler le coin du marqueur par rapport à l’extrémité de la ligne.

      \override TextSpanner #'(bound-details left stencil-align-dir-y) = #DOWN
      \override TextSpanner #'(bound-details right stencil-align-dir-y) = #UP

      \override TextSpanner #'(bound-details left text) = #"gggg"
      \override TextSpanner #'(bound-details right text) = #"hhhh"
      c4^\startTextSpan c c c \stopTextSpan

`arrow`

  Assigner à cette sous-propriété la valeur `vrai` (`#t`) produira une terminaison en pointe de flèche.

`padding`

  Cette sous-propriété contrôle l’espace entre les extrémités de la ligne, telles que définies, et la réalité. Sans ce léger décalage, le début et la fin d’un glissando seraient en plein milieu des têtes de note.

#### See also

Référence du programme : TextSpanner, Glissando, VoiceFollower, TrillSpanner, line-spanner-interface.

Exemples : Expressive marks.

#### Text spanners

Certaines indications d’interprétation comme rallentando ou accelerando s’incrivent en toutes lettres et se prolongent sur plusieurs mesures grâce à une ligne pointillée. Les commandes `\startTextSpan` et `\stopTextSpan`, respectivement attachées à la première et à la dernière note qu’elles concernent, déterminent l’envergure de ces prolongateurs, ou extenseurs.

La chaîne à imprimer, ainsi que son style, sont définis par des propriétés, comme ici :

>     c1
>     \textSpannerDown
>     \override TextSpanner #'(bound-details left text) =
>       \markup { \upright "rall" }
>     c2\startTextSpan b c\stopTextSpan a
>     \break
>     \textSpannerUp
>     \override TextSpanner #'(bound-details left text) =
>       \markup { \italic "rit" }
>     c2\startTextSpan b c\stopTextSpan a

#### Predefined commands

`\textSpannerUp`, `\textSpannerDown`, `\textSpannerNeutral`.

#### Commonly tweaked properties

Pour obtenir une ligne pleine, utilisez

>     \override TextSpanner #'style = #'line

#### See also

Référence du programme : TextSpanner.

#### Text marks

La commande `\mark` est tout d’abord conçue pour les Rehearsal marks. Elle peut néanmoins servir à insérer des signes de coda ou de segno, ou bien un point d’orgue, au dessus d’une barre de mesure. Couplez-la alors à la commande `\markup` pour avoir accès au symbole approprié (ils sont répertoriés dans The Feta font).

>     c1 \mark \markup { \musicglyph #"scripts.ufermata" }
>     c1

Le résultat de `\mark` n’apparaîtra que sur la portée supérieure d’un système. Si vous introduisez la commande `\mark` au moment d’une barre de mesure, la marque se placera au dessus de la barre. Si vous y faites appel au milieu d’une mesure, cette marque sera positionnée entre les notes. Si elle intervient en début de ligne, elle sera placée juste avant la première note de cette portée. Enfin, une marque qui tomberait sur un saut de ligne sera imprimée au début de la ligne suivante. Au cas où il n’y aurait pas de ligne à suivre, la marque ne sera pas imprimée.

#### Commonly tweaked properties

Pour imprimer une marque à la fin de la portée en cours, procédez ainsi :

>     \override Score.RehearsalMark
>       #'break-visibility = #begin-of-line-invisible

`\mark` est souvent bien utile pour porter une indication à la fin d’une mesure. Pensez alors à modifier la propriété `#'self-alignment`.

>     \override Score.RehearsalMark
>       #'break-visibility = #begin-of-line-invisible
>     c1 c c c4 c c c
>     \once \override Score.RehearsalMark #'self-alignment-X = #right
>     \mark "D.S. al Fine "

Les indications textuelles peuvent s’aligner par rapport à d’autres objets que des barres de mesure, tels que l’armure, la clé ou le chiffre de mesure :

>     \relative {
>       c1
>       \key cis \major
>       \clef alto
>       \override Score.RehearsalMark #'break-align-symbols = #'(key-signature)
>       \mark "on key"
>       cis
>       \key ces \major
>       \override Score.RehearsalMark #'break-align-symbols = #'(clef)
>       \clef treble
>       \mark "on clef"
>       ces
>       \override Score.RehearsalMark #'break-align-symbols = #'(time-signature)
>       \key d \minor
>       \clef tenor
>       \time 3/4
>       \mark "on time"
>       c
>     }

Les symboles pris en charge par `break-align-symbols` sont : `ambitus`, `breathing-sign`, `clef`, `custos`, `staff-bar`, `left-edge`, `key-cancellation`, `key-signature`, et `time-signature`.

Par défaut, les indications textuelles sont alignées avec le milieu des objets de notation. Bien entendu, vous pouvez modifier les propriétés `break-align-anchor-alignment` ou `break-align-anchor` des objets en question pour obtenir un autre résultat.

>     {
>       \override Score.RehearsalMark #'break-align-symbols = #'(key-signature)
>       c1
>       \key cis \major

>       % La marque sera alignée sur le côté gauche de l'armure
>       \once \override Staff.KeySignature #'break-align-anchor-alignment = #LEFT
>       \mark \default
>       cis1
>       \key ces \major

>       % La marque sera alignée sur le côté droit de l'armure
>       \once \override Staff.KeySignature #'break-align-anchor-alignment = #RIGHT
>       \mark \default
>       ces1
>       \key cis \major

>       %  La marque sera alignée sur le côté gauche de l'armure,
>       % puis décalée vers la droite de 2 unités.
>       \once \override Staff.KeySignature #'break-align-anchor = #2
>       \mark \default
>       ces1
>     }

Bien que ces indications textuelles ne soient habituellement imprimées qu’au niveau de la portée supérieure, vous pouvez forcer leur affectation à chacune des portées :

>     {
>       \new Score \with {
>         \remove "Mark_engraver"
>       }
>       <<
>         \new Staff \with {
>           \consists "Mark_engraver"
>         }
>         { c''1 \mark "foo" c'' }
>         \new Staff \with {
>           \consists "Mark_engraver"
>         }
>         { c'1 \mark "foo" c' }
>       >>
>     }

#### See also

Référence du programme : RehearsalMark.

Other languages: English, español, deutsch.

#### Manuel de notation