| [ << スペースの問題 ] | [Top][Contents][Index] | [ デフォルトを変更する >> ] |
| [ < システム内部の可変な垂直方向のスペース ] | [ Up: システム内部の可変な垂直方向のスペース ] | [ グループ化されていない譜のスペース > ] |
システム内部のスペース プロパティ
システム内部の垂直方向のスペースは、2 セットのグラフィカル オブジェクト
プロパティによって制御されます。1 つ目は VerticalAxisGroup グラフィカル オブジェクト
– これは、譜と譜ではない行によって作成されます –
のプロパティ セットです。2 つ目は StaffGrouper グラフィカル オブジェクト
– これは、明示的に呼び出された場合に、譜グループによって作成されます –
のプロパティ セットです。これらのプロパティは、このセクションの終わりで説明します。
これらのプロパティの名前は (staff-affinity を除いて)、item1-item2-spacing という形式に従います
– ここで、item1 と item2 は、スペースを入れられる要素です。item2 は必ずしも item1 の下にある要素ではないということに注意してください。例えば、staff-affinity が UP である場合、nonstaff-relatedstaff-spacing は譜ではない行から上向きにスペースをとります。
スペースは、2 つの要素の 参照ポイント 間の距離です。譜の参照ポイントは、その譜の StaffSymbol
(すなわち、line-count が奇数の場合は中央の譜線で、line-count が偶数の場合は中央のスペースです)
の垂直方向の中央です。譜ではない行の参照ポイントは、以下の表のようになります:
| 譜ではない行 | 参照ポイント |
|---|---|
ChordNames | ベースライン |
NoteNames | ベースライン |
Lyrics | ベースライン |
Dynamics | 垂直方向の中央 |
FiguredBass | 最も上のポイント |
FretBoards | トップ ライン |
以下の画像では、水平方向の線が参照ポイントの位置を示しています:
垂直方向のスペースのグラフィカル オブジェクト プロパティは
(staff-affinity を除いて)、可変な垂直方向の \paper スペース変数 で説明した
\paper スペース変数と同じ連想配列構造を使用します。
連想配列を変更する方法は、連想配列を変更する で説明します。グラフィカル オブジェクト プロパティの調節は、\score ブロックか \layout ブロックの内部で、\override を用いて行う必要があります。
以下の例は、連想配列を変更する 2 つの方法を示しています。最初の宣言は 1 つのキー値を個別に更新して、2 番目の宣言はプロパティ全体を再定義しています:
\new Staff \with {
\override VerticalAxisGroup.default-staff-staff-spacing.basic-distance = #10
} { … }
\new Staff \with {
\override VerticalAxisGroup.default-staff-staff-spacing =
#'((basic-distance . 10)
(minimum-distance . 9)
(padding . 1)
(stretchability . 10))
} { … }
スペース設定をグローバルに変更するには、そのスペース設定を \layout ブロックの中に配置します:
\layout {
\context {
\Staff
\override VerticalAxisGroup.default-staff-staff-spacing.basic-distance = #10
}
}
垂直方向スペースのグラフィカル オブジェクト プロパティの標準設定は VerticalAxisGroup と StaffGrouper でリスト アップしています。特定のタイプの譜ではない行のデフォルト設定は、Contexts の中にある関連するコンテキストの説明でリスト アップしています。
VerticalAxisGroup グラフィカル オブジェクトのプロパティ
通常、VerticalAxisGroup プロパティは、Staff レベル (あるいはそれと同等のレベル) で、\override を用いて調節します。
staff-staff-spacing-
カレントの譜とそのすぐ下の譜の間隔 – その間に 1 つ以上の譜ではない行 (
Lyrics等) が配置されている場合であっても – を決定するために使用します。システムの最下段の譜には適用されません。VerticalAxisGroupのstaff-staff-spacingは、譜がグループの一部である場合はStaffGrouperのstaff-staff-spacingプロパティを適用し、グループではない譜の場合はその譜のdefault-staff-staff-spacingを適用する Scheme 関数です。これにより、グループ化されている譜に異なる間隔を入れることが可能です。グループ化されていることとは無関係に同一の間隔を入れるには、上で示したプロパティ再定義を用いて、この関数を可変スペースの連想配列で置き換えます。 default-staff-staff-spacingグループ化されていない譜で使用される
staff-staff-spacingを定義している可変スペースの連想配列です。staff-staff-spacingは\overrideを用いて上書きされることがあります。staff-affinityカレントの譜ではない行にスペースを入れるために使用する譜の方向です。選択肢は
UP,DOWN, それにCENTERです。CENTERの場合、衝突や他のスペース上の制約によって妨げられない限り、譜ではない行は上下にある近くの譜から等距離になるよう配置されます。隣接する譜ではない行のstaff-affinityは、方向が下から上へと増加しないようにする必要があります。例えば、DOWNに設定された譜ではない行のすぐ後にUPに設定された譜ではない行を置くべきではありません。システムの最上段にある譜ではない行はDOWNであるべきで、システムの最下段にある譜ではない行はUPであるべきです。譜ではない行のstaff-affinityを#fに設定すると、その行は譜として扱われます。譜に対してUP,CENTER, あるいはDOWNのstaff-affinityを設定すると、その譜は譜ではない行として扱われます。nonstaff-relatedstaff-spacingカレントの譜ではない行と
staff-affinityの方向にある最も近い譜との間隔です – 2 つの間に譜ではない行が無く、staff-affinityがUPとDOWNのどちらかである場合です。staff-affinityがCENTERである場合、nonstaff-relatedstaff-spacingは最も近くにある 上下両サイド の譜の間隔になります – たとえ、カレントの譜ではない行と上下どちらかの譜の間に、他の譜ではない行があったとしてもです。このことは、譜ではない行の配置は、上下にある譜と譜ではない行の両方に依存するということを意味します。このスペースのstretchabilityに小さな値を設定すると、そのとおりのスペースになりやすくなります。このスペースのstretchabilityに大きな値を設定すると、そのとおりのスペースになりにくくなります。nonstaff-nonstaff-spacingカレントの譜ではない行と
staff-affinityの方向にある次の譜ではない行の間隔です – 2 つの間に譜が無く、staff-affinityがUPとDOWNのどちらかである場合です。nonstaff-unrelatedstaff-spacingカレントの譜ではない行と
staff-affinityとは反対方向にある譜の間隔です – 2 つの間に他の譜ではない行が無く、staff-affinityがUPとDOWNのどちらかである場合です。これは、例えば、Lyrics行とLyricsが属していない譜との間のパディングを最小にする必要がある場合に使用される可能性があります。
StaffGrouper グラフィカル オブジェクトのプロパティ
通常、StaffGrouper プロパティは、StaffGroup レベル (あるいはそれと同等のレベル) で、\override を用いて調節します。
staff-staff-spacingカレントの譜グループ内部にある隣接する譜の間隔です。個々の譜の
VerticalAxisGroupグラフィカル オブジェクトのstaff-staff-spacingプロパティは、譜毎のスペース設定で上書きされる可能性があります。staffgroup-staff-spacingカレントの譜グループの最後の譜と、同じシステム内にあるすぐ下の譜の間隔です – 2 つの譜の間に 1 つ以上の譜ではない行 (
Lyrics等) が存在する場合であってもです。システムの最下段の譜には適用されません。個々の譜のVerticalAxisGroupグラフィカル オブジェクトのstaff-staff-spacingプロパティは、譜毎のスペース設定で上書きされる可能性があります。
参照
記譜法リファレンス:
可変な垂直方向の \paper スペース変数,
連想配列を変更する
インストールされているファイル: ly/engraver-init.ly, scm/define-grobs.scm
内部リファレンス: Contexts, VerticalAxisGroup, StaffGrouper
| [ << スペースの問題 ] | [Top][Contents][Index] | [ デフォルトを変更する >> ] |
| [ < システム内部の可変な垂直方向のスペース ] | [ Up: システム内部の可変な垂直方向のスペース ] | [ グループ化されていない譜のスペース > ] |
![[image of music]](../3d/lily-980cc7e7.png)