Referència de la notació del GNU LilyPond: 3.3.3 Caràcters especials

### 3.3.3 Caràcters especials

#### Codificació del text

El LilyPond usa el conjunt de caràcters definit pel consorci Unicode i la norma ISO/IEC 10646. Defineix un nom únic i un codi per als conjunts de caràcters que s’utilitzen en pràcticament tots els idiomes moderns i també en molts d’altres. L’Unicode es pot implementar utilitzant diverses esquemes de codificació diferents. El LilyPond usa la codificació UTF-8 (UTF són les sigles d’Unicode Transformation Format, o format de transformació de l’Unicode) que representa tots els caràcters comuns de la codificació Latin en un sol byte, i representa altres caràcters usant un format de longitud variable de fina a quatre bytes.

L’aspecte visual real dels caràcter ve determinat per els glifs que es defineixen als tipus de lletres concretes que es tinguin disponibles: un tipus de lletra defineix l’assignació d’un subconjunt dels codis d’Unicode a glifs. El LilyPond fa servir la biblioteca Pango per representar i disposar tipogràficament els textos multilingües.

El Lilypond no realitza cap conversió a la codificació de l’entrada. Això significa que qualsevol text, ja sigui el títol, la lletra de la cançó o una ordre musical que contingui caràcters diferents als del conjunt ASCII, s’han de codificar en UTF-8. La forma més fàcil d’escriure aquest text és utilitzar un editor preparat per a Unicode i desar el fitxer amb la codificació UTF-8. Gairebé tots els editors moderns populars donen suport al UTF-8, per exemple ho fan el vim, l’Emacs, el jEdit i el Gedit. Tots els sistemes MS Windows posteriors a NT fan servir l’Unicode com a codificació de caràcters nativa, de manera que fins i tot l’accessori Bloc de Notes (Notepad) pot editar-se i desar un fitxer en el format UTF-8. Una alternativa més funcional per a Windows és el BabelPad.

Si un fitxer d’entrada que conté un caràcter que no és ASCII no es desa en el format UTF-8, es genera un missatge d’error.

>     FT_Get_Glyph_Name () error: argument invàlid

Vet aquí un exemple que mostra text ciríl·lic, hebreu i portuguès:

#### Unicode

Per introduir un caràcter aïllat per al qual es coneix el punt de codi Unicode però no està disponible a l’editor que s’està fent servir, useu `\char ##xhhhh` o bé `\char #dddd` dins d’un bloc `\markup`, on `hhhh` és el codi hexadecimal del caràcter en qüestió i `dddd` és el seu valor decimal corresponent. Poden ometre’s els zeros inicials, però és costum indicar els quatre caràcters a la representació hexadecimal (observeu que no s’ha d’utilitzar la codificació UTF-8 del punt de codi Unicode després de `\char`, atès que la codificació UTF-8 conté bits addicionals que indiquen el nombre d’octets). Hi ha taules de codis Unicode i un índex de noms de caràcters que dóna el punt de codi en hexadecimal per a qualsevol caràcter al portal del Consorci Unicode, https://www.unicode.org/.

Per exemple, tant `\char ##x03BE` com `\char #958` insereixen el caràcter Unicode U+03BE, que té el nom Unicode “Lletra grega Xi petita”.

Es pot escriure d’aquesta forma qualsevol punt de codi Unicode, i si tots els caràcters especials s’escriuen en aquest format no cal desar el fitxer d’entrada en format UTF-8. Per suposat, ha d’estar instal·lat i estar disponible per al LilyPond un tipus de lletra que contingui codificats tots aquests caràcters.

L’exemple següent mostra valors hexadecimals Unicode que s’usen a quatre llocs: a una crida d’assaig, com text d’articulació, a la lletra i com text independent sota la partitura:

>     \score {
>       \relative {
>         c''1 \mark \markup { \char ##x03A8 }
>         c1_\markup { \tiny { \char ##x03B1 " to " \char ##x03C9 } }
>       }
>       \addlyrics { O \markup { \concat { Ph \char ##x0153 be! } } }
>     }
>     \markup { "Copyright 2008--2015" \char ##x00A9 }

Per escriure el símbol de copyrights a la nota de crèdits, utilitzeu:

>     \header {
>       copyright = \markup { \char ##x00A9 "2008" }
>     }

#### Àlies d’ASCII

Es pot incloure una llista d’àlies d’ASCII per a caràcters especials:

>     \paper {
>       #(include-special-characters)
>     }

>     \markup "&flqq; &ndash; &OE;uvre incomplète&hellip; &frqq;"

>     \score {
>       \new Staff { \repeat unfold 9 a'4 }
>       \addlyrics {
>         This is al -- so wor -- kin'~in ly -- rics: &ndash;_&OE;&hellip;
>       }
>     }

>     \markup \column {
>       "The replacement can be disabled:"
>       "&ndash; &OE; &hellip;"
>       \override #'(replacement-alist . ()) "&ndash; &OE; &hellip;"
>     }

També podem fer els nostres propis àlies, ja sigui de forma global,

>     \paper {
>       #(add-text-replacements!
>         '(("100" . "hundred")
>           ("dpi" . "dots per inch")))
>     }
>     \markup "A 100 dpi."

o local:

>     \markup \replace #'(("100" . "hundred")
>                         ("dpi" . "dots per inch")) "A 100 dpi."

#### Vegeu també

Referència de la notació: Llista de caràcters especials.

Fitxers instal·lats: ‘`ly/text-replacements.ly`’.

#### LilyPond — Referència de la notació v2.24.4 (branca estable).