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:

[image of music]


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 }

[image of music]

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; – &OE;uvre incomplète… &frqq;"

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

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

[image of music]

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

[image of music]

o local:

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

[image of music]

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