[ << 入出力全般 ] | [Top][Contents][Index] | [ スペースの問題 >> ] |
[ < 特殊文字 ] | [ Up : 特殊文字 ] | [ Unicode > ] |
テキスト エンコーディング
LilyPond は Unicode 協会と ISO/IEC 10646 によって定義された文字レパートリを使用します。この文字レパートリは、ほとんどすべての現代言語と他の多くの言語で使用される文字セットに対して、固有の名前とコード位置を定義しています。Unicode はいくつかの異なるエンコーディングを用いて実装することができます。LilyPond は UTF-8 エンコーディング (UTF は Unicode Transformation Format を意味します) を使用します – UTF-8 はすべての共通ラテン文字を 1 バイトで表し、他の文字を可変バイト長形式 (最大 4 ビット) で表します。
文字の実際の見た目は利用可能なある特定のフォントの中にあるグリフ (図柄) によって決定されます – フォントはグリフを指す Unicode コードのサブセット (部分集合) の写像を定義しています。LilyPond は多言語テキストを、Pango ライブラリを用いて、レイアウトして描画します。
LilyPond は入力のエンコーディング変換をまったく行いません。これは非 ASCII 文字を含むすべてのテキスト – タイトル、歌詞テキストあるいは演奏指示 – を UTF-8 でエンコードして入力する必要があるということを意味します。そのようなテキストを入力する最も容易な方法は Unicode を認識するエディタを用いて、ファイルを UTF-8 で保存することです。人気のある現代的なエディタのほとんどが UTF-8 をサポートします – 例えば、vim, Emacs, jEdit, Gedit です。NT より後の MS Windows システムはすべてネイティブ キャラクタ エンコーディングとして Unicode を使用します。そのため、Notepad でさえ UTF-8 フォーマットのファイルを編集して保存することができます。Windows 用のもっと機能的なエディタに BabelPad があります。
非 ASCII 文字を保持している LilyPond 入力ファイルが UTF-8 フォーマットで保存されていない場合、エラー メッセージ
FT_Get_Glyph_Name () error: invalid argument
が表示されます。
ここでキリル文字、ヘブライ文字、ポルトガル語のテキストを表示する例を挙げます: