]> git.donarmstrong.com Git - lilypond.git/blobdiff - Documentation/user/changing-defaults.itely
Change Info docs setup and clean up Documentation/user/GNUmakefile
[lilypond.git] / Documentation / user / changing-defaults.itely
index 9aece758792f30d04b6dea406db6d39a2020490f..d69c86d1c7a1675c21da22fc1996664906820f4a 100644 (file)
@@ -20,15 +20,15 @@ are available and explains how to lookup which knob to use for a
 particular effect.
 
 
-@cindex Program reference
+@cindex Internals Reference
 
 The controls available for tuning are described in a separate
 document, the
 @iftex
-Program reference manual.
+Internals Reference manual.
 @end iftex
 @ifnottex
-@ref{Top,Program reference,,lilypond-internals}.
+@ref{Top,Internals Reference,,lilypond-internals}.
 @end ifnottex
 That manual
 lists all different variables, functions and options available in
@@ -68,579 +68,11 @@ on entering numbers, lists, strings, and symbols in Scheme.}
 
 
 @menu
-* Automatic notation::          
 * Interpretation contexts::     
 * The \override command::       
 @end menu
 
 
-@node Automatic notation
-@section Automatic notation
-
-This section describes how to change the way that accidentals and
-beams are automatically displayed.
-
-@menu
-* Automatic accidentals::       
-* Setting automatic beam behavior::  
-@end menu
-
-@node Automatic accidentals
-@subsection Automatic accidentals
-@cindex Automatic accidentals
-
-Common rules for typesetting accidentals have been placed in a
-function.  This function is called as follows
-
-@funindex set-accidental-style
-@example
-#(set-accidental-style 'STYLE)
-@end example
-
-@c TODO: check the context stuff below
-@c -does it *really* work?
-@c -the default contexts as specified in
-@c  scm/music-function.scm seem to be different -vv
-
-Optionally, the function can take two arguments: the name of the
-accidental style, and an optional argument that denotes the context that
-should be changed:
-
-@example
-#(set-accidental-style 'STYLE #('CONTEXT#))
-@end example
-
-If no context name is supplied, @code{Staff} is the default,
-but you may wish to apply the accidental style to a single @code{Voice}
-instead.
-
-The following accidental styles are supported:
-
-@table @code
-@item default
-This is the default typesetting behavior.  It corresponds
-to 18th century common practice: Accidentals are
-remembered to the end of the measure in which they occur and
-only on their own octave.
-
-@lilypond[quote,ragged-right]
-musicA = {  << \relative {  cis'8 fis, d'4 <a cis>8 f bis4 | cis2. <c, g'>4 | } \\
-       \relative { ais'2 cis, | fis8 b a4 cis2 | } >> }
-
-musicB = { \clef bass  \new Voice { \voiceTwo \relative { < fis, a cis>4 
-       \change Staff = up cis' \change Staff = down <fis, a>  
-       \change Staff = up dis' | \change Staff = down <fis, a cis>4 gis 
-       <f a d>2 |  } }}
-
-\score { 
-       \new PianoStaff {
-       << \context Staff = "up" {
-              %#(set-accidental-style 'default) 
-       \musicA }
-       \context Staff = "down"{
-              %#(set-accidental-style 'default)
-       \musicB } >> }
-       \header { piece = \markup {\fill-line { \fontsize #3  "'default" }}}
-}
-@end lilypond
-
-@item voice
-The normal behavior is to remember the accidentals on
-Staff-level.  This variable, however, typesets accidentals
-individually for each voice.  Apart from that, the rule is similar to
-@code{default}.
-
-@example
- \new Staff <<
-        #(set-accidental-style 'voice)
-       @{ @dots{} @}
-       >>
-@end example
-
-As a result, accidentals from one voice do not get canceled in other
-voices, which is often an unwanted result: in the following example, it
-is hard to determine whether the second @samp{a} should be played
-natural or sharp.
-
-@lilypond[quote,ragged-right]
-musicA = {  << \relative {  cis'8 fis, d'4 <a cis>8 f bis4 | cis2. <c, g'>4 | } \\
-       \relative { ais'2 cis, | fis8 b a4 cis2 | } >> }
-
-musicB = { \clef bass  \new Voice { \voiceTwo \relative { < fis, a cis>4 
-       \change Staff = up cis' \change Staff = down <fis, a>  
-       \change Staff = up dis' | \change Staff = down <fis, a cis>4 gis 
-       <f a d>2 |  } }}
-
-\score { 
-       \new PianoStaff {
-       << \context Staff = "up" {
-              #(set-accidental-style 'voice) 
-       \musicA }
-       \context Staff = "down"{
-              #(set-accidental-style 'voice)
-       \musicB } >> }
-       \header { piece = \markup {\fill-line { \fontsize #3  "'voice" }}}
-}
-@end lilypond
-
-The @code{voice} option should be used if the voices
-are to be read solely by individual musicians.  If the staff is to be
-used by one musician (e.g., a conductor) then
-@code{modern} or @code{modern-cautionary}
-should be used instead.
-
-@item modern
-@funindex modern style accidentals
-This rule corresponds to the common practice in the 20th century.  This rule
-prints the same accidentals as @code{default}, but temporary
-accidentals also are canceled in other octaves.  Furthermore,
-in the same octave, they also get canceled in the following
-measure: in the following example, notice the two natural signs which appear
-in the second bar of the upper staff.
-
-@lilypond[quote,ragged-right]
-musicA = {  << \relative {  cis'8 fis, d'4 <a cis>8 f bis4 | cis2. <c, g'>4 | } \\
-       \relative { ais'2 cis, | fis8 b a4 cis2 | } >> }
-
-musicB = { \clef bass  \new Voice { \voiceTwo \relative { < fis, a cis>4 
-       \change Staff = up cis' \change Staff = down <fis, a>  
-       \change Staff = up dis' | \change Staff = down <fis, a cis>4 gis 
-       <f a d>2 |  } }}
-
-\score { 
-       \new PianoStaff {
-       << \context Staff = "up" {
-              #(set-accidental-style 'modern) 
-       \musicA }
-       \context Staff = "down"{
-              #(set-accidental-style 'modern)
-       \musicB } >> }
-       \header { piece = \markup {\fill-line { \fontsize #3  "'modern" }}}
-}
-@end lilypond
-
-@item @code{modern-cautionary}
-@funindex modern-cautionary
-This rule is similar to @code{modern}, but the @q{extra} accidentals
-(the ones not typeset by @code{default}) are typeset as cautionary
-accidentals.  They are printed in reduced size or (by default)
-with parentheses -- this can be set by definig the @code{cautionary-style}
-property of the @internalsref{AccidentalSuggestion} object.
-
-@lilypond[quote,ragged-right]
-musicA = {  << \relative {  cis'8 fis, d'4 <a cis>8 f bis4 | cis2. <c, g'>4 | } \\
-       \relative { ais'2 cis, | fis8 b a4 cis2 | } >> }
-
-musicB = { \clef bass  \new Voice { \voiceTwo \relative { < fis, a cis>4 
-       \change Staff = up cis' \change Staff = down <fis, a>  
-       \change Staff = up dis' | \change Staff = down <fis, a cis>4 gis 
-       <f a d>2 |  } }}
-
-\score { 
-       \new PianoStaff {
-       << \context Staff = "up" {
-              #(set-accidental-style 'modern-cautionary) 
-       \musicA }
-       \context Staff = "down"{
-              #(set-accidental-style 'modern-cautionary)
-       \musicB } >> }
-       \header { piece = \markup {\fill-line { \fontsize #3  "'modern-cautionary" }}}
-}
-@end lilypond
-
-@funindex modern-voice
-@item modern-voice
-This rule is used for multivoice accidentals to be read both by musicians
-playing one voice and musicians playing all voices.  Accidentals are
-typeset for each voice, but they @emph{are} canceled across voices in
-the same @internalsref{Staff}.
-
-@lilypond[quote,ragged-right]
-musicA = {  << \relative {  cis'8 fis, d'4 <a cis>8 f bis4 | cis2. <c, g'>4 | } \\
-       \relative { ais'2 cis, | fis8 b a4 cis2 | } >> }
-
-musicB = { \clef bass  \new Voice { \voiceTwo \relative { < fis, a cis>4 
-       \change Staff = up cis' \change Staff = down <fis, a>  
-       \change Staff = up dis' | \change Staff = down <fis, a cis>4 gis 
-       <f a d>2 |  } }}
-
-\score { 
-       \new PianoStaff {
-       << \context Staff = "up" {
-              #(set-accidental-style 'modern-voice) 
-       \musicA }
-       \context Staff = "down"{
-              #(set-accidental-style 'modern-voice)
-       \musicB } >> }
-       \header { piece = \markup {\fill-line { \fontsize #3  "'modern-voice" }}}
-}
-@end lilypond
-
-@funindex modern-voice-cautionary
-@item modern-voice-cautionary
-This rule is the same as @code{modern-voice}, but with the extra
-accidentals (the ones not typeset by @code{voice}) typeset
-as cautionaries.  Even though all accidentals typeset by
-@code{default} @emph{are} typeset by this variable,
-some of them are typeset as cautionaries.
-
-@lilypond[quote,ragged-right]
-musicA = {  << \relative {  cis'8 fis, d'4 <a cis>8 f bis4 | cis2. <c, g'>4 | } \\
-       \relative { ais'2 cis, | fis8 b a4 cis2 | } >> }
-
-musicB = { \clef bass  \new Voice { \voiceTwo \relative { < fis, a cis>4 
-       \change Staff = up cis' \change Staff = down <fis, a>  
-       \change Staff = up dis' | \change Staff = down <fis, a cis>4 gis 
-       <f a d>2 |  } }}
-
-\score { 
-       \new PianoStaff {
-       << \context Staff = "up" {
-              #(set-accidental-style 'modern-voice-cautionary) 
-       \musicA }
-       \context Staff = "down"{
-              #(set-accidental-style 'modern-voice-cautionary)
-       \musicB } >> }
-       \header { piece = \markup {\fill-line { \fontsize #3  "'modern-voice-cautionary" }}}
-}
-@end lilypond
-
-@item piano
-@funindex piano accidentals
-This accidental style takes place in a GrandStaff context.  However, you have to 
-explicitly set it for @emph{each} individual Staff of the GrandStaff:
-
-@example
-\new GrandStaff @{ <<
-  \new Staff = "up" @{ <<
-    #(set-accidental-style 'piano)
-    @{ @dots{} @}
-  >> @}
-  \new Staff = "down"@{ <<
-    #(set-accidental-style 'piano)
-  @{ @dots{} @}
-  >> @}
->> @}
-@end example
-
-This rule reflects 20th century practice for piano notation.  Its behavior is very
-similar to @code{modern} style, but here accidentals also get canceled
-across the staves in the same @internalsref{GrandStaff} or
-@internalsref{PianoStaff}.
-
-@lilypond[quote,ragged-right]
-musicA = {  << \relative {  cis'8 fis, d'4 <a cis>8 f bis4 | cis2. <c, g'>4 | } \\
-       \relative { ais'2 cis, | fis8 b a4 cis2 | } >> }
-
-musicB = { \clef bass  \new Voice { \voiceTwo \relative { < fis, a cis>4 
-       \change Staff = up cis' \change Staff = down <fis, a>  
-       \change Staff = up dis' | \change Staff = down <fis, a cis>4 gis 
-       <f a d>2 |  } }}
-
-\score { 
-       \new PianoStaff {
-       << \context Staff = "up" {
-              #(set-accidental-style 'piano) 
-       \musicA }
-       \context Staff = "down"{
-              #(set-accidental-style 'piano)
-       \musicB } >> }
-       \header { piece = \markup {\fill-line { \fontsize #3  "'piano" }}}
-}
-@end lilypond
-
-@item piano-cautionary
-@funindex #(set-accidental-style 'piano-cautionary)
-Same as @code{#(set-accidental-style 'piano)} but with the extra
-accidentals typeset as cautionaries.
-
-@lilypond[quote,ragged-right]
-musicA = {  << \relative {  cis'8 fis, d'4 <a cis>8 f bis4 | cis2. <c, g'>4 | } \\
-       \relative { ais'2 cis, | fis8 b a4 cis2 | } >> }
-
-musicB = { \clef bass  \new Voice { \voiceTwo \relative { < fis, a cis>4 
-       \change Staff = up cis' \change Staff = down <fis, a>  
-       \change Staff = up dis' | \change Staff = down <fis, a cis>4 gis 
-       <f a d>2 |  } }}
-
-\score { 
-       \new PianoStaff {
-       << \context Staff = "up" {
-              #(set-accidental-style 'piano-cautionary) 
-       \musicA }
-       \context Staff = "down"{
-              #(set-accidental-style 'piano-cautionary)
-       \musicB } >> }
-       \header { piece = \markup {\fill-line { \fontsize #3  "'piano-cautionary" }}}
-}
-@end lilypond
-
-@item no-reset
-@funindex no-reset accidental style
-This is the same as @code{default} but with accidentals lasting
-@q{forever} and not only until the next measure:
-@lilypond[quote,ragged-right]
-musicA = {  << \relative {  cis'8 fis, d'4 <a cis>8 f bis4 | cis2. <c, g'>4 | } \\
-       \relative { ais'2 cis, | fis8 b a4 cis2 | } >> }
-
-musicB = { \clef bass  \new Voice { \voiceTwo \relative { < fis, a cis>4 
-       \change Staff = up cis' \change Staff = down <fis, a>  
-       \change Staff = up dis' | \change Staff = down <fis, a cis>4 gis 
-       <f a d>2 |  } }}
-
-\score { 
-       \new PianoStaff {
-       << \context Staff = "up" {
-              #(set-accidental-style 'no-reset) 
-       \musicA }
-       \context Staff = "down"{
-              #(set-accidental-style 'no-reset)
-       \musicB } >> }
-       \header { piece = \markup {\fill-line { \fontsize #3  "'no-reset" }}}
-}
-@end lilypond
-
-@item forget
-This is sort of the opposite of @code{no-reset}: Accidentals
-are not remembered at all -- and hence all accidentals are
-typeset relative to the key signature, regardless of what was
-before in the music
-
-@lilypond[quote,ragged-right]
-musicA = {  << \relative {  cis'8 fis, d'4 <a cis>8 f bis4 | cis2. <c, g'>4 | } \\
-       \relative { ais'2 cis, | fis8 b a4 cis2 | } >> }
-
-musicB = { \clef bass  \new Voice { \voiceTwo \relative { < fis, a cis>4 
-       \change Staff = up cis' \change Staff = down <fis, a>  
-       \change Staff = up dis' | \change Staff = down <fis, a cis>4 gis 
-       <f a d>2 |  } }}
-
-\score { 
-       \new PianoStaff {
-       << \context Staff = "up" {
-              #(set-accidental-style 'forget) 
-       \musicA }
-       \context Staff = "down"{
-              #(set-accidental-style 'forget)
-       \musicB } >> }
-       \header { piece = \markup {\fill-line { \fontsize #3  "'forget" }}}
-}
-@end lilypond
-@end table
-
-
-@seealso
-
-Program reference: @internalsref{Accidental_engraver},
-@internalsref{Accidental}, @internalsref{AccidentalSuggestion} and @internalsref{AccidentalPlacement}.
-
-
-@refbugs
-
-Simultaneous notes are considered to be entered in sequential
-mode.  This means that in a chord the accidentals are typeset as if the
-notes in the chord happen one at a time, in the order in which
-they appear in the input file.  This is a problem when accidentals
-in a chord depend on each other,
-which does not happen for the default accidental style.  The problem
-can be solved by manually inserting @code{!} and @code{?} for the
-problematic notes.
-
-
-@node Setting automatic beam behavior
-@subsection Setting automatic beam behavior
-
-@funindex autoBeamSettings
-@funindex (end * * * *)
-@funindex (begin * * * *)
-@cindex automatic beams, tuning
-@cindex tuning automatic beaming
-
-@c [TODO: use \applyContext]
-
-In normal time signatures, automatic beams can start on any note but can
-only end in a few positions within the measure: beams can end on a beat,
-or at durations specified by the properties in
-@code{autoBeamSettings}.  The properties in @code{autoBeamSettings}
-consist of a list of rules for where beams can begin and end.  The
-default @code{autoBeamSettings} rules are defined in
-@file{scm/@/auto@/-beam@/.scm}.
-
-In order to add a rule to the list, use
-@example
-#(override-auto-beam-setting '(be p q n m) a b [context])
-@end example
-
-@itemize
-
-@item @code{be} is either "begin" or "end".
-
-@item @code{p/q} is the duration of the note for which you want
-to add a rule.  A beam is considered to have the duration of its
-shortest note.  Set @code{p} and @code{q} to @code{'*'} to
-have this apply to any beam.
-
-@item @code{n/m} is the time signature to which
-this rule should apply.  Set @code{n} and @code{m} to @code{'*'}
-to have this apply in any time signature.
-
-@item @code{a/b} is the position in the bar at which the beam should
-begin/end.
-
-@item @code{context} is optional, and it specifies the context at which
-the change should be made.  The default is @code{'Voice}.
-@code{#(score-override-auto-beam-setting '(A B C D) E F)} is equivalent to
-@code{#(override-auto-beam-setting '(A B C D) E F 'Score)}.
-
-@end itemize
-
-For example, if automatic beams should always end on the first quarter
-note, use
-
-@example
-#(override-auto-beam-setting '(end * * * *) 1 4)
-@end example
-
-You can force the beam settings to only take effect on beams whose shortest
-note is a certain duration
-
-@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
-\time 2/4
-#(override-auto-beam-setting '(end 1 16 * *) 1 16)
-a16 a a a a a a a |
-a32 a a a a16 a a a a a |
-#(override-auto-beam-setting '(end 1 32 * *) 1 16)
-a32 a a a a16 a a a a a |
-@end lilypond
-
-You can force the beam settings to only take effect in certain time
-signatures
-
-@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
-\time 5/8
-#(override-auto-beam-setting '(end * * 5 8) 2 8)
-c8 c d d d
-\time 4/4
-e8 e f f e e d d
-\time 5/8
-c8 c d d d
-@end lilypond
-
-You can also remove a previously set beam-ending rule by using
-
-@example
-#(revert-auto-beam-setting '(be p q n m) a b [context])
-@end example
-
-@noindent
-be, p, q, n, m, a, b and context are the same as above.  Note that the
-default rules are specified in @file{scm/@/auto@/-beam@/.scm},
-so you can revert rules that you did not explicitly create.
-
-@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
-\time 4/4
-a16 a a a a a a a a a a a a a a a
-#(revert-auto-beam-setting '(end 1 16 4 4) 1 4)
-a16 a a a a a a a a a a a a a a a
-@end lilypond
-
-The rule in a revert-auto-beam-setting statement must exactly match the
-original rule.  That is, no wildcard expansion is taken into account.
-
-@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
-\time 1/4
-#(override-auto-beam-setting '(end 1 16 1 4) 1 8)
-a16 a a a
-#(revert-auto-beam-setting '(end 1 16 * *) 1 8) % this won't revert it!
-a a a a
-#(revert-auto-beam-setting '(end 1 16 1 4) 1 8) % this will
-a a a a
-@end lilypond
-
-
-
-@c TODO:  old material -- not covered by above stuff, I think.
-If automatic beams should end on every quarter in 5/4 time, specify
-all endings
-@example
-#(override-auto-beam-setting '(end * * * *) 1 4 'Staff)
-#(override-auto-beam-setting '(end * * * *) 1 2 'Staff)
-#(override-auto-beam-setting '(end * * * *) 3 4 'Staff)
-#(override-auto-beam-setting '(end * * * *) 5 4 'Staff)
-@dots{}
-@end example
-
-The same syntax can be used to specify beam starting points.  In this
-example, automatic beams can only end on a dotted quarter note
-@example
-#(override-auto-beam-setting '(end * * * *) 3 8)
-#(override-auto-beam-setting '(end * * * *) 1 2)
-#(override-auto-beam-setting '(end * * * *) 7 8)
-@end example
-In 4/4 time signature, this means that automatic beams could end only on
-3/8 and on the fourth beat of the measure (after 3/4, that is 2 times
-3/8, has passed within the measure).
-
-If any unexpected beam behaviour occurs, check the default automatic beam
-settings in @file{scm/@/auto@/-beam@/.scm}
-for possible interference, because the beam
-endings defined there will still apply on top of your own overrides.  Any
-unwanted endings in the default vales must be reverted for your time
-signature(s).
-
-For example, to typeset @code{(3 4 3 2)}-beam endings in 12/8, begin
-with
-
-@example
-%%% revert default values in scm/auto-beam.scm regarding 12/8 time
-#(revert-auto-beam-setting '(end * * 12 8) 3 8)
-#(revert-auto-beam-setting '(end * * 12 8) 3 4)
-#(revert-auto-beam-setting '(end * * 12 8) 9 8)
-
-%%% your new values
-#(override-auto-beam-setting '(end 1 8 12 8) 3 8)
-#(override-auto-beam-setting '(end 1 8 12 8) 7 8)
-#(override-auto-beam-setting '(end 1 8 12 8) 10 8)
-@end example
-
-@cindex automatic beam generation
-@cindex autobeam
-@funindex autoBeaming
-@cindex lyrics
-
-If beams are used to indicate melismata in songs, then automatic
-beaming should be switched off with @code{\autoBeamOff}.
-
-
-@refcommands
-
-@funindex \autoBeamOff
-@code{\autoBeamOff},
-@funindex \autoBeamOn
-@code{\autoBeamOn}.
-
-@commonprop
-
-Beaming patterns may be altered with the @code{beatGrouping} property,
-
-@lilypond[quote,verbatim,relative=2,fragment,ragged-right]
-\time 5/16
-\set beatGrouping = #'(2 3)
-c8[^"(2+3)" c16 c8]
-\set beatGrouping = #'(3 2)
-c8[^"(3+2)" c16 c8]
-@end lilypond
-
-
-@refbugs
-
-If a score ends while an automatic beam has not been ended and is
-still accepting notes, this last beam will not be typeset at all.  The
-same holds polyphonic voices, entered with @code{<< @dots{} \\ @dots{}
->>}.  If a polyphonic voice ends while an automatic beam is still
-accepting notes, it is not typeset.
-
-
 @node Interpretation contexts
 @section Interpretation contexts
 
@@ -680,26 +112,26 @@ to a single staff, while a bar line must be synchronized across the
 entire score.
 
 Within LilyPond, these rules and bits of information are grouped in
-@emph{Contexts}.  Some examples of contexts are @context{Voice},
-@context{Staff}, and @context{Score}.  They are hierarchical, for
-example: a @context{Staff} can contain many @context{Voice}s, and a
-@context{Score} can contain many @context{Staff} contexts.
+@emph{Contexts}.  Some examples of contexts are @code{Voice},
+@code{Staff}, and @code{Score}.  They are hierarchical, for
+example: a @code{Staff} can contain many @code{Voice}s, and a
+@code{Score} can contain many @code{Staff} contexts.
 
 @quotation
-@image{context-example,5cm,,}
+@sourceimage{context-example,5cm,,}
 @end quotation
 
 Each context has the responsibility for enforcing some notation rules,
 creating some notation objects and maintaining the associated
-properties.  For example, the @context{Voice} context may introduce an
-accidental and then the @context{Staff} context maintains the rule to
+properties.  For example, the @code{Voice} context may introduce an
+accidental and then the @code{Staff} context maintains the rule to
 show or suppress the accidental for the remainder of the measure.  The
-synchronization of bar lines is handled at @context{Score} context.
+synchronization of bar lines is handled at @code{Score} context.
 
 However, in some music we may not want the bar lines to be
 synchronized -- consider a polymetric score in 4/4 and 3/4 time.  In
-such cases, we must modify the default settings of the @context{Score}
-and @context{Staff} contexts.
+such cases, we must modify the default settings of the @code{Score}
+and @code{Staff} contexts.
 
 For very simple scores, contexts are created implicitly, and you need
 not be aware of them.  For larger pieces, such as anything with more
@@ -807,7 +239,7 @@ music = @{ c4 c4 @}
 arts = @{ s4-. s4-> @}
 @end example
 
-They are combined by sending both to the same @context{Voice} context,
+They are combined by sending both to the same @code{Voice} context,
 
 @example
 <<
@@ -844,13 +276,13 @@ any context of type @var{type}, regardless of its given name.
 This variant is used with music expressions that can be interpreted at
 several levels.  For example, the @code{\applyOutput} command (see
 @ref{Running a function on all layout objects}).  Without an explicit
-@code{\context}, it is usually applied to @context{Voice}
+@code{\context}, it is usually applied to @code{Voice}
 
 @example
 \applyOutput #'@var{context} #@var{function}   % apply to Voice
 @end example
 
-To have it interpreted at the @context{Score} or @context{Staff} level use
+To have it interpreted at the @code{Score} or @code{Staff} level use
 these forms
 
 @example
@@ -888,8 +320,8 @@ multi-rests are condensed.  The value assigned is a Scheme object.  In
 this case, it is @code{#t}, the boolean True value.
 
 If the @var{context} argument is left out, then the current bottom-most
-context (typically @context{ChordNames}, @context{Voice}, or
-@context{Lyrics}) is used.  In this example,
+context (typically @code{ChordNames}, @code{Voice}, or
+@code{Lyrics}) is used.  In this example,
 
 @lilypond[quote,verbatim,relative=2,fragment]
 c8 c c c
@@ -912,8 +344,8 @@ R1*2
 @end lilypond
 
 Contexts are hierarchical, so if a bigger context was specified, for
-example @context{Staff}, then the change would also apply to all
-@context{Voice}s in the current stave.  The change is applied
+example @code{Staff}, then the change would also apply to all
+@code{Voice}s in the current stave.  The change is applied
 @q{on-the-fly}, during the music, so that the setting only affects the
 second group of eighth notes.
 
@@ -1000,14 +432,14 @@ For a full a description of each plug-in, see
 @internalsref{Engravers}.
 @end ifhtml
 @ifnothtml
-Program reference @expansion{} Translation @expansion{} Engravers.
+Internals Reference @expansion{} Translation @expansion{} Engravers.
 @end ifnothtml
 Every context described in
 @ifhtml
 @internalsref{Contexts}
 @end ifhtml
 @ifnothtml
-Program reference @expansion{} Translation @expansion{} Context.
+Internals Reference @expansion{} Translation @expansion{} Context.
 @end ifnothtml
 lists the engravers used for that context.
 
@@ -1119,7 +551,7 @@ The command
 
 @noindent
 makes stems thicker (the default is 1.3, with staff line thickness as a
-unit).  Since the command specifies @context{Staff} as context, it only
+unit).  Since the command specifies @code{Staff} as context, it only
 applies to the current staff.  Other staves will keep their normal
 appearance.  Here we see the command in action:
 
@@ -1132,11 +564,11 @@ c4
 @end lilypond
 
 The @code{\override} command changes the definition of the @code{Stem}
-within the current @context{Staff}.  After the command is interpreted
+within the current @code{Staff}.  After the command is interpreted
 all stems are thickened.
 
 Analogous to @code{\set}, the @var{context} argument may be left out,
-causing the default context @context{Voice} to be used.  Adding
+causing the default context @code{Voice} to be used.  Adding
 @code{\once} applies the change during one timestep only.
 
 @lilypond[quote,fragment,verbatim,relative=2]
@@ -1275,13 +707,13 @@ after calling @code{\RemoveEmptyStaffContext}, ie
 @node Defining new contexts
 @subsection Defining new contexts
 
-Specific contexts, like @context{Staff} and @code{Voice}, are made of
+Specific contexts, like @code{Staff} and @code{Voice}, are made of
 simple building blocks.  It is possible to create new types of
 contexts with different combinations of engraver plug-ins.
 
 The next example shows how to build a different type of
-@context{Voice} context from scratch.  It will be similar to
-@code{Voice}, but only prints centered slash noteheads.  It can be used
+@code{Voice} context from scratch.  It will be similar to
+@code{Voice}, but only prints centered slash note heads.  It can be used
 to indicate improvisation in jazz pieces,
 
 @lilypond[quote,ragged-right]
@@ -1328,9 +760,9 @@ First it is necessary to define a name for the new context:
 \name ImproVoice
 @end example
 
-Since it is similar to the @context{Voice}, we want commands that work
-on (existing) @context{Voice}s to remain working.  This is achieved by
-giving the new context an alias @context{Voice},
+Since it is similar to the @code{Voice}, we want commands that work
+on (existing) @code{Voice}s to remain working.  This is achieved by
+giving the new context an alias @code{Voice},
 
 @example
 \alias Voice
@@ -1388,8 +820,8 @@ Put together, we get
 @end example
 
 @funindex \accepts
-Contexts form hierarchies.  We want to hang the @context{ImproVoice}
-under @context{Staff}, just like normal @code{Voice}s.  Therefore, we
+Contexts form hierarchies.  We want to hang the @code{ImproVoice}
+under @code{Staff}, just like normal @code{Voice}s.  Therefore, we
 modify the @code{Staff} definition with the @code{\accepts}
 command,
 
@@ -1441,6 +873,8 @@ New contexts may be aligned above or below exisiting contexts.  This
 could be useful in setting up a vocal staff (@rlearning{Vocal ensembles}) and
 in ossia,
 
+FIXME: this section doens't work in pdf.  (?)
+
 @cindex ossia
 @findex alignAboveContext
 @findex alignBelowContext
@@ -1511,7 +945,7 @@ Commands which change output generally look like
 To construct this tweak we must determine these bits of information:
 
 @itemize
-@item the context: here @context{Voice}.
+@item the context: here @code{Voice}.
 @item the layout object: here @code{Stem}.
 @item the layout property: here @code{thickness}.
 @item a sensible value: here @code{3.0}.
@@ -1560,7 +994,7 @@ If you visit the documentation on fingering instructions (in
 @quotation
 @seealso
 
-Program reference: @internalsref{Fingering}.
+Internals Reference: @internalsref{Fingering}.
 
 @end quotation
 
@@ -1697,7 +1131,7 @@ That piece of text is typeset with a font, unlike slurs or beams.
 
 @item
 Horizontally, the center of the symbol should be aligned to the
-center of the notehead.
+center of the note head.
 
 @item
 Vertically, the symbol is placed next to the note and the staff.
@@ -1754,7 +1188,7 @@ does not amount to much.  The initialization file (see
 
 @noindent
 As you can see, the @code{Fingering} object is nothing more than a
-bunch of variable settings, and the webpage in the Program Reference
+bunch of variable settings, and the webpage in the Internals Reference
 is directly generated from this definition.
 
 
@@ -1796,7 +1230,7 @@ Add this much extra space between objects that are next to each other.
 @end quotation
 
 By increasing the value of @code{padding}, we can move the
-fingering away from the notehead.  The following command inserts
+fingering away from the note head.  The following command inserts
 3 staff spaces of white
 between the note and the fingering:
 @example
@@ -1814,7 +1248,7 @@ f
 @end lilypond
 
 
-In this case, the context for this tweak is @context{Voice}.  This
+In this case, the context for this tweak is @code{Voice}.  This
 fact can also be deduced from the program reference, for the page for
 the @internalsref{Fingering_engraver} plug-in says
 
@@ -1887,7 +1321,7 @@ F = \tweak #'font-size #-3 -\flageolet
 @noindent
 With other words, @code{\tweak} doesn't behave like an articulation
 regarding the syntax; in particular, it can't be attached with
-@samp{^} and @samp{_}.
+@code{^} and @code{_}.
 
 Using Scheme, this problem can be circumvented.  The route to the
 result is given in @ref{Adding articulation to notes (example)},
@@ -1908,12 +1342,12 @@ F = #(let ((m (make-music 'ArticulationEvent
 
 @noindent
 Here, the @code{tweaks} properties of the flageolet object
-@samp{m} (created with @code{make-music}) are extracted with
+@code{m} (created with @code{make-music}) are extracted with
 @code{ly:music-property}, a new key-value pair to change the
 font size is prepended to the property list with the
 @code{acons} Scheme function, and the result is finally
 written back with @code{set!}.  The last element of the
-@code{let} block is the return value, @samp{m} itself.
+@code{let} block is the return value, @code{m} itself.
 
 
 @node \set versus \override
@@ -1927,7 +1361,7 @@ Contexts can have properties, which are usually named in
 @code{studlyCaps}.  They mostly control the translation from
 music to notatino, eg. @code{localKeySignature} (for determining
 whether to print accidentals), @code{measurePosition} (for
-determining when to print a barline).  Context properties can
+determining when to print a bar line).  Context properties can
 change value over time while interpreting a piece of music;
 @code{measurePosition} is an obvious example of
 this.  Context properties are modified with @code{\set}.