Hi all,

recently (http://lists.gnu.org/archive/html/lilypond-user/2018-01/msg00576.html) I asked about how to use the vertical spacing variables to force the top system to an absolute position, which I could achieve with the basic-distance and minimal-distance of top-system-spacing and its stretchability set to 0.

However, this setting proves to have serious side-effects for vertical spacing in general as it seems to encourage LilyPond to squeeze much more music on a page. I will have a few questions related to this challenge, but I'll start with the most pressing (sorry for the pun) one with this email.

Attached you'll find a score with some quartet music in it. You can compile it with the vertical margins set through top-margin and bottom-margin or through the paper spacing variables.

With the paper variables (which is also the saved state in the attachment) LilyPond squeezes three systems on the page, severely compressing the music, while with the regular top-margin/bottom-margin settings only two systems are put on the page.
(Behaviour is basically the same in 2.18 and 2.19.80.)

My suspicion is that when forcing *some* stretchability values to zero the other flexible variables wreak havoc.

Is there a way to force these absolute top and bottom values and still have acceptable (or even beautiful) overall vertical spacing?

For your reference: I need this because I want to strictly align the top and bottom system of a score to the type area of the surrounding text document (this is also where the strange values are from, they are calculated from the LaTeX document).

Any suggestions?

Thanks
Urs

%%File header
\version "2.18.2"

\paper{
    #(set-paper-size "a5")
        print-page-number = ##f
        print-first-page-number = ##t
        first-page-number = 8
        inner-margin = 35.091735839844\pt
        left-margin = 35.091735839844\pt
%        top-margin = 27\pt
%        bottom-margin = 52\pt
% {
        top-margin = 0\pt
        bottom-margin = 0\pt
        top-system-spacing =
        #'((basic-distance . 11.958465576172)
           (minimum-distance . 11.958465576172)
           (padding . 0)
           (stretchability . 0))
        top-markup-spacing =
        #'((basic-distance . 11.958465576172)
           (minimum-distance . 11.958465576172)
           (padding . 0)
           (stretchability . 0))
        last-bottom-spacing =
        #'((basic-distance . 19.243121337891)
           (minimum-distance . 19.243121337891)
           (padding . 0)
           (stretchability . 0))
%}
    two-sided = ##t
    line-width = 315.82562255859\pt

}

\header {
%  title=Beethoven
  tagline = ##f
  copyright = ##f
}

global = {
  \key f \major
  \numericTimeSignature
  \time 3/4
  \tempo "Allegro con brio"
}

scoreAViolinI = \relative f' {
  \global
  f4 \p ~ f8 ( g16 f ) e8-. f-. |
  c4 r r |
  f4  ~ f8 ( g16 f ) e8-. f-. |
  d4 r r |

  f'4 \< ~ f8 ( g16 f ) e8-. f-. |
  g2 \> ( bes,4) |
  a2 \! ( d8. bes16 ) |
  a2( g4 ) |

  f4 \f ~ f8 ( g16 f ) e8-. f-. |
  c4 r r |
  f4  ~ f8 ( g16 f ) e8-. f-. |
  d4 r r |

  f'4 \p ~ f8 ( g16 f ) e8-. f-. |
  a2 ( \< g4 ) \> |
  g4 \! ~ g8 ( a16 g ) fis8 -. g -. |
  bes2 ( a4 ) |
  a4 \! ~ a8 ( bes16 a ) g8 -. a -. |
  c4. ( bes8 a g ) |


}

scoreAViolinII = \relative f' {
  \global
  % Music follows here.
  f4 \p ~ f8 ( g16 f ) e8-. f-.
  c4 r r |
  f4 ~ f8 ( g16 f ) e8-. f-. |
  d4 r r |
  bes'2. ~ \< |
  bes2 \> ( g4 ) |
  f2 \! ( bes8. g16 ) |
  f2 ( e4 ) |

  f4 \f ~ f8 ( g16 f ) e8-. f-.
  c4 r r |
  f4 ~ f8 ( g16 f ) e8-. f-. |
  d4 r r |
  R2. |
  e'2.\p % espressivo missing!|
  R2. |
  c2. |
  R2. |
  es4. ( d8 c bes ) |


}

scoreAViola = \relative f {
  \global
  f4 \p ~ f8 ( g16 f ) e8-. f-.
  c4 r r |
  f4 ~ f8 ( g16 f ) e8-. f-. |
  d4 r r |
  d'2. \< ( |
  c2. \> ) ~  |
  c4 \! ( d f, ) |
  c'8 _( b c b c4 )

  f,4 \f ~ f8 ( g16 f ) e8-. f-.
  c4 r r |
  f4 ~ f8 ( g16 f ) e8-. f-. |
  d4 r r |
  R2.
  bes''2. \p |
  R2. |
  es2. |
  R2. |
  fis,4. ( g8 a bes ) |

}

scoreACello = \relative f {
  \global
  f4 \p ~ f8 ( g16 f ) e8-. f-.
  c4 r r |
  f4 ~ f8 ( g16 f ) e8-. f-. |
  d4 r r
  d2. \< ( |
  e2. \> ) ( |
  f4 ) \! ( d bes ) |
  c2.

  f4 \f ~ f8 ( g16 f ) e8-. f-.
  c4 r r |
  f4 ~ f8 ( g16 f ) e8-. f-. |
  d4 r r |
  R2.
  cis'2. \p |
  R2.
  \break
  fis2. |
  \once \override MultiMeasureRest.Y-extent = #'(-5 . 1)
  R2.
  bes,4. bes8 bes bes  |

}

scoreAViolinIPart = \new Staff \with {
  instrumentName = "Vl. I"
} \scoreAViolinI

scoreAViolinIIPart = \new Staff \with {
  instrumentName = "Vl. II"
} \scoreAViolinII

scoreAViolaPart = \new Staff \with {
  instrumentName = "Vla."
} { \clef alto \scoreAViola }

scoreACelloPart = \new Staff \with {
  instrumentName = "Vc."
} { \clef bass \scoreACello }

\score {
  \new StaffGroup <<
    \scoreAViolinIPart
    \scoreAViolinIIPart
    \scoreAViolaPart
    \scoreACelloPart
  >>
  \layout { }
}
_______________________________________________
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user

Reply via email to