]> git.donarmstrong.com Git - lilypond.git/blobdiff - Documentation/learning/tweaks.itely
Doc: Update deprecated \relative syntax.
[lilypond.git] / Documentation / learning / tweaks.itely
index 247ce44994748c88e518fce218d8e6b0d3abfabb..3a14d9c006ce6606a6ec9a3f719c4f53e66195fb 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"
@@ -305,7 +306,7 @@ a b c
 There is another form of the override command,
 @code{\overrideProperty}, which is occasionally required.
 We mention it here for completeness, but for details see
-@ruser{Difficult tweaks}.
+@rextend{Difficult tweaks}.
 @c Maybe explain in a later iteration  -td
 
 @strong{\tweak command}
@@ -439,7 +440,7 @@ appearance may be modified in the usual way with
 @c NOTE Tuplet brackets collide if notes are high on staff
 @c See issue 509
 @lilypond[quote,ragged-right,verbatim,fragment,relative=1]
-\times 2/3 { c8[ c c]}
+\times 2/3 { c8[ c c] }
 \once \override TupletNumber
   #'text = #tuplet-number::calc-fraction-text
 \times 2/3 {
@@ -447,7 +448,7 @@ appearance may be modified in the usual way with
   c[ c]
   \once \override TupletNumber #'transparent = ##t
   \times 2/3 { c8[ c c] }
-\times 2/3 { c8[ c c]}
+  \times 2/3 { c8[ c c] }
 }
 @end lilypond
 
@@ -508,9 +509,9 @@ music:
 {
   \time 6/8
   {
-    r4 b8 b[( g]) g |
-    g[( e]) e d[( f]) a |
-    a g
+    r4 b8 b[( g]) g
+    g4[( e]) e d[( f]) a
+    a4 g
   }
   \addlyrics {
     The man who feels love's sweet e -- mo -- tion
@@ -596,9 +597,9 @@ close to it.}  Let's do that:
   {
     % Increase thickness of all following slurs from 1.2 to 5.0
     \override Slur #'thickness = #5.0
-    r4 b8 b[( g]) g |
-    g[( e]) e d[( f]) a |
-    a g
+    r4 b8 b[( g]) g
+    g4[( e]) e d[( f]) a
+    a4 g
   }
   \addlyrics {
     The man who feels love's sweet e -- mo -- tion
@@ -665,9 +666,9 @@ repositioned as follows:
     r4 b8
     % Increase thickness of immediately following slur only
     \once \override Slur #'thickness = #5.0
-    b[( g]) g |
-    g[( e]) e d[( f]) a |
-    a g
+    b4[( g]) g
+    g4[( e]) e d[( f]) a
+    a4 g
   }
   \addlyrics {
     The man who feels love's sweet e -- mo -- tion
@@ -704,11 +705,11 @@ the slurs begin:
     r4 b8
     % Increase thickness of immediately following slur only
     \once \override Slur #'thickness = #5.0
-    b[( g]) g |
+    b4[( g]) g
     % Increase thickness of immediately following slur only
     \once \override Slur #'thickness = #5.0
-    g[( e]) e d[( f]) a |
-    a g
+    g4[( e]) e d[( f]) a
+    a4 g
   }
   \addlyrics {
     The man who feels love's sweet e -- mo -- tion
@@ -731,12 +732,12 @@ after the second slur:
     r4 b8
     % Increase thickness of all following slurs from 1.2 to 5.0
     \override Slur #'thickness = #5.0
-    b[( g]) g |
-    g[( e])
+    b4[( g]) g
+    g4[( e])
     % Revert thickness of all following slurs to default of 1.2
     \revert Slur #'thickness
-    e d[( f]) a |
-    a g
+    e4 d[( f]) a
+    a4 g
   }
   \addlyrics {
     The man who feels love's sweet e -- mo -- tion
@@ -816,8 +817,8 @@ LilyPond.  Some of them are the names of properties, like
 @code{thickness} or @code{font-shape}, others are used as values that
 can be given to properties, like @code{italic}.  Note the distinction
 from arbitrary text strings, which would appear as @code{"a text
-string"}; for more details about symbols and strings, see @ref{Scheme
-tutorial}.
+string"}; for more details about symbols and strings, see
+@rextend{Scheme tutorial}.
 
 So we see that the @code{\override} command needed to print the lyrics
 in italics is:
@@ -839,9 +840,9 @@ like so:
 {
   \time 6/8
   {
-    r4 b8 b[( g]) g |
-    g[( e]) e d[( f]) a |
-    a g
+    r4 b8 b[( g]) g
+    g4[( e]) e d[( f]) a
+    a4 g
   }
   \addlyrics {
     \override LyricText #'font-shape = #'italic
@@ -882,7 +883,7 @@ the dot between the context name and the object name.}
 
 
 @seealso
-Learning Manual: @ref{Scheme tutorial}.
+Extending: @rextend{Scheme tutorial}.
 
 
 @node Types of properties
@@ -954,7 +955,7 @@ by apostrophe-hash, @code{'#}.
 
 
 @seealso
-Learning Manual: @ref{Scheme tutorial}.
+Extending: @rextend{Scheme tutorial}.
 
 
 @node Appearance of objects
@@ -1020,8 +1021,8 @@ the implied Context, @code{Voice}:
 {
   \time 12/16
   \override BarLine #'stencil = ##f
-  c4 b8 c d16 c d8 |
-  g, a16 b8 c d4 e16 |
+  c4 b8 c d16 c d8
+  g,8 a16 b8 c d4 e16
   e8
 }
 @end lilypond
@@ -1045,8 +1046,8 @@ it by adding the correct context:
 {
   \time 12/16
   \override Staff.BarLine #'stencil = ##f
-  c4 b8 c d16 c d8 |
-  g, a16 b8 c d4 e16 |
+  c4 b8 c d16 c d8
+  g,8 a16 b8 c d4 e16
   e8
 }
 @end lilypond
@@ -1092,8 +1093,8 @@ required, as always, to precede the value itself in the
 {
   \time 12/16
   \override Staff.BarLine #'break-visibility = #'#(#f #f #f)
-  c4 b8 c d16 c d8 |
-  g, a16 b8 c d4 e16 |
+  c4 b8 c d16 c d8
+  g,8 a16 b8 c d4 e16
   e8
 }
 @end lilypond
@@ -1124,8 +1125,8 @@ transparent is:
 {
   \time 12/16
   \override Staff.TimeSignature #'transparent = ##t
-  c4 b8 c d16 c d8 |
-  g, a16 b8 c d4 e16 |
+  c4 b8 c d16 c d8
+  g,8 a16 b8 c d4 e16
   e8
 }
 @end lilypond
@@ -1145,8 +1146,8 @@ instead:
 {
   \time 12/16
   \override Staff.TimeSignature #'stencil = ##f
-  c4 b8 c d16 c d8 |
-  g, a16 b8 c d4 e16 |
+  c4 b8 c d16 c d8
+  g,8 a16 b8 c d4 e16
   e8
 }
 @end lilypond
@@ -1186,8 +1187,8 @@ we write:
 {
   \time 12/16
   \override Staff.BarLine #'color = #white
-  c4 b8 c d16 c d8 |
-  g, a16 b8 c d4 e16 |
+  c4 b8 c d16 c d8
+  g,8 a16 b8 c d4 e16
   e8
 }
 @end lilypond
@@ -1220,8 +1221,8 @@ converts X11 color names into the list of internal values,
 {
   \time 12/16
   \override Staff.BarLine #'color = #(x11-color 'white)
-  c4 b8 c d16 c d8 |
-  g, a16 b8 c d4 e16 |
+  c4 b8 c d16 c d8
+  g,8 a16 b8 c d4 e16
   e8
 }
 @end lilypond
@@ -1250,8 +1251,8 @@ and to white it should be @code{(rgb-color 1 1 1)}:
 {
   \time 12/16
   \override Staff.BarLine #'color = #(rgb-color 1 1 1)
-  c4 b8 c d16 c d8 |
-  g, a16 b8 c d4 e16 |
+  c4 b8 c d16 c d8
+  g,8 a16 b8 c d4 e16
   e8
 }
 @end lilypond
@@ -1280,8 +1281,8 @@ various shades of grey:
   \override Voice.NoteHead      #'color = #(x11-color 'grey85)
   \override Voice.Stem          #'color = #(x11-color 'grey85)
   \override Staff.BarLine       #'color = #(x11-color 'grey10)
-  c4 b8 c d16 c d8 |
-  g, a16 b8 c d4 e16 |
+  c4 b8 c d16 c d8
+  g,8 a16 b8 c d4 e16
   e8
 }
 @end lilypond
@@ -1314,18 +1315,18 @@ how to introduce a new temporary staff, as in an @rglos{ossia}.
 
 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
 \new Staff ="main" {
-       \relative g' {
-         r4 g8 g c4 c8 d |
-         e4 r8
-         <<
-           { f c c }
-           \new Staff \with {
-             alignAboveContext = #"main" }
-           { f8 f c }
-         >>
-         r4 |
-       }
-     }
+  \relative g' {
+    r4 g8 g c4 c8 d
+    e4 r8
+    <<
+      { f8 c c }
+      \new Staff \with {
+        alignAboveContext = #"main" }
+      { f8 f c }
+    >>
+    r4
+  }
+}
 @end lilypond
 
 Ossia are normally written without clef and time signature, and
@@ -1342,10 +1343,10 @@ we simply set the stencil of each to @code{#f}, as follows:
 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
 \new Staff ="main" {
   \relative g' {
-    r4 g8 g c4 c8 d |
+    r4 g8 g c4 c8 d
     e4 r8
     <<
-      { f c c }
+      { f8 c c }
       \new Staff \with {
         alignAboveContext = #"main"
       }
@@ -1355,7 +1356,7 @@ we simply set the stencil of each to @code{#f}, as follows:
         { f8 f c }
       }
     >>
-    r4 |
+    r4
   }
 }
 @end lilypond
@@ -1403,10 +1404,10 @@ So we could replace the example above with
 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
 \new Staff ="main" {
   \relative g' {
-    r4 g8 g c4 c8 d |
+    r4 g8 g c4 c8 d
     e4 r8
     <<
-      { f c c }
+      { f8 c c }
       \new Staff \with {
         alignAboveContext = #"main"
         % Don't print clefs in this staff
@@ -1414,9 +1415,9 @@ So we could replace the example above with
         % Don't print time signatures in this staff
         \override TimeSignature #'stencil = ##f
       }
-        { f8 f c }
+      { f8 f c }
     >>
-    r4 |
+    r4
   }
 }
 @end lilypond
@@ -1467,10 +1468,10 @@ Let's try it in our ossia example:
 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
 \new Staff ="main" {
   \relative g' {
-    r4 g8 g c4 c8 d |
+    r4 g8 g c4 c8 d
     e4 r8
     <<
-      { f c c }
+      { f8 c c }
       \new Staff \with {
         alignAboveContext = #"main"
         \override Clef #'stencil = ##f
@@ -1478,9 +1479,9 @@ Let's try it in our ossia example:
         % Reduce all font sizes by ~24%
         fontSize = #-2
       }
-        { f8 f c }
+      { f8 f c }
     >>
-    r4 |
+    r4
   }
 }
 @end lilypond
@@ -1510,7 +1511,8 @@ properties are measured in units of an internal property called
 hairpins are given a thickness of 1 unit of @code{line-thickness},
 while the @code{thickness} of a note stem is 1.3.  Note, though,
 that some thickness properties are different; for example, the
-thickness of beams is measured in staff-spaces.
+thickness of beams is controlled by the value of the
+@code{beam-thickness} property, which is measured in staff-spaces.
 
 So how are lengths to be scaled in proportion to the font size?
 This can be done with the help of a special function called
@@ -1532,10 +1534,10 @@ objects in proportion.  It is used like this:
 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
 \new Staff ="main" {
   \relative g' {
-    r4 g8 g c4 c8 d |
+    r4 g8 g c4 c8 d
     e4 r8
     <<
-      { f c c }
+      { f8 c c }
       \new Staff \with {
         alignAboveContext = #"main"
         \override Clef #'stencil = ##f
@@ -1544,9 +1546,9 @@ objects in proportion.  It is used like this:
         % Reduce stem length and line spacing to match
         \override StaffSymbol #'staff-space = #(magstep -2)
       }
-        { f8 f c }
+      { f8 f c }
     >>
-    r4 |
+    r4
   }
 }
 @end lilypond
@@ -1638,9 +1640,9 @@ under @q{Text2}.
 
 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
 c2^"Text1"
-c^"Text2"
-c^"Text3"
-c^"Text4"
+c2^"Text2"
+c2^"Text3"
+c2^"Text4"
 @end lilypond
 
 Staves are also positioned, by default, as closely together as
@@ -1653,10 +1655,10 @@ this @q{nestling} of the notes on adjacent staves:
 @lilypond[quote,ragged-right,verbatim]
 <<
   \new Staff {
-    \relative c' { c a, }
+    \relative c' { c4 a, }
   }
   \new Staff {
-    \relative c'''' { c a, }
+    \relative c'''' { c4 a, }
   }
 >>
 @end lilypond
@@ -1700,11 +1702,11 @@ default behavior.
 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
 a4 g c a
 \override Stem #'direction = #DOWN
-a g c a
+a4 g c a
 \override Stem #'direction = #UP
-a g c a
+a4 g c a
 \revert Stem #'direction
-a g c a
+a4 g c a
 @end lilypond
 
 Here we use the constants @code{DOWN} and @code{UP}.
@@ -1768,7 +1770,7 @@ effect to a single note you must either use the equivalent
 followed after the affected note by the corresponding
 @code{\xxxNeutral} command.
 
-@subheading Fingering
+@unnumberedsubsubsec Fingering
 
 @cindex fingering, placement
 @cindex fingering, chords
@@ -1873,19 +1875,19 @@ Here are a few examples:
 @lilypond[quote,fragment,ragged-right,verbatim,relative=1]
 \set fingeringOrientations = #'(left)
 <f-2>
-< c-1  e-2 g-3 b-5 > 4
+<c-1 e-2 g-3 b-5>4
 \set fingeringOrientations = #'(left)
 <f-2>
-< c-1  e-2 g-3 b-5 > 4
+<c-1 e-2 g-3 b-5>4
 \set fingeringOrientations = #'(up left down)
 <f-2>
-< c-1  e-2 g-3 b-5 > 4
+<c-1 e-2 g-3 b-5>4
 \set fingeringOrientations = #'(up left)
 <f-2>
-< c-1  e-2 g-3 b-5 > 4
+<c-1 e-2 g-3 b-5>4
 \set fingeringOrientations = #'(right)
 <f-2>
-< c-1  e-2 g-3 b-5 > 4
+<c-1 e-2 g-3 b-5>4
 @end lilypond
 
 @noindent
@@ -1898,19 +1900,19 @@ try @code{-7}:
 \override Fingering #'font-size = #-7
 \set fingeringOrientations = #'(left)
 <f-2>
-< c-1  e-2 g-3 b-5 > 4
+<c-1 e-2 g-3 b-5>4
 \set fingeringOrientations = #'(left)
 <f-2>
-< c-1  e-2 g-3 b-5 > 4
+<c-1 e-2 g-3 b-5>4
 \set fingeringOrientations = #'(up left down)
 <f-2>
-< c-1  e-2 g-3 b-5 > 4
+<c-1 e-2 g-3 b-5>4
 \set fingeringOrientations = #'(up left)
 <f-2>
-< c-1  e-2 g-3 b-5 > 4
+<c-1 e-2 g-3 b-5>4
 \set fingeringOrientations = #'(right)
 <f-2>
-< c-1  e-2 g-3 b-5 > 4
+<c-1 e-2 g-3 b-5>4
 @end lilypond
 
 @node Outside-staff objects
@@ -1924,10 +1926,24 @@ The @code{outside-staff-priority} is defined in the
 @code{grob-interface} and so is a property of all layout objects.
 By default it is set to @code{#f} for all within-staff objects,
 and to a numerical value appropriate to each outside-staff object
-when the object is created.  The following table shows
-the default numerical values for some of the commonest
-outside-staff objects which are, by default, placed in the
-@code{Staff} or @code{Voice} contexts.
+when the object is created.  The following table shows the default
+numerical values for some of the commonest outside-staff objects
+which are, by default, placed in the @code{Staff} or @code{Voice}
+contexts.
+
+@cindex spanners
+
+Note the unusual names for some of the objects: spanner objects
+are automatically created to control the vertical positioning of
+grobs which (might) start and end at different musical moments, so
+changing the @code{outside-staff-priority} of the underlying grob
+will have no effect.  For example, changing
+@code{outside-staff-priority} of the @code{Hairpin} object will
+have no effect on the vertical positioning of hairpins -- you must
+change @code{outside-staff-priority} of the associated
+@code{DynamicLineSpanner} object instead.  This override must be
+placed at the start of the spanner, which might include several
+linked hairpins and dynamics.
 
 @multitable @columnfractions .3 .3 .3
 @headitem Layout Object
@@ -1978,19 +1994,18 @@ these.
 \dynamicUp
 % Start Ottava Bracket
 \ottava #1
-c' \startTextSpan
-% Add Dynamic Text
-c\pp
-% Add Dynamic Line Spanner
-c\<
+c'4 \startTextSpan
+% Add Dynamic Text and hairpin
+c4\pp\<
+c4
 % Add Text Script
-c^Text
-c c
-% Add Dynamic Text
-c\ff c \stopTextSpan
+c4^Text
+c4 c
+% Add Dynamic Text and terminate hairpin
+c4\ff c \stopTextSpan
 % Stop Ottava Bracket
 \ottava #0
-c, c c c
+c,4 c c c
 @end lilypond
 
 This example also shows how to create Text Spanners --
@@ -2050,19 +2065,19 @@ in the @code{Staff} context:
 \once \override Staff.OttavaBracket #'outside-staff-priority = #340
 % Start Ottava Bracket
 \ottava #1
-c' \startTextSpan
+c'4 \startTextSpan
 % Add Dynamic Text
-c\pp
+c4\pp
 % Add Dynamic Line Spanner
-c\<
+c4\<
 % Add Text Script
-c^Text
-c c
+c4^Text
+c4 c
 % Add Dynamic Text
-c\ff c \stopTextSpan
+c4\ff c \stopTextSpan
 % Stop Ottava Bracket
 \ottava #0
-c, c c c
+c,4 c c c
 @end lilypond
 
 @cindex slurs and outside-staff-priority
@@ -2083,13 +2098,13 @@ other outside-staff objects according to that value.  Here's an
 example showing the effect of the two methods:
 
 @lilypond[quote,verbatim,relative=2]
-c4( c^\markup\tiny\sharp d4.) c8
+c4( c^\markup { \tiny \sharp } d4.) c8
 c4(
 \once \override TextScript #'avoid-slur = #'inside
 \once \override TextScript #'outside-staff-priority = ##f
-c^\markup\tiny\sharp d4.) c8
+c4^\markup \tiny \sharp d4.) c8
 \once \override Slur #'outside-staff-priority = #500
-c4( c^\markup\tiny\sharp d4.) c8
+c4( c^\markup { \tiny \sharp } d4.) c8
 @end lilypond
 
 Changing the @code{outside-staff-priority} can also be used to
@@ -2106,10 +2121,10 @@ in the IR or in the tables above, and increase the priority of
 
 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
 c2^"Text1"
-c^"Text2"
+c2^"Text2"
 \once \override TextScript #'outside-staff-priority = #500
-c^"Text3"
-c^"Text4"
+c2^"Text3"
+c2^"Text4"
 @end lilypond
 
 This certainly lifts @qq{Text3} above @qq{Text4} but it also lifts it
@@ -2137,9 +2152,9 @@ out as far as is necessary to accommodate the text:
 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
 \textLengthOn  % Cause notes to space out to accommodate text
 c2^"Text1"
-c^"Text2"
-c^"Text3"
-c^"Text4"
+c2^"Text2"
+c2^"Text3"
+c2^"Text4"
 @end lilypond
 
 The command to revert to the default behavior is
@@ -2197,8 +2212,8 @@ shows:
 \key aes \major
 \time 9/8
 \dynamicUp
-bes4.~\f\< \( bes4 bes8 des4\ff\> c16 bes\! |
-ees,2.~\)\mf ees4 r8 |
+bes4.~\f\< \( bes4 bes8 des4\ff\> c16 bes\!
+ees,2.~\)\mf ees4 r8
 @end lilypond
 
 However, if the notes and attached dynamics are close
@@ -2564,11 +2579,11 @@ b2\fermata
 @cindex padding property, example
 
 @lilypond[quote,fragment,relative=1,verbatim]
-% This will not work, see below:
+% This will not work, see below
 \override MetronomeMark #'padding = #3
 \tempo 4=120
 c1
-% This works:
+% This works
 \override Score.MetronomeMark #'padding = #3
 \tempo 4=80
 d1
@@ -2593,24 +2608,10 @@ objects outside it are moved.
 
 The @code{right-padding} property affects the spacing between the
 accidental and the note to which it applies.  It is not often
-required, but the following example shows one situation where it
-is needed.  Suppose we wish to show a chord containing both
-a B-natural and a B-flat.  To avoid ambiguity we would like to
-precede the notes with both a natural and a flat sign.  Here
-are a few attempts to do this:
-
-@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
-<b bes>
-<b! bes>
-<b? bes>
-@end lilypond
-
-None work, with the second two showing bad collisions between
-the two signs.
-
-One way of achieving this is to override the accidental stencil
-with a markup containing the natural and flat symbols in the
-order we would like, like this:
+required, but the default spacing may be wrong for certain special
+accidental glyphs or combination of glyphs used in some microtonal
+music.  These have to be entered by overriding the accidental
+stencil with a markup containing the desired symbol(s), like this:
 
 @cindex Accidental, example of overriding
 @cindex text property, example
@@ -2619,13 +2620,20 @@ order we would like, like this:
 @cindex right-padding property, example
 
 @lilypond[quote,ragged-right,verbatim]
-naturalplusflat = \markup { \natural \flat }
+sesquisharp = \markup { \sesquisharp }
 \relative c'' {
+  c4
+  % This prints a sesquisharp but the spacing is too small
+  \once \override Accidental
+    #'stencil = #ly:text-interface::print
+  \once \override Accidental #'text = #sesquisharp
+  cis4 c
+  % This improves the spacing
+  \once \override Score.AccidentalPlacement #'right-padding = #0.6
   \once \override Accidental
     #'stencil = #ly:text-interface::print
-  \once \override Accidental #'text = #naturalplusflat
-  \once \override Score.AccidentalPlacement #'right-padding = #1.5
-  <b bes>
+  \once \override Accidental #'text = #sesquisharp
+  cis4
 }
 @end lilypond
 
@@ -2633,9 +2641,9 @@ naturalplusflat = \markup { \natural \flat }
 This necessarily uses an override for the accidental stencil which
 will not be covered until later.  The stencil type must be a
 procedure, here changed to print the contents of the @code{text}
-property of @code{Accidental}, which itself is set to be a natural
-sign followed by a flat sign.  These are then moved further away
-from the note head by overriding @code{right-padding}.
+property of @code{Accidental}, which itself is set to be a
+sesquisharp sign.  This sign is then moved further away from the
+note head by overriding @code{right-padding}.
 
 @noindent
 
@@ -2679,9 +2687,9 @@ right edge with the reference point of the parent note:
 
 @lilypond[quote,fragment,ragged-right,verbatim,relative=3]
 \voiceOne
-< a \2 >
+< a\2 >
 \once \override StringNumber #'self-alignment-X = #RIGHT
-< a \2 >
+< a\2 >
 @end lilypond
 
 @subheading staff-position property
@@ -2697,7 +2705,7 @@ for notes and rests that occur at the same time.  Here's an
 example of a collision of this type:
 
 @lilypond[quote,verbatim,fragment,ragged-right, relative=1]
-<< {c c c c} \\ {R1} >>
+<< { c4 c c c } \\ { R1 } >>
 @end lilypond
 
 The best solution here is to move the multimeasure rest down, since
@@ -2711,10 +2719,10 @@ move it, say, four half-staff spaces down to @code{-8}.
 
 @lilypond[quote,verbatim,fragment,ragged-right, relative=1]
 <<
-  {c c c c}
-\\
+  { c4 c c c }
+  \\
   \override MultiMeasureRest #'staff-position = #-8
-  {R1}
+  { R1 }
 >>
 @end lilypond
 
@@ -2739,10 +2747,9 @@ the left, and 1.8 staff space downwards:
 
 @lilypond[quote,fragment,relative=1,verbatim]
 \stemUp
-f-5
-\once \override Fingering
-    #'extra-offset = #'(-0.3 . -1.8)
-f-5
+f4-5
+\once \override Fingering #'extra-offset = #'(-0.3 . -1.8)
+f4-5
 @end lilypond
 
 
@@ -2761,7 +2768,7 @@ Here's an example which has an ugly phrasing slur due to its trying to
 avoid the slur on the acciaccatura.
 
 @lilypond[quote,verbatim,fragment,ragged-right,relative=1]
-r4  \acciaccatura e8\( d8 c ~c d c d\)
+r4 \acciaccatura e8\( d8 c~ c d c d\)
 @end lilypond
 
 @noindent
@@ -2771,7 +2778,7 @@ would be the preferred solution:
 @lilypond[quote,verbatim,fragment,ragged-right,relative=1]
 r4
 \phrasingSlurUp
-\acciaccatura e8\( d8 c ~c d c d\)
+\acciaccatura e8\( d8 cc d c d\)
 @end lilypond
 
 @noindent
@@ -2787,7 +2794,7 @@ also resolves the rather nasty shape.
 r4
 \once \override PhrasingSlur #'positions = #'(-4 . -3)
 \acciaccatura
-e8\( d8 c ~c d c d\)
+e8\( d8 cc d c d\)
 @end lilypond
 
 Here's a further example taken from the opening of the left-hand
@@ -2796,9 +2803,9 @@ collides with the upper notes:
 
 @lilypond[quote,verbatim,fragment,ragged-right]
 {
-\clef "bass"
-<< {b,8 ais, b, g,} \\ {e, g e, g} >>
-<< {b,8 ais, b, g,} \\ {e, g e, g} >>
+  \clef "bass"
+  << { b,8 ais, b, g, } \\ { e, g e, g } >>
+  << { b,8 ais, b, g, } \\ { e, g e, g } >>
 }
 @end lilypond
 
@@ -2815,11 +2822,11 @@ say, 3:
   \clef "bass"
   <<
     \override Beam #'positions = #'(3 . 3)
-    {b,8 ais, b, g,}
+    { b,8 ais, b, g, }
   \\
-    {e, g e, g}
+    { e,8 g e, g }
   >>
-  << {b,8 ais, b, g,} \\ {e, g e, g} >>
+  << { b,8 ais, b, g, } \\ { e, g e, g } >>
 }
 @end lilypond
 
@@ -2830,9 +2837,6 @@ second voice.
 
 @subheading force-hshift property
 
-@c FIXME: formatting stuff  (ie not important right now IMO)
-@c @a nchor Chopin finally corrected TODOgp
-
 We can now see how to apply the final corrections to the Chopin
 example introduced at the end of @ref{I'm hearing Voices}, which
 was left looking like this:
@@ -2842,13 +2846,13 @@ was left looking like this:
   \key aes \major
   <<
     { c2 aes4. bes8 } \\
-    { aes2 f4 fes   } \\
+    { aes2 f4 fes } \\
     { \voiceFour
       <ees c>2
       des2
     }
-  >> |
-  <c ees aes c>1 |
+  >>
+  <c ees aes c>1
 }
 @end lilypond
 
@@ -2872,13 +2876,15 @@ Here's the final result:
   \key aes \major
   <<
     { c2 aes4. bes8 } \\
-    { aes2 f4 fes   } \\
+    { aes2 f4 fes } \\
     { \voiceFour
-      \once \override NoteColumn #'force-hshift = #0 <ees c>2
-      \once \override NoteColumn #'force-hshift = #0.5 des2
+      \once \override NoteColumn #'force-hshift = #0
+      <ees c>2
+      \once \override NoteColumn #'force-hshift = #0.5
+      des2
     }
-  >> |
-  <c ees aes c>1 |
+  >>
+  <c ees aes c>1
 }
 @end lilypond
 
@@ -2902,29 +2908,33 @@ dynamics, fingering and pedalling.
 
 @c The following should appear as music without code
 @c This example should not be indexed
-@lilypond[quote,ragged-right]
+@c line-width ensures no break
+@lilypond[quote,ragged-right,line-width=5.5\in]
 rhMusic = \relative c'' {
   r2
-  c4.\( g8 |
+  c4.\( g8
   \once \override Tie #'staff-position = #3.5
-  bes1~ |
+  bes1~
   \bar "||"
   \time 6/4
   \mergeDifferentlyHeadedOn
   \mergeDifferentlyDottedOn
-  bes2.^\markup {\bold "Moderato"} r8
+  bes2.^\markup { \bold "Moderato" } r8
   <<
-    {c,8[ d fis bes a] | }
+    { c,8 d fis bes a }
   \\
     % Reposition the c2 to the right of the merged note
-    {c,8~ \once \override NoteColumn #'force-hshift = #1.0
+    { c,8~ \once \override NoteColumn #'force-hshift = #1.0
     % Move the c2 out of the main note column so the merge will work
-    \shiftOnn c2}
+    \shiftOnn c2 }
   \\
     % Stem on the d2 must be down to permit merging
-    {s8 \stemDown \once \override Stem #'transparent = ##t d2}
+    { s8 \stemDown
+      \once \override Stem #'transparent = ##t
+      d2
+    }
   \\
-    {s4 fis4.}
+    { s4 fis4. }
   >>
   \mergeDifferentlyHeadedOff
   \mergeDifferentlyDottedOff
@@ -2932,9 +2942,9 @@ rhMusic = \relative c'' {
 }
 
 lhMusic = \relative c' {
-  r2 <c g ees>2( |
-  <d g, d>1)\arpeggio |
-  r2. d,,4 r4 r |
+  r2 <c g ees>2(
+  <d g, d>1)\arpeggio
+  r2. d,,4 r4 r
   r4
 }
 
@@ -2965,29 +2975,30 @@ by entering the notes as two variables and setting up the staff
 structure in a score block, and see what LilyPond produces by
 default:
 
-@lilypond[quote,verbatim,ragged-right]
+@c line-width ensures no break
+@lilypond[quote,verbatim,ragged-right,line-width=5.5\in]
 rhMusic = \relative c'' {
-  r2 c4. g8 |
-  bes1~ |
+  r2 c4. g8
+  bes1~
   \time 6/4
   bes2. r8
   % Start polyphonic section of four voices
   <<
-    {c,8 d fis bes a | }
+    { c,8 d fis bes a }
   \\
-    {c,8~ c2 | }
+    { c,8~ c2 }
   \\
-    {s8 d2 | }
+    { s8 d2 }
   \\
-    {s4 fis4. | }
+    { s4 fis4. }
   >>
   g2.
 }
 
 lhMusic = \relative c' {
-  r2 <c g ees>2 |
-  <d g, d>1 |
-  r2. d,,4 r4 r |
+  r2 <c g ees>2
+  <d g, d>1
+  r2. d,,4 r4 r
   r4
 }
 
@@ -3006,37 +3017,37 @@ lhMusic = \relative c' {
 }
 @end lilypond
 
-All the notes are right, but the appearance is far from satisfactory.
-The tie clashes with the change in time signature, the beaming in the
-third bar is wrong, the notes are not merged together, and several
-notation elements are missing.  Let's first deal with the easier
-things.  We can correct the beaming by inserting a beam manually, and
-we can easily add the left hand slur and the right hand phrasing slur,
+All the notes are right, but the appearance is far from
+satisfactory.  The tie clashes with the change in time signature,
+the notes are not merged together, and several notation elements
+are missing.  Let's first deal with the easier things.  We can
+easily add the left hand slur and the right hand phrasing slur,
 since these were all covered in the Tutorial.  Doing this gives:
 
-@lilypond[quote,verbatim,ragged-right]
+@c line-width ensures no break
+@lilypond[quote,verbatim,ragged-right,line-width=5.5\in]
 rhMusic = \relative c'' {
-  r2 c4.\( g8 |
-  bes1~ |
+  r2 c4.\( g8
+  bes1~
   \time 6/4
   bes2. r8
   % Start polyphonic section of four voices
   <<
-    {c,8[ d fis bes a] | }
+    { c,8 d fis bes a }
   \\
-    {c,8~ c2 | }
+    { c,8~ c2 }
   \\
-    {s8 d2 | }
+    { s8 d2 }
   \\
-    {s4 fis4. | }
+    { s4 fis4. }
   >>
   g2.\)
 }
 
 lhMusic = \relative c' {
-  r2 <c g ees>2( |
-  <d g, d>1) |
-  r2. d,,4 r4 r |
+  r2 <c g ees>2(
+  <d g, d>1)
+  r2. d,,4 r4 r
   r4
 }
 
@@ -3075,31 +3086,32 @@ to 3.5 half staff spaces above the center line:
 
 This completes bar two, giving:
 
-@lilypond[quote,verbatim,ragged-right]
+@c line-width ensures no break
+@lilypond[quote,verbatim,ragged-right,line-width=5.5\in]
 rhMusic = \relative c'' {
-  r2 c4.\( g8 |
+  r2 c4.\( g8
   \once \override Tie #'staff-position = #3.5
-  bes1~ |
+  bes1~
   \bar "||"
   \time 6/4
   bes2. r8
   % Start polyphonic section of four voices
   <<
-    {c,8[ d fis bes a] | }
+    { c,8 d fis bes a }
   \\
-    {c,8~ c2 | }
+    { c,8~ c2 }
   \\
-    {s8 d2 | }
+    { s8 d2 }
   \\
-    {s4 fis4. | }
+    { s4 fis4. }
   >>
   g2.\)
 }
 
 lhMusic = \relative c' {
-  r2 <c g ees>2( |
-  <d g, d>1)\arpeggio |
-  r2. d,,4 r4 r |
+  r2 <c g ees>2(
+  <d g, d>1)\arpeggio
+  r2. d,,4 r4 r
   r4
 }
 
@@ -3121,9 +3133,9 @@ lhMusic = \relative c' {
 On to bar three and the start of the Moderato section.  The tutorial
 showed how to add embolded text with the @code{\markup} command, so
 adding @q{Moderato} in bold is easy.  But how do we merge notes in
-different voices together?  This is where we need to turn to the
-Notation Reference for help.  A search for @qq{merge} in the Notation
-Reference index quickly leads us to the commands for merging
+different voices together?  This is where we need to turn again to
+the Notation Reference for help.  A search for @qq{merge} in the
+Notation Reference index quickly leads us to the commands for merging
 differently headed and differently dotted notes in @ruser{Collision
 resolution}.  In our example we need to merge both types of note for
 the duration of the polyphonic section in bar 3, so using the
@@ -3145,25 +3157,26 @@ to the start of that section and
 @noindent
 to the end, giving:
 
-@lilypond[quote,verbatim,ragged-right]
+@c line-width ensures no break
+@lilypond[quote,ragged-right,line-width=5.5\in]
 rhMusic = \relative c'' {
-  r2 c4.\( g8 |
+  r2 c4.\( g8
   \once \override Tie #'staff-position = #3.5
-  bes1~ |
+  bes1~
   \bar "||"
   \time 6/4
-  bes2.^\markup {\bold "Moderato"} r8
+  bes2.^\markup { \bold "Moderato" } r8
   \mergeDifferentlyHeadedOn
   \mergeDifferentlyDottedOn
   % Start polyphonic section of four voices
   <<
-    {c,8[ d fis bes a] | }
+    { c,8 d fis bes a }
   \\
-    {c,8~ c2 | }
+    { c,8~ c2 }
   \\
-    {s8 d2 | }
+    { s8 d2 }
   \\
-    {s4 fis4. | }
+    { s4 fis4. }
   >>
   \mergeDifferentlyHeadedOff
   \mergeDifferentlyDottedOff
@@ -3171,9 +3184,9 @@ rhMusic = \relative c'' {
 }
 
 lhMusic = \relative c' {
-  r2 <c g ees>2( |
-  <d g, d>1)\arpeggio |
-  r2. d,,4 r4 r |
+  r2 <c g ees>2(
+  <d g, d>1)\arpeggio
+  r2. d,,4 r4 r
   r4
 }
 
@@ -3210,27 +3223,28 @@ Applying these changes gives:
 @cindex Tie, example of overriding
 @cindex staff-position property, example
 
-@lilypond[quote,verbatim,ragged-right]
+@c line-width ensures no break
+@lilypond[quote,verbatim,ragged-right,line-width=5.5\in]
 rhMusic = \relative c'' {
-  r2 c4.\( g8 |
+  r2 c4.\( g8
   \once \override Tie #'staff-position = #3.5
-  bes1~ |
+  bes1~
   \bar "||"
   \time 6/4
-  bes2.^\markup {\bold "Moderato"} r8
+  bes2.^\markup { \bold "Moderato" } r8
   \mergeDifferentlyHeadedOn
   \mergeDifferentlyDottedOn
   % Start polyphonic section of four voices
   <<
-    {c,8[ d fis bes a] | }
+    { c,8 d fis bes a }
   \\
     % Move the c2 out of the main note column so the merge will work
-    {c,8~ \shiftOnn c2 | }
+    { c,8~ \shiftOnn c2 }
   \\
     % Stem on the d2 must be down to permit merging
-    {s8 \stemDown d2 | }
+    { s8 \stemDown d2 }
   \\
-    {s4 fis4. | }
+    { s4 fis4. }
   >>
   \mergeDifferentlyHeadedOff
   \mergeDifferentlyDottedOff
@@ -3238,9 +3252,9 @@ rhMusic = \relative c'' {
 }
 
 lhMusic = \relative c' {
-  r2 <c g ees>2( |
-  <d g, d>1)\arpeggio |
-  r2. d,,4 r4 r |
+  r2 <c g ees>2(
+  <d g, d>1)\arpeggio
+  r2. d,,4 r4 r
   r4
 }
 
@@ -3270,29 +3284,33 @@ the @code{force-hshift} property.  Here's the final result:
 @cindex Stem, example of overriding
 @cindex transparent property, example
 
-@lilypond[quote,verbatim,ragged-right]
+@c line-width ensures no break
+@lilypond[quote,verbatim,ragged-right,line-width=5.5\in]
 rhMusic = \relative c'' {
   r2
-  c4.\( g8 |
+  c4.\( g8
   \once \override Tie #'staff-position = #3.5
-  bes1~ |
+  bes1~
   \bar "||"
   \time 6/4
-  bes2.^\markup {\bold "Moderato"} r8
+  bes2.^\markup { \bold "Moderato" } r8
   \mergeDifferentlyHeadedOn
   \mergeDifferentlyDottedOn
   <<
-    {c,8[ d fis bes a] | }
+    { c,8 d fis bes a }
   \\
     % Reposition the c2 to the right of the merged note
-    {c,8~ \once \override NoteColumn #'force-hshift = #1.0
+    { c,8~ \once \override NoteColumn #'force-hshift = #1.0
     % Move the c2 out of the main note column so the merge will work
-    \shiftOnn c2}
+    \shiftOnn c2 }
   \\
     % Stem on the d2 must be down to permit merging
-    {s8 \stemDown \once \override Stem #'transparent = ##t d2}
+    { s8 \stemDown
+      \once \override Stem #'transparent = ##t
+      d2
+    }
   \\
-    {s4 fis4.}
+    { s4 fis4. }
   >>
   \mergeDifferentlyHeadedOff
   \mergeDifferentlyDottedOff
@@ -3300,9 +3318,9 @@ rhMusic = \relative c'' {
 }
 
 lhMusic = \relative c' {
-  r2 <c g ees>2( |
-  <d g, d>1)\arpeggio |
-  r2. d,,4 r4 r |
+  r2 <c g ees>2(
+  <d g, d>1)\arpeggio
+  r2. d,,4 r4 r
   r4
 }
 
@@ -3427,10 +3445,10 @@ We show here the effect of the two methods:
     \once \override Score.MetronomeMark #'transparent = ##t
     % Invisible tempo marking to lengthen fermata in MIDI
     \tempo 4=80
-    a\fermata
+    a4\fermata
     % New tempo for next section
     \tempo 4=100
-    a a a a
+    a4 a a a
   }
   \layout { }
   \midi { }
@@ -3449,10 +3467,10 @@ We show here the effect of the two methods:
     \once \override Score.MetronomeMark #'stencil = ##f
     % Invisible tempo marking to lengthen fermata in MIDI
     \tempo 4=80
-    a\fermata
+    a4\fermata
     % New tempo for next section
     \tempo 4=100
-    a a a a
+    a4 a a a
   }
   \layout { }
   \midi { }
@@ -3532,15 +3550,15 @@ VerseFour  = \lyricmode { O | \emphasize Tri -- ni -- ty \normal of | love and p
       \clef "treble"
       \new Voice = "Soprano"  { \voiceOne \global \SopranoMusic }
       \new Voice = "Alto" { \voiceTwo \AltoMusic }
-      \new Lyrics \lyricsto "Soprano" { \VerseOne   }
-      \new Lyrics \lyricsto "Soprano" { \VerseTwo   }
+      \new Lyrics \lyricsto "Soprano" { \VerseOne }
+      \new Lyrics \lyricsto "Soprano" { \VerseTwo }
       \new Lyrics \lyricsto "Soprano" { \VerseThree }
-      \new Lyrics \lyricsto "Soprano" { \VerseFour  }
+      \new Lyrics \lyricsto "Soprano" { \VerseFour }
     >>
     \new Staff <<
       \clef "bass"
       \new Voice = "Tenor" { \voiceOne \TenorMusic }
-      \new Voice = "Bass"  { \voiceTwo \BassMusic  }
+      \new Voice = "Bass"  { \voiceTwo \BassMusic }
     >>
   >>
 }
@@ -3572,9 +3590,11 @@ inst = #(define-music-function (parser location string) (string?)
 
 \relative c'' {
   \tempo 4=50
-  a4.\mpdolce d8 cis4--\glissando a | b4 bes a2
+  a4.\mpdolce d8 cis4--\glissando a
+  b4 bes a2
   \inst "Clarinet"
-  cis4.\< d8 e4 fis | g8(\! fis)-. e( d)-. cis2
+  cis4.\< d8 e4 fis
+  g8(\! fis)-. e( d)-. cis2
 }
 @end lilypond
 
@@ -3613,9 +3633,11 @@ Now let's modify our music (let's save this file as @file{"music.ly"}).
 
 \relative c'' @{
   \tempo 4=50
-  a4.\mpdolce d8 cis4--\glissando a | b4 bes a2
+  a4.\mpdolce d8 cis4--\glissando a
+  b4 bes a2
   \inst "Clarinet"
-  cis4.\< d8 e4 fis | g8(\! fis)-. e( d)-. cis2
+  cis4.\< d8 e4 fis
+  g8(\! fis)-. e( d)-. cis2
 @}
 @end example
 
@@ -3631,9 +3653,11 @@ inst = #(define-music-function (parser location string) (string?)
 
 \relative c'' {
   \tempo 4=50
-  a4.\mpdolce d8 cis4--\glissando a | b4 bes a2
+  a4.\mpdolce d8 cis4--\glissando a
+  b4 bes a2
   \inst "Clarinet"
-  cis4.\< d8 e4 fis | g8(\! fis)-. e( d)-. cis2
+  cis4.\< d8 e4 fis
+  g8(\! fis)-. e( d)-. cis2
 }
 @end lilypond
 
@@ -3698,9 +3722,11 @@ inst = #(define-music-function (parser location string) (string?)
 
 \relative c'' {
   \tempo 4=50
-  a4.\mpdolce d8 cis4--\glissando a | b4 bes a2
+  a4.\mpdolce d8 cis4--\glissando a
+  b4 bes a2
   \inst "Clarinet"
-  cis4.\< d8 e4 fis | g8(\! fis)-. e( d)-. cis2
+  cis4.\< d8 e4 fis
+  g8(\! fis)-. e( d)-. cis2
 }
 @end lilypond
 
@@ -3762,9 +3788,11 @@ inst = #(define-music-function (parser location string) (string?)
 
 \relative c'' {
   \tempo 4=50
-  a4.\mpdolce d8 cis4--\glissando a | b4 bes a2
+  a4.\mpdolce d8 cis4--\glissando a
+  b4 bes a2
   \inst "Clarinet"
-  cis4.\< d8 e4 fis | g8(\! fis)-. e( d)-. cis2
+  cis4.\< d8 e4 fis
+  g8(\! fis)-. e( d)-. cis2
 }
 @end lilypond
 
@@ -3900,7 +3928,7 @@ LilyPond internal operation.  Further explanation of these files
 is currently outside the scope of this manual, as a knowledge of
 the Scheme language is required.  Users should be warned that
 a substantial amount of technical knowledge or time is required
-to understand Scheme and these files (see @ref{Scheme tutorial}).
+to understand Scheme and these files (see @rextend{Scheme tutorial}).
 
 If you have this knowledge, the Scheme files which may be of
 interest are:
@@ -3930,8 +3958,8 @@ interest are:
 @node Avoiding tweaks with slower processing
 @subsection Avoiding tweaks with slower processing
 
-LilyPond can perform extra checks while it processes input files.  These
-checks will take extra time to perform, but fewer manual tweaks
+LilyPond can perform extra checks while it processes input files.
+These checks will take extra time to perform, but fewer manual tweaks
 may be required to obtain an acceptable result.  If a text script
 or part of the lyrics extends over the margins these checks will
 compress that line of the score just enough to fit within the
@@ -3951,6 +3979,11 @@ in-line in music, as follows:
 @}
 @end example
 
+However, @code{keep-inside-line} is expensive and the recommendation
+is to not enable it, to allow for faster processing, until creating
+a final version.  This way you do not need to manually add @code{\break}
+commands to avoid text running off the right-hand side of the page.
+
 @node Advanced tweaks with Scheme
 @subsection Advanced tweaks with Scheme
 
@@ -3961,7 +3994,7 @@ interface to the LilyPond internal operation.  Code written in
 the Scheme programming language can be incorporated directly in
 the internal operation of LilyPond.  Of course, at least a basic
 knowledge of programming in Scheme is required to do this, and an
-introduction is provided in the @ref{Scheme tutorial}.
+introduction is provided in the @rextend{Scheme tutorial}.
 
 As an illustration of one of the many possibilities, instead of
 setting a property to a constant it can be set to a Scheme
@@ -3995,30 +4028,15 @@ the staff.
 \relative c' {
   % Arrange to obtain color from color-notehead procedure
   \override NoteHead #'color = #color-notehead
-  c2 c' |
-  b4 g8 a b4 c |
-  c,2 a' |
-  g1 |
-}
-\addlyrics {
-  Some -- where o -- ver the Rain -- bow, way up high,
+  a2 b
+  c2 d
+  e2 f
+  g2 a
 }
 @end lilypond
 
 Further examples showing the use of these programmable interfaces
-can be found in @ref{Tweaking with Scheme}.
-
-
-
-
-
-
-
-
-
-
-
-
+can be found in @rextend{Callback functions}.