GNU LilyPond 学習マニュアル: 4.5 垂直方向のスペース

## 4.5 垂直方向のスペース

基本的に、LilyPond のオブジェクトにおける垂直方向のスペーシングは非常に良いです。2 声とピアノ伴奏からなる単純な曲でどのようになるかを見てみましょう:

垂直方向のスペースについて、何もおかしな所はありません。しかし、あなたが出版社と共に作業していて、譜と歌詞の垂直方向のスペースについてある要求がある場合を想像してください: 歌詞が音符から離れて配置されるように、ピアノ伴奏が歌のパートから離れて配置されるように、ピアノ伴奏の 2 つの譜が近づけて配置されるように要求されたとします。まず歌詞から取り組み始めましょう。

歌詞はシステム (訳注: 1 行分の譜のまとまり) 内に配置されています。そのため、歌詞のスペースを調整するコマンドは システム内部の可変な垂直方向のスペース にあります。これによると、歌詞は `non-staff lines` (譜ではない行) であるため、このスペースを変更するコマンドは `nonstaff` プロパティと関連するということが分かります。歌詞と関連している (上の段の) 譜とのスペースを広げるには `relatedstaff` プロパティ、下の段とのスペースを広げるには `unrelatedstaff` プロパティを使います。歌のパートは `VerticalAxisGroup` の一部であるため、そのプロパティを調整する必要があります。試してみて、効果があるか見てみましょう:

>     <<
>       \new ChoirStaff
>       <<
>         \new Staff {
>           \new Voice = "music" {
>             b'2 c' c' c'
>           }
>         }
>         \new Lyrics \with {
>           \override VerticalAxisGroup.
>             nonstaff-relatedstaff-spacing.padding = #5
>           \override VerticalAxisGroup.
>             nonstaff-unrelatedstaff-spacing.padding = #5
>         }
>         \lyricsto "music" {
>           Here are some lyrics
>         }
>         \new Staff {
>           \clef bass e'2 f e c
>         }
>       >>
>       \new PianoStaff
>       <<
>         \new Staff {
>           g''2 c'' c'' a''
>         }
>         \new Staff {
>           \clef bass e2 f c e
>         }
>       >>
>     >>

確かに反映されました。しかしやり過ぎかもしれません。`padding` プロパティを 5 に設定すると、LilyPond は 5 譜スペースをオブジェクト間の距離に追加します。これは今回は大きすぎるので、2 を使用しましょう。

次に、ピアノ伴奏を歌のパートから離しましょう。歌は `ChoirStaff` であるため、この譜のグループと下にあるピアノ譜とのスペースを増やす必要があります。`StaffGrouper` の `staffgroup-staff-spacing` にある `basic-distance` を変更することで行います。

>     <<
>       \new ChoirStaff \with {
>         \override StaffGrouper.
>           staffgroup-staff-spacing.basic-distance = #15
>       }
>       <<
>         \new Staff {
>           \new Voice = "music" {
>             b'2 c' c' c'
>           }
>         }
>         \new Lyrics \with {
>           \override VerticalAxisGroup.
>             nonstaff-relatedstaff-spacing.padding = #2
>           \override VerticalAxisGroup.
>             nonstaff-unrelatedstaff-spacing.padding = #2
>         }
>         \lyricsto "music" {
>           Here are some lyrics
>         }
>         \new Staff {
>           \clef bass e'2 f e c
>         }
>       >>
>       \new PianoStaff
>       <<
>         \new Staff {
>           g''2 c'' c'' a''
>         }
>         \new Staff {
>           \clef bass e2 f c e
>         }
>       >>
>     >>

完璧です。さて、ピアノ譜をお互いに近づける最後の要求に応えましょう。そのためには、また `StaffGrouper` のプロパティを変更しますが、今回は`basic-distance` と `padding` の両方の値を減らします。このようにして行います。

>     <<
>       \new ChoirStaff \with {
>         \override StaffGrouper.
>           staffgroup-staff-spacing.basic-distance = #15
>       }
>       <<
>         \new Staff {
>           \new Voice = "music" {
>             b'2 c' c' c'
>           }
>         }
>         \new Lyrics \with {
>           \override VerticalAxisGroup.
>             nonstaff-relatedstaff-spacing.padding = #2
>           \override VerticalAxisGroup.
>             nonstaff-unrelatedstaff-spacing.padding = #2
>         }
>         \lyricsto "music" {
>           Here are some lyrics
>         }
>         \new Staff {
>           \clef bass e'2 f e c
>         }
>       >>
>       \new PianoStaff \with {
>         \override StaffGrouper.staff-staff-spacing = #'(
>                                 (basic-distance . 0)
>                                 (padding . 0))
>       }
>       <<
>         \new Staff {
>           g''2 c'' c'' a''
>         }
>         \new Staff {
>           \clef bass e2 f c e
>         }
>       >>
>     >>

非常に近くなりました。しかしこれが出版社の望むものでした。必要であれば、`padding` と `basic-distance` を変更することで間隔を広げることができます。

垂直方向のスペースを変更する方法はたくさんあります。覚えておくべきキーポイントはこれです: `StaffGroup` にあるオブジェクト (例えば `GrandStaff` や `PianoStaff` のグループ) のスペースは、 `StaffGrouper` の変数によって操作されること、グループ化されていない譜 (例えば `Lyrics` や `Staff`) のスペースは、`VerticalAxisGroup` の変数によって操作されることです。詳しくは、 Flexible vertical spacing paper variables と Flexible vertical spacing within systems を参照してください。

#### LilyPond — 学習マニュアル v2.22.2 (安定版).