GNU LilyPond 学習マニュアル: 4.2.2 インタフェイスの中で見つかるプロパティ

### 4.2.2 インタフェイスの中で見つかるプロパティ

今度は歌詞をイタリック体で譜刻したいということにします。そうするには `\override` コマンドをどのように使う必要があるのでしょうか？以前と同様に、まず ‘すべてのレイアウト オブジェクト’ をリストアップしている内部リファレンス ページを開き、歌詞をコントロールしていそうなオブジェクトを探します。`LyricText` がそれであるようです。これをクリックすると、歌詞のテキストに対してセットすることができるプロパティが表示されます。そこには `font-series` と `font-size` が含まれますが、歌詞をイタリック体にするためのプロパティらしきものはありません。これは、形に関するプロパティはすべてのフォント オブジェクトに共通なものであり、そのため、各レイアウト オブジェクトに含まれているのではなく、他の同様な共通プロパティと一緒にグループ化されていて、インタフェイス の 1 つ `font-interface` の中に置かれているからです。

そのため、インタフェイスのプロパティを見つける方法と、どのオブジェクトがこれらのインタフェイス プロパティを使うのかを調べる方法を学ぶ必要があります。

`LyricText` について記述している内部リファレンスのページを再び開いてください。そのページの最後に `LyricText` がサポートするインタフェイスへのリンクがリスト アップされています。そのリストには `font-interface` を含むいくつかの要素があります。このリンクをクリックすると、このインタフェイスに関連付けされているプロパティのところに行きます。これらのプロパティは `LyricText` を含む `font-interface` をサポートするすべてのオブジェクトのプロパティでもあります。

`font-shape(symbol)` を含むフォントを制御するユーザが設定可能なプロパティをすべて見つけました。`font-shape(symbol)` では `symbol` を `upright`, `italics`, あるいは `caps` にセットすることができます。

そこには、`font-series` と `font-size` もリスト アップされていることに気づくでしょう。そこで次のような疑問が湧いてきます: 共通フォントプロパティ `font-series` と `font-size` は `LyricText` とインタフェイス `font-interface` の両方でリスト アップされているのに、なぜ `font-shape` はそうでないのか？その答えは、`font-series` と `font-size` は、`LyricText` オブジェクトが作成されるときに、それらのグローバルなデフォルト値から変更されるのに対して、`font-shape` はそうではないからです。`LyricText` の中にあるエントリから `LyricText` に適用されるそれら 2 つのプロパティの値がわかります。`font-interface` をサポートする他のオブジェクトは、それらのオブジェクトが作成されるときに、それらのプロパティを異なる値にセットします。

今度は歌詞をイタリック体に変更するように `\override` コマンドを構築できるかどうかを見ていきましょう。オブジェクトは `LyricText` であり、プロパティは `font-shape` であり、セットする値は `italic` です。前と同様に、コンテキストを省略します。

話は逸れますが重要なことを 1 つ挙げます。`font-shape` の値はシンボルなので、シングル アポストロフィ `'` を付ける必要があるということに注意してください。その理由は、以前の例での `thickness` や `font-shape` の前にアポストロフィを付ける必要がある理由と同じです。それらも両方ともシンボルです。シンボルは LilyPond によって内部的に読み取られます。それらのいくつかは `thickness` や `font-shape` のようなプロパティの名前であり、他のものは `italic` のようにプロパティに与えられる値として使用されます。任意のテキスト文字列との違い – 任意のテキスト文字列は `"a text string"` のような形で表記されます – に注意してください。シンボルと文字列についてのより詳細な説明は、 Scheme tutorial を参照してください。

さて、それでは歌詞をイタリック体で譜刻するために必要となる `\override` コマンドは以下のようになります:

>     \override LyricText #'font-shape = #'italic

そして、これは以下のように影響を与える歌詞の前に、そして近くに置くべきです:

>     {
>       \key es \major
>       \time 6/8
>       {
>         r4 bes8 bes[( g]) g |
>         g8[( es]) es d[( f]) as |
>         as8 g
>       }
>       \addlyrics {
>         \override LyricText #'font-shape = #'italic
>         The man who | feels love's sweet e -- | mo -- tion
>       }
>     }

これで歌詞がすべてイタリック体で譜刻されました。

### 歌詞モードの中でコンテキストを指定する

歌詞の場合、以前のようなコマンドの発行の仕方の中でコンテキストを指定しようとしても失敗するでしょう。歌詞モードの中で入力される音節はスペース、改行、数字のいずれかで区切られます。他のすべての文字は音節の一部と見なされます。これが、終端の `}` の前にはスペースか改行を置かなければならない理由です。そうしないと、終端の `}` は最後の音節の一部に含まれてしまいます。同様に、コンテキスト名とオブジェクト名を区切るために、ピリオドまたはドット ‘.’ の前と後ろにスペースを挿入しなければなりません。さもないと 2 つの名前は一緒になってしまい、インタプリタはそれらを認識できなくなります。そのため、コマンドは以下のようにすべきです:

>     \override Lyrics . LyricText #'font-shape = #'italic

Note: 歌詞の中では、最後の音節と終端の波括弧の間に常にスペースを置いてください。

Note: 歌詞の中のオーバライドでは、コンテキスト名とオブジェクト名の間にあるドットの両側に常にスペースを置いてください。

#### 参照

拡張: Scheme tutorial

他の言語: English, česky, deutsch, español, français, italiano, nederlands

#### LilyPond — 学習マニュアル