[ << 出力を調整する ] | [トップ][目次][インデックス][ ? ] | [ テンプレート >> ] | ||
[ < オブジェクトとプロパティの命名規約 ] | [ 上へ : 調整の基本 ] | [ 内部リファレンス マニュアル > ] |
4.1.4 調整手段
\override コマンド
我々はすでに コンテキスト プロパティを変更する と
エングラーバを追加 / 削除する でコンテキストのプロパティを変更したり、エングラーバを追加/削除したりするために使用するコマンド
\set
と \with
を見てきました。ここでは更に重要ないくつかのコマンドについて見ていきます。
レイアウト オブジェクトのプロパティを変更するためのコマンドは
\override
です。このコマンドは LilyPond の奥深くにある内部プロパティを変更しなければならないため、これまで見てきたコマンドのように単純な構文ではありません。どのコンテキストの中にあるどのオブジェクトのどのプロパティを変更しなければならないのか、そこにセットする新しい値を何にするのかを正確に知っている必要があります。どのようにこれを行うのかを見ていきましょう。
このコマンドの一般的な構文は以下のようなものです:
\override Context.LayoutObject #'layout-property = #value
これは Context コンテキストのメンバである LayoutObject という名前のレイアウトの layout-property という名前のプロパティに値 value をセットします。
必要とされているコンテキストが明白であり、それが最下位レベルのコンテキストである – つまり、Voice
, ChordNames
や Lyrics
である – 場合、その Context は省略可能可能であり (そして通常は省略されます)、この後の例の多くでも省略します。後ほど、コンテキストを指定しなければならない場合について見ていきます。
これから後のセクションでは広範囲に亘るプロパティとそれらの値を扱います。しかしながら、そのフォーマットとそれらのコマンドの使用方法を示すためには、容易に理解できる簡単なプロパティと値を 2, 3 使用してみるだけです。
今や、レイアウト プロパティの前に置かれなければならない #'
やプロパティ値の前に置かれなければならない #
について心配する必要はありません。これらは常にそのような形式で正確に記述されなければなりません。これは調整では最も一般的に使用されるコマンドであり、この章の残りの部分の大半ではプロパティ (変更コマンド) の使用方法を示すための例を記述しています。ここでは符頭の色を変更する簡単な例を挙げます:
c d \override NoteHead #'color = #red e f g \override NoteHead #'color = #green a b c
\revert コマンド
一旦オーバライドされると、そのプロパティは再度オーバライドされるか
\revert
コマンドに遭遇するまで新しい値のままでいます。\revert
コマンドは以下の構文を持ち、プロパティの値をオリジナルのデフォルト値に戻します。何度か \override
コマンドが発行されている場合は、前の値に戻すわけではないということに注意してください。
\revert Context.LayoutObject #'layout-property
繰り返しますが、\override
コマンドでの Context と同様に、多くの場合で Context を記述する必要はありません。以下の例の多くで、Context は省略されます。ここでは、最後の 2 つの音符の符頭の色をデフォルトに戻します:
c d \override NoteHead #'color = #red e f g \override NoteHead #'color = #green a \revert NoteHead #'color b c
\once prefix
\override
コマンドと \set
コマンドには両方とも接頭辞 \once
が付く可能性があります。これはその後に続く \override
や \set
コマンドをその場一回限り有効にし、その後にそのプロパティの値をデフォルト値に戻します。上と同じ例を使って、以下のように 1 つだけの音符の色を変更することができます:
c d \once \override NoteHead #'color = #red e f g \once \override NoteHead #'color = #green a b c
\overrideProperty コマンド
オーバライド コマンドには \overrideProperty
というもう 1 つのフォーマットがあり、時々必要となります。完璧を期すためにここでこれに言及しましたが、詳細は
Difficult tweaks を参照してください。
\tweak コマンド
利用可能な最後の調整コマンドは \tweak
です。これは同じタイミングで起こるオブジェクト – 和音の中にある音符などのように –
のプロパティを変更するために使用されます。\override
コマンドを使用すると和音の中にあるすべての音符に影響を与えます。一方、\tweak
は入力ストリームの中でその \tweak
のすぐ後にある要素 1 つだけに影響を与えます。
ここで例を挙げます。C メジャー コードの中にある真ん中の音符 (ミドル E) の符頭のサイズを変更したいとします。まず最初に、\once \override
だとどうなるか見てみましょう:
<c e g>4 \once \override NoteHead #'font-size = #-3 <c e g> <c e g>
このオーバライドは和音の中にあるすべての符頭に影響を与えています。これは和音の中にあるすべての音符が同じタイミングで起こるためであり、\once
のアクションは \override
と同様に同じタイミングで起こる、指定されたタイプすべてのレイアウト オブジェクトへのオーバライドに適用されます。
\tweak
コマンドはこれとは異なるやり方で処理されます。これは入力ストリームの中ですぐ後に続く要素にだけ作用します。しかしながら、これは入力ストリームから直接作成されるオブジェクト –
本質的に符頭とアーティキュレーション – にだけ効果を持ちます。符幹や臨時記号などのオブジェクトは後で作成されるため、この方法では調整できません。さらに、\tweak
が符頭に適用される場合、それらは和音の内部になければなりません –
つまり、単一山括弧 < .. >
の内部です。そのため、単一の音符 (和音ではない音符) を調整するには、\tweak
コマンドはその音符とともに単一の山括弧で囲わなければなりません。
それでは例に戻り、この方法で和音の真ん中の音符のサイズを変更します:
<c e g>4 <c \tweak #'font-size #-3 e g>4
\tweak
の構文は \override
コマンドの構文とは異なるということに注意してください。コンテキストもレイアウト オブジェクトも指定されません。実際、それらを指定するとエラーになります。これらは両方とも入力ストリームの中で後に続く要素によって示されます。さらに、イコール記号を使うべきではないということに注意してください。そのため、\tweak
コマンドの一般的な構文は単純に以下のようになります:
\tweak #'layout-property #value
さらに、\tweak
コマンドは一連のアーティキュレーションの中にあるただ 1 つのアーティキュレーションを変更されるためにも使用できます。ここに例を挙げます:
a ^Black -\tweak #'color #red ^Red -\tweak #'color #green _Green
\tweak
コマンドは、まるでそれがアーティキュレーションの一部であるかのように、アーティキュレーション マークの前に置かれなければならないということに注意してください。
さらに、\tweak
コマンドは、同時に起こるネストされた連符記号のセットのうちの 1 つの見た目を変更するためにも使用されます。以下の例では、長い連符記号と 3 つの短い連符記号のうちの最初の連符記号が同時に起こります。そのため、\override
コマンドだと両方の連符記号に適用されてしまいます。この例では、\tweak
は 2 つの連符記号を区別するために使用されています。最初の \tweak
コマンドは長い連符記号を音符の上に置くことを指定していて、2 番目の \tweak
コマンドは最初の短い連符記号の数字を赤で描くことを指定しています。
\tweak #'direction #up \times 4/3 { \tweak #'color #red \times 2/3 { c8[ c8 c8] } \times 2/3 { c8[ c8 c8] } \times 2/3 { c8[ c8 c8] } }
ネストされた連符が同時に起こらない場合、それらの見た目は \override
コマンドを用いた通常通りの方法で変更されるかもしれません:
\times 2/3 { c8[ c c]} \once \override TupletNumber #'text = #tuplet-number::calc-fraction-text \times 2/3 { c[ c] c[ c] \once \override TupletNumber #'transparent = ##t \times 2/3 { c8[ c c] } \times 2/3 { c8[ c c]} }
参照
記譜法リファレンス: The tweak command
[ << 出力を調整する ] | [トップ][目次][インデックス][ ? ] | [ テンプレート >> ] | ||
[ < オブジェクトとプロパティの命名規約 ] | [ 上へ : 調整の基本 ] | [ 内部リファレンス マニュアル > ] |
他の言語: English, deutsch, español, français, nederlands