GNU LilyPond – Manuel de notation : 1.8.2 Formatting text
Description: GNU LilyPond – Manuel de notation: 1.8.2 Formatting text
Keywords: GNU LilyPond – Manuel de notation: 1.8.2 Formatting text

### 1.8.2 Formatting text

#### Text markup introduction

La commande `\markup` permet d’ajouter du texte. Vous pouvez y inclure des commandes, précédées d’un antislash `\` ; les caractères `\` et `#` doivent être encadrés de guillemets informatiques `"`.

>     c1^\markup { hello }
>     c1_\markup { hi there }
>     c1^\markup { hi \bold there, is \italic {anyone home?} }
>     c1_\markup { "\special {weird} #characters" }

Pour une liste des différentes commandes disponibles, consultez Text markup commands.

`\markup` est avant tout conçu pour gérer les TextScripts, mais rien ne s’oppose à son utilisation pour traiter du texte avec LilyPond.

>     \header{ title = \markup{ \bold { foo \italic { bar! } } } }
>     \score{
>       \relative c'' {
>         \override Score.RehearsalMark
>           #'break-visibility = #begin-of-line-invisible
>         \override Score.RehearsalMark #'self-alignment-X = #right

>         \set Staff.instrumentName = \markup{ \column{ Alto solo } }
>         c2^\markup{ don't be \flat }
>         \override TextSpanner #'(bound-details left text) = \markup{\italic rit }
>         b2\startTextSpan
>         a2\mark \markup{ \large \bold Fine }
>         r2\stopTextSpan
>         \bar "||"
>       }
>       \addlyrics { bar, foo \markup{ \italic bar! } }
>     }

La commande `\markup` peut intervenir à tout moment, y compris en dehors d’un bloc `\score`. Voir à ce sujet Multiple scores in a book.

>     \markup{ Here is some text. }

Le markup de l’exemple précédent montre comment utiliser les commandes de changement de police. Les commandes `\bold` et `\italic` n’affectent que le premier mot qui les suit ; encadrez les par des accolades si vous désirez que ces commandent s’appliquent à plusieurs mots.

>     \markup { \bold { c'est moi } }

Une bonne habitude à prendre consiste à utiliser des accolades même pour un seul mot, comme ici :

>     \markup { qui \italic { est } là ? }

En mode markup, vous pouvez composer des expressions comme en mathématiques, des documents XML ou bien les expressions musicales. Vous pouvez empiler ces expressions grâce à la commande `\column`, ou les centrer par rapport à leur milieu avec `\center-column`.

>     c1^\markup { \column { a bbbb \line { c d } } }
>     c1^\markup { \center-column { a bbbb c } }
>     c1^\markup { \line { a b c } }

Des listes non précédées de commande ne sont pas isolées. Ainsi,

>     \center-column { { a b } { c d } }

est la même expression que

>     \center-column { a b c d }

L’utilisation des `"` ou de la commande `\line` permet de différencier les listes de mots.

>     \textLengthOn
>     c4^\markup{ \center-column { on three lines } }
>     c4^\markup{ \center-column { "all one line" } }
>     c4^\markup{ \center-column { { on three lines } } }
>     c4^\markup{ \center-column { \line { on one line } } }

Vous pouvez stocker les étiquettes textuelles en tant que variables, et attacher ces identificateurs à des notes, comme

>     allegro = \markup { \bold \large { Allegro } }
>      { a^\allegro b c d }

Certains objets possèdent leurs propres procédures d’alignement, qui annuleront toute spécification d’alignement que vous pourriez affecter à un argument de type markup que vous leur auriez fourni. Par exemple, les RehearsalMark sont centrées horizontalement ; de fait, utiliser `\mark \markup { \left-align .. }` sera sans effet.

Par ailleurs, le placement vertical n’est effectué qu’après la création de l’objet étiquette textuelle. Si donc vous souhaitez déplacer une étiquette, il vous faudra utiliser la propriété `#'padding` ou créer un « point d’ancrage » à l’intérieur même de l’étiquette (généralement avec `\hspace #0`).

>     \textLengthOn
>     c'4^\markup{ \raise #5 "not raised" }
>     \once \override TextScript #'padding = #3
>     c'4^\markup{ raised }
>     c'4^\markup{ \hspace #0 \raise #1.5 raised }

Certaines situations particulières, telles que les indications de nuance, possèdent des propriétés prédéfinies quant à leur police. Nous vous conseillons, en pareil cas, de réinitialiser ces propriétés en utilisant `normal-text`. Pour plus d’informations, consultez Text markup commands.

#### See also

Dans ce manuel : Text markup commands.

Référence du programme : TextScript.

Fichiers d’initialisation : ‘`scm/new-markup.scm`’.

#### Known issues and warnings

Le crénage ou la génération de ligatures ne sont accessibles que lors d’un retraitement par TeX. Dans ce cas, LilyPond n’en tient pas compte, et l’espacement de tels textes sera trop large.

Les erreurs de syntaxe sont peu loquaces.

#### Nested scores

Rien ne s’oppose à ce qu’une étiquette ne comporte de la musique. Il suffit que l’expression en question contienne un bloc `\score` et un bloc `\layout`.

>     \relative {
>       c4 d^\markup {
>         \score {
>           \relative { c4 d e f }
>           \layout { }
>         }
>       }
>       e f
>     }

#### Page wrapping text

Alors que `\markup` s’utilise pour traiter un bloc de texte insécable, `\markuplines` permet, employé en tête de partition, d’obtenir un bloc de lignes réparties différemment et au cas où sur plusieurs pages.

    \markuplines {
      \justified-lines {
        Un long texte constitué de lignes justifiées.
        ...
      }
      \justified-lines {
        Un autre grand paragraphe justifié.
        ...
      }
      ...
    }

`\markuplines` prend en argument une liste de lignes de texte, qui peut elle-même consister en une suite de commandes générant à leur tour des lignes de texte, comme ici :

    \markuplines {
      \line { ... }    % une ligne alignée à gauche
      \fill-line { \line { ... } } % une ligne centrée
      \wordwrap-lines { ... } % une liste de lignes alignées à gauche
      \justified-lines { ... } % une liste de lignes justifiées
    }

Les différentes commandes permettant de générer des listes de lignes se trouve dans Text markup list commands.

#### See also

Dans ce manuel : Text markup list commands, New markup list command definition.

#### Predefined commands

`\markuplines`.

Other languages: English, español, deutsch.

#### Manuel de notation