[Top][All Lists]

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

Re: Controlling vertical spacing exactly - mini HOWTO

From: Joe Neeman
Subject: Re: Controlling vertical spacing exactly - mini HOWTO
Date: Wed, 31 Jan 2007 10:36:44 +0200

Hi Graham & Max (and everyone),

I've been reading through chapter 11 on vertical spacing and getting
some vertical spacing examples ready for the manual.

And on reflection I think I've now figured out why it's been tricky
for me to get a good conceptual handle on vertical spacing. So I'd
like to bounce two ideas off of you guys and see if the way that I'm
thinking about the problem makes sense.

1. First, it seems that there are two *different* models for
controlling vertical spacing, which we might term "permissive" and
"strict", respectively. The first model corresponds roughly to chapers
11.3.1 and 11.3.3, and concerns overrides to VerticalAxisGroup and
settings in the paper block like

Yes, I think this is a good way of explaining it.

And an interesting
characteristic of this way of tweaking vertical spacing is that -- I
think -- you can *not* cause staves or systems to *overlap*. And this
relates to the primary disadvantage of using VerticalAxisGroup
overrides (and paper and margin adjustments) to control vertical
spacing: it can sometimes seem frustratingly difficult to draw staves
or systems close enough together.[1]

In the 2.11 branch, systems will interleave with one another so you
will get tighter vertical spacing. However, you cannot make them
overlap in the sense that things will print on top of each other. Note
that overriding Y-extent (as suggested by someone further down in the
thread) will no longer work.

Second major concept running through the vertical spacing stuff is the
PianoStaff / nonPianoStaff dichotomy.

There's another thread active right now on the topic of whether
PianoStaff really needs to be special with regards to vertical spacing
at all. But for now PianoStaff is special with regards to vertical
spacing. This complicates the vertical spacing docs simply because
PianoStaff overrides introduce a new set of properties, viz 11.3.2 and

    \override VerticalAlignment #'forced-distance = #7

This will be removed in 2.11

   #'((fixed-alignment-extra-space . 15))

as will this. In addition (I think it was mentioned somewhere in this
thread), two Staves inside a PianoStaff will be treated as _two_
staves for the purposes of line-break-system-details instead of one as
they are currently.

If we do like this way of thinking about vertical spacing then I'll
probably reorganize chapter 11 into three parts (permissive, strict,
two-pass); the section on permissive vertical spacing will cover
nonPianoStaff syntax first and then PianoStaff staff syntax second, as
will the section on strict vertical spacing.

Two-pass spacing will hopefully be going away soon, too. We can do
these things in one-pass now. I can't tell you exactly when it will be
done, but the main tweaking property (a permissive property) will be
Score.VerticalAlignment #'max-stretch. You can set it to zero if you
want a system to be tightly spaced or to a large number if you want
the system to be spaced so that it fills the page. Note that the
stretching is done after page-breaking, so it won't make you use up
any extra pages.

reply via email to

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