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 つの異なる設定の連想リストを受け取ります:

Grob (グラフィカル オブジェクト) のオーバライド – 後述する NonMusicalPaperColumn に対するオーバライドを含む – は入力ファイルの中の 3 つの場所に配置することができます:

NonMusicalPaperColumn をオーバライドする場合、通常は \context ブロックや \with ブロックの中で\override コマンドを使用します。一方、音符入力の途中で NonMusicalPaperColumn をオーバライドする場合、特殊なコマンド \overrideProperty を使用します。ここで、特殊なコマンド \overridePropertyNonMusicalPaperColumn をオーバライドする例をいくつか挙げます:

\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' }
      }
    >>
  }
}

[image of music]

この楽譜は改行/改ページ情報を専用のボイスに孤立させています。この改行/改ページ用のボイスを作成するテクニックは、例がより複雑になっていくときに、レイアウトと音楽入力を分離することを助けてくれます。改行/改ページのために追加のボイスを使用する を参照してください。

明示的な \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' }
      }
    >>
  }
}

[image of music]

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' }
      }
    >>
  }
}

[image of music]

ここでは 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' } }
      >>
    >>
  }
}

[image of music]

考慮すべき点がいくつかあります:

参照

コード断片集: Spacing


他の言語: English, deutsch, español, français

LilyPond — 記譜法リファレンス

inserted by FC2 system