5.1.7 コンテキストの配置順序

通常、コンテキストは入力ファイルの中で記述した順に楽譜の段の上から下に配置されます。コンテキストがネストされている場合、外側のコンテキストは入力ファイルの中で指定されたコンテキストを内側に保持して、内側のコンテキストは外側のコンテキストの “accepts” リストに含まれます。ネストされたコンテキストのうち外側のコンテキストの “accepts” リストに含まれないものは、ネストされずに外側のコンテキストの下に再配置されます。

コンテキストの “accepts” リストを \accepts コマンドと \denies コマンドで変更することができます。\accepts はコンテキストを “accepts” リストに追加して、\denies は “accepts” リストからコンテキストを削除します。例えば、通常、コード ネームは Staff コンテキストの中にネストされないため、ChordNames コンテキストはデフォルトでは Staff コンテキストの “accepts” リストには含まれませんが、リストに含める必要があれば含めることができます:

\score {
  \new Staff {
    c' d' e' f'
    \chords { d1:m7 b1:min7.5- }
  }
}

[image of music]

\score {
  \new Staff {
    c' d' e' f'
    \chords { d1:m7 b1:min7.5- }
  }
  \layout {
    \context {
      \Staff
      \accepts "ChordNames"
    }
  }
}

[image of music]

\denies は主に、他のコンテキストをベースに新しいコンテキストを作成した時に、中にネストするコンテキストを変更するために用いられます。

例えば、VaticanaStaff コンテキストは Staff コンテキストをベースにしていますが、“accepts” リストでは Voice コンテキストの代わりに VaticanaVoice コンテキストを保持しています。

コンテキストに保持されるべきコマンドが出現して、それを保持するための適切なコンテキストが存在しない場合、コンテキストが暗黙的に作成されるということに注意してください。これは予期しない譜や楽譜を生み出す可能性があります。

短い期間、あるコンテキストを存在させる必要がある場合があります。オッシアの譜コンテキストが良い例です。通常、これは主音楽の対応するセクションと並列に、適切な場所でコンテキスト定義を行うことで実現します。デフォルトでは、一時コンテキストは既存のすべてのコンテキストの下に配置されます。“main” というコンテキストの上に配置し直すには以下のようにします:

\new Staff \with { alignAboveContext = #"main" } 

ChoirStaff のような複数の譜のレイアウトで一時的な歌詞を配置する場合 -- 例えば、繰り返しセクションに 2 番目の歌詞を追加する場合 -- にも同様な状況が発生します。デフォルトでは、一時的な歌詞は下段の譜の下に配置されます。一時的な歌詞コンテキストを alignBelowContext で定義することにより、1 番目の歌詞を保持する (名前付きの) 歌詞コンテキストの下に配置することができます。

一時コンテキストを再配置する例は他にもあります -- Nesting music expressions、+個々の譜を変更する、それに 歌詞に特有のテクニック を参照してください。

参照

学習マニュアル: Nesting music expressions

記譜法リファレンス: 個々の譜を変更する, 歌詞に特有のテクニック

アプリケーション使用方法: An extra staff appears

インストールされているファイル: ‘ly/engraver-init.ly


他の言語: English, deutsch, español, français, italiano
About automatic language selection.

LilyPond — 記譜法リファレンス v2.17.97 (開発版).