GNU LilyPond 学習マニュアル: 3.3.5 エングラーバを追加 / 削除する

### 3.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 |
>     }

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

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

しかし、音域エングラーバを `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
>         }
>       }
>     >>

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

上の例では、個々のコンテキストにエングラーバを追加あるいは削除する方法を示しました。さらに、そのコマンドを `\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"
>         }
>       }
>     }

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

#### 参照

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

#### 既知の問題と警告

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

#### LilyPond — 学習マニュアル v2.22.2 (安定版).