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 guillemets informatiques (optionnels pour un mot unique). Le mode markup, ou étiquette, accepte quant à lui une mise en forme fine du texte et des enrichissements 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 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 de texte indépendant, saisi en dehors de tout bloc `\score` – dans ce cas précis les commandes `\markup` ou `\markuplist` sont obligatoires et ne sauraient être remplacées par du simple texte borné par des guillemets informatiques ; voir Texte indépendant ;
- dans toute définition au 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’est 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ées 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"
>           \textMark "textMark"
>           \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 : Texte.

#### 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 » (spanners en anglais), 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.

Les textes aux extrémites d’un bandeau peuvent être amenés à se chevaucher.

>     {
>       \once \override TextSpanner.bound-details.left.text = "The text is"
>       \once \override TextSpanner.bound-details.right.text = "too long"
>       c'2\startTextSpan d'2\stopTextSpan
>     }

Un moyen de contournement est disponible à la rubrique Espacement horizontal.

#### Marque de section

La commande `\sectionLabel` indique le début d’un passage nommé. Elle est tout à fait appropriée dans le cadre d’une division en sections créées par `\section` et peut s’utiliser de manière indépendante.

>     \fixed c' {
>       \sectionLabel "Verse"
>       c2 g
>       \section
>       \sectionLabel "Chorus"
>       g2 c
>       \bar "|."
>     }

#### Voir aussi

Manuel de notation : Division en sections, Indications de repère, Mise en forme du texte.

Morceaux choisis : Texte.

Référence des propriétés internes : SectionLabel, SectionLabelEvent.

#### Indications textuelles

Les indications textuelles sont des objets qui, contrairement aux scripts (voir Commentaires textuels), ne s’impriment pas en regard des notes, mais entre elles, et souvent alignées sur une barre de mesure.

Note : Les versions précédentes de LilyPond utilisaient l’instruction `\mark` pour les indications textuelles, bien quelle ait été initialement conçue pour les repères de répétition (voir Indications de repère). Les commandes `\textMark` et `\textEndMark` sont plus appropriées en matière d’indications textuelles de par leurs réglages par défaut et la capacité qu’elles offrent de présenter plusieurs indications en un même endroit. Il est donc préférable d’utiliser `\textMark` et `\textEndMark` en lieu et place de `\mark "Texte"` ou `\mark \markup …`. Pour la conversion de code utilisant `\mark`, les dérogations portées à `RehearsalMark` devraient être modifiées en `TextMark`.

Avant d’insérer une indication textuelle, il peut être judicieux de chercher une commande qui serait plus appropriée. Lorsque le texte identifie une section, utilisez `\sectionLabel` (voir Marque de section). Pour un saut ou un renvoi arbitraire, il vaut mieux utiliser `\jump` (voir Indications de reprise manuelles). Ces instructions disposent de mises en forme par défaut différentes et créent d’autres objets qui peuvent être personnalisés indépendamment des indications textuelles génériques à l’aide de feuilles de style.

Une indication textuelle se saisit à l’aide de `\textMark` ou `\textEndMark`. La commande `\textMark` affiche une marque alignée sur sa gauche.

>     \fixed c'' {
>       \textMark "Fl. 1 solo"
>       c4 e g2
>       \textMark "A due"
>       e4 g c'2
>     }

Lorsqu’intervient un saut de ligne à l’endroit où est placé `\textMark`, l’indication apparaîtra sur le système suivant.

>     \fixed c'' {
>       \textMark "Fl. 1 solo"
>       c4 e g2
>       \break
>       \textMark "A due"
>       e4 g c'2
>     }

Contrairement à `\textMark`, `\textEndMark` crée une marque alignée sur sa droite. Si elle se présente lors d’un saut de ligne, l’indication apparaîtra en fin du système précédent.

>     \fixed c' {
>       \repeat volta 2 {
>         c4 e8 f g2
>         e4 f8 g c'2
>         \textEndMark "ad lib"
>       }
>       \break
>       c'4 8 8 4 8 8
>       c'1
>     }

Le texte peut être mis en forme de différentes manières dès lors qu’est utilisé un bloc `\markup`, comme indiqué à la rubrique Mise en forme du texte.

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

Les commandes `\markLengthOn` et `\markLengthOff` – voir Indication métronomique – sont opérationnelles dans le cadre des indications textuelles.

>     {
>       \mark \default
>       c'2 2
>       \textEndMark "longue indication textuelle"
>       \markLengthOn
>       2 2
>       \mark \default
>       2 2
>       \textEndMark "longue indication textuelle"
>     }

Les indications textuelles peuvent se présenter en dessous de la portée.

>     \fixed c' {
>       c4 g c'8 b c4 e' c' c2
>       c4 g c'8 b c4 e' c' g2
>       e'4 c' c'8 b c'4
>       g4 c' c2~ c1
>       \tweak direction #DOWN
>         \tweak font-size #-1
>           \textEndMark "Composed on November 13th, 2020"
>     }

Plusieurs indications peuvent intervenir en un même moment. L’ordre dans lequel elles s’empileront peut se gérer à l’aide de la propriété `outside-staff-priority` (voir Résolution des collisions verticales). Une autre façon de procéder pourrait consister à utiliser une seule indication sous la forme `\markup \column { … }` .

>     \fixed c' {
>       \repeat volta 2 {
>         c4 g c'8 b c4 e' c' c2
>         \textEndMark "ad lib."
>         \tweak outside-staff-priority 1200
>           \tweak font-size -1
>             \textEndMark "2a volta a due"
>       }
>     }

L’alignement d’une indication textuelle peut se modifier.

>     {
>       c'8 8 8 8 8 8 8 8
>       \textMark \markup \column {
>         \line { Indication alignée sur sa gauche }
>         \line { (par défaut pour \concat { \typewriter "\\textMark" ) } }
>       }
>       d'8 8 8 8 8 8 8 8
>     }

>     {
>       c'8 8 8 8 8 8 8 8
>       \tweak self-alignment-X #CENTER
>         \textMark "Indication centrée"
>       d'8 8 8 8 8 8 8 8
>     }

>     {
>       c'8 8 8 8 8 8 8 8
>       \tweak self-alignment-X #RIGHT
>         \textMark \markup \right-column {
>           \line { Indication alignée sur sa droite }
>           \line { (par défaut pour \concat { \typewriter "\\textEndMark" ) } }
>         }
>       d'8 8 8 8 8 8 8 8
>     }

#### Commandes prédéfinies

`\textMark`, `\textEndMark`, `\markLengthOn`, `\markLengthOff`.

#### Morceaux choisis

#### 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 { \mark \default c''1 \textMark "molto" c'' }
>         \new Staff { \mark \default c'1 \textMark "molto" c' }
>       >>
>       \layout {
>         \context {
>           \Score
>           \remove Mark_engraver
>           \remove Text_mark_engraver
>           \remove Staff_collecting_engraver
>         }
>         \context {
>           \Staff
>           \consists Mark_engraver
>           \consists Text_mark_engraver
>           \consists Staff_collecting_engraver
>         }
>       }
>     }

#### Voir aussi

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

Morceaux choisis: Texte.

Référence des propriétés internes : Text_mark_engraver, TextMark, TextMarkEvent.

#### Texte indépendant

Un bloc `\markup` ou `\markuplist` 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 à l’aide de la commande `\markuplist`. Ceci 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 Introduction au formatage de texte.

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

Morceaux choisis : Texte.

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

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