lilypond-user
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Alignment issues of Time signature above the staff


From: Kevin Barry
Subject: Re: Alignment issues of Time signature above the staff
Date: Fri, 3 Apr 2020 18:34:52 +0100

Hi Chen

I am not sure that this problem really has an elegant solution. Time
signatures take up space, and - because note columns have to line up
in all staves - that space that time signatures take up is mirrored in
staves that don't print them - because the following note columns have
to line up. That is why the full measure rests get moved to the right.
My original idea to zero the X-extent got rid of that, but allowed the
time signature to collide with other elements which was worse. So
either it takes up space - causing notecolumns to move - or it doesn't
and it clashes with things.

Below is some code where I was able to zero the X-extent and avoid
clashes (by printing a transparent StaffSymbol that ensures the time
signatures never share space with anything). It's a bit of a hack, and
perhaps someone else on the list can come up with a better solution.

Kevin

\version "2.19.0"

\layout {
  \context {
    \type "Engraver_group"
    \consists "Time_signature_engraver"
    \consists "Axis_group_engraver"
    \consists "Staff_symbol_engraver"
    \name "TimeSig"
    \alias "Staff"
    % original settings from "http://lsr.di.unimi.it/LSR/Snippet?id=272";
    %{
      \override TimeSignature.font-size = #3
      \override TimeSignature.break-align-symbol = ##f
      \override TimeSignature.X-offset =
        #ly:self-alignment-interface::x-aligned-on-self
      \override TimeSignature.self-alignment-X = #CENTER
      \override TimeSignature.after-line-breaking =
      #shift-right-at-line-begin
    %}
    % settings after adjustments
    {
      \override TimeSignature.font-size = #4
      \override TimeSignature.X-offset =
      #ly:self-alignment-interface::x-aligned-on-self
      \override TimeSignature.self-alignment-X = #LEFT
      \override TimeSignature.X-extent = #'(0 . 0)
    }
  }
  \context {
    \Score
    \accepts TimeSig
  }
  \context {
    \Staff
    \remove "Time_signature_engraver"
  }
  \context {
    \Score
    \remove "System_start_delimiter_engraver"
  }
}

timeSignatures = { \numericTimeSignature \time 4/4 s1 \time 3/8 s4.
\time 3/4 s2. \break \time 4/4 s1 }

\score {
  <<
    \new TimeSig \with {
      \override VerticalAxisGroup.default-staff-staff-spacing.padding = #2
      \override StaffSymbol.transparent = ##t
    } {
      \timeSignatures
    }
    \new StaffGroup \with {
      \consists "System_start_delimiter_engraver"
      systemStartDelimiter = #'SystemStartBar
    } <<
      \new Staff \relative c' { c4 ^\markup \column {"a" "b" "c"} ( d4
e4 f4 ) a''4
                                ^\markup \column {"a" "b" "c"} ( g8 ) R2. c1 }
      \new Staff \relative c' {
        R1
        R4.
        \clef bass
        a2.
        c1 }
      \new Staff \relative c' { R1 R4. R2. c1 }
    >>
  >>
}



reply via email to

[Prev in Thread] Current Thread [Next in Thread]