グラフィカル オブジェクトのサイズ

まず最初に、グラフィカル オブジェクトのサイズがどのように決定されるかを学ばなくてはなりません。すべてのグラフィカル オブジェクトの内部では参照ポイントが定義され、それはそれらの親オブジェクトとの相対位置を決定するために使用されます。このポイントは親オブジェクトから垂直方向に X-offset、垂直方向に Y-offset 離れた位置になります。オブジェクトの水平方向の広がりは数値のペア X-extent で与えられ、そのペアはオブジェクトの左端と右端の参照ポイントとの相対関係について述べています。垂直方向の広がりも同様に数値のペア Y-extent によって与えられます。これらは grob-interface をサポートするすべてのグラフィカル オブジェクトが持つプロパティです。

デフォルトでは、譜外部オブジェクトには 0 の幅が与えられているため、水平方向で重なる可能性があります。これは extra-spacing-width'(+inf.0 . -inf.0) をセットすることによって、左端の広がりをプラス無限大に、右端の広がりをマイナス無限大にするというトリックによって達成されています。譜外部オブジェクトが水平方向で重ならないことを保証するには、extra-spacing-width の値をオーバライドし、余分なスペースを少しだけ作る必要があります。単位は 2 つの譜線の間隔なので、左端を 0.5 単位左に、右端を 0.5 単位右に動かすことで実現できます:

\override DynamicText.extra-spacing-width = #'(-0.5 . 0.5)

これが前の例で機能するかどうかを見てみましょう:

\dynamicUp
% Extend width by 1 staff space
\override DynamicText.extra-spacing-width = #'(-0.5 . 0.5)
\relative { a'4\f b\mf a\mp b\p }

[image of music]

これで前よりも良くなりました。しかし、強弱記号が音符に合わせて上下するよりも、同じベースラインで揃っている方が望ましいでしょう。それを行うためのプロパティは staff-padding であり、衝突に関するセクションでカバーされています (オブジェクトの衝突 を参照してください)。

GNU LilyPond 学習マニュアル v2.25.15 (開発版).