[ < ] [ > ]   [ << ] [ 上へ ] [ >> ]         [トップ] [目次] [インデックス] [ ? ]

4.2 内部リファレンス マニュアル

@translationof The Internals Reference manual


[ < ] [ > ]   [ << ] [ 上へ ] [ >> ]         [トップ] [目次] [インデックス] [ ? ]

4.2.1 レイアウト オブジェクトのプロパティ

@translationof Properties of layout objects

あなたがスラーを楽譜に描き、そのスラーが細すぎるためにもう少し太くしたいと思ったとします。どうやってスラーを太くしますか?以前に LilyPond の自由度の高さについて述べたので、そのようなことが可能であることは知っています。あなたはおそらく \override コマンドが必要であると推測するでしょう。しかしながら、スラーの太さプロパティは存在するのでしょうか?そして、それが存在するならどうやって変更するのでしょうか?このようなことに内部リファレンス マニュアルは触れています。内部リファレンス マニュアルには、あなたがスラーを太くするために必要な情報、他のすべての \override コマンドを構築するために必要な情報が含まれています。

内部リファレンスを見ていく前に一言警告です。これは リファレンス ドキュメントであり、説明はほんの少しかまったく含まれていません: リファレンスの目的は情報を正確に、かつ簡潔に提供することです。そのため、内部リファレンスを一見してひるんでしまうかもしれません。しかし、心配しないでください!ここにあるガイダンスと説明を読めば、少し練習するだけで、内部リファレンスから必要な情報を取り出せるようになります。

実際の音楽からの簡単な断片を持つ具体例を使用していきましょう:

 
{
  \key es \major
  \time 6/8
  \relative {
    r4 bes'8 bes[( g]) g |
    g8[( es]) es d[( f]) as |
    as8 g
  }
  \addlyrics {
    The man who | feels love's sweet e -- | mo -- tion
  }
}

[image of music]

ここで、スラーをもう少し太くしようと決めたことにします。それは可能でしょうか?スラーは確かにレイアウト オブジェクトです。そのため、その疑問は ‘スラーに属していて、太さを制御するプロパティは存在するのか?’ ということになります。その答えを得るために内部リファレンス – 縮めて IR – を見なければなりません。

あなたが使用しているバージョンの LilyPond のための内部リファレンスは LilyPond ウェブサイト https://lilypond.org で見つかるでしょう。ドキュメント ページに行き、内部リファレンスへのリンクをクリックしてください。学習目的のためには標準の HTML バージョンを使うべきであり、‘1 つの大きなページ’ や PDF を使うべきではありません。次の数段落を読めば、あなたが内部リファレンスを読むときに実際にすべきことがわかるでしょう。

内部リファレンスの トップ ページ 下には 5 つのリンクがあります。Backend へのリンクを選択してください。そこにはレイアウト オブジェクトについての情報があります。Backend 下にある All layout objects へのリンクを選択してください。そのページには、あなたが使用しているバージョンの LilyPond で使用されるすべてのレイアウト オブジェクトがアルファベット順でリストアップされています。Slur へのリンクを選択すると、Slur のプロパティがリスト アップされます。

記譜法リファレンスからこのページを見つける方法もあります。スラーについて扱っているページで、内部リファレンスへのリンクが見つかるかもしれません。このリンクでこのページに直接行くことができます。しかしながら、あなたが調整するレイアウト オブジェクトの名前を想像できる場合は、すぐに内部リファレンスに行ってそこで探す方が簡単です。

内部リファレンスの Slur ページでは、まず Slur オブジェクトは Slur_engraver によって作成されるということが述べられています。それから、標準設定がリストアップされています。スラーの太さを制御していそうなプロパティを探してブラウザをスクロール ダウンさせていくと、以下が見つかります:

 
thickness (number)
     1.2
     Line thickness, generally measured in line-thickness

これが太さを変更するプロパティのようです。thickness の値は 数 であり、デフォルト値は 1.2、この値は他のプロパティでは line-thickness と呼ばれるということがわかります。

前にも言ったように、内部リファレンスには説明がほとんど、あるいはまったくありません。しかしながら、すでにスラーの太さを変えるための十分な情報を持っています。レイアウト オブジェクトの名前は Slur であり、変更するプロパティの名前は thickness であり、スラーをもっと太くするには新しい値を 1.2 よりも大きくすべきであることがわかります。

今度は、レイアウト オブジェクト名で見つけた値を置き換えることによって \override コマンドを構築することができます。コンテキストは省略します。最初は太さに非常に大きな値を割り当ててみます。それによって、そのコマンドが確かに機能していることを確かめることができます。実行するコマンドは以下のようになります:

 
\override Slur.thickness = #5.0

新しい値の前に # を付けることを忘れないでください!

最後の疑問は ‘このコマンドをどこに置くべきか?’ ということです。そのことについて不確かであり、学んでいる最中であるのならば、ベストな答えはこうです ‘音楽表記の内部で、最初のスラーの直前’。ではやってみましょう:

 
{
  \key es \major
  \time 6/8
  \relative {
    % これ以降にある全てのスラーの太さを 1.2 から 5.0 にします
    \override Slur.thickness = #5.0
    r4 bes'8 bes[( g]) g |
    g8[( es]) es d[( f]) as |
    as8 g
  }
  \addlyrics {
    The man who | feels love's sweet e -- | mo -- tion
  }
}

[image of music]

確かにスラーが太くなっています。

これが \override コマンドを構築する基本的な方法です。これより後のセクションで遭遇するものはもう少し複雑ですが、必要な要点はすべて知っています – しかしながら、まだ練習が必要でしょう。これは以下の例で提供されます。

コンテキストを見つけ出す

しかしながら、まず最初にコンテキストを指定しなければならないとしたらどうでしょうか?指定すべきコンテキストは何でしょうか?スラーとボイスは音楽表記の各行で明らかに関係が深いので、スラーは Voice コンテキストの中にあると推測できるかもしれません。しかし、それは確かでしょうか?この問題を解決するには、Slur について記述している内部リファレンス ページの先頭に戻ります。そこには ‘Slur オブジェクトは Slur エングラーバによって作成される’ と書かれています。そのため、スラーは Slur_engraver が存在しているコンテキストのどれかで作成されるということになります。Slur_engraver へのリンクを辿ります。そのページの最後の方で Slur_engraver は 7 つのボイス コンテキスト – 標準のボイス コンテキストである Voice を含む – の一部であることが述べられています。ですから、推測は正しかったのです。そして、Voice は最下位のコンテキストの 1 つである – このことは、そこに音符を入力するという事実によって明らかに示されています – ため、ここではそのコンテキストを省略することができるのです。

1 回だけオーバライドする

上記の最後の例では すべて のスラーが太くなっています。しかし、最初のスラーだけを太くしたい場合はどうでしょうか?これは \once コマンドを使うことによって達成されます。\override コマンドの直前に \once コマンドを置くことによって、\override コマンドは 直後にある 音符から始まるスラーだけを変更するようになります。直後にある音符がスラーの開始点ではない場合、そのコマンドはまったく機能しません – それがスラーに遭遇するまで保持されるということはなく、ただ切り捨てられるだけです。そのため、\once コマンド付きの \override コマンドは以下のように上記の例とは異なる場所に置かなくてはなりません:

 
{
  \key es \major
  \time 6/8
  \relative {
    r4 bes'8
    % 直後にあるスラーのみを太くします
    \once \override Slur.thickness = #5.0
    bes8[( g]) g |
    g8[( es]) es d[( f]) as |
    as8 g
  }
  \addlyrics {
    The man who | feels love's sweet e -- | mo -- tion
  }
}

[image of music]

今度は、最初のスラーだけが太くなりました。

\once コマンドは \set コマンドの前でも使用される可能性があります。

元に戻す

最後に、最初の 2 つだけのスラーを太くしたい場合はどうでしょうか?その場合、2 つのコマンド – それぞれの前に \once を付けた – をスラーが始まる音符の直前に置きます:

 
{
  \key es \major
  \time 6/8
  \relative {
    r4 bes'8
    % 直後にあるスラーのみを太くします
    \once \override Slur.thickness = #5.0
    bes[( g]) g |
    % 直後にあるスラーのみを太くします
    \once \override Slur.thickness = #5.0
    g8[( es]) es d[( f]) as |
    as8 g
  }
  \addlyrics {
    The man who | feels love's sweet e -- | mo -- tion
  }
}

[image of music]

あるいは、\once コマンドを省略して、2 番目のスラーの後に thickness プロパティをデフォルト値に戻すために \revert コマンドを使うこともできます:

 
{
  \key es \major
  \time 6/8
  \relative {
    r4 bes'8
    % 以後のスラーの太さを 1.2 から 5.0 に増やします
    \override Slur.thickness = #5.0
    bes[( g]) g |
    g8[( es]) es
    % 以後のスラーの太さをデフォルトの 1.2 に戻します
    \revert Slur.thickness
    d8[( f]) as |
    as8 g
  }
  \addlyrics {
    The man who | feels love's sweet e -- | mo -- tion
  }
}

[image of music]

\revert コマンドは \override コマンドで変更されたどのプロパティでもデフォルト値に戻すことができます。状況に相応しい方を使用してください。

これで内部リファレンスと調整の基本的な方法についての紹介を終わりにします。この章で後に続くセクションの中にあるいくつのかの例でも一部では、内部リファレンスの特徴についての追加の紹介や、そこから情報を取り出すための更なる練習を提供します。それらの例ではガイダンスや説明のための言葉はずっと少ないでしょう。


[ < ] [ > ]   [ << ] [ 上へ ] [ >> ]         [トップ] [目次] [インデックス] [ ? ]

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

@translationof Properties found in interfaces

今度は歌詞をイタリック体で譜刻したいということにします。そうするには \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 つ挙げます。プロパティには値としてシンボル (例えば italic) を取るものがあります。シンボルの前にはアポストロフィ ' を置く必要があり、そうすることで内部的に LilyPond に読み込まれます。任意のテキスト文字列との違い – 任意のテキスト文字列は "a text string" のような形で表記されます – に注意してください。シンボルと文字列についてのより詳細な説明は (extending)Scheme tutorial section ‘Scheme tutorial’ in Extending を参照してください。

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

 
\override LyricText.font-shape = #'italic

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

 
{
  \key es \major
  \time 6/8
  \relative {
    r4 bes'8 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
  }
}

[image of music]

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

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

参照

拡張: (extending)Scheme tutorial section ‘Scheme tutorial’ in Extending


[ < ] [ > ]   [ << ] [ 上へ ] [ >> ]         [トップ] [目次] [インデックス] [ ? ]

4.2.3 プロパティのタイプ

@translationof Types of properties

これまでにプロパティのタイプを 2 つ見てきました: number と symbol です。プロパティに与える値が有効であるためには、その値は正しいタイプであり、そのタイプのルールに従っていなければなりません。プロパティのタイプは内部リファレンスの中で常にプロパティ名の後の括弧の中に表示されています。ここに、あなたが必要になるであろうプロパティのタイプを、そのタイプのルールといくつかの例と共にリスト アップします。\override コマンドの中でプロパティの値を入力する時は、当然、常にそれらの値の前にハッシュ記号 # を付け加える必要があります – 例え、その値自体が # で始まっていたとしても付け加える必要があります。ここでは定数の例だけを示します: Scheme を用いて値の計算をしたいのであれば、 (extending)Calculations in Scheme section ‘Calculations in Scheme’ in Extending を参照してください。

プロパティ タイプ規則例
Boolean真か偽のどちらかで、それぞれ #t と #f で表されます#t, #f
Dimension (譜スペース)小数 (譜スペース単位)2.5, 0.34
Direction向きを表す有効な定数またはそれと等価な数値 (-1 から 1 までの小数が許可されます)LEFT, CENTER, UP, 1, -1
Integer整数3, -1
List一連の定数またはシンボル。 スペースで区切られ、前にアポストロフィが付いた括弧で囲まれます'(left-edge staff-bar), '(1), '(), '(1.0 0.25 0.5)
Markup有効なマークアップ\markup { \italic "cresc." }
Momentmake-moment 関数で構築される全音符の分数(ly:make-moment 1/4), (ly:make-moment 3/8)
Number正または負の小数3.5, -2.45
(数の) Pair‘スペース . スペース’ で区切られ、前にアポストロフィが付いた括弧で囲まれた 2 つの数値'(2 . 3.5), '(0.1 . -3.2)
Symbolプロパティに許可されているシンボルのセットのいずれかであり、前にアポロストロフィを付けます'italic, 'inside
Unknown手続き。何のアクションも起こさない場合は #fbend::print, ly:text-interface::print, #f
Vector#(…) で囲まれたいくつかの定数#(#t #t #f)

参照

拡張: (extending)Scheme tutorial section ‘Scheme tutorial’ in Extending


[ < ] [ > ]   [ << ] [ 上へ ] [ >> ]

This document was generated by gub on 7 月 13, 2020 using texi2html 1.82.

他の言語: English, català, česky, deutsch, español, français, italiano, nederlands
About automatic language selection.