4.3.5 エングラーバを追加 / 削除する

これまでに、コンテキストはそれぞれにいくつかのエングラーバを保持し、それぞれのエングラーバは出力のある特定部分 – 小節線、譜、符頭、符幹など – の譜刻に責任を持つということを見てきました。あるエングラーバがコンテキストから削除されると、それはもはや出力を行いません。これは出力を変更するための荒っぽい方法ですが、役に立つ場合もあります。

単一のコンテキストの変更

あるコンテキストからあるエングラーバを削除するには、前のセクションで見てたきたのと同様に、コンテキスト作成コマンドの直後に置く \with コマンドを使用します。

例として、前のセクションで使用した例から譜表線を取り除いてみましょう。譜表線は Staff_symbol_engraver によって作り出されるということを思い出してください。

\new Staff \with {
  \remove Staff_symbol_engraver
}
\relative {
  c'4 d
  \set fontSize = #-4  % 符頭を小さくします
  e4 f |
  \set fontSize = #2.5  % 符頭を大きくします
  g4 a
  \unset fontSize  % デフォルトのサイズに戻します
  b4 c |
}

[image of music]

さらに、エングラーバは個々のコンテキストに追加されることもあります。エングラーバを追加するコマンドは以下のようなものです:

\consists Engraver_name,

これを \with ブロックの中に置きます。いくつかのボーカル譜は、その譜表の中にある音符の範囲を示すために、譜表の開始点に音域 (ambitus) を置きます – ambitus を参照してください。音域は Ambitus_engraver によって作成され、普通は、これはどのコンテキストにも含まれません。これを Voice コンテキストに追加した場合、それはそのボイスのみから音域を計算します:

\new Staff <<
  \new Voice \with {
    \consists Ambitus_engraver
  } {
    \relative {
      \voiceOne
      c''4 a b g
    }
  }
  \new Voice {
    \relative {
      \voiceTwo
      c'4 e d f
    }
  }
>>

[image of music]

しかし、音域エングラーバを Staff コンテキストに追加した場合、そのエングラーバはその譜表上にあるすべてのボイスの中の音符から音域を計算します:

\new Staff \with {
  \consists Ambitus_engraver
}
<<
  \new Voice {
    \relative {
      \voiceOne
      c''4 a b g
    }
  }
  \new Voice {
    \relative {
      \voiceTwo
      c'4 e d f
    }
  }
>>

[image of music]

同じタイプのコンテキストをすべて変更する

上の例では、個々のコンテキストにエングラーバを追加あるいは削除する方法を示しました。さらに、そのコマンドを \layout ブロックの中の適当なコンテキストの中に置くことによって、ある特定のタイプのコンテキストすべてにエングラーバを追加あるいは削除することもできます。例えば、4 つの譜表を持つ楽譜ですべての譜表に音域を表示する場合、以下のように記述します:

\score {
  <<
    \new Staff {
      \relative {
        c''4 a b g
      }
    }
    \new Staff {
      \relative {
        c'4 a b g
      }
    }
    \new Staff {
      \clef "G_8"
      \relative {
        c'4 a b g
      }
    }
    \new Staff {
      \clef "bass"
      \relative {
        c4 a b g
      }
    }
  >>
  \layout {
    \context {
      \Staff
      \consists Ambitus_engraver
    }
  }
}

[image of music]

また、コンテキスト プロパティの値も、上記と同様に \context ブロックの中に \set を含ませることによって、ある特定のタイプのコンテキストすべてに対してセットすることができます。

参照

記譜法リファレンス: Modifying context plug-ins, Changing context default settings

既知の問題と警告

Stem_engraverBeam_engraver はそれらが描くオブジェクトを符頭にくっつけます。Note_heads_engraver が削除されると、符頭は作られず、それゆえ符幹も連桁も作られません。


GNU LilyPond 学習マニュアル v2.25.22 (development-branch).