Here is an update to the documentation on vertical spacing. I've removed the 
section on two-pass spacing and replaced it with a couple of paragraphs on 
how to tweak the one-pass spacing (it's rather less complicated than the 
2-pass stuff, so I think it doesn't need it own section).
diff --git a/Documentation/user/spacing.itely b/Documentation/user/spacing.itely
index 8145251..0183e5a 100644
--- a/Documentation/user/spacing.itely
+++ b/Documentation/user/spacing.itely
@@ -211,6 +211,13 @@ top-most of the next system. Default [EMAIL PROTECTED]
 Increasing this will put systems whose bounding boxes almost touch
 farther apart.
 
[EMAIL PROTECTED] page-breaking-between-system-padding
[EMAIL PROTECTED] between-system-padding
+This variable, if set, tricks the page breaker into thinking that
[EMAIL PROTECTED] is set to something different than it
+really is. For example, if this variable is set to something substantially
+larger than @code{between-system-padding}, then the page-breaker will put
+fewer systems on each page.
 
 @funindex horizontal-shift
 @item horizontal-shift
@@ -559,12 +566,6 @@ This makes the following 28 measures (assuming 4/4 time) be broken every
 
 Internals: @internalsref{LineBreakEvent}.
 
-A linebreaking configuration can now be saved as a @code{.ly} file
-automatically.  This allows vertical alignments to be stretched to
-fit pages in a second formatting run.  This is fairly new and
-complicated.  More details are available in
[EMAIL PROTECTED]
-
 
 @refbugs
 
@@ -841,7 +842,6 @@ staves inside a system.
 * Vertical spacing inside a system::  
 * Vertical spacing between systems::  
 * Explicit staff and system positioning::  
-* Two-pass vertical spacing::   
 * Vertical collision avoidance::  
 @end menu
 
@@ -881,6 +881,61 @@ first number is generally negative.  The numbers need not match;
 for example, the staff can be made larger at the bottom by setting
 it to @code{(-6 . 4)}.
 
+After page breaks are determined, the vertical spacing within each
+system is reevaluated in order to fill the page more evenly; if a page
+has space left over, systems are stretched in order to fill that space.
+The amount of stretching can be configured though the @code{max-stretch}
+property of the @internalsref{VerticalAlignment} grob. To disable this
+stretching entirely, set @code{max-stretch} to zero.
+
+In some situations, you may want to stretch most of a system while
+leaving some parts fixed. For example, if a piano part occurs in the
+middle of an orchestral score, you may want to leave the piano staves
+close to each other while stretching the rest of the score. The
[EMAIL PROTECTED] property of
[EMAIL PROTECTED] can be used to achieve this. When set
+to @code{##t}, this property keeps its staff (or line of lyrics) from
+moving relative to the one directly above it. In the example above,
+you would override @code{keep-fixed-while-stretching} to @code{##t} in
+the second piano staff:
+
[EMAIL PROTECTED]
+#(set-default-paper-size "a6")
+#(set-global-staff-size 14.0)
+
+\book {
+\paper {
+  ragged-last-bottom = ##f
+}
+
+\score {
+\new GrandStaff
+<<
+  \new StaffGroup
+  <<
+    \new Staff {c' d' e' f'}
+    \new Staff {c' d' e' f'}
+    \new Staff {c' d' e' f'}
+  >>
+
+  \new PianoStaff
+  <<
+    \new Staff {c' d' e' f'}
+    \new Staff \with {
+      \override VerticalAxisGroup #'keep-fixed-while-stretching = ##t
+    }
+    {c' d' e' f'}
+  >>
+
+  \new StaffGroup
+  <<
+    \new Staff {c' d' e' f'}
+    \new Staff {c' d' e' f'}
+  >>
+>>
+}
+}
[EMAIL PROTECTED] lilypond
 
 @seealso
 
@@ -1112,62 +1167,6 @@ to print staves or systems on top of one another.  Reasonable values
 passed to these different settings will avoid this.
 @end itemize
 
-
[EMAIL PROTECTED] Two-pass vertical spacing
[EMAIL PROTECTED] Two-pass vertical spacing
-
-In order to automatically stretch systems so that they should fill the
-space left on a page, a two-pass technique can be used:
-
[EMAIL PROTECTED]
[EMAIL PROTECTED] In the first pass, the amount of vertical space used to increase
-the height of each system is computed and dumped to a file.
[EMAIL PROTECTED] In the second pass, spacing inside the systems are
-stretched according to the data in the page layout file.
[EMAIL PROTECTED] enumerate
-
-The @code{ragged-bottom} property adds space between systems, while
-the two-pass technique adds space between staves inside a system.
-
-To allow this behaviour, a @code{tweak-key} variable has to be set in
-each score @code{\layout} block, and the tweaks included in each score
-music, using the @code{\scoreTweak} music function.
-
[EMAIL PROTECTED]
[EMAIL PROTECTED]
-%% include the generated page layout file:
-\includePageLayoutFile
-
-\score {
-  \new StaffGroup <<
-    \new Staff <<
-      %% Include this score tweaks:
-      \scoreTweak "scoreA"
-      { \clef french c''1 \break c''1 } 
-    >>
-    \new Staff { \clef soprano g'1 g'1 }
-    \new Staff { \clef mezzosoprano e'1 e'1 }
-    \new Staff { \clef alto g1 g1 }
-    \new Staff { \clef bass c1 c1 }
-  >>
-  \header {
-    piece = "Score with tweaks"
-  }
-  %% Define how to name the tweaks for this score:
-  \layout { #(define tweak-key "scoreA") }
-}
[EMAIL PROTECTED] verbatim
[EMAIL PROTECTED] quotation
-
-For the first pass, the @code{dump-tweaks} option should be set to
-generate the page layout file.
-
[EMAIL PROTECTED]
-lilypond -dbackend=null -d dump-tweaks <file>.ly
-lilypond <file>.ly
[EMAIL PROTECTED] example
-
-
 @node Vertical collision avoidance
 @subsection Vertical collision avoidance
 
_______________________________________________
lilypond-devel mailing list
lilypond-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/lilypond-devel

Reply via email to