]> git.donarmstrong.com Git - lilypond.git/blobdiff - Documentation/user/text.itely
Imported Upstream version 2.12.3
[lilypond.git] / Documentation / user / text.itely
index daae0010341b23d90b96fe8b99560648b8c4c705..b235dfda0896cd7f9d36a80376b41c133ba9e1d3 100644 (file)
@@ -6,7 +6,7 @@
     version that you are working on.  See TRANSLATION for details.
 @end ignore
 
     version that you are working on.  See TRANSLATION for details.
 @end ignore
 
-@c \version "2.11.51"
+@c \version "2.12.0"
 
 @node Text
 @section Text
 
 @node Text
 @section Text
@@ -20,89 +20,90 @@ formatting) in music scores.
 Some text elements that are not dealt with here are discussed in other
 specific sections: @ref{Vocal music}, @ref{Titles and headers}.
 
 Some text elements that are not dealt with here are discussed in other
 specific sections: @ref{Vocal music}, @ref{Titles and headers}.
 
-
-@cindex Text, other languages
-@warning{To write accented and special text (such as characters
-from other languages), simply insert the characters directly into
-the LilyPond file.  The file must be saved as UTF-8.  For more
-information, see @ref{Text encoding}.}
-
 @menu
 @menu
-* Writing text::                
-* Formatting text::             
-* Fonts::                       
+* Writing text::
+* Formatting text::
+* Fonts::
 @end menu
 
 @end menu
 
-
 @node Writing text
 @subsection Writing text
 
 This section introduces different ways of adding text to a score.
 
 @node Writing text
 @subsection Writing text
 
 This section introduces different ways of adding text to a score.
 
+@cindex Text, other languages
+@warning{To write accented and special text (such as characters
+from other languages), simply insert the characters directly into
+the LilyPond file.  The file must be saved as UTF-8.  For more
+information, see @ref{Text encoding}.}
+
 @menu
 @menu
-* Text scripts::                
-* Text spanners::               
-* Text marks::                  
-* Separate text::               
+* Text scripts::
+* Text spanners::
+* Text marks::
+* Separate text::
 @end menu
 
 
 @node Text scripts
 @end menu
 
 
 @node Text scripts
-@subsubsection Text scripts
+@unnumberedsubsubsec Text scripts
 
 @cindex Text scripts
 @cindex text items, non-empty
 @cindex non-empty texts
 @cindex quoted text
 
 
 @cindex Text scripts
 @cindex text items, non-empty
 @cindex non-empty texts
 @cindex quoted text
 
-Simple @q{quoted text} indications may be added
+Simple @qq{quoted text} indications may be added
 to a score, as demonstrated in the following example.
 to a score, as demonstrated in the following example.
-Such indications can be manually placed
+Such indications may be manually placed
 above or below the staff, using the
 syntax described in @ref{Direction and
 placement}.
 
 above or below the staff, using the
 syntax described in @ref{Direction and
 placement}.
 
-@lilypond[quote,fragment,ragged-right,verbatim,relative=1]
-d8^"pizz." e f g a4-"scherz." f
+@lilypond[quote,verbatim,relative=2]
+a8^"pizz." g f e a4-"scherz." f
 @end lilypond
 
 This syntax is actually a shorthand; more complex text
 formatting may be added to a note by explicitly using a
 @code{\markup} block, as described in @ref{Formatting text}.
 
 @end lilypond
 
 This syntax is actually a shorthand; more complex text
 formatting may be added to a note by explicitly using a
 @code{\markup} block, as described in @ref{Formatting text}.
 
-@lilypond[quote,fragment,ragged-right,verbatim,relative=1]
-d8^\markup { \italic pizz. } e f g 
+@lilypond[quote,verbatim,relative=2]
+a8^\markup { \italic pizz. } g f e
 a4_\markup { \tiny scherz. \bold molto } f
 @end lilypond
 
 By default, text indications do not influence the note spacing.
 However, their widths can be taken into account:
 a4_\markup { \tiny scherz. \bold molto } f
 @end lilypond
 
 By default, text indications do not influence the note spacing.
 However, their widths can be taken into account:
-in the following example, the first text string does not affect 
+in the following example, the first text string does not affect
 spacing, whereas the second one does.
 
 spacing, whereas the second one does.
 
-@lilypond[quote,fragment,ragged-right,verbatim,relative=1]
-d8^"pizz." e f g
+@lilypond[quote,verbatim,relative=2]
+a8^"pizz." g f e
 \textLengthOn
 a4_"scherzando" f
 @end lilypond
 
 \textLengthOn
 a4_"scherzando" f
 @end lilypond
 
-@predefined
 
 
+@predefined
 @funindex \textLengthOn
 @code{\textLengthOn},
 @funindex \textLengthOff
 @funindex \textLengthOn
 @code{\textLengthOn},
 @funindex \textLengthOff
-@code{\textLengthOff}
+@code{\textLengthOff}.
+@endpredefined
 
 
 @seealso
 
 
 @seealso
-
-Notation Reference: @ref{Formatting text},
+Notation Reference:
+@ref{Formatting text},
 @ref{Direction and placement}.
 
 Snippets:
 @rlsr{Text}.
 
 @ref{Direction and placement}.
 
 Snippets:
 @rlsr{Text}.
 
-Internals Reference: @rinternals{TextScript}.
+Internals Reference:
+@rinternals{TextScript}.
+
 
 @knownissues
 
 
 @knownissues
 
@@ -117,19 +118,19 @@ default; to enable it, use
 
 
 @node Text spanners
 
 
 @node Text spanners
-@subsubsection Text spanners
+@unnumberedsubsubsec Text spanners
 
 @cindex Text spanners
 
 Some performance indications, e.g., @notation{rallentando} or
 @notation{accelerando}, are written as text and are extended over
 multiple notes with dotted lines.
 
 @cindex Text spanners
 
 Some performance indications, e.g., @notation{rallentando} or
 @notation{accelerando}, are written as text and are extended over
 multiple notes with dotted lines.
-Such objects, called @q{spanners}, may be created
+Such objects, called @qq{spanners}, may be created
 from one note to another using the following syntax:
 
 from one note to another using the following syntax:
 
-@lilypond[verbatim,quote,ragged-right,fragment,relative=2]
-\override TextSpanner #'bound-details #'left #'text = "rit." 
-b1\startTextSpan 
+@lilypond[verbatim,quote,relative=2]
+\override TextSpanner #'(bound-details left text) = "rit."
+b1\startTextSpan
 e,\stopTextSpan
 @end lilypond
 
 e,\stopTextSpan
 @end lilypond
 
@@ -139,9 +140,9 @@ object properties.  By default it is printed in italic characters,
 but different formatting can be obtained using
 @code{\markup} blocks, as described in @ref{Formatting text}.
 
 but different formatting can be obtained using
 @code{\markup} blocks, as described in @ref{Formatting text}.
 
-@lilypond[quote,ragged-right,fragment,relative=2,verbatim]
-\override TextSpanner #'bound-details #'left #'text =
-  \markup { \upright "rit." } 
+@lilypond[quote,relative=2,verbatim]
+\override TextSpanner #'(bound-details left text) =
+  \markup { \upright "rit." }
 b1\startTextSpan c
 e,\stopTextSpan
 @end lilypond
 b1\startTextSpan c
 e,\stopTextSpan
 @end lilypond
@@ -149,27 +150,31 @@ e,\stopTextSpan
 The line style, as well as the text string, can be defined as an
 object property.  This syntax is described in @ref{Line styles}.
 
 The line style, as well as the text string, can be defined as an
 object property.  This syntax is described in @ref{Line styles}.
 
-@predefined
 
 
+@predefined
 @funindex textSpannerUp
 @code{\textSpannerUp},
 @funindex textSpannerDown
 @code{\textSpannerDown},
 @funindex textSpannerNeutral
 @funindex textSpannerUp
 @code{\textSpannerUp},
 @funindex textSpannerDown
 @code{\textSpannerDown},
 @funindex textSpannerNeutral
-@code{\textSpannerNeutral}
+@code{\textSpannerNeutral}.
+@endpredefined
 
 
-@seealso
 
 
-Notation Reference: @ref{Line styles}.
+@seealso
+Notation Reference:
+@ref{Line styles},
+@ref{Dynamics}.
 
 Snippets:
 @rlsr{Text}.
 
 
 Snippets:
 @rlsr{Text}.
 
-Internals Reference: @rinternals{TextSpanner}.
+Internals Reference:
+@rinternals{TextSpanner}.
 
 
 @node Text marks
 
 
 @node Text marks
-@subsubsection Text marks
+@unnumberedsubsubsec Text marks
 
 @cindex coda on bar line
 @cindex segno on bar line
 
 @cindex coda on bar line
 @cindex segno on bar line
@@ -177,13 +182,13 @@ Internals Reference: @rinternals{TextSpanner}.
 @cindex bar lines, symbols on
 @funindex \mark
 
 @cindex bar lines, symbols on
 @funindex \mark
 
-Various text elements can be added to a score using
+Various text elements may be added to a score using
 the syntax described in @ref{Rehearsal marks}:
 
 @c \mark needs to be placed on a separate line (it's not
 @c attached to an object like \markup is). -vv
 
 the syntax described in @ref{Rehearsal marks}:
 
 @c \mark needs to be placed on a separate line (it's not
 @c attached to an object like \markup is). -vv
 
-@lilypond[verbatim,quote,ragged-right,fragment,relative=2]
+@lilypond[verbatim,quote,relative=2]
 c4
 \mark "Allegro"
 c c c
 c4
 \mark "Allegro"
 c c c
@@ -191,24 +196,33 @@ c c c
 
 This syntax makes it possible to put any text on a bar line;
 more complex text formatting may be added using a @code{\markup}
 
 This syntax makes it possible to put any text on a bar line;
 more complex text formatting may be added using a @code{\markup}
-block, as described in @ref{Formatting text}.  This can be used to print
-signs like coda, segno or fermata, by specifying the appropriate
-symbol name:
+block, as described in @ref{Formatting text}:
 
 
-@lilypond[fragment,quote,ragged-right,verbatim,relative=2]
-c1
+@lilypond[quote,verbatim,relative=1]
+<c e>1
+\mark \markup { \italic { colla parte } }
+<d f>2 <e g>
+<c f aes>1
+@end lilypond
+
+@noindent
+This syntax also allows to print special signs, like coda, segno
+or fermata, by specifying the appropriate symbol name as explained in
+@ref{Music notation inside markup}:
+
+@lilypond[quote,verbatim,relative=2]
+<bes f>2 <aes d>
 \mark \markup { \musicglyph #"scripts.ufermata" }
 \mark \markup { \musicglyph #"scripts.ufermata" }
-c1
+<e g>1
 @end lilypond
 
 @noindent
 Such objects are only typeset above the top staff of the score; depending on
 @end lilypond
 
 @noindent
 Such objects are only typeset above the top staff of the score; depending on
-whether they are specified at the end or the middle of a bar, they 
-can be placed above the bar line or between notes.  When specified at the
-beginning of a score or at a line break, marks will be printed at
-the beginning of the line (the next line, in case of a line break).
+whether they are specified at the end or the middle of a bar, they
+can be placed above the bar line or between notes.  When specified at a
+line break, the mark will be printed at the beginning of the next line.
 
 
-@lilypond[fragment,quote,ragged-right,verbatim,relative=2]
+@lilypond[quote,verbatim,relative=2]
 \mark "Allegro"
 c1 c
 \mark "assai" \break
 \mark "Allegro"
 c1 c
 \mark "assai" \break
@@ -227,15 +241,20 @@ c  c
 @lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
 {printing-marks-on-every-staff.ly}
 
 @lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
 {printing-marks-on-every-staff.ly}
 
-@seealso
 
 
-Notation Reference: @ref{Rehearsal marks},
-@ref{Formatting text}, @ref{The Feta font}.
+@seealso
+Notation Reference:
+@ref{Rehearsal marks},
+@ref{Formatting text},
+@ref{Music notation inside markup},
+@ref{The Feta font}.
 
 Snippets:
 @rlsr{Text}.
 
 
 Snippets:
 @rlsr{Text}.
 
-Internals Reference: @rinternals{RehearsalMark}.
+Internals Reference:
+@rinternals{RehearsalMark}.
+
 
 @knownissues
 @c  To be removed when Issue 69 in the tracker gets fixed. -vv
 
 @knownissues
 @c  To be removed when Issue 69 in the tracker gets fixed. -vv
@@ -245,7 +264,7 @@ there is no next line), then the mark will not be printed at
 all.
 
 @node Separate text
 all.
 
 @node Separate text
-@subsubsection Separate text
+@unnumberedsubsubsec Separate text
 
 @cindex separate text
 @cindex standalone text
 
 @cindex separate text
 @cindex standalone text
@@ -265,12 +284,12 @@ expression}.  This syntax is described in @ref{File structure}.
 
 @noindent
 This allows printing text separately
 
 @noindent
 This allows printing text separately
-from the music, which is particularly 
+from the music, which is particularly
 useful when the input file contains
 several music pieces, as described in
 @ref{Multiple scores in a book}.
 
 useful when the input file contains
 several music pieces, as described in
 @ref{Multiple scores in a book}.
 
-@lilypond[quote,ragged-right,verbatim]
+@lilypond[quote,verbatim]
 \score {
   c'1
 }
 \score {
   c'1
 }
@@ -282,28 +301,27 @@ several music pieces, as described in
 }
 @end lilypond
 
 }
 @end lilypond
 
-Using a specific syntax, text blocks can be spread
-over multiple pages, making possible to print
-text documents or books -- and therefore to
-use LilyPond as a word processor.  This syntax is described in
-@ref{Multi-page markup}.
+Separate text blocks can be spread over multiple pages,
+making it possible to print text documents or books entirely
+within LilyPond.  This feature, and the specific syntax it
+requires, are described in @ref{Multi-page markup}.
 
 
-@predefined
 
 
-@code{\markup},
+@predefined
 @funindex \markuplines
 @funindex \markuplines
-@code{\markuplines}
+@code{\markup},
+@code{\markuplines}.
+@endpredefined
+
 
 
-@ignore
 @snippets
 
 @snippets
 
-TODO: add convenient snippets in input/new -vv
-@end ignore
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
+{stand-alone-two-column-markup.ly}
 
 @seealso
 
 @seealso
-
 Notation Reference: @ref{Formatting text},
 Notation Reference: @ref{Formatting text},
-@ref{File structure}, 
+@ref{File structure},
 @ref{Multiple scores in a book},
 @ref{Multi-page markup}.
 
 @ref{Multiple scores in a book},
 @ref{Multi-page markup}.
 
@@ -320,16 +338,16 @@ This section presents basic and advanced text formatting,
 using the @code{\markup} mode specific syntax.
 
 @menu
 using the @code{\markup} mode specific syntax.
 
 @menu
-* Text markup introduction::    
-* Selecting font and font size::      
-* Text alignment::              
-* Graphic notation inside markup::  
-* Music notation inside markup::  
-* Multi-page markup::          
+* Text markup introduction::
+* Selecting font and font size::
+* Text alignment::
+* Graphic notation inside markup::
+* Music notation inside markup::
+* Multi-page markup::
 @end menu
 
 @node Text markup introduction
 @end menu
 
 @node Text markup introduction
-@subsubsection Text markup introduction
+@unnumberedsubsubsec Text markup introduction
 
 @cindex markup
 @cindex text markup
 
 @cindex markup
 @cindex text markup
@@ -338,26 +356,27 @@ using the @code{\markup} mode specific syntax.
 @funindex \markup
 
 A @code{\markup} block is used to typeset text with an extensible
 @funindex \markup
 
 A @code{\markup} block is used to typeset text with an extensible
-specific syntax called @qq{markup mode}.
+syntax called @qq{markup mode}.
 
 @cindex markup expressions
 @cindex markup syntax
 
 The markup syntax is similar to LilyPond's usual syntax: a
 @code{\markup} expression is enclosed in curly braces @code{@{
 
 @cindex markup expressions
 @cindex markup syntax
 
 The markup syntax is similar to LilyPond's usual syntax: a
 @code{\markup} expression is enclosed in curly braces @code{@{
-@dots{} @}}.
+@dots{} @}}.  A single word is regarded as a minimal expression,
+and therefore does not need to be enclosed with braces.
 
 
-Unlike simple @q{quoted text} indications, @code{\markup} blocks
-may contain nested expressions or specific commands,
+Unlike simple @qq{quoted text} indications, @code{\markup} blocks
+may contain nested expressions or markup commands,
 entered using the backslash @code{\} character.
 Such commands only affect the first following expression.
 
 entered using the backslash @code{\} character.
 Such commands only affect the first following expression.
 
-@lilypond[quote,verbatim,fragment,relative=1]
-e1-\markup "intenso"
+@lilypond[quote,verbatim,relative=2]
+a1-\markup intenso
 a2^\markup { poco \italic più forte  }
 c e1
 d2_\markup { \italic "string. assai" }
 a2^\markup { poco \italic più forte  }
 c e1
 d2_\markup { \italic "string. assai" }
-e 
+e
 b1^\markup { \bold { molto \italic  agitato } }
 c
 @end lilypond
 b1^\markup { \bold { molto \italic  agitato } }
 c
 @end lilypond
@@ -368,42 +387,34 @@ c
 @cindex printing special characters
 @cindex quoted text in markup mode
 
 @cindex printing special characters
 @cindex quoted text in markup mode
 
-A @code{\markup} block may also contain quoted text, which
-can be useful to print special characters such as @code{\} and @code{#},
-or even double quotation marks -- these have to be preceded
-with backslashes:
-
-@lilypond[quote,verbatim,fragment,relative=1]
-\clef bass
-a^\markup "##\ LEPORELLO \##"
-a_\markup "Bravi! \"Cosa rara\"!"
-r a8 d
-cis a r4 r2
-@end lilypond
+A @code{\markup} block may also contain quoted text strings.
+Such strings are treated as minimal text expressions, and
+therefore any markup command or special character (such as
+@code{\} and @code{#}) will be printed verbatim without affecting
+the formatting of the text.  Double quotation marks themselves
+may be printed by preceding them with backslashes.
 
 
-The way markup expressions are defined affects 
-how these expressions will stacked, centered and aligned
-when using the commands explained in @ref{Text alignment}.
-
-@lilypond[quote,verbatim,fragment,relative=1]
-c1^\markup { \column { a bbbb \line { c d } } }
-c1^\markup { \center-align { a bbbb c } }
-c1^\markup { \line { a b c } }
+@lilypond[quote,verbatim,relative=2]
+a1^"\italic markup..."
+a_\markup { \italic "... prints \"italic\" letters!" }
+a a
 @end lilypond
 
 @end lilypond
 
-Lists of words that are not enclosed with double quotes
-or preceded by a command are not treated as a distinct
-expression.  In the following example, the first two
-@code{\markup} expressions are equivalent:
+To be treated as a distinct expression, a list of words needs
+to be enclosed with double quotes or preceded by a command.
+The way markup expressions are defined affects how these
+expressions will be stacked, centered and aligned; in the
+following example, the second @code{\markup} expression is
+treated the same as the first one:
 
 
-@lilypond[quote,verbatim,fragment,relative=1]
-c1^\markup { \center-align { a bbb c } }
-c1^\markup { \center-align { a { bbb c } } }
-c1^\markup { \center-align { a \line { bbb c } } }
+@lilypond[quote,verbatim,relative=2]
+c1^\markup { \center-column { a bbb c } }
+c1^\markup { \center-column { a { bbb c } } }
+c1^\markup { \center-column { a \line { bbb c } } }
+c1^\markup { \center-column { a "bbb c" } }
 @end lilypond
 
 @end lilypond
 
-
-Markups can be stored in variables.  These variables may be
+Markups can be stored in variables.  Such variables may be
 directly attached to notes:
 
 @lilypond[quote,verbatim]
 directly attached to notes:
 
 @lilypond[quote,verbatim]
@@ -422,15 +433,14 @@ An exhaustive list of @code{\markup}-specific commands can be found in
 
 
 @seealso
 
 
 @seealso
-
-This manual: @ref{Text markup commands}.
+Notation Reference:
+@ref{Text markup commands}.
 
 Snippets:
 @rlsr{Text}.
 
 
 Snippets:
 @rlsr{Text}.
 
-Internals Reference: @rinternals{TextScript}.
-
-Init files: @file{scm/@/new@/-markup@/.scm}.
+Installed files:
+@file{scm/@/markup@/.scm}.
 
 
 @knownissues
 
 
 @knownissues
@@ -439,7 +449,7 @@ Syntax errors for markup mode can be confusing.
 
 
 @node Selecting font and font size
 
 
 @node Selecting font and font size
-@subsubsection Selecting font and font size
+@unnumberedsubsubsec Selecting font and font size
 
 @cindex font switching
 @funindex \italic
 
 @cindex font switching
 @funindex \italic
@@ -449,15 +459,13 @@ Syntax errors for markup mode can be confusing.
 Basic font switching is supported in markup mode:
 
 @lilypond[quote,verbatim,relative=2]
 Basic font switching is supported in markup mode:
 
 @lilypond[quote,verbatim,relative=2]
-{
-  d1^\markup { 
-    \bold { Più mosso } 
-    \italic { non troppo \underline Vivo } 
-  }
-  r2 r4 r8
-  d,_\markup { \italic quasi \smallCaps Tromba }
-  f1 d2 r
+d1^\markup {
+  \bold { Più mosso }
+  \italic { non troppo \underline Vivo }
 }
 }
+r2 r4 r8
+d,_\markup { \italic quasi \smallCaps Tromba }
+f1 d2 r
 @end lilypond
 
 @cindex font size
 @end lilypond
 
 @cindex font size
@@ -465,16 +473,15 @@ Basic font switching is supported in markup mode:
 @funindex \fontsize
 @funindex \smaller
 @funindex \larger
 @funindex \fontsize
 @funindex \smaller
 @funindex \larger
-@funindex \bigger
 @funindex \magnify
 
 The size of the characters can also be altered in different ways:
 @itemize
 @item
 @funindex \magnify
 
 The size of the characters can also be altered in different ways:
 @itemize
 @item
-the font size can be defined to an absolute value,
+the font size can be set to predefined standard sizes,
 
 @item
 
 @item
-predefined commands allow to easily select standard sizes,
+the font size can be set to an absolute value,
 
 @item
 the font size can also be changed relatively to its previous value.
 
 @item
 the font size can also be changed relatively to its previous value.
@@ -483,21 +490,23 @@ the font size can also be changed relatively to its previous value.
 @noindent
 The following example demonstrates these three methods:
 
 @noindent
 The following example demonstrates these three methods:
 
-@lilypond[quote,verbatim,relative=2]
-{
-  f1^\markup { \fontsize #5 Sinfonia } 
-  a,_\markup { 
-    \tiny espressivo
-    \large e
-    \normalsize intenso 
-  }
-  bes^\markup { (con 
-    \larger grande 
-    \smaller emozione 
-    \magnify #0.6 { e sentimento } )
-  }
-  d c2 r8 c bes a g1
+@lilypond[quote,verbatim,relative=1]
+f1_\markup {
+  \tiny espressivo
+  \large e
+  \normalsize intenso
+}
+a^\markup {
+  \fontsize #5 Sinfonia
+  \fontsize #2 da
+  \fontsize #3 camera
+}
+bes^\markup { (con
+  \larger grande
+  \smaller emozione
+  \magnify #0.6 { e sentimento } )
 }
 }
+d c2 r8 c bes a g1
 @end lilypond
 
 @cindex subscript
 @end lilypond
 
 @cindex subscript
@@ -512,7 +521,7 @@ these are printed in a smaller size, but a normal size can be used as well:
 \markup {
   \column {
     \line { 1 \super st movement }
 \markup {
   \column {
     \line { 1 \super st movement }
-    \line { 1 \normal-size-super st movement 
+    \line { 1 \normal-size-super st movement
       \sub { (part two) }  }
   }
 }
       \sub { (part two) }  }
   }
 }
@@ -521,9 +530,10 @@ these are printed in a smaller size, but a normal size can be used as well:
 @cindex font families
 
 The markup mode provides an easy way to select alternate
 @cindex font families
 
 The markup mode provides an easy way to select alternate
-font families.  The default serif font, of roman type, is automatically
-selected unless specified otherwise: on the last line of the following example,
-there is no difference between the first word and the second word.
+font families.  The default serif font, of roman type, is
+automatically selected unless specified otherwise; on the
+last line of the following example, there is no difference
+between the first and the second word.
 
 @lilypond[quote,verbatim]
 \markup {
 
 @lilypond[quote,verbatim]
 \markup {
@@ -542,75 +552,112 @@ such as numbers or dynamics, do not provide all
 characters, as mentioned in @ref{New dynamic marks} and
 @ref{Manual repeat marks}.
 
 characters, as mentioned in @ref{New dynamic marks} and
 @ref{Manual repeat marks}.
 
+@c \concat is actually documented in Align (it is not
+@c a font-switching command). But we need it here. -vv
+
+When used inside a word, some font-switching or formatting
+commands may produce an unwanted blank space.  This can
+easily be solved by concatenating the text elements together:
+
+@lilypond[quote,verbatim]
+\markup {
+  \column {
+    \line {
+      \concat { 1 \super st }
+      movement
+    }
+    \line {
+      \concat { \dynamic p , }
+      \italic { con dolce espressione }
+    }
+  }
+}
+@end lilypond
+
+An exhaustive list of font switching, and custom font usage
+commands can be found in @ref{Font}.
 
 Defining custom font sets is also possible, as explained in
 
 Defining custom font sets is also possible, as explained in
-@ref{Fonts}.  An exhaustive list of font-switching, font-size
-and font-families related commands can be found in @ref{Font}.
+@ref{Fonts}.
 
 
-@predefined
 
 
+@predefined
 @funindex \teeny
 @funindex \teeny
-@funindex \tiny
-@funindex \small
-@funindex \normalsize
-@funindex \large
-@funindex \huge
 @code{\teeny},
 @code{\teeny},
+@funindex \tiny
 @code{\tiny},
 @code{\tiny},
+@funindex \small
 @code{\small},
 @code{\small},
+@funindex \normalsize
 @code{\normalsize},
 @code{\normalsize},
+@funindex \large
 @code{\large},
 @code{\large},
-@code{\huge}.
+@funindex \huge
+@code{\huge},
+@funindex \smaller
+@code{\smaller},
+@funindex \larger
+@code{\larger}.
+@endpredefined
 
 
 
 
-@c TODO: add @seealso
+@seealso
+Notation Reference:
+@ref{Font},
+@ref{New dynamic marks},
+@ref{Manual repeat marks},
+@ref{Fonts}.
 
 
-@knownissues
-When used inside a word, some of these commands may produce an unwanted
-blank space.  This can easily be solved by concatenating the text
-elements together, using a specific command
-described in @ref{Text alignment}.
+Snippets:
+@rlsr{Text}.
 
 
+Internals Reference:
+@rinternals{TextScript}.
+
+Installed files:
+@file{scm/@/define@/-markup@/-commands@/.scm}.
 
 
 @node Text alignment
 
 
 @node Text alignment
-@subsubsection Text alignment
+@unnumberedsubsubsec Text alignment
 
 @cindex text, aligning
 @cindex aligning text
 
 
 @cindex text, aligning
 @cindex aligning text
 
-This subsection discusses how to place text in markup mode,
-inside a @code{\markup} block.  Markup objects can also
-be moved as a whole, using the syntax described in
-@rlearning{Moving objects}.
+This subsection discusses how to place text in markup mode.
+Markup objects can also be moved as a whole, using the syntax
+described in @rlearning{Moving objects}.
+
+@c Padding commands should be mentioned on this page, but
+@c most of these require \box to be more clearly illustrated. -vv
 
 @cindex text, horizontal alignment
 @cindex horizontal text alignment
 @funindex \left-align
 
 @cindex text, horizontal alignment
 @cindex horizontal text alignment
 @funindex \left-align
-@funindex \hcenter
+@funindex \center-align
 @funindex \right-align
 
 Markup objects may be aligned in different ways.  By default,
 a text indication is aligned on its left edge: in the following
 @funindex \right-align
 
 Markup objects may be aligned in different ways.  By default,
 a text indication is aligned on its left edge: in the following
-example, there's no difference between the first and the second
-markup.
+example, there is no difference
+between the first and the second markup.
 
 
-@lilypond[quote,verbatim,fragment,relative=1]
-a1-\markup { poco }
-e'
-a,-\markup { \left-align poco }
-e'
-a,-\markup { \hcenter { poco } }
-e'
-a,-\markup { \right-align poco }
+@lilypond[quote,verbatim,relative=2]
+d1-\markup { poco }
+f
+d-\markup { \left-align poco }
+f
+d-\markup { \center-align { poco } }
+f
+d-\markup { \right-align poco }
 @end lilypond
 
 @funindex \halign
 
 @end lilypond
 
 @funindex \halign
 
-The horizontal alignment may be fine-tuned
+Horizontal alignment may be fine-tuned
 using a numeric value:
 
 using a numeric value:
 
-@lilypond[quote,verbatim,fragment,relative=1]
+@lilypond[quote,verbatim,relative=2]
 a1-\markup { \halign #-1 poco }
 e'
 a,-\markup { \halign #0 poco }
 a1-\markup { \halign #-1 poco }
 e'
 a,-\markup { \halign #0 poco }
@@ -620,12 +667,18 @@ e'
 a,-\markup { \halign #2 poco }
 @end lilypond
 
 a,-\markup { \halign #2 poco }
 @end lilypond
 
+@noindent
+Some objects may have alignment procedures of their own,
+and therefore are not affected by these commands.  It is
+possible to move such markup objects as a whole, as shown
+for instance in @ref{Text marks}.
+
 @cindex text, vertical alignment
 @cindex vertical text alignment
 @funindex \raise
 @funindex \lower
 
 @cindex text, vertical alignment
 @cindex vertical text alignment
 @funindex \raise
 @funindex \lower
 
-Vertical alignment is a bit more complex. As stated above,
+Vertical alignment is a bit more complex.  As stated above,
 markup objects can be moved as a whole; however, it is also
 possible to move specific elements inside a markup block.
 In this case, the element to be moved needs to be preceded
 markup objects can be moved as a whole; however, it is also
 possible to move specific elements inside a markup block.
 In this case, the element to be moved needs to be preceded
@@ -634,17 +687,20 @@ or an invisible object.  The following example demonstrates these
 two possibilities; the last markup in this example has no anchor
 point, and therefore is not moved.
 
 two possibilities; the last markup in this example has no anchor
 point, and therefore is not moved.
 
-@lilypond[quote,verbatim,fragment,relative=1]
-d2^\markup { 
+@lilypond[quote,verbatim,relative=1]
+d2^\markup {
   Acte I
   Acte I
-  \raise #2 { Scène 1 } }
+  \raise #2 { Scène 1 }
+}
 a'
 g_\markup {
   \null
 a'
 g_\markup {
   \null
-  \lower #4 \bold { Très modéré } }
+  \lower #4 \bold { Très modéré }
+}
 a
 d,^\markup {
 a
 d,^\markup {
-  \raise #4 \italic { Une forêt. } }
+  \raise #4 \italic { Une forêt. }
+}
 a'4 a g2 a
 @end lilypond
 
 a'4 a g2 a
 @end lilypond
 
@@ -654,365 +710,679 @@ a'4 a g2 a
 
 Some commands can affect both the horizontal and vertical
 alignment of text objects in markup mode.  Any object
 
 Some commands can affect both the horizontal and vertical
 alignment of text objects in markup mode.  Any object
-affected by these commands must be preceded by an
+affected by these commands must be preceded with an
 anchor point:
 
 anchor point:
 
-@lilypond[quote,verbatim,fragment,relative=1]
+@lilypond[quote,verbatim,relative=1]
 d2^\markup {
   Acte I
 d2^\markup {
   Acte I
-  \translate #'(-1 . 2) "Scène 1" }
+  \translate #'(-1 . 2) "Scène 1"
+}
 a'
 g_\markup {
   \null
 a'
 g_\markup {
   \null
-  \general-align #Y #3.2 \bold "Très modéré" }
+  \general-align #Y #3.2 \bold "Très modéré"
+}
 a
 d,^\markup {
   \null
 a
 d,^\markup {
   \null
-  \translate-scaled #'(-1 . 2) \teeny "Une forêt." }
+  \translate-scaled #'(-1 . 2) \teeny "Une forêt."
+}
 a'4 a g2 a
 @end lilypond
 
 a'4 a g2 a
 @end lilypond
 
+@funindex \column
+@funindex \center-column
+
 @cindex multi-line markup
 @cindex multi-line text
 @cindex columns, text
 
 A markup object may include several lines of text.
 In the following example, each element or expression
 @cindex multi-line markup
 @cindex multi-line text
 @cindex columns, text
 
 A markup object may include several lines of text.
 In the following example, each element or expression
-is placed on its own line:
+is placed on its own line, either left-aligned or centered:
 
 @lilypond[quote,verbatim]
 \markup {
   \column {
 
 @lilypond[quote,verbatim]
 \markup {
   \column {
-    
+    a
+    "b c"
+    \line { d e f }
+  }
+  \hspace #10
+  \center-column {
+    a
+    "b c"
+    \line { d e f }
+  }
+}
+@end lilypond
 
 
+@funindex \fill-line
 
 
-\rotate
-\transparent
-\whiteout
+@cindex centering text on the page
 
 
-Vertical alignment: 
-\vcenter
-\column
-\dir-column
+Similarly, a list of elements or expressions may be
+spread to fill the entire horizontal line width (if there
+is only one element, it will be centered on the page).
+These expressions can, in turn, include multi-line text
+or any other markup expression:
 
 
-Building a "large" markup:
+@lilypond[quote,verbatim]
+\markup {
+  \fill-line {
+    \line { William S. Gilbert }
+    \center-column {
+      \huge \smallCaps "The Mikado"
+      or
+      \smallCaps "The Town of Titipu"
+    }
+    \line { Sir Arthur Sullivan }
+  }
+}
+\markup {
+  \fill-line { 1885 }
+}
+@end lilypond
 
 
-\line
+@funindex \wordwrap
+@funindex \justify
 
 
-\fill-line
+@cindex wordwrapped text
+@cindex justified text
 
 
-\hcenter-in
-       
-\pad-around
-\pad-markup
-\pad-to-box
-\pad-x
-       
-Alignment inside a "large" markup:
+Long text indications can also be automatically wrapped
+accordingly to the given line width.  These will be
+either left-aligned or justified, as shown in
+the following example.
 
 
-\justify-field 
-\justify
-\justify-string
+@lilypond[quote,verbatim]
+\markup {
+  \column {
+    \line  \smallCaps { La vida breve }
+    \line \bold { Acto I }
+    \wordwrap \italic {
+      (La escena representa el corral de una casa de
+      gitanos en el Albaicín de Granada. Al fondo una
+      puerta por la que se ve el negro interior de
+      una Fragua, iluminado por los rojos resplandores
+      del fuego.)
+    }
+    \hspace #0
+
+    \line \bold { Acto II }
+    \override #'(line-width . 50)
+    \justify \italic {
+      (Calle de Granada. Fachada de la casa de Carmela
+      y su hermano Manuel con grandes ventanas abiertas
+      a través de las que se ve el patio
+      donde se celebra una alegre fiesta)
+    }
+  }
+}
+@end lilypond
 
 
-\wordwrap-field
-\wordwrap
-\wordwrap-string
+An exhaustive list of text alignment commands
+can be found in @ref{Align}.
 
 
 
 
-@ignore
-TODO: here are some commands that could be described here.
-I'm putting them in bulk, prior to working on this section. -vv
+@seealso
+Learning Manual:
+@rlearning{Moving objects}.
 
 
-\simple
+Notation Reference:
+@ref{Align},
+@ref{Text marks}.
 
 
-\char
-\fraction
+Snippets:
+@rlsr{Text}.
 
 
-\combine
-\concat
-\put-adjacent
+Internals Reference: @rinternals{TextScript}.
 
 
+Installed files:
+@file{scm/@/define@/-markup@/-commands@/.scm}.
 
 
-\page-ref (see also "Table of contents")
-\fromproperty
-\verbatim-file
-\with-url
 
 
-\on-the-fly 
-\override
+@node Graphic notation inside markup
+@unnumberedsubsubsec Graphic notation inside markup
 
 
+@cindex graphics, embedding
+@cindex drawing graphic objects
 
 
+Various graphic objects may be added to a score,
+using markup commands.
 
 
-@end ignore
+@funindex \box
+@funindex \circle
+@funindex \rounded-box
+@funindex \bracket
+@funindex \hbracket
 
 
+@cindex decorating text
+@cindex framing text
 
 
-Some objects have alignment procedures of their own, which cancel
-out any effects of alignments applied to their markup arguments as
-a whole.  For example, the @rinternals{RehearsalMark} is
-horizontally centered, so using @code{\mark \markup @{ \left-align
-.. @}} has no effect.
+Some markup commands allow decoration of text elements
+with graphics, as demonstrated in the following example.
 
 
+@lilypond[quote,verbatim]
+\markup \fill-line {
+  \center-column {
+    \circle Jack
+    \box "in the box"
+    \null
+    \line {
+      Erik Satie
+      \hspace #3
+      \bracket "1866 - 1925"
+    }
+    \null
+    \rounded-box \bold Prelude
+  }
+}
+@end lilypond
 
 
+@funindex \pad-markup
+@funindex \pad-x
+@funindex \pad-to-box
+@funindex \pad-around
 
 
-@node Graphic notation inside markup
-@subsubsection Graphic notation inside markup
-Graphics around text:
-\box
-\circle
+@cindex padding around text
+@cindex text padding
 
 
-\bracket
-\hbracket
+Some commands may require an increase in the padding around
+the text; this is achieved with some markup commands
+exhaustively described in @ref{Align}.
 
 
-"Standalone" graphics:
+@lilypond[quote,verbatim]
+\markup \fill-line {
+  \center-column {
+    \box "Charles Ives (1874 - 1954)"
+    \null
+    \box \pad-markup #2 "THE UNANSWERED QUESTION"
+    \box \pad-x #8 "A Cosmic Landscape"
+    \null
+  }
+}
+\markup \column {
+  \line {
+    \hspace #10
+    \box \pad-to-box #'(-5 . 20) #'(0 . 5)
+      \bold "Largo to Presto"
+  }
+  \pad-around #3
+      "String quartet keeps very even time,
+Flute quartet keeps very uneven time."
+}
+@end lilypond
 
 
-\arrow-head
-\draw-line
-\draw-circle
-\filled-box
-\triangle
-\strut
+@funindex \combine
+@funindex \draw-circle
+@funindex \filled-box
+@funindex \triangle
+@funindex \draw-line
+@funindex \arrow-head
 
 
-\with-color
+@cindex graphic notation
+@cindex symbols, non-musical
 
 
+Other graphic elements or symbols may be printed
+without requiring any text.  As with any markup
+expression, such objects can be combined.
 
 
-Advanced graphics:
-\stencil
+@lilypond[quote,verbatim]
+\markup {
+  \combine
+    \draw-circle #4 #0.4 ##f
+    \filled-box #'(-4 . 4) #'(-0.5 . 0.5) #1
+  \hspace #5
+
+  \center-column {
+    \triangle ##t
+    \combine
+      \draw-line #'(0 . 4)
+      \arrow-head #Y #DOWN ##f
+  }
+}
+@end lilypond
 
 
-\postscript
-\epsfile
+@funindex \epsfile
+@funindex \postscript
+
+@cindex embedded graphics
+@cindex images, embedding
+@cindex graphics, embedding
+@cindex postscript
+
+Advanced graphic features include the ability to
+include external image files converted to the
+Encapsulated PostScript format (@emph{eps}), or
+to directly embed graphics into the input file,
+using native PostScript code.  In such a case, it
+may be useful to explicitely specify the size of the
+drawing, as demonstrated below:
+
+@lilypond[quote,verbatim,relative=1]
+c1^\markup {
+  \combine
+    \epsfile #X #10 #"./context-example.eps"
+    \with-dimensions #'(0 . 6) #'(0 . 10)
+    \postscript #"
+      -2 3 translate
+      2.7 2 scale
+      newpath
+      2 -1 moveto
+      4 -2 4 1 1 arct
+      4 2 3 3 1 arct
+      0 4 0 3 1 arct
+      0 0 1 -1 1 arct
+      closepath
+      stroke"
+  }
+c
+@end lilypond
 
 
-\with-dimensions
+An exhaustive list of graphics-specific commands
+can be found in @ref{Graphic}.
 
 
-@node Music notation inside markup
-@subsubsection Music notation inside markup
 
 
-Notes can be printed in markup mode blah blah:
+@seealso
+Notation Reference:
+@ref{Graphic},
+@ref{Editorial annotations}.
 
 
-\note  
-\note-by-number
+Snippets:
+@rlsr{Text}.
 
 
-Accidental symbols can be obtained easily:
+Internals Reference: @rinternals{TextScript}.
 
 
-\doubleflat
-\sesquiflat
-\flat
-\semiflat
-\natural
-\semisharp
-\sharp
-\sesquisharp
-\doublesharp
+Installed files:
+@file{scm/@/define@/-markup@/-commands@/.scm},
+@file{scm/@/stencil@/.scm}.
 
 
-Some other notation objects blah blah
 
 
-\beam
-\finger
-\dynamic
-\tied-lyric
-\markalphabet
-\markletter
-@c TODO: add \text here? -vv
+@node Music notation inside markup
+@unnumberedsubsubsec Music notation inside markup
 
 
-Any musical symbol can be printed
+Various musical notation elements may be added
+to a score, inside a markup object.
 
 
-\musicglyph
-@c TODO: add \lookup here? -vv
+Notes and accidentals can be entered using markup
+commands:
 
 
+@lilypond[quote,verbatim,relative=2]
+a2 a^\markup {
+  \note #"4" #1
+  =
+  \note-by-number #1 #1 #1.5
+}
+b1_\markup {
+  \natural \semiflat \flat
+  \sesquiflat \doubleflat
+}
+\glissando
+a1_\markup {
+  \natural \semisharp \sharp
+  \sesquisharp \doublesharp
+}
+\glissando b
+@end lilypond
 
 
-The markup mode has support for fret diagrams:
+Other notation objects may also be printed
+in markup mode:
 
 
-\fret-diagram 
-\fret-diagram-terse
-\fret-diagram-verbose
+@lilypond[quote,verbatim,relative=1]
+g1 bes
+ees-\markup {
+  \finger 4
+  \tied-lyric #"~"
+  \finger 1
+}
+fis_\markup { \dynamic rf }
+bes^\markup {
+  \beam #8 #0.1 #0.5
+}
+cis
+d-\markup {
+  \markalphabet #8
+  \markletter #8
+}
+@end lilypond
 
 
-An entire @code{\score} block can even be nested in a @code{\markup}
-block.  In such a case, the @code{\score} must contain a @code{\layout} block.
+More generally, any available musical symbol may be
+included separately in a markup object, as demonstrated
+below; an exhaustive list of these symbols and their
+names can be found in @ref{The Feta font}.
 
 
+@lilypond[quote,verbatim,relative=2]
+c2
+c'^\markup { \musicglyph #"eight" }
+c,4
+c,8._\markup { \musicglyph #"clefs.G_change" }
+c16
+c2^\markup { \musicglyph #"timesig.neomensural94" }
+@end lilypond
 
 
-\score
+@noindent
+Another way of printing non-text glyphs is described in
+@ref{Fonts explained}.  This is useful for printing braces of
+various sizes.
 
 
+The markup mode also supports diagrams for specific
+instruments:
 
 
-@lilypond[quote,verbatim,ragged-right]
-\relative {
-  c4 d^\markup {
-    \score {
-      \relative { c4 d e f }
-      \layout { }
-    }
+@lilypond[quote,verbatim,relative=2]
+c1^\markup {
+  \fret-diagram-terse #"x;x;o;2;3;2;"
+}
+c^\markup {
+  \harp-pedal #"^-v|--ov^"
+}
+c
+c^\markup {
+  \combine
+    \musicglyph #"accordion.accDiscant"
+    \combine
+      \raise #0.5 \musicglyph #"accordion.accDot"
+      \raise #1.5 \musicglyph #"accordion.accDot"
+}
+@end lilypond
+
+@c The accordion diagram is actually taken from a snippet.
+
+@noindent
+Such diagrams are documented in @ref{Instrument Specific Markup}.
+
+A whole score can even be nested inside a markup object.
+In such a case, the nested @code{\score} block must
+contain a @code{\layout} block, as demonstrated here:
+
+@lilypond[quote,verbatim,relative=1]
+c4 d^\markup {
+  \score {
+    \relative c' { c4 d e f }
+    \layout { }
   }
   }
-  e f
 }
 }
+e f |
+c d e f
 @end lilypond
 
 @end lilypond
 
+An exhaustive list of music notation related commands can be
+found in @ref{Music}.
+
+
 @seealso
 @seealso
+Notation Reference:
+@ref{Music},
+@ref{The Feta font},
+@ref{Fonts explained}.
 
 Snippets:
 @rlsr{Text}.
 
 
 Snippets:
 @rlsr{Text}.
 
+Internals Reference: @rinternals{TextScript}.
+
+Installed files:
+@file{scm/@/define@/-markup@/-commands@/.scm},
+@file{scm/@/fret@/-diagrams@/.scm},
+@file{scm/@/harp@/-pedals@/.scm}.
+
+
 @node Multi-page markup
 @node Multi-page markup
-@subsubsection Multi-page markup
+@unnumberedsubsubsec Multi-page markup
 
 
-Whereas @code{\markup} is used to enter a non-breakable block of
-text, @code{\markuplines} can be used at top-level to enter lines
-of text that can spread over multiple pages:
+Although standard markup objects are not breakable, a
+specific syntax makes it possible to enter lines of text that can
+spread over multiple pages:
 
 
-@verbatim
+@lilypond[quote,verbatim]
 \markuplines {
   \justified-lines {
     A very long text of justified lines.
     ...
   }
 \markuplines {
   \justified-lines {
     A very long text of justified lines.
     ...
   }
-  \justified-lines {
-    An other very long paragraph.
+  \wordwrap-lines {
+    Another very long paragraph.
     ...
   }
   ...
 }
     ...
   }
   ...
 }
-@end verbatim
+@end lilypond
+
+This syntax accepts a list of markups, that can be
+@itemize
+@item
+the result of a markup list command,
+@item
+a list of markups,
+@item
+a list of markup lists.
+@end itemize
 
 
-@code{\markuplines} accepts a list of markup, that is either the
-result of a markup list command, or a list of markups or of markup
-lists.  The built-in markup list commands are described in
+An exhaustive list of markup list commands can be found in
 @ref{Text markup list commands}.
 
 @ref{Text markup list commands}.
 
-@seealso
 
 
-This manual: @ref{Text markup list commands}, @ref{New
-markup list command definition}.
+@seealso
+Notation Reference:
+@ref{Text markup list commands},
+@ref{New markup list command definition}.
 
 Snippets:
 @rlsr{Text}.
 
 
 Snippets:
 @rlsr{Text}.
 
-@predefined
+Internals Reference: @rinternals{TextScript}.
 
 
+Installed files:
+@file{scm/@/define@/-markup@/-commands@/.scm}.
+
+
+@predefined
 @funindex \markuplines
 @funindex \markuplines
-@code{\markuplines}
+@code{\markuplines}.
+@endpredefined
 
 
 @node Fonts
 @subsection Fonts
 
 
 
 @node Fonts
 @subsection Fonts
 
+This section presents the way fonts are handled,
+and how they may be changed in scores.
+
 @menu
 @menu
-* Entire document fonts::       
-* Single entry fonts::          
+* Fonts explained::
+* Single entry fonts::
+* Entire document fonts::
 @end menu
 
 @end menu
 
-@node Entire document fonts
-@subsubsection Entire document fonts
-
-It is also possible to change the default font family for the
-entire document.  This is done by calling the
-@code{make-pango-font-tree} from within the @code{\paper} block.
-The function takes names for the font families to use for roman,
-sans serif and monospaced text.  For example,
+@node Fonts explained
+@unnumberedsubsubsec Fonts explained
 
 
-@cindex font families, setting
 @cindex Pango
 @cindex Pango
+@cindex fonts, explained
+@cindex braces, various sizes
+@funindex font-interface
 
 
+Fonts are handled through several libraries.
+FontConfig is used to detect available fonts on the system;
+the selected fonts are rendered using Pango.
 
 
-@lilypond[verbatim]
-\paper  {
-  myStaffSize = #20
-
-  #(define fonts
-    (make-pango-font-tree "Times New Roman"
-                          "Nimbus Sans"
-                          "Luxi Mono"
-                           (/ myStaffSize 20)))
-}
+Music notation fonts can be described as a set of
+specific glyphs, ordered in several families.
+The following syntax allows various LilyPond @code{feta} non-text
+fonts to be used directly in markup mode:
 
 
-{
-  c'^\markup { roman: foo \sans bla \typewriter bar }
+@lilypond[quote,verbatim,relative=2]
+a1^\markup {
+  \vcenter {
+    \override #'(font-encoding . fetaBraces)
+    \lookup #"brace120"
+    \override #'(font-encoding . fetaNumber)
+    \column { 1 3 }
+    \override #'(font-encoding . fetaDynamic)
+    sf
+    \override #'(font-encoding . fetaMusic)
+    \lookup #"noteheads.s0petrucci"
+  }
 }
 @end lilypond
 
 }
 @end lilypond
 
-@c we don't do Helvetica / Courier, since GS incorrectly loads
-@c Apple TTF fonts
-
-
-@node Single entry fonts
-@subsubsection Single entry fonts
+@noindent
+However, all these glyphs except the braces of various sizes
+contained in @code{fetaBraces} are available using the
+simpler syntax described in @ref{Music notation inside markup}.
+
+When using the glyphs contained in @code{fetaBraces}, the size of
+the brace is specified by the numerical part of the glyph name, in
+arbitrary units.  Any integer from @code{0} to @code{575} inclusive
+may be specified, @code{0} giving the smallest brace.  The optimum
+value must be determined by trial and error.  These glyphs are all
+left braces; right braces may be obtained by rotation, see
+@ref{Rotating objects}.
+
+Three families of text fonts are made available: the
+@emph{roman} (serif) font, that defaults to New Century
+Schoolbook, the @emph{sans} font and the monospaced
+@emph{typewriter} font -- these last two families are
+determined by the Pango installation.
+
+Each family may include different shapes and series.
+The following example demonstrates the ability to select
+alternate families, shapes, series and sizes.  The value
+supplied to @code{font-size} is the required change from the
+default size.
 
 
-@cindex font selection
-@cindex font magnification
-@funindex font-interface
+@lilypond[quote,verbatim,relative=2]
+\override Score.RehearsalMark #'font-family = #'typewriter
+\mark \markup "Ouverture"
+\override Voice.TextScript #'font-shape = #'italic
+\override Voice.TextScript #'font-series = #'bold
+d2.^\markup "Allegro"
+\override Voice.TextScript #'font-size = #-3
+c4^smaller
+@end lilypond
 
 
-By setting the object properties described below, you can select a
-font from the preconfigured font families.  LilyPond has default
-support for the feta music fonts.  Text fonts are selected through
-Pango/FontConfig.  The serif font defaults to New Century
-Schoolbook, the sans and typewriter to whatever the Pango
-installation defaults to.
+@noindent
+A similar syntax may be used in markup mode, however in this case
+it is preferable to use the simpler syntax explained in
+@ref{Selecting font and font size}:
 
 
+@lilypond[quote,verbatim]
+\markup {
+  \column {
+    \line {
+      \override #'(font-shape . italic)
+      \override #'(font-size . 4)
+      Idomeneo,
+    }
+    \line {
+      \override #'(font-family . typewriter)
+      {
+        \override #'(font-series . bold)
+        re
+        di
+      }
+      \override #'(font-family . sans)
+      Creta
+    }
+  }
+}
+@end lilypond
 
 
-@itemize
-@item @code{font-encoding}
-is a symbol that sets layout of the glyphs.  This should only be
-set to select different types of non-text fonts, e.g.
+Although it is easy to switch between preconfigured fonts,
+it is also possible to use other fonts, as explained in the
+following sections: @ref{Single entry fonts} and
+@ref{Entire document fonts}.
 
 
-@code{fetaBraces} for piano staff braces, @code{fetaMusic} the
-standard music font, including ancient glyphs, @code{fetaDynamic}
-for dynamic signs and @code{fetaNumber} for the number font.
 
 
-@item @code{font-family}
-is a symbol indicating the general class of the typeface.
-Supported are @code{roman} (Computer Modern), @code{sans}, and
-@code{typewriter}.
+@seealso
+Notation Reference:
+@ref{The Feta font},
+@ref{Music notation inside markup},
+@ref{Selecting font and font size},
+@ref{Font}.
 
 
-@item @code{font-shape}
-is a symbol indicating the shape of the font.  There are typically
-several font shapes available for each font family.  Choices are
-@code{italic}, @code{caps}, and @code{upright}.
 
 
-@item @code{font-series}
-is a symbol indicating the series of the font.  There are
-typically several font series for each font family and shape.
-Choices are @code{medium} and @code{bold}.
+@node Single entry fonts
+@unnumberedsubsubsec Single entry fonts
 
 
-@end itemize
+Any font that is installed on the operating system and recognized
+by FontConfig may be used in a score, using the following syntax:
 
 
-Fonts selected in the way sketched above come from a predefined
-style sheet.  If you want to use a font from outside the style
-sheet, then set the @code{font-name} property,
+@lilypond[quote,verbatim,relative=2]
+\override Staff.TimeSignature #'font-name = #"Charter"
+\override Staff.TimeSignature #'font-size = #2
+\time 3/4
 
 
-@lilypond[fragment,verbatim]
-{
-  \override Staff.TimeSignature #'font-name = #"Charter"
-  \override Staff.TimeSignature #'font-size = #2
-  \time 3/4
-  c'1_\markup {
-    \override #'(font-name . "Vera Bold")
-      { This text is in Vera Bold }
-  }
+a1_\markup {
+  \override #'(font-name . "Vera Bold")
+    { Vera Bold }
 }
 @end lilypond
 
 }
 @end lilypond
 
-@noindent
-Any font can be used, as long as it is available to
-Pango/FontConfig.  To get a full list of all available fonts, run
-the command
+@funindex show-available-fonts
+
+The following command displays a list of all available fonts
+on the operating system:
 
 @example
 
 @example
-lilypond -dshow-available-fonts blabla
+lilypond -dshow-available-fonts x
 @end example
 
 @end example
 
-(the last argument of the command can be anything, but has to be
-present).
+@noindent
+The last argument of the command can be anything, but has to be
+present.
 
 
 
 
-The size of the font may be set with the @code{font-size}
-property.  The resulting size is taken relative to the
-@code{text-font-size} as defined in the @code{\paper} block.
+@seealso
+Notation Reference:
+@ref{Fonts explained},
+@ref{Entire document fonts}.
 
 
-@cindex font size
-@cindex font magnification
+Snippets:
+@rlsr{Text}.
 
 
+Installed files:
+@file{lily/@/font@/-config@/-scheme@/.cc}.
 
 
 
 
+@node Entire document fonts
+@unnumberedsubsubsec Entire document fonts
 
 
-@seealso
+It is possible to change the fonts to be used as the default fonts in
+the @emph{roman}, @emph{sans} and @emph{typewriter} font families by
+specifying them, in that order, as shown in the example below.  For an
+explanation of fonts, see @ref{Fonts explained}.
 
 
-Snippets:
-@rlsr{Text}.
+@cindex font families, setting
+@funindex make-pango-font-tree
 
 
+@lilypond[verbatim,quote]
+\paper  {
+  myStaffSize = #20
+  #(define fonts
+    (make-pango-font-tree "Times New Roman"
+                          "Nimbus Sans"
+                          "Luxi Mono"
+                           (/ myStaffSize 20)))
+}
+
+\relative c'{
+  c1-\markup {
+    roman,
+    \sans sans,
+    \typewriter typewriter. }
+}
+@end lilypond
+
+@c we don't do Helvetica / Courier, since GS incorrectly loads
+@c Apple TTF fonts
+
+
+@seealso
+Notation Reference:
+@ref{Fonts explained},
+@ref{Single entry fonts},
+@ref{Selecting font and font size},
+@ref{Font}.