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

[image of music]

通常、オッシアは音部記号と拍子記号無しで記述され、メインの譜よりもわずかに小さく譜刻されます。今度は、すでに音部記号と拍子記号を削除する方法を知っています – 以下のようにそれぞれのステンシルを #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 |
  }
}

[image of music]

ここで、\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 |
  }
}

[image of music]

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

[image of music]

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

いくつかのレイアウト オブジェクトはある書体から選択された図柄として作成されます。これには符頭、臨時記号、マークアップ、音部記号、拍子記号、強弱記号、歌詞が含まれます。それらのサイズは、これから見ていくように、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 |
  }
}

[image of music]

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


GNU LilyPond 学習マニュアル v2.25.22 (development-branch).