0

大譜表の上段譜表の上にオシア譜表を追加しようとしています。このメーリングリストの投稿から作業して、私が望むことをほぼ実行する最小限の例を作成しました。問題は、オシアがない譜表であっても、スコア全体にオシア譜表用の空白スペースが含まれていることです。

これがその例です(本当に、メロディアスな構成です):

\version "2.18.2"

ossia = \new Staff = "ossia" \with {
  \remove "Time_signature_engraver"
  fontSize = #-2
  \override StaffSymbol #'staff-space = #(magstep -2)
  \override Clef #'transparent = ##t
  \override KeySignature #'stencil = ##f
} {
  \key b \major
  \override Staff.BarLine #'allow-span-bar = ##f
  \stopStaff
  s2.*100  % ???
}

treble = \new Staff = "treble" {
  \clef treble
  \key b \major
  \relative c' {
    \repeat unfold 10 { b8 cis dis fis dis cis }
    b4 dis fis |
    b4
    <<
      { dis, fis }
      \context Staff = "ossia" {
        \startStaff \tuplet 3/2 { dis8 b dis } fis4 \stopStaff
      }
    >> |
    b2. |
  }
}

bass = \new Staff = "bass" {
  \clef bass
  \key b \major
  \relative c {
    \repeat unfold 12 { fis,4 fis4 fis4 | }
    b2.
  }
}

pianoStaff = \new PianoStaff {
  \compressFullBarRests
  \time 3/4
  <<
    \ossia
    \treble
    \bass
  >>
}

\paper {
  #(set-paper-size "letter")
  indent = 25\mm
  short-indent = 5\mm
}

\score {
  << \pianoStaff >>
  % This changes nothing:
  % \layout { \context { \Staff \RemoveEmptyStaves } }
}

出力は次のとおりです (PNG 画像、85 KB)。

注意すべきいくつかの興味深い点:

  • s2.*10013 行目 ( マーク)を削除する% ???か、値を 12 より小さい値に変更すると、ossia スタッフは完全に正しくレンダリングされません。これはヘ音記号の下に表示され、音部記号と拍子記号を含み、C のキーにあります (つまり、レンダリングされた音符には臨時記号が含まれます)。基本的には、スタッフの存在に気付かず、ossia新しいスタッフを構築したようです。これは、ossia 譜表が使用される各ポイントを超えて拡張されることになっているためではないかと考えています。これはよくわかりませんが、有効になっている限り本質的な効果はないように見えるので、我慢\compressFullBarRestsできます。

  • 異なるシステムで一貫した寸法を強制するために、MWE に用紙サイズを含めました。

  • スコアで指摘したように、追加\RemoveEmptyStavesしても空の譜表は削除されません。

私の質問は、以前のすべてのシステムで空のスペースを追加せずに、この例のようにレンダリングされたオシア譜表(ト音記号の上に小さく)を維持するにはどうすればよいですか?

4

1 に答える 1

1

譜表が PianoStaff 内にあるため、\RemoveEmptyStaves は機能しないため\remove "Keep_alive_together_engraver"、\layout ブロックに追加する必要があります。わずかに変更されたドキュメント スニペットの最小限の例を次に示します。

\version "2.18.2"

\new PianoStaff
<<
  \new Staff = "ossia" \with {
    \remove "Time_signature_engraver"
    \hide Clef
    fontSize = #-3
    \override StaffSymbol.staff-space = #(magstep -3)
    \override StaffSymbol.thickness = #(magstep -3)
  } \relative c'' {
    R1*3
    c4 e8 d c2
  }
  \new Staff \relative c' {
    c4 b c2
    e4 f e2
    g4 a g2 \break
    c4 b c2
    g4 a g2
    e4 d c2
  }
>>

\layout {
  \context {
    \Staff \RemoveEmptyStaves
    \override VerticalAxisGroup.remove-first = ##t
  }
  \context {
    \PianoStaff
    \remove "Keep_alive_together_engraver"
  }
}

あなたの例は非常に大きく、実際の MWE ではありません。s2.*100私には意味がありません。より小さな例を提出することをお勧めします。

于 2017-01-01T11:08:27.930 に答える