[ << lilypond を実行する ] | [Top][Contents][Index] | [ convert-ly を使ってファイルを更新する >> ] |
[ < 楽譜がページからはみ出る ] | [ Up : 一般的なエラー ] | [ エラー メッセージ Unbound variable % > ] |
余計な譜が表示される
コンテキストが \new
や \context
で明示的に作成されていない場合、既存のコンテキストには適用できないコマンドに遭遇した時点で暗黙的に作成されます。単純な楽譜では、コンテキストの自動作成は有用であり、LilyPond マニュアルのほとんどの例はこの手法を用いています。しかしながら、コンテキストの暗黙的な作成はしばしば予期しない譜や楽譜を発生させてしまいます。例えば、以下のコードは後に続く譜の中にあるすべての符頭を赤にすることを意図していますが、結果は 2 つの譜が表示され、下の譜の符頭の色はデフォルトの黒のままとなります。
\override Staff.NoteHead.color = #red \new Staff { a' }
これは、(符頭色の) オーバライドが処理される時に
Staff
コンテキストが存在していないため、Staff
コンテキストが暗黙的に作成され、そのコンテキストにオーバライドが適用されるからです。その後に \new Staff
コマンドによりもう 1 つ別の Staff
コンテキストが作成され、そこに音符が配置されます。すべての符頭を赤にする正しいコードは以下のようになります:
\new Staff { \override Staff.NoteHead.color = #red a' }