[ << スペースの問題 ] | [トップ][目次][インデックス][ ? ] | [ デフォルトを変更する >> ] | ||
[ < システム間の垂直方向の間隔 ] | [ 上へ : 垂直方向のスペース ] | [ 垂直方向の衝突回避 > ] |
4.4.3 譜とシステムを明示的に配置する
前の 2 つのセクションで説明されている VerticalAxisGroup
と
\paper
設定を理解するため
一連の譜とシステムに垂直方向のパディング
One way to understand the VerticalAxisGroup
and \paper
settings explained in the previous two sections is as a collection of
different settings that primarily concern the amount of vertical padding
different staves and systems running down the page.
垂直方向のスペースへの別のアプローチとして、NonMusicalPaperColumn #'line-break-system-details
を用いる方法があります。VerticalAxisGroup
と \paper
が垂直方向のパディングを指定するのに対して、NonMusicalPaperColumn #'line-break-system-details
はページでの垂直方向の位置を指定します。
NonMusicalPaperColumn #'line-break-system-details
は、5 つの異なる設定の連想リストを受け取ります:
-
X-offset
-
Y-offset
-
alignment-offsets
-
alignment-extra-space
-
fixed-alignment-extra-space
Grob (グラフィカル オブジェクト) のオーバライド
– 後述する NonMusicalPaperColumn
に対するオーバライドを含む –
は入力ファイルの中の 3 つの場所に配置することができます:
- 音符入力の途中に直接配置する
-
\context
ブロックの中に配置する -
\with
ブロックの中に配置する
NonMusicalPaperColumn
をオーバライドする場合、通常は \context
ブロックや \with
ブロックの中で\override
コマンドを使用します。一方、音符入力の途中で NonMusicalPaperColumn
をオーバライドする場合、特殊なコマンド \overrideProperty
を使用します。ここで、特殊なコマンド \overrideProperty
で
NonMusicalPaperColumn
をオーバライドする例をいくつか挙げます:
\overrideProperty NonMusicalPaperColumn #'line-break-system-details #'((X-offset . 20)) \overrideProperty NonMusicalPaperColumn #'line-break-system-details #'((Y-offset . 40)) \overrideProperty NonMusicalPaperColumn #'line-break-system-details #'((X-offset . 20) (Y-offset . 40)) \overrideProperty NonMusicalPaperColumn #'line-break-system-details #'((alignment-offsets . (0 -15))) \overrideProperty NonMusicalPaperColumn #'line-break-system-details #'((X-offset . 20) (Y-offset . 40) (alignment-offsets . (0 -15)))
これらの異なる設定がそれぞれどのように機能するのかを理解するために、まったくオーバライドを含まない例を見ることから始めます。
\header { tagline = ##f } \paper { left-margin = 0\mm } \book { \score { << \new Staff << \new Voice { s1*5 \break s1*5 \break s1*5 \break } \new Voice { \repeat unfold 15 { c'4 c' c' c' } } >> \new Staff { \repeat unfold 15 { d'4 d' d' d' } } >> } }
この楽譜は改行/改ページ情報を専用のボイスに孤立させています。この改行/改ページ用のボイスを作成するテクニックは、例がより複雑になっていくときに、レイアウトと音楽入力を分離することを助けてくれます。改行/改ページのために追加のボイスを使用する を参照してください。
明示的な \breaks
は一様に音楽を 1 行あたり 5 小節に分割しています。垂直方向のスペースは LilyPond のデフォルトです。Y-offset
ペアを
NonMusicalPaperColumn
グラフィカル オブジェクトのline-break-system-details
属性にセットすることで、各システムの垂直方向の開始地点を明示的に設定することができます:
\header { tagline = ##f } \paper { left-margin = 0\mm } \book { \score { << \new Staff << \new Voice { \overrideProperty #"Score.NonMusicalPaperColumn" #'line-break-system-details #'((Y-offset . 0)) s1*5 \break \overrideProperty #"Score.NonMusicalPaperColumn" #'line-break-system-details #'((Y-offset . 40)) s1*5 \break \overrideProperty #"Score.NonMusicalPaperColumn" #'line-break-system-details #'((Y-offset . 80)) s1*5 \break } \new Voice { \repeat unfold 15 { c'4 c' c' c' } } >> \new Staff { \repeat unfold 15 { d'4 d' d' d' } } >> } }
line-break-system-details
は潜在的に多くの値を持つ連想リストをとりますが、ここでは値を 1 つだけしかセットしていないということに注意してください。また、ここでは Y-offset
プロパティは、各システムがページに描画される垂直方向の位置を決定しているということに注意してください。
これまでに各システムの垂直方向の開始位置を明示的に設定しましたが、各システム内部での各譜の垂直方向の開始位置を手動で設定することも可能です。line-break-system-details
のサブ プロパティ alignment-offsets
を用いることで、これを行います。
\header { tagline = ##f } \paper { left-margin = 0\mm } \book { \score { << \new Staff << \new Voice { \overrideProperty #"Score.NonMusicalPaperColumn" #'line-break-system-details #'((Y-offset . 20) (alignment-offsets . (0 -15))) s1*5 \break \overrideProperty #"Score.NonMusicalPaperColumn" #'line-break-system-details #'((Y-offset . 60) (alignment-offsets . (0 -15))) s1*5 \break \overrideProperty #"Score.NonMusicalPaperColumn" #'line-break-system-details #'((Y-offset . 100) (alignment-offsets . (0 -15))) s1*5 \break } \new Voice { \repeat unfold 15 { c'4 c' c' c' } } >> \new Staff { \repeat unfold 15 { d'4 d' d' d' } } >> } }
ここでは NonMusicalPaperColumn
グラフィカル オブジェクトのline-break-system-details
属性に 2 つの値を代入しているということに注意してください。line-break-system-details
属性 alist はもっと多くのスペース パラメータ
(例えば、Y-offset
に相当する X-offset
)
を受け付けますが、各システムと各譜の垂直方向の開始地点を制御するのに必要な設定は、Y-offset
ペアと alignment-offsets
ペアだけです。
最後に、alignment-offsets
は譜の垂直方向の位置を指定するのであり、譜グループの位置を指定するわけでは無いということに注意してください。
\header { tagline = ##f } \paper { left-margin = 0\mm } \book { \score { << \new Staff << \new Voice { \overrideProperty #"Score.NonMusicalPaperColumn" #'line-break-system-details #'((Y-offset . 0) (alignment-offsets . (0 -30 -40))) s1*5 \break \overrideProperty #"Score.NonMusicalPaperColumn" #'line-break-system-details #'((Y-offset . 60) (alignment-offsets . (0 -10 -20))) s1*5 \break \overrideProperty #"Score.NonMusicalPaperColumn" #'line-break-system-details #'((Y-offset . 100) (alignment-offsets . (0 -10 -40))) s1*5 \break } \new Voice { \repeat unfold 15 { c'4 c' c' c' } } >> \new StaffGroup << \new Staff { \repeat unfold 15 { d'4 d' d' d' } } \new Staff { \repeat unfold 15 { e'4 e' e' e' } } >> >> } }
考慮すべき点がいくつかあります:
-
alignment-offsets
を使用する場合、歌詞行は譜としてカウントされます。 -
X-offset
,Y-offset
それにalignment-offsets
に渡される数の単位は、隣接する譜の譜線間隔の倍数と解釈されます。正の値は譜と歌詞を上に移動させ、譜の値は譜と歌詞を下に移動させます。 - ここで扱った
NonMusicalPaperColumn #'line-break-system-details
設定は譜とシステムを任意の場所に配置することを可能にするため、紙面領域やマージン領域を犯したり、譜やシステムを次のページの先頭に譜刻する可能性さえあります。これらの設定に適切な値を渡すことで、そのようなことは避けられます。
参照
コード断片集: Spacing
[ << スペースの問題 ] | [トップ][目次][インデックス][ ? ] | [ デフォルトを変更する >> ] | ||
[ < システム間の垂直方向の間隔 ] | [ 上へ : 垂直方向のスペース ] | [ 垂直方向の衝突回避 > ] |