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 :

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.

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

[image of music]

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 }

[image of music]

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 }

[image of music]

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
}

[image of music]

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
}

[image of music]

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
}

[image of music]

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

[image of music]

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
}

[image of music]

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
}

[image of music]

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

[image of music]

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
}

[image of music]

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
}

[image of music]

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
}

[image of music]

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
}

[image of music]

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

[image of music]

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

[image of music]

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 { … } .

[image of music]

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
}

[image of music]

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

[image of music]

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

[image of music]

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
}

[image of music]

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

[image of music]

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.23.82 (branche de développement).