余計な譜が表示される

コンテキストが \new\context で明示的に作成されていない場合、既存のコンテキストには適用できないコマンドに遭遇した時点で暗黙的に作成されます。単純な楽譜では、コンテキストの自動作成は有用であり、LilyPond マニュアルのほとんどの例はこの手法を用いています。しかしながら、コンテキストの暗黙的な作成はしばしば予期しない譜や楽譜を発生させてしまいます。例えば、以下のコードは後に続く譜の中にあるすべての符頭を赤にすることを意図していますが、結果は 2 つの譜が表示され、下の譜の符頭の色はデフォルトの黒のままとなります。

\override Staff.NoteHead.color = #red
\new Staff { a' }

[image of music]

これは、(符頭色の) オーバライドが処理される時に Staff コンテキストが存在していないため、Staff コンテキストが暗黙的に作成され、そのコンテキストにオーバライドが適用されるからです。その後に \new Staff コマンドによりもう 1 つ別の Staff コンテキストが作成され、そこに音符が配置されます。すべての符頭を赤にする正しいコードは以下のようになります:

\new Staff {
  \override Staff.NoteHead.color = #red
  a'
}

[image of music]

GNU LilyPond – アプリケーション使用方法 v2.25.15 (開発版).