4.3.2 オブジェクトのサイズ

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

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

[image of music]

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

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

[image of music]

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

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

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

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

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

\new Staff ="main" {
  \relative g' {
    r4 g8 g c4 c8 d |
    e4 r8
    <<
      { f c c }
      \new Staff \with {
        alignAboveContext = #"main"
        % Don't print clefs in this staff
        \override Clef #'stencil = ##f
        % Don't print time signatures in this staff
        \override TimeSignature #'stencil = ##f
      }
        { 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 g' {
    r4 g8 g c4 c8 d |
    e4 r8
    <<
      { f c c }
      \new Staff \with {
        alignAboveContext = #"main"
        \override Clef #'stencil = ##f
        \override TimeSignature #'stencil = ##f
        % Reduce all font sizes by ~24%
        fontSize = #-2
      }
        { f8 f c }
    >>
    r4 |
  }
}

[image of music]

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


他の言語: English, deutsch, español, français, nederlands

LilyPond — 学習マニュアル

inserted by FC2 system