line-spanner-interface を使用する

line-spanner-interface をサポートするオブジェクトには以下のものがあります:

これらのスパナのステンシルを描画する責任を持つルーチンは ly:line-spanner::print です。このルーチンはスパナの両端の位置を綿密に決定し、求めに応じたスタイルでそれらの間に線を描きますスパナの両端の位置はオンザフライ (その場、その時々) で算出されますが、それらの Y 座標をオーバライドすることができます。指定する必要のあるプロパティは、プロパティ階層内で 2 階層下にネストされていますが、この \override コマンドは非常にシンプルです:

e''2 \glissando b'
\once \override Glissando.bound-details.left.Y = #3
\once \override Glissando.bound-details.right.Y = #-2
e''2 \glissando b'

[image of music]

Y プロパティの単位は staff-space であり、譜の中央線が 0 位置です。グリッサンドでは、スパナの両端は各符頭の中心であり、Y はそれらの点を上下させます。

Y が設定されていない場合、値はスパナの両端の垂直位置から算出されます。

改行の場合、終点の Y の値は bound-details の部分リスト left-brokenright-broken のによって指定されます。例を示します:

\override Glissando.breakable = ##t
\override Glissando.bound-details.right-broken.Y = #-3
c''1 \glissando \break
f''1

[image of music]

bound-details プロパティの部分リスト leftright の下位プロパティのいくつかは、Y と同じ方法で変更することができます:

Y

終点の Y 座標を、譜の中央線からの staff-space オフセットで、設定します。デフォルトでは、終点オブジェクトの中心です。ですから、グリッサンドは符頭の中心に向かって進みます。

水平方向に広がるスパナ – テキスト スパナやトリル スパナなど – では、この値は 0 に固定されています。

attach-dir

スパナのラインがオブジェクトの左右どちらから始まり、終わるのかを決定します。-1 (あるいは LEFT) であれば、ラインは符頭の左側から開始あるいは終了します。

X

終点の絶対 X 座標です。通常、オンザフライ (その場、その時々) で算出され、これをオーバライドしてもあまり意味がありません。

stencil

ライン スパナは開始点や終了点で記号を持つ場合があり、その記号はこのサブ プロパティに保持されています。このサブ プロパティは内部で使用するためのものです。このサブ プロパティの代わりに text を使用することを推奨します。

text

ステンシルを作成するために評価されるマークアップです。水平スパナに cresc., tr それに他のテキストを配置するために使用されます。

\override TextSpanner.bound-details.left.text
   = \markup { \small \bold Slower }
\relative { c''2\startTextSpan b c a\stopTextSpan }

[image of music]

stencil-align-dir-y
stencil-offset

これらの 1 つを設定しなければ、ステンシルは、XY サブ プロパティで定義されたとおりに、ラインに中央揃えで、終点に配置されます。stencil-align-dir-y あるいは stencil-offset のどちらかを設定すると、記号が上下します:

\override TextSpanner.bound-details.left.stencil-align-dir-y = #-2
\override TextSpanner.bound-details.right.stencil-align-dir-y = #UP

\override TextSpanner.bound-details.left.text = "ggg"
\override TextSpanner.bound-details.right.text = "hhh"

\relative { c'4^\startTextSpan c c c \stopTextSpan }

[image of music]

予期される結果とは逆に、負の値はテキストを 上げる ということに注意してください。なぜなら、-1 あるいは DOWN はテキストの 下端 をスパナ ラインに揃え、 1 あるいは UP はテキストの 上端 をスパナ ラインに揃えるからです。

arrow

このサブ プロパティに #t をセットするとラインの終点に矢印が描かれます。

padding

このサブ プロパティはラインの終点と実際の終点の間のスペースを制御します。パディングがなければ、グリッサンドは両端の符頭の中心から描かれます。

音楽関数 \endSpanners は直後の音符から始まるスパナをすぐに終了させます。ちょうど 1 音符分でスパナを終了させますが、to-barline が真で、かつ、次の音符の前に小節線がある場合はその小節線のところでスパナを終了させます。

\relative c'' {
  \endSpanners
  c2 \startTextSpan c2 c2
  \endSpanners
  c2 \< c2 c2
}

[image of music]

\endSpanners を使用している場合、\startTextSpan\endTextSpan で閉じる必要はなく、ヘアピンを \! で閉じる必要もありません。

参照

内部リファレンス: TextSpanner, Glissando, VoiceFollower, TrillSpanner, line-spanner-interface


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