]> git.donarmstrong.com Git - lilypond.git/blobdiff - Documentation/user/page.itely
(Two-pass vertical spacing): add documentation for two-pass spacing
[lilypond.git] / Documentation / user / page.itely
index d89aad6a7441c9c20f56186f6e5516fac4a1c729..ceaee2adef2bc9e3b9a2ece1644322632dedbe2d 100644 (file)
@@ -112,63 +112,72 @@ The default layout responds to the following settings in the
 The value of the page number of the first page.  Default is@tie{}1.
 
 @funindex printfirst-page-number
-@item printfirst-page-number
+@item print-first-page-number
 If set to true, will print the page number in the first page.  Default is
 false.
 
 @funindex print-page-number
 @item print-page-number
-If set to true, page numbers will be printed.
+If set to false, page numbers will not be printed. Default is true.
 
 @funindex paper-width
 @item paper-width
-The width of the page.
+The width of the page. The default is taken from the current paper size,
+see @ref{Paper size}. 
 
 @funindex paper-height
 @item paper-height
-The height of the page.
+The height of the page. The default is taken from the current paper size,
+see @ref{Paper size}. 
 
 @funindex top-margin
 @item top-margin
-Margin between header and top of the page.
+Margin between header and top of the page. Default is@tie{}5mm.
 
 @funindex bottom-margin
 @item bottom-margin
-Margin between footer and bottom of the page.
+Margin between footer and bottom of the page. Default is@tie{}6mm.
 
 @funindex left-margin
 @item left-margin
-Margin between the left side of the page and the beginning of the music.
+Margin between the left side of the page and the beginning of the
+music. Unset by default, which means that the margins is determined
+based on the @code{paper-width} and @code{line-width} to center the
+score on the paper. 
 
 @funindex line-width
 @item line-width
-The length of the systems.
+The length of the systems. Default is @code{paper-width} minus @tie{}20mm.
 
 @funindex head-separation
 @item head-separation
-Distance between the top-most music system and the page header.
+Distance between the top-most music system and the page header. Default
+is@tie{}4mm. 
 
 @funindex foot-separation
 @item foot-separation
-Distance between the bottom-most music system and the page footer.
+Distance between the bottom-most music system and the page
+footer. Default is@tie{}4mm.
 
 @funindex page-top-space
+@item page-top-space
 Distance from the top of the printable area to the center of the first
 staff. This only works for staves which are vertically small. Big staves
 are set with the top of their bounding box aligned to the top of the
-printable area.
+printable area. Default is@tie{}12mm.
 
 @funindex ragged-bottom
 @item ragged-bottom
 If set to true, systems will not be spread vertically across the page.  This
-does not affect the last page.
+does not affect the last page. Default is false.
 
 This should be set to true for pieces that have only two or three
 systems per page, for example orchestral scores.
 
 @funindex ragged-last-bottom
 @item ragged-last-bottom
-If set to false, systems will be spread vertically to fill the last page.
+If set to false, systems will be spread vertically to fill the last
+page. Default is true.
 
 Pieces that amply fill two pages or more should have this set to
 true.
@@ -176,13 +185,13 @@ true.
 @funindex system-count
 @item system-count
 This variable, if set, specifies into how many lines a score should be
-broken.
+broken. Unset by default.
 
 @funindex between-system-space
 @item between-system-space
 This dimensions determines the distance between systems.  It is the
 ideal distance between the center of the bottom staff of one system
-and the center of the top staff of the next system.
+and the center of the top staff of the next system. Default is@tie{}20mm.
 
 Increasing this will provide a more even appearance of the page at the
 cost of using more vertical space.
@@ -191,7 +200,7 @@ cost of using more vertical space.
 @item between-system-padding
 This dimension is the minimum amount of white space that will always
 be present between the bottom-most symbol of one system, and the
-top-most of the next system.
+top-most of the next system. Default is@tie{}4mm.
 
 Increasing this will put systems whose bounding boxes almost touch
 farther apart.
@@ -202,21 +211,21 @@ farther apart.
 All systems (including titles and system separators) are shifted by
 this amount to the right. Page markup, such as headers and footers are
 not affected by this. The purpose of this variable is to make space
-for instrument names at the left.
+for instrument names at the left. Default is@tie{}0.
 
 @funindex after-title-space
 @item after-title-space
-Amount of space between the title and the first system.
+Amount of space between the title and the first system. Default is@tie{}5mm.
 
-@funindex after-title-space
+@funindex before-title-space
 @item before-title-space
 Amount of space between the last system of the previous piece and the
-title of the next.
+title of the next. Default is@tie{}10mm.
 
 @funindex between-title-space
 @item between-title-space
 Amount of space between consecutive titles (e.g., the title of the
-book and the title of a piece).
+book and the title of a piece). Default is@tie{}2mm.
 
 @funindex printallheaders
 @item printallheaders
@@ -226,7 +235,7 @@ Setting this to #t will print all headers for each \score in a
 @funindex systemSeparatorMarkup
 @item systemSeparatorMarkup
 This contains a markup object, which will be inserted between
-systems.  This is often used for orchestral scores.
+systems.  This is often used for orchestral scores. Unset by default.
 
 The markup command @code{\slashSeparator} is provided as a sensible
 default,  for example
@@ -260,6 +269,13 @@ The relative importance of page (vertical) spacing and line (horizontal)
 spacing. High values will make page spacing more important. Default
 value is 1.
 
+@funindex auto-first-page-number
+@item auto-first-page-number
+The page breaking algorithm is affected by the first page number being
+odd or even.  If this variable is set to #t, the page breaking algorithm
+will decide whether to start with an odd or even number.  This will 
+result in the first page number remaining as is or being increased by one.
+
 @end table
 @end quotation
 
@@ -452,6 +468,7 @@ staves inside a system.
 * Vertical spacing of piano staves::  
 * Vertical spacing between systems::  
 * Controlling spacing of individual systems::  
+* Two-pass vertical spacing::
 @end menu
 
 
@@ -602,6 +619,56 @@ The distance for @code{fixed-alignment-extra-space} may also be
 negative.
 
 
+@node Two-pass vertical spacing
+@subsection 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:
+
+@enumerate
+@item In the first pass, the amount of vertical space used to increase
+the height of each system is computed and dumped to a file.
+@item In the second pass, the systems are stretched according to the
+data in the page layout file.
+@end enumerate
+
+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.
+
+@quotation
+@verbatim
+%% 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") }
+}
+@end verbatim
+@end quotation
+
+For the first pass, the @code{dump-tweaks} option should be set to
+generate the page layout file.
+
+@example
+lilypond -b null -d dump-tweaks <file>.ly
+lilypond <file>.ly
+@end example
 
 @node Horizontal spacing
 @section Horizontal Spacing
@@ -610,10 +677,10 @@ negative.
 @cindex spacing, horizontal
 
 @menu
-* Horizontal spacing overview::  
-* New spacing area::            
-* Changing horizontal spacing::  
-* Line length::                 
+* Horizontal spacing overview::
+* New spacing area::
+* Changing horizontal spacing::
+* Line length::
 @end menu