Introduction au formatage de texte

Un bloc \markup ou \markuplist permet d’ajouter du texte et dispose de sa propre syntaxe que nous appellerons le « mode markup ». De tels blocs peuvent s’utiliser partout, comme indiqué dans Vue d’ensemble des objets textuels.

En mode markup, les mots s’écrivent tels quels. Un mot isolé ne requiert pas de guillemets.

\markup intenso

[image of music]

Une suite de mots peut se regrouper en les bornant par des guillemets informatiques ".

\markup "molto intenso"

[image of music]

Au delà du simple fait de grouper des mots, les guillemets informatiques permettent d’imprimer littéralement des caractères spéciaux – tels qu’un ‘\’ ou un ‘#’ – sans influer sur le formatage du texte. Il est de ce fait possible d’imprimer des guillemets informatiques " dès lors qu’ils sont précédés d’une oblique inverse.

\relative {
  a'1^"\italic markup..."
  a_\markup { \italic "... imprime des lettres en \"italique\" !" }
  a a
}

[image of music]

La mise en forme s’obtient à l’aide de commandes dédiées dont le nom est précédé d’une oblique inverse. Elles prennent un certain nombre d’arguments spécifiques à la commande. Une liste exhaustive des commandes spécifiques au mode markup est fournie dans l’annexe Commandes pour markup (en anglais).

\markup \italic "string. assai"
\markup \with-color "red" intenso

[image of music]

Les commandes de markup peuvent être imbriquées. Un bloc markup sera clôturé dès lors que toutes les commandes qu’il contient auront reçu leurs arguments.

\markup \with-color "red" \italic intenso

[image of music]

Plusieurs expressions markup peuvent se regrouper par des accolades pour former une liste de markups. En l’absence de formatage particulier, les éléments d’une liste de markups sont affichés en enfilade.

\markup { molto \italic intenso }

[image of music]

Certaines commandes n’attendent pas un simple markup, mais une liste de markups, ce qui permet des présentations plus élaborées qu’une simple enfilade.

\markup \center-column {
  \bold "Des Simplicius Simplicissimus Jugend"
  "Karl Amadeus Hartmann"
}

[image of music]

De plus, certaines commandes ne renvoient pas un markup, mais une liste de markups. Leur résultat peut alors s’utiliser là où on attendait une liste de markup. Une liste de ces commandes est fournie à l’annexe Commandes pour liste de markups (en anglais).

\markup \string-lines
    "Twinkle, twinkle, little star,
     How I wonder what you are!"

[image of music]

\markup \center-column \string-lines
    "Twinkle, twinkle, little star,
     How I wonder what you are!"

[image of music]

Les éléments d’une liste composite de markups sont tout bonnement traités comme des éléments de la liste principale.

\markup \center-column {
  \bold "Des Simplicius Simplicissimus Jugend"
  { Karl Amadeus \smallCaps Hartmann }
}

[image of music]

Plusieurs éléments d’une liste de markups seront mis en rang sur une même ligne s’ils sont regroupés à l’aide de la commande \line.

\markup \center-column {
  \bold "Des Simplicius Simplicissimus Jugend"
  \line { Karl Amadeus \smallCaps Hartmann }
}

[image of music]

Le comportement des commandes prenant en argument des markups mais s’appliquent à des listes de markups constitue une fonctionnalité spéciale. Lorsque leur dernier argument est une liste et non un markup, chacun des éléments de cette liste se voit appliquer le traitement de la commande.

\markup \box { Karl Amadeus \smallCaps Hartmann }

[image of music]

Dans ce cas, le résultat est par contre une liste de markup qui peut donc être passée à une commande attendant une liste de markups ou une commande attendant un markup, avec à nouveau le comportement que nous venons de voir.

\markup \center-column \box { Karl Amadeus \smallCaps Hartmann }
\markup \rotate #30 \box { Karl Amadeus \smallCaps Hartmann }

[image of music]

L’application de la commande \line à une liste de markups permet qu’lle soit traitee comme un argument markup unique.

\markup \box { Karl Amadeus \smallCaps Hartmann }
\markup \box \line { Karl Amadeus \smallCaps Hartmann }

[image of music]

Lorsque l’intégralité du contenu d’une expression \markup est une liste de markups, elle est implicitement reproduite avec la commande \line. Ses éléments sont donc empilés horizontalement et groupés dans un seul bloc de texte insécable. La commande \markuplist agit différemment : elle attend une liste de markups et affiche individuellement les éléments markups sur la page, les empilant verticalement, autorisant par ailleurs les sauts de page. L’exemple ci-dessous illustre cette différence.

\markup \box \wordwrap {
  Lorem ipsum dolor sit amet, consectetur
  adipisicing elit, sed do eiusmod tempor incididunt
  ut labore et dolore magna aliqua.  Ut enim ad minim
  veniam, quis nostrud exercitation ullamco laboris
  nisi ut aliquip ex ea commodo consequat.
}

\markuplist \box \wordwrap-lines {
  Lorem ipsum dolor sit amet, consectetur
  adipisicing elit, sed do eiusmod tempor incididunt
  ut labore et dolore magna aliqua.  Ut enim ad minim
  veniam, quis nostrud exercitation ullamco laboris
  nisi ut aliquip ex ea commodo consequat.
}

[image of music]

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

allegro = \markup \bold \large Allegro

{
  d''8.^\allegro
  d'16 d'4 r2
}

[image of music]

La syntaxe de la commande \etc permet de définir des raccourcis personnalisés utilisables dans le cadre des commandes \markup.

\markup reddish = \markup \with-color "tomato" \etc

\markup { molto \reddish intenso }

[image of music]

Le fonctionnement interne de ces commandes et la façon d’en implémenter de nouveaux est abordée dans Fonctions pour markups.

Voir aussi

Manuel de notation : Commandes pour liste de markups, Commandes pour markup, Vue d’ensemble des objets textuels.

Manuel d’extension des fonctionnalités : Fonctions pour markups

Fichiers d’initialisation : scm/define-markup-commands.scm, scm/markup.scm.

Morceaux choisis : Texte.

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

Problèmes connus et avertissements

Les messages d’erreur de syntaxe en mode markup sont peu explicites.


GNU LilyPond – Manuel de notation v2.25.22 (development-branch).