[ << Allgemeine Eingabe und Ausgabe ] | [Anfang][Inhalt][Index][ ? ] | [ Abstände >> ] | ||
[ < Marken benutzen ] | [ Nach oben : Arbeiten an Eingabe-Dateien ] | [ LilyPond-Notation anzeigen > ] |
3.3.3 Zeichenkodierung
LilyPond benutzt alle Zeichen, die durch das Unicode-Konsortium und ISO/IEC 10646 definiert sind. Hiermit wird den Zeichen fast aller Schriftsysteme der Welt ein eindeutiger Name und ein Code-Punkt zugewiesen, mit dem sie identifizierbar sind. Unicode kann mit mehreren Zeichenkodierungen verwirklicht werden. LilyPond benutzt die UTF-8-Kodierung (UTF = Unicode Transformation Format), in der die normalen Zeichen des lateinischen Alphabets mit einem Byte dargestellt werden, während alle anderen Zeichen zwischen zwei und vier Byte Länge haben.
Das Aussehen des Zeichens wird bestimmt durch die gerade benutzte Schriftart (engl. font). In einer Schriftartdatei werden die Nummern der Unicode-Zeichen einem bestimmten Glyphen zugeordnet. LilyPond verwendet die Pango-Bibliothek um mehrsprachige Texte und komplexe Skripte korrekt zu setzen.
LilyPond verändert die Kodierung der Eingabedatei nicht. Das heißt, dass jeder Text – Überschriften, Gesangstext, Spielanweisungen etc. – der nicht nur aus ASCII-Zeichen besteht, in UTF-8 kodiert sein musst. Am einfachsten geht das, indem man einen Texteditor einsetzt, der mit Unicode-Zeichen umgehen kann. Die meisten modernen weit verbreiteten Editoren besitzen heute UTF-8-Unterstützung, wie etwa vim, Emacs, jEdit oder GEdit. Alle MS Windows-Systeme nach NT benutzen Unicode intern, sodass sogar Notepad Dateien in UTF-8 lesen und speichern kann. Ein Editor mit mehr Funktionen unter Windows ist BabelPad oder Notepad++.
Wenn eine LilyPond-Eingabedatei nicht-ASCII-Zeichen enthält und nicht in UTF-8 gespeichert ist, gibt es folgende Fehlermeldung:
FT_Get_Glyph_Name () error: invalid argument
Heir ein Beispiel mit Kyrilliza, hebräischem und portugiesischem Text:
Um einen einzelnen Buchstaben zu notieren, für den die Unicode-Buchstabenfolge
bekannt ist, der aber nicht auf der Tastatur zu finden ist, kann
der Befehl \char ##xhhhh
innerhalb einer \markup
-Umgebung
benutzt werden. Hierbei bedeutet hhhh
die hexadezimale Zahl
für das erforderliche Zeichen. Mit \char ##x03BE
wird
beispielsweise das Unicode-Zeichen U+03BE notiert, welches die
Unicode-Bezeichnung „Greek Small Letter Xi“ hat. Alle existierenden
Unicode-Zeichen können auf diese Weise notiert werden, und wenn für alle
Zeichen dieses Format angewandt wird, muss die Datei nicht im utf-8-Format
gespeichert werden. Es muss natürlich auch noch eine Schriftart auf
dem System installiert sein, die die notierten Zeichen darstellen kann.
Das nächste Beispiel zeigt Unicode-Zeichen an vier Stellen mit dem Zahlencode notiert: in einem Übungszeichen, als Artikulationszeichen, im Gesangstext und als normaler Text außerhalb der Partitur.
\score { \relative c'' { c1 \mark \markup { \char ##x03EE } c1_\markup { \tiny { \char ##x03B1 " to " \char ##x03C9 } } } \addlyrics { O \markup { \concat{ Ph \char ##x0153 be! } } } } \markup { "Copyright 2008--2009" \char ##x00A9 }
Um das Copyright-Zeichen zu notieren, kann folgender Code eingesetzt werden:
\header { copyright = \markup { \char ##x00A9 "2008" } }
[ << Allgemeine Eingabe und Ausgabe ] | [Anfang][Inhalt][Index][ ? ] | [ Abstände >> ] | ||
[ < Marken benutzen ] | [ Nach oben : Arbeiten an Eingabe-Dateien ] | [ LilyPond-Notation anzeigen > ] |