GNU LilyPond 学習マニュアル: 5.3.2 オブジェクトのサイズ

### 5.3.2 オブジェクトのサイズ

以前の例を見直すことから始めてみましょう (音楽表記をネストする を参照してください)。そこでは ossia として新たに一時的な譜を導入する方法が示されています。

>     \new Staff ="main" {
>       \relative {
>         r4 g'8 g c4 c8 d |
>         e4 r8
>         <<
>           { f8 c c }
>           \new Staff \with {
>             alignAboveContext = "main" }
>           { f8 f c }
>         >>
>         r4 |
>       }
>     }

通常、オッシアは音部記号と拍子記号無しで記述され、メインの譜よりもわずかに小さく譜刻されます。今度は、すでに音部記号と拍子記号を削除する方法を知っています – 以下のようにそれぞれのステンシルを `#f` にセットするだけです:

>     \new Staff ="main" {
>       \relative {
>         r4 g'8 g c4 c8 d |
>         e4 r8
>         <<
>           { f8 c c }
>           \new Staff \with {
>             alignAboveContext = "main"
>           }
>           {
>             \omit Staff.Clef
>             \omit Staff.TimeSignature
>             { f8 f c }
>           }
>         >>
>         r4 |
>       }
>     }

ここで、`\with` 節の後にある追加の括弧のペアが、その括弧に囲まれているオーバライドと音楽がオッシア譜に適用されることを保証するために、必要となります。

しかし、`\with` を用いた譜コンテキストの変更と `\override` を用いた音部記号と拍子記号のステンシルの変更 (あるいはこのケースでは `\omit` を用いています) との違いは何なのでしょうか？主な違いは、`\with` 節の中で行われた変更はそのコンテキストが作成されるときに行われ、そのコンテキストでは デフォルト 値として残ります。一方、音楽の中に埋め込まれた `\set` コマンドや `\override` コマンドは動的です – それらは音楽のある特定のポイントに同期して変更を行います。変更が `\unset` や `\revert` を使ってセットを解除されたり元に戻された場合、デフォルト値 – これは `\with` 節でセットされていた場合はその値、そうでない場合は通常のデフォルト値 – に戻ります。

いくつかのコンテキスト プロパティは `\with` 節でのみ変更可能です。これらは、コンテキストが作成された後では、変更されることのないプロパティです。`alignAboveContext` とそのパートナー `alignBelowContext` がそのようなプロパティです – いったん譜が作成されると、譜のアラインメントは決定され、それを後で変更しようとすることには意味がありません。

レイアウト オブジェクトのデフォルト値は `\with` 節でセットすることもできます。通常の `\override` コマンドをコンテキスト名を省いて使用するだけです。コンテキスト名を省略するのは、そのコンテキストは明らかに `\with` 節が変更しようとしているコンテキストだからです。実際、`\with` 節の中でコンテキストを指定するとエラーが発生します。

それでは上記の例を以下のように書き換えます:

>     \new Staff ="main" {
>       \relative {
>         r4 g'8 g c4 c8 d |
>         e4 r8
>         <<
>           { f8 c c }
>           \new Staff \with {
>             alignAboveContext = "main"
>             % この譜には音部記号を譜刻しません
>             \override Clef.stencil = ##f
>             % この譜には拍子記号を譜刻しません
>             \override TimeSignature.stencil = ##f
>           }
>           { f8 f c }
>         >>
>         r4 |
>       }
>     }

`transparent` プロパティを設定したり `stencil` を消すために短縮形 `\hide` と `\omit` を使うことができ、結果として以下のようになります:

>     \new Staff ="main" {
>       \relative {
>         r4 g'8 g c4 c8 d |
>         e4 r8
>         <<
>           { f8 c c }
>           \new Staff \with {
>             alignAboveContext = "main"
>             % この譜には音部記号を譜刻しません
>             \omit Clef
>             % この譜には拍子記号を譜刻しません
>             \omit TimeSignature
>           }
>           { f8 f c }
>         >>
>         r4 |
>       }
>     }

最後に、レイアウト オブジェクトのサイズを変更してみます。

いくつかのレイアウト オブジェクトはある書体から選択された図柄として作成されます。これには符頭、臨時記号、マークアップ、音部記号、拍子記号、強弱記号、歌詞が含まれます。それらのサイズは、これから見ていくように、`font-size` プロパティを変更することによって変更されます。スラーやタイのような他のレイアウト オブジェクト – 一般には、スパナ オブジェクト (spanner objects) – は個々に描かれるため、`font-size` プロパティとは関係がありません。一般に、それらのオブジェクトはそれらを取り付けられるオブジェクトからサイズを決定する (訳者: 例えば、スラーはそのスラーが付着する音符からそのスラーのサイズを決定する) ので、通常はサイズを手動で変更する必要はありません。さらに、符幹や小節線の長さ、連桁や他の線の太さ、譜線の間隔などといった他のプロパティはすべて特別な方法で変更する必要があります。

オッシアの例に戻って、まず `font-size` を変更してみましょう。これを行うには 2 通りの方法があります。以下のようなコマンドで `NoteHead` のような各オブジェクト タイプのフォント サイズを変更する:

>     \override NoteHead.font-size = #-2

あるいは、`\set` を使って特別なプロパティ `fontSize` を設定するか、それを `\with` 節に含める (ただし、`\set` は含めません) ことによってすべてのフォントのサイズを変更します:

>     \set fontSize = #-2

これらの命令文は両方ともフォント サイズを前の値から 2 段階減らします。各段階でサイズはおよそ 12% 増減します。

それではオッシアの例でフォント サイズを変更してみましょう:

>     \new Staff ="main" {
>       \relative {
>         r4 g'8 g c4 c8 d |
>         e4 r8
>         <<
>           { f8 c c }
>           \new Staff \with {
>             alignAboveContext = "main"
>             \omit Clef
>             \omit TimeSignature
>             % すべてのフォント サイズを約 24% 減らします
>             fontSize = #-2
>           }
>           { f8 f c }
>         >>
>         r4 |
>       }
>     }

これでもまだ完璧ではありません。符頭とフラグは小さくなりましたが、符幹はそれに対して長すぎ、譜線は離れすぎています。これらをフォント サイズの減少に比例してスケール ダウンさせる必要があります。次のサブ セクションでそれを行う方法について議論します。

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