]> git.donarmstrong.com Git - lilypond.git/blobdiff - Documentation/user/global.itely
release commit
[lilypond.git] / Documentation / user / global.itely
index d2e30e928ed3a92c616de42e897bd42f16bd6d9e..67d301ba035cee86f5b75e277bb5a846b333bbf8 100644 (file)
@@ -1,4 +1,4 @@
-@c -*- coding: latin-1; mode: texinfo; -*-
+@c -*- coding: utf-8; mode: texinfo; -*-
 @c This file is part of lilypond.tely
 
 @c A menu is needed before every deeper *section nesting of @node's; run 
@@ -220,8 +220,12 @@ block is at the top of the file, then it will apply to all pages.  If the
 @code{\paper} block is inside a @code{\book}, then the paper size will only
 apply to that book.
 
-The following paper sizes are supported: @code{a6}, @code{a5}, @code{a4},
-@code{a3}, @code{legal}, @code{letter}, @code{tabloid}.
+Support for the following paper sizes are included by default,
+@code{a6}, @code{a5}, @code{a4}, @code{a3}, @code{legal}, @code{letter},
+@code{11x17} (also known as tabloid).
+
+Extra sizes may be added by editing the definition for
+@code{paper-alist} in the initialization file @file{scm/paper.scm}.
 
 @cindex orientation
 @cindex landscape
@@ -253,52 +257,72 @@ The default layout responds to the following settings in the
 
 @quotation
 @table @code
+@cindex @code{firstpagenumber}
 @item firstpagenumber
 The value of the page number of the first page.  Default is@tie{}1.
 
+@cindex @code{printfirstpagenumber}
 @item printfirstpagenumber
 If set to true, will print the page number in the first page.  Default is
 false.
 
+@cindex @code{printpagenumber}
 @item printpagenumber
 If set to false, page numbers will not be printed.
 
+@cindex @code{hsize}
 @item hsize
 The width of the page.
 
+@cindex @code{vsize}
 @item vsize
 The height of the page.
 
+@cindex @code{topmargin}
 @item topmargin
 Margin between header and top of the page.
 
+@cindex @code{bottommargin}
 @item bottommargin
 Margin between footer and bottom of the page.
 
+@cindex @code{leftmargin}
 @item leftmargin
 Margin between the left side of the page and the beginning of the music.
 
+@cindex @code{linewidth}
 @item linewidth
 The length of the systems.
 
+@cindex @code{headsep}
 @item headsep
 Distance between the top-most music system and the page header.
 
+@cindex @code{footsep}
 @item footsep
 Distance between the bottom-most music system and the page footer.
 
+@cindex @code{pagetopspace}
+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.
+
+@cindex @code{raggedbottom}
 @item raggedbottom
 If set to true, systems will not be spread across the page.
 
 This should be set false for pieces that have only two or three
 systems per page, for example orchestral scores.
  
+@cindex @code{raggedlastbottom}
 @item raggedlastbottom
 If set to false, systems will be spread to fill the last page.
 
 Pieces that amply fill two pages or more should have this set to
 true.
 
+@cindex @code{betweensystemspace}
 @item betweensystemspace
 This dimensions determines the distance between systems.  It is the
 ideal distance between the center of the bottom staff of one system
@@ -307,6 +331,7 @@ and the center of the top staff of the next system.
 Increasing this will provide a more even appearance of the page at the
 cost of using more vertical space.
 
+@cindex @code{betweensystempadding}
 @item betweensystempadding
 This dimension is the minimum amount of white space that will always
 be present between the bottom-most symbol of one system, and the
@@ -315,17 +340,34 @@ top-most of the next system.
 Increasing this will put systems whose bounding boxes almost touch
 farther apart.
 
+
+@cindex @code{horizontalshift}
+@item horizontalshift
+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.
+
+@cindex @code{aftertitlespace}
 @item aftertitlespace
 Amount of space between the title and the first system.
 
+@cindex @code{aftertitlespace}
 @item beforetitlespace 
 Amount of space between the last system of the previous piece and the
 title of the next.
 
+@cindex @code{betweentitlespace}
 @item betweentitlespace
 Amount of space between consecutive titles (e.g., the title of the
 book and the title of a piece).
 
+@cindex @code{printallheaders}
+@item printallheaders
+Setting this to #t will print all headers for each \score in a
+\book.  Normally only the piece and opus \headers are printed.
+
+@cindex @code{systemSeparatorMarkup}
 @item systemSeparatorMarkup
 This contains a markup object, which will be inserted between
 systems.  This is often used for orchestral scores.
@@ -469,11 +511,46 @@ will be much more useful than changing @code{minimumVerticalExtent}.
 @}
 @end example
 
+If you simply want to tell LilyPond ``fit as much as possible onto
+these pages, then expand to fill any available space on the pages,''
+then use the following
+
+@example
+\paper @{
+  betweensystempadding = #1
+  raggedbottom=##f
+  raggedlastbottom=##f
+@}
+@end example
+
+
+@c let's wait for a some comments before writing more.
+
+The vertical spacing on a page can also be changed for each system individually.
+Some examples are found in the example file
+@inputfileref{input/regression/,page-spacing.ly}.
+
+When setting @code{annotatespacing} in the @code{\paper} block LilyPond
+will graphically indicate the dimensions of properties that may be set
+for page spacing,
+
+@lilypond[verbatim]
+#(set-default-paper-size "a6")
+\paper { annotatespacing = ##t }
+{ c4 }
+@end lilypond
+
+
 
 @seealso
 
 Internals: Vertical alignment of staves is handled by the
-@internalsref{VerticalAlignment} object.
+@internalsref{VerticalAlignment} object. The context parameters
+specifying  the vertical extent are described in connection with 
+the @internalsref{Axis_group_engraver}.
+
+Example files: @inputfileref{input/regression/,page-spacing.ly}.
+
 
 @refbugs
 
@@ -531,16 +608,15 @@ The difference is demonstrated in the following example,
 
 @code{forced-distance} cannot be changed per system.
 
-
 @node Horizontal spacing
 @subsection Horizontal Spacing
 
-The spacing engine translates differences in durations into
-stretchable distances (``springs'') of differring lengths.  Longer
-durations get more space, shorter durations get less.  The shortest
-durations get a fixed amount of space (which is controlled by
-@code{shortest-duration-space} in the @internalsref{SpacingSpanner} object). 
-The longer the duration, the more space it gets: doubling a
+The spacing engine translates differences in durations into stretchable
+distances (``springs'') of differring lengths.  Longer durations get
+more space, shorter durations get less.  The shortest durations get a
+fixed amount of space (which is controlled by
+@code{shortest-duration-space} in the @internalsref{SpacingSpanner}
+object).  The longer the duration, the more space it gets: doubling a
 duration adds a fixed amount (this amount is controlled by
 @code{spacing-increment}) of space to the note.
 
@@ -639,6 +715,7 @@ following work-around may be used to insert extra space into a score.
 
 No work-around exists for decreasing the amount of space.
 
+
 @node Line length
 @subsection Line length
 
@@ -647,6 +724,7 @@ No work-around exists for decreasing the amount of space.
 
 @cindex @code{indent}
 @cindex @code{linewidth}
+@cindex @code{raggedright}
 
 @c Although linewidth can be set in \layout, it should be set in paper
 @c block, to get page layout right.
@@ -674,6 +752,7 @@ paragraph, the last line simply takes its natural length.
 @c stretch as the previous line.  eTeX uses \lastlinefit to
 @c interpolate between both these solutions.
 
+
 @node Line breaking
 @subsection Line breaking
 
@@ -757,7 +836,7 @@ piece in several movements), use @code{breakbefore} in the header.
 @cindex bibliographic information
 @cindex titles
 @cindex composer
-@cindex Music engraiving by LilyPond
+@cindex Music engraving by LilyPond
 
 A document may contain multiple pieces of music and texts.  Examples
 of these are an etude book, or an orchestral part with multiple
@@ -905,59 +984,111 @@ may use any @ref{Text markup} commands in the header.
     composer =  \markup \center-align { "composer" \small "(1847-1973)" }
     texttranslator = "Text Translator"
     meter = \markup { \teeny "m" \tiny "e" \normalsize "t" \large "e" \huge "r" }
-    arranger = "Arranger"
-    opus = \markup { \fontsize #8.5 "o" \fontsize #2.5 "p" \fontsize #-2.5 "u" \fontsize #-5.3 "s" \fontsize #7.5 "       " }
+    arranger = \markup { \fontsize #8.5 "a" \fontsize #2.5 "r" \fontsize #-2.5 "r" \fontsize #-5.3 "a" \fontsize #7.5 "nger" }
     instrument = \markup \bold \italic "instrument"
     piece = "Piece"
   }
 
   \score {
+    { c'1 }
     \header {
       piece = "piece1"
       opus = "opus1" 
     }
-    { c'1 }
   }
   \markup {
       and now...
   }
   \score {
+    { c'1 }
     \header {
       piece = "piece2"
       opus = "opus2" 
     }
-    { c'1 }
   }
 }
 @end lilypond
 
+As demonstrated before, you can use multiple @code{\header} blocks. 
+When same fields appear in different blocks, the latter is used.  
+Here is a short example.
+
+@example 
+\header @{
+  composer = "Composer"
+@}
+\header @{
+  title = "Title"
+@}
+\score @{
+  \new Staff @{ c'4 @}
+  \header @{
+    title = "New title"  % overwrite previous one
+  @}
+@}
+@end example
+
+If you define the @code{\header} inside the @code{\score} block, then
+normally only the @code{piece} and @code{opus} headers will be printed.
+
+@lilypond[quote,verbatim,linewidth=11.0\cm]
+\score {
+  { c'4 }
+  \header {
+    title = "title"  % not printed
+    piece = "piece"
+    opus = "opus"
+  }
+}
+@end lilypond
+
+@cindex @code{printallheaders}
+@noindent
+You may change this behavior (and print all the headers when defining
+@code{\header} inside @code{\score}) by using
+
+@example
+\paper@{
+  printallheaders=##t
+@}
+@end example
+
+
+@commonprop
+
 A more advanced option is to change the definitions of the following
 variables in the @code{\paper} block.  The init file
 @file{ly/titling-init.ly} lists the default layout.
 
 @table @code
+@cindex @code{bookTitleMarkup}
 @item bookTitleMarkup
   This is the title put over an entire @code{\book} block.  Typically,
   it has the composer and the title of the piece
   
+@cindex @code{scoreTitleMarkup}
 @item scoreTitleMarkup
   This is the title put over a @code{\score} block within a
 @code{\book}.  Typically, it has the name of the movement (@code{piece}
 field).
 
+@cindex @code{oddHeaderMarkup}
 @item oddHeaderMarkup
   This is the page header for odd-numbered pages. 
 
-  @item evenHeaderMarkup
+@cindex @code{evenHeaderMarkup}
+@item evenHeaderMarkup
   This is the page header for even-numbered pages.  If unspecified,
   the odd header is used instead.
 
   By default, headers are defined such that the page number is on the
   outside edge, and the instrument is centered.
 
+@cindex @code{oddFooterMarkup}
 @item oddFooterMarkup
   This is the page footer for odd-numbered pages. 
   
+@cindex @code{evenFotterMarkup}
 @item evenFooterMarkup
   This is the page footer for even-numbered pages.  If unspecified,
   the odd header is used instead.