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

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

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

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

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

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

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

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

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

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

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

{
  \time 6/8
  {
    r4 b8 b[( g]) g |
    g[( e]) e d[( f]) a |
    a g
  }
  \addlyrics {
    \override LyricText #'font-shape = #'italic
    The man who feels love's sweet e -- mo -- tion
  }
}

[image of music]

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

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

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

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

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

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

参照

学習マニュアル: @ref{Scheme チュートリアル}


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

LilyPond — 学習マニュアル

inserted by FC2 system