GNU LilyPond – Manuel de notation: 1.8.1 Ajout de texte

### 1.8.1 Ajout de texte

Cette partie constitue une introduction aux différentes manières d’ajouter du texte à une partition.

Note : Pour écrire des accents et autres caractères spéciaux, il suffit de les insérer directement dans votre fichier LilyPond. Ce fichier devra être sauvegardé avec l’encodage UTF-8. Pour plus d’informations, voir Codage du texte.

#### Vue d’ensemble des objets textuels

Les objets textuels se saisissent soit comme de simples chaînes de caractères entre quillemets informatique, soit dans un bloc `\markup` qui acceptte une mise en forme fine du texte et des réhaussements graphiques comme indiqué dans Mise en forme du texte.

En tant que tels, les blocs markup peuvent s’utiliser :

- dans tout objet `TextScript` attaché à des notes par `-`, `^` ou `_` ; voir see Commentaires textuels ;
- en tant que bandeau (spanner) lorsqu’une indication se prolongge sur plusieurs temps ou mesures ; voir Indication textuelle avec extension ;
- dans toute marque affichée au-dessus de la partition, tels les objets `RehearsalMark` ou `MetronomeMark` introduits respectivement par les mots-clé `\mark` ou `\tempo` ; voir Indications textuelles ;
- en tant que bloc markup indépendant, saisi en dehors de tout bloc `\score` – dans ce cas précis la commande `\markup {...}` est obligatoire et ne saurait être remplacée par du simple texte borné par des guillemets informatiques ; voir Texte indépendant ;
- dans toute définition qu sein d’un bloc `\header` (par ex. `title`, `subtitle`, `composer`), ou dans des éléments spécifiques au bloc `\paper` tel que `evenHeaderMarkup` pour les numéros de page. Ceci est abordé dans Titres et entêtes.

De nombreux autres objets basés sur du texte peuvent se saisir sous forme de bloc markup même si ce n’esp pas leur usage premier.

- Les doigtés peuvent se remplacer par des blocs de markup dès lors qu’ils sont introduits par la commande `\finger` ; voir Doigtés.
- Les syllabes des paroles peuvent être formatées avec une commande `\markup` ; voir Vue d’ensemble de la musique vocale.
- Les noms des accords sont en fait définis sous forme de blocs de markup et peuvent donc être redéfinis de la même manière pour adapter les modificateurs d’accord ou les exceptions ; voir Gravure des accords.
- Les nuances se saisissent de la manière la plus simple. Il est néanmoins possible de définir sa propre indication sous forme d’objet markup. Certaines nuances, comme un crescendo, sont affichés sous forme de bandeau et peuvent être redéfinies au travers de certaines propriétés telle que `crescendoText` ; voir Nuances.
- Des objets moins courants sont constitués de blocs markup, tels les indications en Info-bulle.

Il est en fait possible d’utiliser `\markup` pour personnaliser l’apparence de pratiquement n’importe quel objet graphique (grob) en appliquant une dérogation soit à sa propriété `text` s’il en dispose ou de sa propriété `stencil`. Une partie de la logique qui rend ceci possible est expliquée dans Flexibilité architecturale.

L’exemple qui suit illustre l’ubiquité des blocs markup non seulement comme les objets ci-dessus présentés, mais aussi en remplaçant des objets musicaux par des objets textuels de différentes manières.

>     \header { title = \markup "Header" }

>     dyn =
>     #(make-dynamic-script #{ \markup \text "DynamicText" #})

>     \markup \box "Top-level markup"

>     \score {
>       <<
>         \new ChordNames
>         \with {
>           majorSevenSymbol = \markup "majorSevenSymbol"
>         }
>         \chordmode { c1:maj7 }
>         \new Staff {
>           \tempo \markup "MetronomeMark"
>           \mark \markup \smaller "RehearsalMark"
>           \once \override TupletNumber.text =
>             \markup "TupletNumber"
>           \tuplet 3/2 {
>             \once \override NoteHead.stencil =
>               #ly:text-interface::print
>             \once \override NoteHead.text =
>               \markup \lower #0.5 "NoteHead"
>             c''8^\markup \italic "TextScript"
>             a'\finger \markup \text "Fingering"
>             \once \override Rest.stencil =
>               #(lambda (grob)
>                  (grob-interpret-markup grob #{
>                    \markup  "Rest"
>                    #}))
>             r
>           }
>         }
>         \new Lyrics \lyricmode {
>           \markup \smallCaps "LyricText" 1
>         }
>         \new Dynamics { s1\dyn }
>       >>
>     }

#### Voir aussi

Manuel de notation : Commentaires textuels, Doigtés, Gravure des accords, Indication textuelle avec extension, Indications textuelles, Info-bulle, Mise en forme du texte, Nuances, Personnalisation des indications de nuance, Texte indépendant, Vue d’ensemble de la musique vocale.

Essai sur la gravure musicale automatisée : Flexibilité architecturale.

Morceaux choisis : Text.

#### Commentaires textuels

Vous pouvez ajouter à une partition des indications sous forme textuelle, comme dans l’exemple suivant. Ces indications se placeront manuellement au-dessus ou au-dessous de la portée selon la syntaxe utilisée – cf. Direction et positionnement.

>     \relative { a'8^"pizz." g f e a4-"scherz." f }

Cette syntaxe est en fait un raccourci. Des constructions plus élaborées d’annotation peuvent être obtenues en ayant recours à un bloc `\markup` et selon les préceptes énoncés dans Mise en forme du texte.

>     \relative {
>       a'8^\markup { \italic pizz. } g f e
>       a4_\markup { \tiny scherz. \bold molto } f }

Par défaut, ces indications n’affectent en rien l’espacement des notes. Leur longueur peut néanmoins être prise en considération : dans l’exemple qui suit, le premier commentaire n’influe pas sur l’espacement, à l’inverse du second.

>     \relative {
>       a'8^"pizz." g f e
>       \textLengthOn
>       a4_"scherzando" f
>     }

En plus d’indications textuelles, les notes peuvent se voir attacher des articulations, comme indiqué au chapitre Articulations et ornements.

Pour de plus amples détails sur la manière de combiner indications textuelles et articulations, reportez-vous au chapitre Positionnement des objets.

#### Commandes prédéfinies

`\textLengthOn`, `\textLengthOff`.

#### Voir aussi

Manuel d’initiation : Positionnement des objets.

Manuel de notation : Articulations et ornements, Direction et positionnement, Mise en forme du texte.

Morceaux choisis : Texte.

Référence des propriétés internes : TextScript.

#### Problèmes connus et avertissements

S’assurer que tous les éléments textuels et les paroles respectent les marges du document requiert des calculs relativement lourds ; vous pouvez toutefois vous en affranchir en ajoutant

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

#### Indication textuelle avec extension

Certaines indications d’interprétation comme rallentando, accelerando ou trilles, s’inscrivent textuellement et se prolongent sur plusieurs notes à l’aide d’une ligne pleine, pointillée ou ondulée. Ces objets, que l’on appelle « extenseurs », se dessinent entre deux notes à l’aide de la syntaxe suivante :

>     \relative {
>       \override TextSpanner.bound-details.left.text = "rit."
>       b'1\startTextSpan
>       e,\stopTextSpan
>     }

Le texte à imprimer est spécifié en tant que propriété de l’objet `TextSpanner`. Il apparaîtra par défaut en italique ; cependant, rien ne s’oppose à un autre graphisme dès lors que vous faites appel à un bloc `\markup` – voir Mise en forme du texte.

>     \relative {
>       \override TextSpanner.bound-details.left.text =
>         \markup { \upright "rit." }
>       b'1\startTextSpan c
>       e,\stopTextSpan
>     }

Le style de ligne se définit lui aussi comme une propriété de l’objet. Les détails concernant la syntaxe à utiliser sont expliqués au chapitre Styles de ligne.

#### Commandes prédéfinies

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

#### Morceaux choisis

Extensions de nuance postfix

Les lignes d’extension des commandes `\cresc`, `\dim` et `\decresc` peuvent désormais être personnalisées facilement sous forme d’opérateurs postfix. Soufflets et (de)crescendos peuvent cohabiter. `\<` et `\>` produiront par défaut des soufflets, alors que `\cresc`, etc. produiront une indication textuelle avec extension.

>     % Some sample text dynamic spanners, to be used as postfix operators
>     crpoco =
>     #(make-music 'CrescendoEvent
>                  'span-direction START
>                  'span-type 'text
>                  'span-text "cresc. poco a poco")

>     \relative c' {
>       c4\cresc d4 e4 f4 |
>       g4 a4\! b4\crpoco c4 |
>       c4 d4 e4 f4 |
>       g4 a4\! b4\< c4 |
>       g4\dim a4 b4\decresc c4\!
>     }

Personnalisation des extenseurs de nuance postfix

Il s’agit de fonctions postfix pour personnaliser l’extension des crescendos textuels. L’extension devrait débuter sur la première note de la mesure. Il faut utiliser `-\mycresc` – comme une articulation – sous peine que le départ de l’extension n’apparaisse qu’à la note suivante.

>     % Two functions for (de)crescendo spanners where you can explicitly
>     % give the spanner text.
>     mycresc =
>     #(define-music-function (mymarkup) (markup?)
>        (make-music 'CrescendoEvent
>                    'span-direction START
>                    'span-type 'text
>                    'span-text mymarkup))
>     mydecresc =
>     #(define-music-function (mymarkup) (markup?)
>        (make-music 'DecrescendoEvent
>                    'span-direction START
>                    'span-type 'text
>                    'span-text mymarkup))

>     \relative c' {
>       c4-\mycresc "custom cresc" c4 c4 c4 |
>       c4 c4 c4 c4 |
>       c4-\mydecresc "custom decresc" c4 c4 c4 |
>       c4 c4\! c4 c4
>     }

#### Voir aussi

Manuel de notation : Mise en forme du texte, Nuances, Styles de ligne.

Morceaux choisis : Texte, Signes d’interprétation.

Référence des propriétés internes : TextSpanner.

#### Problèmes connus et avertissements

LilyPond ne peut traiter qu’un seul extenseur à la fois par voix.

#### Indications textuelles

La commande `\mark` est tout d’abord conçue pour les Indications de repère.

>     \relative {
>       \mark "Verse"
>       c'2 g'
>       \bar "||"
>       \mark "Chorus"
>       g2 c,
>       \bar "|."
>     }

Cette syntaxe rend possible l’adjonction de n’importe quel texte à une barre de mesure. Ce texte peut être mis en forme de différentes manières dès lors qu’est utilisé un bloc `\markup`, comme indiqué au chapitre Mise en forme du texte.

>     \relative {
>       <c' e>1
>       \mark \markup { \italic { colla parte } }
>       <d f>2 <e g>
>       <c f aes>1
>     }

Elle peut aussi 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é, selon les indications contenues au chapitre Notation musicale dans du texte formaté.

>     \relative {
>       <bes' f>2 <aes d>
>       \mark \markup { \musicglyph "scripts.ufermata" }
>       <e g>1
>     }

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.

>     \relative c'' {
>       \mark "Allegro"
>       c1 c
>       \mark "assai" \break
>       c  c
>     }

#### Commandes prédéfinies

`\markLengthOn`, `\markLengthOff`.

#### Morceaux choisis

Indication d’un repère en fin de ligne

Les indications de repère peuvent s’imprimer à la fin d’une ligne plutôt qu’en tête de la suivante. L’alignement sur la barre de mesure devra alors s’effectuer par l’extrémité droite de l’indication.

>     \relative c'' {
>       g2 c
>       d,2 a'
>       \once \override Score.RehearsalMark.break-visibility =
>         #end-of-line-visible
>       \once \override Score.RehearsalMark.self-alignment-X =
>         #RIGHT
>       \mark "D.C. al Fine"
>       \break
>       g2 b,
>       c1 \bar "||"
>     }

Impression des indications sur toutes les portées d’un système

Bien que ces indications textuelles ne soient habituellement imprimées qu’au niveau de la portée supérieure d’un système, leur affectation peut être répercutée à chacune des portées.

>     \score {
>       <<
>         \new Staff { c''1 \mark "molto" c'' }
>         \new Staff { c'1 \mark "molto" c' }
>       >>
>       \layout {
>         \context {
>           \Score
>           \remove "Mark_engraver"
>           \remove "Staff_collecting_engraver"
>         }
>         \context {
>           \Staff
>           \consists "Mark_engraver"
>           \consists "Staff_collecting_engraver"
>         }
>       }
>     }

#### Voir aussi

Manuel de notation : Indications de repère, La fonte Emmentaler, Mise en forme du texte, Notation musicale dans du texte formaté.

Morceaux choisis: Texte.

Référence des propriétés internes : MarkEvent, Mark_engraver, RehearsalMark.

#### Texte indépendant

Un bloc `\markup` peut exister en lui-même, indépendamment de tout bloc `\score`, et venir en préambule par exemple – voir le chapitre Structure de fichier à ce propos.

>     \markup {
>       Tomorrow, and tomorrow, and tomorrow...
>     }

De cette manière, vous pouvez insérer du texte en dehors de la musique. Ceci devient particulièrement utile lorsque le fichier source contient plusieurs morceaux. Pour plus d’informations à ce propos, reportez-vous au chapitre Plusieurs partitions dans un même ouvrage.

>     \score {
>       c'1
>     }
>     \markup {
>       Tomorrow, and tomorrow, and tomorrow...
>     }
>     \score {
>       c'1
>     }

Les blocs de textes peuvent s’étendre sur plusieurs pages, ce qui permet de générer des ouvrages complets uniquement grâce à LilyPond. Cette fonctionnalité, ainsi que la syntaxe appropriée, est abordée plus en détail au chapitre Texte avec sauts de page.

#### Commandes prédéfinies

`\markup`, `\markuplist`.

#### Morceaux choisis

Bloc de texte indépendant sur deux colonnes

L’utilisation de la commande `\markup` permet de distribuer un bloc de texte indépendant sur plusieurs colonnes.

>     \markup {
>       \fill-line {
>         \hspace #1
>         \column {
>           \line { O sacrum convivium }
>           \line { in quo Christus sumitur, }
>           \line { recolitur memoria passionis ejus, }
>           \line { mens impletur gratia, }
>           \line { futurae gloriae nobis pignus datur. }
>           \line { Amen. }
>         }
>         \hspace #2
>         \column \italic {
>           \line { O sacred feast }
>           \line { in which Christ is received, }
>           \line { the memory of His Passion is renewed, }
>           \line { the mind is filled with grace, }
>           \line { and a pledge of future glory is given to us. }
>           \line { Amen. }
>         }
>         \hspace #1
>       }
>     }

#### Voir aussi

Manuel de notation : Mise en forme du texte, Plusieurs partitions dans un même ouvrage, Structure de fichier, Texte avec sauts de page.

Morceaux choisis : Texte.

Référence des propriétés internes : TextScript.

#### LilyPond — Manuel de notation v2.22.2 (branche stable).