Codage du texte

LilyPond utilise le jeu de caractères défini par le consortium Unicode et la norme ISO/CEI 10646. Chaque caractère est identifié par un nom unique et associé à un point de code, ce qui permet dans l’absolu de couvrir tous les langages. Unicode permet de coder tous les caractères utilisés par toutes les langues écrites du monde. LilyPond utilise le codage UTF-8 (UTF pour Unicode Transformation Format) qui permet de représenter les caractères latins sur un octet et les autres sur une longueur allant jusqu’à quatre octets.

L’apparence réelle des caractères est déterminée par les glyphes ou graphèmes tels que définis dans les différentes polices disponibles. Une police, ou une fonte, définit la mise en correspondance d’un sous-ensemble de points de code unicode en glyphes. LilyPond recourt à la bibliothèque Pango pour assurer le rendu des textes multilingues.

LilyPond n’effectue aucune conversion d’encodage que ce soit. Ceci implique donc que tout texte – un titre, des paroles ou même une instruction musicale – comportant des caractères non ASCII soit codé en UTF-8. Le plus sûr moyen de saisir du texte de la sorte consiste à utiliser un éditeur supportant l’unicode et à enregistrer vos fichier en UTF-8. C’est le cas pour la plupart des éditeurs actuels, que ce soit vim, Emacs, jEdit et Gedit. Tous les systèmes Windows postérieurs à NT utilisent Unicode en natif ; même Notepad est capable d’éditer et sauvegarder un fichier en UTF-8 – sans parler de l’excellente alternative qu’est BabelPad.

La compilation d’un fichier LilyPond comportant des caractères non ASCII qui n’aurait pas été enregistré dans l’encodage UTF-8 vous renverra l’erreur

FT_Get_Glyph_Name () erreur : invalid argument

Voici un exemple utilisant du texte en cyrillique, en hébreux et en portugais.

[image of music]


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