5.5.3 ステンシルを変更する

すべてのレイアウト オブジェクトは、grob-interface の一部である stencil プロパティを持ちます。通常、デフォルトでこのプロパティには、出力でそのオブジェクトを具現化する記号を描画するための特有の関数がセットされています。例えば、MultiMeasureRest オブジェクトの stencil プロパティに対する標準設定は、ly:multi-measure-rest::print です。

stencil プロパティを変更して異なる描画関数を参照させることにより、オブジェクトの標準記号を置き換えることができます。これには LilyPond 内部機能についての高い知識が求められます。しかしながら、多くの場合にまずまずの結果を生み出すもっと簡単な方法があります。

簡単な方法では、stencil プロパティにテキストを描画する関数 – ly:text-interface::print – をセットし、必要な記号を生み出すマークアップ テキストを保持するよう設定された text プロパティ与えます。マークアップの自由度の高さにより、多くのことを達成できます。詳細は、マークアップ内部でのグラフィック記譜法 を参照してください。

以下の例では、この方法を用いて符頭記号を内部に×を持つ円に変更しています。

XinO = {
  \once \override NoteHead.stencil = #ly:text-interface::print
  \once \override NoteHead.text = \markup {
    \combine
      \halign #-0.7 \draw-circle #0.85 #0.2 ##f
      \musicglyph "noteheads.s2cross"
  }
}
\relative {
  a' a \XinO a a
}

[image of music]

\musicglyph マークアップ コマンドで、Emmentaler フォントに含まれる任意の Feta グリフを使用することができます。Emmentaler フォント を参照してください。

EPS ファイルや Postscript コマンドを、それぞれ \epsfile\postscript マークアップ コマンドを使って行内に埋め込むことができます。Graphical markup を参照してください。

参照

記譜法リファレンス: マークアップ内部でのグラフィック記譜法, テキストをフォーマットする, \markup コマンドの一覧, Emmentaler フォント, Graphical markup

LilyPond 記譜法リファレンス v2.25.22 (development-branch).