outside-staff-priority プロパティ

小さな値の outside-staff-priority プロパティを持つオブジェクトは譜の近くに配置され、他の譜外部オブジェクトは衝突を避けるのに必要な分だけ離されます。outside-staff-prioritygrob-interface の中で定義されているため、すべてのレイアウト オブジェクトのプロパティです。デフォルトでは、すべての譜内部オブジェクトの outside-staff-priority#f にセットされていて、譜外部オブジェクトが作成されたときにその譜外部オブジェクトの outside-staff-priority に適当な数値がセットされます。以下の表はいくつかの一般的な譜外部オブジェクトのデフォルトの outside-staff-priority 値を示しています。

レイアウト オブジェクト優先度以下のオブジェクトの配置を制御する:
RehearsalMark1500リハーサル記号
MetronomeMark1000メトロノーム記号
SostenutoPedalLineSpanner1000ペダル記号
SustainPedalLineSpanner1000
UnaCordaPedalLineSpanner1000
MeasureCounter750小節番号
VoltaBracketSpanner600Volta (番号付きのリピート) の囲み
InstrumentSwitch500楽器を変更するテキスト
TextScript450マークアップ テキスト
MultiMeasureRestText450複数小節にわたる休符上のテキスト
CombineTextScript450パート結合のテキスト
OttavaBracket400オッターバ (オクターブを上下させる記号) の囲み
TextSpanner350テキスト スパナ
DynamicLineSpanner250すべての強弱記号
BarNumber100小節番号
TrillSpanner50トリル記号
AccidentalSuggestion0注釈的な臨時記号 (音符の上に付く臨時記号、ムジカ・フィクタ)

これらのうちのいくつかのデフォルトでの配置を示している例を挙げます。

% 以降のテキスト スパナの詳細を設定します
\override TextSpanner.bound-details.left.text
    = \markup { \small \bold Slower }
% 強弱記号を譜の上に配置します
\dynamicUp
% オッターバ囲みの開始
\ottava #1
c''4 \startTextSpan
% 強弱テキストとヘアピンを付け加えます
c''4\pp\<
c''4
% テキスト スクリプトを付け加えます
c''4^Text |
c''4 c''
% 強弱テキストを付け加え、強弱ヘアピンを終わらせます
c''4\ff c'' \stopTextSpan |
% オッターバ囲みを終わらせます
\ottava #0
c'4 c' c' c' |

[image of music]

この例はテキスト スパナ – 音楽の上に置かれる延長線付きのテキスト – の作成方法についても示しています。スパナは \startTextSpan コマンドから \stopTextSpan コマンドまで延び、テキストのフォーマットは \override TextSpanner コマンドによって定義されます。詳細は テキスト スパナ を参照してください。

この例はさらにオッターバ囲みを作成する方法についても示しています。

outside-staff-priority のデフォルト値による配置があなたの望みに合わない場合、いずれかのオブジェクトの優先度をオーバライドすることになるかもしれません。上記の例で、オッターバ囲みをテキスト スパナの下に配置したいとします。すべきことは、OttavaBracketStaff コンテキストの中に作成されるということを思い出し、OttavaBracket の優先度を内部リファレンスか上記の表で調べて、それを TextSpanner の値よりも小さくすることです:

% 以降のテキスト スパナの詳細を設定します
\override TextSpanner.bound-details.left.text
    = \markup { \small \bold Slower }
% 強弱記号を譜の上に配置します
\dynamicUp
% 以降のオッターバ囲みをテキスト スパナの下に配置します
\once \override Staff.OttavaBracket.outside-staff-priority = #340
% オッターバ囲みの開始
\ottava #1
c''4 \startTextSpan
% 強弱テキストを付け加えます
c''4\pp
% 強弱の線スパナを付け加えます
c''4\<
% テキスト スクリプトを付け加えます
c''4^Text |
c''4 c''
% 強弱テキストを付け加えます
c''4\ff c'' \stopTextSpan |
% オッターバ囲みを終わらせます
\ottava #0
c'4 c' c' c' |

[image of music]

これらのオブジェクトのいくつか – 特に、小節番号、メトロノーム記号、それにリハーサル記号 – はデフォルトでは Score コンテキストの中にあるため、それらのプロパティをオーバライドする場合は適切なコンテキストを指定する必要があることに注意してください。

スラーはデフォルトでは譜内部オブジェクトに分類されています。しかしながら、譜の上部に配置された音符に付くスラーはしばしば譜の上に表示されます。このことは、スラーがまず最初に配置されるため、アーティキュレーションなどの譜外部オブジェクトをあまりにも高い位置に押し上げる可能性があります。アーティキュレーションの avoid-slur プロパティに 'inside をセットすることでアーティキュレーションをスラーよりも内側に配置することができます。しかし、avoid-slur プロパティはアーティキュレーションの outside-staff-priority#f にセットされている場合にのみ効果を持ちます。代替手段として、スラーの outside-staff-priority に数値をセットすることによって、スラーを他の譜外部オブジェクトとともに outside-staff-priority 値に従って配置することができます。ここで、2 つの方法の効果を示す例を挙げます:

\relative c'' {
  c4( c^\markup { \tiny \sharp } d4.) c8 |
  c4(
    \once \override TextScript.avoid-slur = #'inside
    \once \override TextScript.outside-staff-priority = ##f
    c4^\markup { \tiny \sharp } d4.) c8 |
  \once \override Slur.outside-staff-priority = #500
    c4( c^\markup { \tiny \sharp } d4.) c8 |
}

[image of music]

outside-staff-priority は、個々のオブジェクトの垂直方向の配置を制御するために使用することもできます。しかしながら、その結果は常に望み通りになるわけではありません。自動配置 にある例で “Text3” を “Text4” の上に配置したいとします。すべきことは TextScript の優先度を内部リファレンスか上記の表で調べて、“Text3” の優先度を大きくすることです:

c''2^"Text1"
c''2^"Text2" |
\once \override TextScript.outside-staff-priority = #500
c''2^"Text3"
c''2^"Text4" |

[image of music]

これはたしかに “Text3” を “Text4” の上に配置しています。しかし、“Text3”を “Text2” の上に配置して、“Text4” を押し下げてもいます。おそらく、これはそれほど望ましい結果ではないでしょう。本当に望んでいることは、すべての注釈を譜の上に譜から同じ距離だけ離して配置することです。そうするには明らかに、テキストのためにもっと広いスペースを確保するために、音符を水平方向に広げる必要があります。これは \textLengthOn コマンドを用いることで達成できます。


GNU LilyPond 学習マニュアル v2.25.22 (development-branch).