]> git.donarmstrong.com Git - lilypond.git/blobdiff - Documentation/user/global.itely
Yoshinobu Ishizaki's multiple header definition patch. Thanks!
[lilypond.git] / Documentation / user / global.itely
index 6c01f05dc199c6d9204984a2ee9aba59c1243881..f76191eaddc239217637a36d33c5c678805b5e60 100644 (file)
@@ -39,8 +39,10 @@ titles.
 
 @menu
 * Setting global staff size::   
+* Selecting notation font size::  
 * Paper size::                  
-* Page layout::                 
+* Page formatting::             
+* Score layout::                
 * Vertical spacing::            
 * Vertical spacing of piano staves::  
 * Horizontal spacing::          
@@ -137,7 +139,64 @@ staves.  The sizes of individual staves are relative to the global size.
 
 @seealso
 
-This manual: @ref{Selecting font sizes}.
+This manual: @ref{Selecting notation font size}.
+
+
+@node Selecting notation font size
+@subsection Selecting notation font size
+
+The easiest method of setting the font size of any context, is by
+setting the @code{fontSize} property.
+
+@lilypond[quote,fragment,relative=1,verbatim]
+c8
+\set fontSize = #-4
+c f
+\set fontSize = #3
+g
+@end lilypond
+
+@noindent
+It does not change the size of variable symbols, such as beams or
+slurs.
+
+Internally, the @code{fontSize} context property will cause the
+@code{font-size} property to be set in all layout objects.  The value
+of @code{font-size} is a number indicating the size relative to the
+standard size for the current staff height.  Each step up is an
+increase of approximately 12% of the font size.  Six steps is exactly a
+factor two.  The Scheme function @code{magstep} converts a
+@code{font-size} number to a scaling factor.
+
+@lilypond[quote,fragment,relative=1,verbatim]
+c8
+\override NoteHead #'font-size = #-4
+c f
+\override NoteHead #'font-size = #3
+g
+@end lilypond
+
+LilyPond has fonts in different design sizes.  The music fonts for
+smaller sizes are chubbier, while the text fonts are relatively wider.
+Font size changes are achieved by scaling the design size that is
+closest to the desired size.  The standard font size (for
+@code{font-size} equals 0), depends on the standard staff height.  For
+a 20pt staff, a 10pt font is selected.
+
+The @code{font-size} property can only be set on layout objects that
+use fonts. These are the ones supporting the
+@internalsref{font-interface} layout interface.
+
+@refcommands
+
+The following commands set @code{fontSize} for the current voice:
+
+@cindex @code{\tiny}
+@code{\tiny}, 
+@cindex @code{\small}
+@code{\small}, 
+@cindex @code{\normalsize}
+@code{\normalsize}.
 
 
 @node Paper size
@@ -158,8 +217,8 @@ To change the paper size, there are two commands,
 The first command sets the size of all pages.  The second command sets the size
 of the pages that the @code{\paper} block applies to -- if the @code{\paper}
 block is at the top of the file, then it will apply to all pages.  If the
-@code{\paper} block is inside a @code{\score}, then the paper size will only
-apply to that score.
+@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}.
@@ -176,10 +235,10 @@ and wider line widths will be set correspondingly.
 @end example 
 
 
-@node Page layout
-@subsection Page layout
+@node Page formatting
+@subsection Page formatting
 
-@cindex page layout
+@cindex page formatting
 @cindex margins
 @cindex header, page
 @cindex footer, page
@@ -190,7 +249,7 @@ footers to each page.
 The default layout responds to the following settings in the
 @code{\paper} block.
 
-@cindex \paper
+@cindex @code{\paper}
 
 @quotation
 @table @code
@@ -201,6 +260,9 @@ The value of the page number of the first page.  Default is@tie{}1.
 If set to true, will print the page number in the first page.  Default is
 false.
 
+@item printpagenumber
+If set to false, page numbers will not be printed.
+
 @item hsize
 The width of the page.
 
@@ -253,6 +315,14 @@ top-most of the next system.
 Increasing this will put systems whose bounding boxes almost touch
 farther apart.
 
+
+@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.
+
+
 @item aftertitlespace
 Amount of space between the title and the first system.
 
@@ -264,6 +334,10 @@ title of the next.
 Amount of space between consecutive titles (e.g., the title of the
 book and the title of a piece).
 
+@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.
+
 @item systemSeparatorMarkup
 This contains a markup object, which will be inserted between
 systems.  This is often used for orchestral scores.
@@ -336,6 +410,34 @@ The default page header puts the page number and the @code{instrument}
 field from the @code{\header} block on a line.
 
 
+@node Score layout
+@subsection Score layout
+
+@cindex @code{\layout}
+
+While @code{\paper} contains settings that relate to the page formatting
+of the whole document, @code{\layout} contains settings for score-specific
+layout.
+
+@example
+\layout @{
+  indent = 2.0\cm
+  \context @{ \Staff
+    minimumVerticalExtent = #'(-6 . 6
+  @}
+  \context @{ \Voice
+    \override TextScript #'padding = #1.0
+    \override Glissando #'thickness = #3
+  @}
+@}
+@end example
+
+
+@seealso
+
+This manual: @ref{Changing context default settings}
+
+
 @node Vertical spacing
 @subsection Vertical spacing
 
@@ -374,7 +476,7 @@ considered to have systems, so setting @code{betweensystemspace}
 will be much more useful than changing @code{minimumVerticalExtent}.
 
 @example
-\layout @{
+\paper @{
   betweensystemspace = 10\mm
 @}
 @end example
@@ -667,7 +769,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
@@ -777,17 +879,23 @@ Name of the opus, flush-right below the composer.
 Name of the arranger, flush-right below the opus.
 
 @item instrument
-Name of the instrument, centered below the arranger.
-
-@item dedication            
-To whom the piece is dedicated.
+Name of the instrument, centered below the arranger.  Also
+centered at the top of pages (other than the first page).
 
 @item piece
 Name of the piece, flush-left below the instrument.
 
 @cindex page breaks, forcing
 @item breakbefore
-  This forces the title to start on a new page (set to ##t or ##f).
+This forces the title to start on a new page (set to ##t or ##f).
+
+@item copyright
+Copyright notice, centered at the bottom of the first page.  To
+insert the copyright symbol, see @ref{Text encoding}.
+
+@item tagline
+Centered at the bottom of the last page.
+
 @end table
 
 Here is a demonstration of the fields available.  Note that you
@@ -816,25 +924,44 @@ may use any @ref{Text markup} commands in the header.
   }
 
   \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
+
 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.
@@ -883,10 +1010,10 @@ composer flush right on a single line.
 @verbatim
 \paper {
   bookTitleMarkup = \markup {
-   \fill-line @{
+   \fill-line {
      \fromproperty #'header:title
      \fromproperty #'header:composer
-   @}
+   }
   }
 }
 @end verbatim