]> git.donarmstrong.com Git - lilypond.git/blobdiff - Documentation/notation/spacing.itely
Doc: ensure two spaces after end of sentence.
[lilypond.git] / Documentation / notation / spacing.itely
index c19638d810180b59aedd4a68a25141c804a3f78e..da64448d74b78b10036a5651d65b70cf716b0426 100644 (file)
@@ -4,7 +4,8 @@
     Translation of GIT committish: FILL-IN-HEAD-COMMITTISH
 
     When revising a translation, copy the HEAD committish of the
-    version that you are working on.  See TRANSLATION for details.
+    version that you are working on.  For details, see the Contributors'
+    Guide, node Updating translation committishes..
 @end ignore
 
 @c \version "2.12.0"
@@ -36,11 +37,11 @@ distance between
 staff lines accordingly."
 
 Actually I found, that the @internalsref{StaffSymbol} at line 481
-sends to an uncomplete
-documentation. The property staff-space is not explained here. I
+sends to an incomplete
+documentation.  The property staff-space is not explained here.  I
 thought Y-extent might be of
 help, but it is in turn explained by x-space which again is
-missing from the list. Who has the
+missing from the list.  Who has the
 knowledge to fix this?
 
 
@@ -215,13 +216,20 @@ present between a title and the staff that follows it;
 space increases when a page is stretched.
 If this is zero, the distance to the next staff will not stretch at all;
 @item @var{minimum-distance} -- the minimum distance to place between
-the baseline of a title and the center of the staff that follows it. This differs
+the baseline of a title and the center of the staff that follows it.  This differs
 from @var{padding} in that the height of a staff has no effect on
 the application of @var{minimum-distance} (whereas the height of a
 staff is crucial for @var{padding}).
 @end itemize
 
-If a page has a ragged bottom, @var{space} is not stretched. In particular, the
+For example, the default is:
+
+@example
+after-title-spacing = #'((space . 2) (padding . 0.5))
+@end example
+
+
+If a page has a ragged bottom, @var{space} is not stretched.  In particular, the
 resulting distance on such a page is the largest of
 @itemize @bullet
 @item @var{space},
@@ -241,7 +249,7 @@ the baseline of the title that follows it.  See @var{after-title-spacing}.
 @funindex between-scores-system-spacing
 
 Specifies the spacing between two systems if they are in different scores, but
-there is no title between them. See @var{after-title-spacing}.
+there is no title between them.  See @var{after-title-spacing}.
 
 @item between-system-spacing
 @funindex between-system-spacing
@@ -458,7 +466,7 @@ first system.  Default: @code{0}.
 
 @end table
 
-If some values are not set, defaults will be taken. Their exact
+If some values are not set, defaults will be taken.  Their exact
 value is adjusted, depending on the paper size specified.  Currently,
 the following values are affected by this scaling:
 
@@ -553,7 +561,7 @@ increased by one.  Default: @code{##f}.
 
 @ignore
 
-FIXME: this variable is used, but I don't know what it does. -pm
+TODO: this variable is used, but I don't know what it does. -pm
 @item blank-after-score-page-force
 @funindex blank-after-score-page-force
 
@@ -579,7 +587,7 @@ never consider blank pages in the middle of a score.  Default:
 @funindex check-consistency
 
 If set to true, check whether @code{left-margin}, @code{right-margin} and
-@code{line-width} fit each other. Also make sure that their combination
+@code{line-width} fit each other.  Also make sure that their combination
 does not exceed the available @code{paper-width}.  Default: @code{##t}.
 
 @item first-page-number
@@ -589,23 +597,24 @@ The value of the page number on the first page.  Default:
 @code{#1}.
 
 @item max-systems-per-page
-The maximum number of systems that will be placed on a page. This
+The maximum number of systems that will be placed on a page.  This
 is currently supported only by the @code{ly:optimal-breaking} algorithm.
 Default: unset.
 
 @item min-systems-per-page
-The minimum number of systems that will be placed on a page. This
-may cause pages to be overfilled if it is made too large. This is
+The minimum number of systems that will be placed on a page.  This
+may cause pages to be overfilled if it is made too large.  This is
 currently supported only by the @code{ly:optimal-breaking} algorithm.
 Default: unset.
 
-@item page-breaking-between-system-padding
-@funindex page-breaking-between-system-padding
+@item page-breaking-between-system-spacing
+@funindex page-breaking-between-system-spacing
 
 Tricks the page breaker into thinking that
-@code{between-system-padding} 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
+@code{between-system-spacing} is set to something different than
+it really is.  For example, if
+@code{page-breaking-between-system-spacing #'padding} is set to something
+substantially larger than @code{between-system-spacing #'padding}, then the
 page-breaker will put fewer systems on each page.  Default: unset.
 
 @item page-count
@@ -703,7 +712,7 @@ default,  for example
 #(set-default-paper-size "a6" 'landscape)
 \book {
   \score {
-    \relative { c1 \break c1 }
+    \relative c' { c1 \break c1 }
   }
   \paper {
     system-separator-markup = \slashSeparator
@@ -727,6 +736,9 @@ Default: unset.
 @item two-sided
 @funindex two-sided
 
+@cindex gutter
+@cindex binding gutter
+
 If set to true, use @code{inner-margin}, @code{outer-margin} and
 @code{binding-offset} to determine margins depending on whether
 the page number is odd or even.  This overrides @code{left-margin}
@@ -918,11 +930,11 @@ Snippets:
 @cindex line breaks
 @cindex breaking lines
 
-Line breaks are normally determined automatically. They are chosen
+Line breaks are normally determined automatically.  They are chosen
 so that lines look neither cramped nor loose, and consecutive
 lines have similar density.  Occasionally you might want to
 override the automatic breaks; you can do this by specifying
-@code{\break}. This will force a line break at this point.  However,
+@code{\break}.  This will force a line break at this point.  However,
 line breaks can only occur at the end of @q{complete} bars, i.e.,
 where there are no notes or tuplets left @q{hanging} over the bar
 line.  If you want to have a line break where there is no bar line,
@@ -934,13 +946,13 @@ The opposite command, @code{\noBreak}, forbids a line break at the
 bar line where it is inserted.
 
 The most basic settings influencing line spacing are @code{indent}
-and @code{line-width}. They are set in the @code{\layout} block.
+and @code{line-width}.  They are set in the @code{\layout} block.
 They control the indentation of the first line of music, and the
 lengths of the lines.
 
 If @code{ragged-right} is set to true in the @code{\layout} block,
 then systems end at their natural horizontal length, instead of
-being spread horizontally to fill the whole line. This is useful
+being spread horizontally to fill the whole line.  This is useful
 for short fragments, and for checking how tight the natural
 spacing is.
 
@@ -1078,7 +1090,7 @@ book parts.
   @}
   \paper @{
      %% In a part consisting mostly of text,
-     %% ly:minimal-breaking may be prefered
+     %% ly:minimal-breaking may be preferred
      #(define page-breaking ly:minimal-breaking)
   @}
   \markup @{ @dots{} @}
@@ -1440,18 +1452,21 @@ defaults to @code{space - minimum-distance}.
   % Since space is small and there is no minimum-distance, the distance
   % between this staff and the next will be determined by padding.
   \new Staff \with {
-    \override VerticalAxisGroup #'next-staff-spacing = #'((space . 1) (padding . 1))
+    \override VerticalAxisGroup #'next-staff-spacing =
+      #'((space . 1) (padding . 1))
   }
   { \clef bass c, }
   % Since space is small and nothing sticks out very far, the distance
   % between this staff and the next will be determined by minimum-distance.
   \new Staff \with {
-    \override VerticalAxisGroup #'next-staff-spacing = #'((space . 1) (minimum-distance . 12))
+    \override VerticalAxisGroup #'next-staff-spacing =
+      #'((space . 1) (minimum-distance . 12))
   }
   { \clef bass c, }
   % By setting padding to a negative value, staves can be made to collide.
   \new Staff \with {
-    \override VerticalAxisGroup #'next-staff-spacing = #'((space . 4) (padding . -10))
+    \override VerticalAxisGroup #'next-staff-spacing =
+      #'((space . 4) (padding . -10))
   }
   { \clef bass c, }
   \new Staff { \clef bass c, }
@@ -1544,19 +1559,29 @@ to which it does not belong.
 \layout {
   \context {
     \Lyrics
-    % By default, Lyrics are placed close together. Here, we allow them to be stretched
-    % more widely.
-    \override VerticalAxisGroup #'inter-loose-line-spacing #'stretchability = #1000
+    % By default, Lyrics are placed close together.  Here, we allow them to
+    % be stretched more widely.
+    \override VerticalAxisGroup
+      #'inter-loose-line-spacing #'stretchability = #1000
   }
 }
 
 \new StaffGroup
 <<
-  \new Staff \with { \override VerticalAxisGroup #'next-staff-spacing = #'((space . 30)) } c'1
-  \new Lyrics \with { \override VerticalAxisGroup #'staff-affinity = #UP } \lyricmode { up }
-  \new Lyrics \with { \override VerticalAxisGroup #'staff-affinity = #CENTER } \lyricmode { center }
-  \new Lyrics \with { \override VerticalAxisGroup #'staff-affinity = #DOWN } \lyricmode { down }
-  \new Staff c'1
+  \new Staff \with {
+    \override VerticalAxisGroup #'next-staff-spacing = #'((space . 30)) }
+    { c'1 }
+  \new Lyrics \with {
+    \override VerticalAxisGroup #'staff-affinity = #UP }
+    \lyricmode { up }
+  \new Lyrics \with {
+    \override VerticalAxisGroup #'staff-affinity = #CENTER }
+    \lyricmode { center }
+  \new Lyrics \with {
+    \override VerticalAxisGroup #'staff-affinity = #DOWN }
+    \lyricmode { down }
+  \new Staff
+    { c'1 }
 >>
 @end lilypond
 
@@ -1601,19 +1626,19 @@ the variables to control spacing between systems are set in the
 variables are @var{between-system-spacing},
 @var{between-scores-system-spacing}, @var{after-title-spacing},
 @var{before-title-spacing}, @var{between-title-spacing},
-@var{top-system-spacing}, @var{top-system-spacing},
-@var{top-title-spacing} and @var{bottom-system-spacing}.  Note that
-these variables ignore non-staff lines.  For example,
-@var{between-system-spacing} controls the spacing from the middle staff
-line of the bottom staff from one system to the middle staff line of the
-top staff of the next system, whether or not there are lyrics below the
-upper system.  See @ref{Vertical dimensions} for a description of each
-of these variables.
+@var{top-system-spacing}, @var{top-title-spacing} and
+@var{bottom-system-spacing}.  Note that these variables ignore non-staff
+lines.  For example, @var{between-system-spacing} controls the spacing
+from the middle staff line of the bottom staff from one system to
+the middle staff line of the top staff of the next system, whether
+or not there are lyrics below the upper system.
+See @ref{Vertical dimensions} for a description of each of these
+variables.
 
 There are two more @code{\paper} block variables that affect vertical
 spacing: if @var{ragged-bottom} is set to @code{##t} then no pages will
 be stretched (which means that neither the space between systems nor the
-space within systems will be stretched). If @var{ragged-last-bottom}
+space within systems will be stretched).  If @var{ragged-last-bottom}
 is set to @code{##t} then the last page will not be stretched.
 
 @seealso
@@ -2017,18 +2042,16 @@ c2 c4. c8 c4. c16[ c] c4. c8 c8 c8 c4 c4 c4
 @end lilypond
 
 
-In the introduction
-FIXME FIXME FIXME
-@c (see @rlearning{Engraving}),
-it was explained that stem
-directions influence spacing.  This is controlled with the
+In the @emph{Essay on automated music engraving}, it was explained
+that stem directions influence spacing (see @ressay{Optical
+spacing}).  This is controlled with the
 @code{stem-spacing-correction} property in the
 @rinternals{NoteSpacing}, object.  These are generated for every
 @rinternals{Voice} context.  The @code{StaffSpacing} object
-(generated in @rinternals{Staff} context) contains the same property
-for controlling the stem/bar line spacing.  The following example shows
-these corrections, once with default settings, and once with
-exaggerated corrections:
+(generated in @rinternals{Staff} context) contains the same
+property for controlling the stem/bar line spacing.  The following
+example shows these corrections, once with default settings, and
+once with exaggerated corrections:
 
 @lilypond[quote,ragged-right]
 {
@@ -2457,14 +2480,14 @@ timeline or graphic if we want.
 
 Note that the LilyPond's proportional notation package expects
 that all proportional scores set the SpacingSpanner's
-'uniform-stretching attribute to ##t. Setting
+'uniform-stretching attribute to ##t.  Setting
 proportionalNotationDuration without also setting the
 SpacingSpanner's 'uniform-stretching attribute to ##t will, for
 example, cause Skips to consume an incorrect amount of horizontal
 space.
 
 The SpacingSpanner is an abstract grob that lives in the Score
-context. As with our settings of proportionalNotationDuration,
+context.  As with our settings of proportionalNotationDuration,
 overrides to the SpacingSpanner can occur in any of three
 different places in our input file – in the Score \with block, in
 a Score \context block, or in note entry directly.
@@ -2555,14 +2578,14 @@ property of @code{SpacingSpanner}.  Compare the two scores below:
 @end lilypond
 
 Both scores are proportional, but the spacing in the first score
-is too loose because of the clef change. The spacing of the second
+is too loose because of the clef change.  The spacing of the second
 score remains strict, however, because strict-note-spacing is
 turned on.  Turning on strict-note-spacing causes the width of
 time signatures, key signatures, clefs and accidentals to play no
 part in the spacing algorithm.
 
 In addition to the settings given here, there are other settings
-that frequently appear in proportional scores. These include:
+that frequently appear in proportional scores.  These include:
 
 @itemize
 @item @code{\override SpacingSpanner #'strict-grace-spacing = ##t}
@@ -2631,7 +2654,7 @@ All layout dimensions are displayed in staff-spaces, regardless
 of the units specified in the @code{\paper} or @code{\layout} block.
 In the above example, @code{paper-height} has a value of 59.75
 @code{staff-spaces}, and the @code{staff-size} is 20 points (the
-default value). Note that:
+default value).  Note that:
 
 @multitable {1 staff-space} {staff-size)/4 * (25.4/72.27) mm}
 
@@ -2647,7 +2670,7 @@ default value). Note that:
 
 @noindent
 In this case, one @code{staff-space} is approximately equal to
-1.757mm. Thus the @code{paper-height} measurement of 59.75
+1.757mm.  Thus the @code{paper-height} measurement of 59.75
 @code{staff-spaces} is equivalent to 105 millimeters, the height
 of @code{a6} paper in landscape orientation.  The pairs
 (@var{a},@var{b}) are intervals, where @var{a} is the lower
@@ -2679,8 +2702,7 @@ there is no blank space at the bottom of the page.
 
 @example
 \paper @{
-  between-system-padding = #0.1
-  between-system-space = #0.1
+  between-system-spacing = #'((padding . 0) (space . 0.1))
   ragged-last-bottom = ##f
   ragged-bottom = ##f
 @}
@@ -2692,7 +2714,7 @@ setting a value, even the same value as the number of systems
 being typeset by default, will sometimes cause more systems to
 be fitted onto each page, as an estimation step is then bypassed,
 giving a more accurate fit to each page.  Also, forcing an actual
-reduction in the number of systems may save a further page. For
+reduction in the number of systems may save a further page.  For
 example, if the default layout has 11 systems, the following
 assignment will force a layout with 10 systems.