]> git.donarmstrong.com Git - lilypond.git/blobdiff - Documentation/user/text.itely
Merge branch 'lilypond/translation' of ssh://pacovila@git.sv.gnu.org/srv/git/lilypond...
[lilypond.git] / Documentation / user / text.itely
index 715b6f2756a3d8f2f915b729f289348406845b91..6730c5f547ff9142aeec2874a106619e95de6b98 100644 (file)
@@ -6,13 +6,19 @@
     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.38"
+
 @node Text
 @section Text
 
 @lilypondfile[quote]{text-headword.ly}
 
 This section explains how to include text (with various
 @node Text
 @section Text
 
 @lilypondfile[quote]{text-headword.ly}
 
 This section explains how to include text (with various
-formatting) in your scores.
+formatting) in music scores.
+
+@noindent
+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
 
 
 @cindex Text, other languages
@@ -23,17 +29,21 @@ information, see @ref{Text encoding}.}
 
 @menu
 * Writing text::                
 
 @menu
 * Writing text::                
-* Text markup::                 
+* Formatting text::             
+* Fonts::                       
 @end menu
 
 
 @node Writing text
 @subsection Writing text
 
 @end menu
 
 
 @node Writing text
 @subsection Writing text
 
-@menu     
+This section introduces different ways of adding text to a score.
+
+@menu
 * Text scripts::                
 * Text spanners::               
 * Text marks::                  
 * Text scripts::                
 * Text spanners::               
 * Text marks::                  
+* Separate text::               
 @end menu
 
 
 @end menu
 
 
@@ -43,22 +53,22 @@ information, see @ref{Text encoding}.}
 @cindex Text scripts
 @cindex text items, non-empty
 @cindex non-empty texts
 @cindex Text scripts
 @cindex text items, non-empty
 @cindex non-empty texts
+@cindex quoted text
 
 
-It is possible to add arbitrary text indications with
-@var{note}@code{-"}@var{text}@code{"}.
-Such indications can also be manually placed
+Simple @q{quoted text} indications may be added
+to a score, as demonstrated in the following example.
+Such indications can be manually placed
 above or below the staff, using the
 above or below the staff, using the
-simple syntax described in @ref{Controlling direction and
+simple syntax described in @ref{Direction and
 placement}.
 
 @lilypond[quote,fragment,ragged-right,verbatim,relative=1]
 d8^"pizz." e f g a4-"scherz." f
 @end lilypond
 
 placement}.
 
 @lilypond[quote,fragment,ragged-right,verbatim,relative=1]
 d8^"pizz." e f g a4-"scherz." f
 @end lilypond
 
-In LilyPond, such text strings are called @command{markup}
-objects.  This syntax is actually a shorthand; more complex text
-formatting may be added to a note by explicitly using the
-@code{\markup} command, as described in @ref{Text markup}.
+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,fragment,ragged-right,verbatim,relative=1]
 d8^\markup { \italic pizz. } e f g 
@@ -84,11 +94,13 @@ d8^"pizz." e f g \textLengthOn a4_"scherzando" f
 
 @seealso
 
 
 @seealso
 
-Notation Reference: @ref{Text markup}.
+Notation Reference: @ref{Formatting text},
+@ref{Direction and placement}.
 
 
-Snippets: @lsrdir{Text,Text}
+Snippets:
+@rlsr{Text}.
 
 
-Internals Reference: @internalsref{TextScript}.
+Internals Reference: @rinternals{TextScript}.
 
 @knownissues
 
 
 @knownissues
 
@@ -110,9 +122,8 @@ default; to enable it, use
 Some performance indications, e.g., @i{rallentando} or
 @i{accelerando}, are written as text and are extended over many
 measures with dotted lines.
 Some performance indications, e.g., @i{rallentando} or
 @i{accelerando}, are written as text and are extended over many
 measures with dotted lines.
-
 Such objects, called @q{spanners}, may be created
 Such objects, called @q{spanners}, may be created
-from one note to another by 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." 
 
 @lilypond[verbatim,quote,ragged-right,fragment,relative=2]
 \override TextSpanner #'bound-details #'left #'text = "rit." 
@@ -122,9 +133,9 @@ e,\stopTextSpan
 
 @noindent
 The string to be printed is set through
 
 @noindent
 The string to be printed is set through
-object properties. By default it is printed in italic characters,
+object properties.  By default it is printed in italic characters,
 but different formatting can be obtained using
 but different formatting can be obtained using
-@code{\markup} blocks:
+@code{\markup} blocks, as described in @ref{Formatting text}.
 
 @lilypond[quote,ragged-right,fragment,relative=2,verbatim]
 \override TextSpanner #'bound-details #'left #'text =
 
 @lilypond[quote,ragged-right,fragment,relative=2,verbatim]
 \override TextSpanner #'bound-details #'left #'text =
@@ -134,7 +145,7 @@ e,\stopTextSpan
 @end lilypond
 
 The line style, as well as the text string, can be defined as an
 @end lilypond
 
 The line style, as well as the text string, can be defined as an
-object property. This syntax is described in @ref{Line styles}.
+object property.  This syntax is described in @ref{Line styles}.
 
 @predefined
 
 
 @predefined
 
@@ -147,9 +158,12 @@ object property. This syntax is described in @ref{Line styles}.
 
 @seealso
 
 
 @seealso
 
-Snippets: @lsrdir{Text,Text}
+Notation Reference: @ref{Line styles}.
 
 
-Internals Reference: @internalsref{TextSpanner}.
+Snippets:
+@rlsr{Text}.
+
+Internals Reference: @rinternals{TextSpanner}.
 
 
 @node Text marks
 
 
 @node Text marks
@@ -165,12 +179,12 @@ Various text elements can be added to a score using
 the syntax described in @ref{Rehearsal marks}:
 
 @lilypond[verbatim,quote,ragged-right,fragment,relative=2]
 the syntax described in @ref{Rehearsal marks}:
 
 @lilypond[verbatim,quote,ragged-right,fragment,relative=2]
-c4\mark "dolce" c c c
+c4\mark "Allegro" c c c
 @end lilypond
 
 This syntax makes possible to put any text on a bar line;
 more complex text formatting may be added using a @code{\markup}
 @end lilypond
 
 This syntax makes 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{Text markup}.  This can be used to print
+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:
 
 signs like coda, segno or fermata, by specifying the appropriate
 symbol name:
 
@@ -180,14 +194,14 @@ c1
 @end lilypond
 
 @noindent
 @end lilypond
 
 @noindent
-Such objects are only typeset above the top staff of the score; they
-can be placed above the bar line or between notes, depending on whether
-you specify it at the end or the middle of a bar. When specified at the
-beginning of a score or at a line break, the mark will be printed at
+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).
 
 @lilypond[fragment,quote,ragged-right,verbatim,relative=2]
 the beginning of the line (the next line, in case of a line break).
 
 @lilypond[fragment,quote,ragged-right,verbatim,relative=2]
-\mark "dolce" c1
+\mark "Allegro" c1
 c\mark "assai" \break
 c c
 @end lilypond
 c\mark "assai" \break
 c c
 @end lilypond
@@ -195,38 +209,114 @@ c c
 
 @snippets
 
 
 @snippets
 
-@lilypondfile[verbatim,lilyquote,ragged-right,texidoc]
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
 {printing-marks-at-the-end-of-a-line-or-a-score.ly}
 
 {printing-marks-at-the-end-of-a-line-or-a-score.ly}
 
-@lilypondfile[verbatim,lilyquote,ragged-right,texidoc]
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
 {aligning-marks-with-various-notation-objects.ly}
 
 {aligning-marks-with-various-notation-objects.ly}
 
-@lilypondfile[verbatim,lilyquote,ragged-right,texidoc]
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
 {printing-marks-on-every-staff.ly}
 
 @seealso
 
 {printing-marks-on-every-staff.ly}
 
 @seealso
 
-Snippets: @lsrdir{Text,Text}
+Notation Reference: @ref{Rehearsal marks},
+@ref{Formatting text}, @ref{The Feta font}.
+
+Snippets:
+@rlsr{Text}.
 
 
-Internals Reference: @internalsref{RehearsalMark}.
+Internals Reference: @rinternals{RehearsalMark}.
 
 @knownissues
 
 @knownissues
-@c  IMO this is a bug; hopefully it'll be fixed soon, so I can
-@c  delete this sentence.   -gp
-@c  A workaround is suggested in the first @snippets item -vv
+@c  To be removed when Issue 69 in the tracker gets fixed. -vv
 
 If a mark is entered at the end of the last bar of the score (where
 there is no next line), then the mark will not be printed at
 all.
 
 
 If a mark is entered at the end of the last bar of the score (where
 there is no next line), then the mark will not be printed at
 all.
 
-@node Text markup
-@subsection Text markup
+@node Separate text
+@subsubsection Separate text
+
+@cindex separate text
+@cindex standalone text
+@cindex top-level text
+@cindex text, standalone
+@funindex \markup
+
+A @code{\markup} block can exist by itself, outside of any
+any @code{\score} block, as a @qq{top-level
+expression}.  This syntax is described in @ref{File structure}.
+
+@lilypond[verbatim,quote]
+\markup {
+  Tomorrow, and tomorrow, and tomorrow...
+}
+@end lilypond
+
+@noindent
+This allows to print text separately
+from the music, which is particularly 
+useful when the input file contains
+several music pieces, as described in
+@ref{Multiple scores in a book}.
+
+@lilypond[quote,ragged-right,verbatim]
+\score {
+  c'1
+}
+\markup {
+  Tomorrow, and tomorrow, and tomorrow...
+}
+\score {
+  c'1
+}
+@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}.
+
+@predefined
+
+@code{\markup},
+@funindex \markuplines
+@code{\markuplines}
+
+@ignore
+@snippets
+
+TODO: add convenient snippets in input/new -vv
+@end ignore
+
+@seealso
+
+Notation Reference: @ref{Formatting text},
+@ref{File structure}, 
+@ref{Multiple scores in a book},
+@ref{Multi-page markup}.
+
+Snippets:
+@rlsr{Text}.
+
+Internals Reference: @rinternals{TextScript}.
+
+
+@node Formatting text
+@subsection Formatting text
+
+This section presents basic and advanced text formatting,
+using the @code{\markup} mode specific syntax.
 
 @menu
 * Text markup introduction::    
 
 @menu
 * Text markup introduction::    
-* Nested scores::               
-* Page wrapping text::          
-* Font selection::              
+* Common markup commands::      
+* 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
@@ -236,172 +326,416 @@ all.
 @cindex text markup
 @cindex markup text
 @cindex typeset text
 @cindex text markup
 @cindex markup text
 @cindex typeset text
+@funindex \markup
+
+A @code{\markup} block is used to typeset text with an extensible
+specific 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{@{
+@dots{} @}}.
+
+Unlike simple @q{quoted text} indications, @code{\markup} blocks
+may contain nested expressions or specific commands,
+entered using the backslash @code{\} character.
+Such commands only affect the first following expression.
 
 
-A @code{\markup} block is used to typeset text with an extensible syntax,
-called @q{markup mode}.
-Specific commands can be entered in this mode, using the
-backslash @code{\} character.
-@c TODO: move the following sentence (and add an example?) -vv
-To @emph{print} such characters as
-@code{\} and @code{#} in the output, use double
-quotation marks.
+@lilypond[quote,verbatim,fragment,relative=1]
+e1-\markup "intenso"
+a2^\markup { poco \italic più forte  }
+c e1
+d2_\markup { \italic "string. assai" }
+e 
+b1^\markup { \bold { molto \italic  agitato } }
+c
+@end lilypond
+
+@cindex special characters in markup mode
+@cindex markup mode, special characters
+@cindex reserved characters, printing
+@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{#}).
+Quoted text even allows to print double quotation marks, by preceding
+them with backslashes:
 
 @lilypond[quote,verbatim,fragment,relative=1]
 
 @lilypond[quote,verbatim,fragment,relative=1]
-c1^\markup { hello }
-c1_\markup { hi there }
-c1^\markup { hi \bold there, is \italic {anyone home?} }
-c1_\markup { "\special {weird} #characters" }
+\clef bass
+a^\markup "##\ LEPORELLO \##"
+a_\markup "Bravi! \"Cosa rara\"!"
+r a8 d
+cis a r4 r2
 @end lilypond
 
 @end lilypond
 
+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 } }
+@end lilypond
+
+Lists of words that are not enclosed with double quotes
+or preceded by a command are not kept distinct.  In
+the following example, the first two @code{\markup} expressions
+are equivalent:
+
+@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 } } }
+@end lilypond
+
+
+Markups can be stored in variables.  These variables may be
+directly attached to notes:
+
+@lilypond[quote,verbatim]
+allegro = \markup { \bold \large Allegro }
+
+{
+  d''8.^\allegro
+  d'16 d'4 r2
+}
+@end lilypond
+
+
 @noindent
 An exhaustive list of @code{\markup}-specific commands can be found in
 @ref{Text markup commands}.
 
 @noindent
 An exhaustive list of @code{\markup}-specific commands can be found in
 @ref{Text markup commands}.
 
-@code{\markup} blocks can be used anywhere text is called,
-and not only for @internalsref{TextScript}s objects.
+
+@seealso
+
+This manual: @ref{Text markup commands}.
+
+Snippets:
+@rlsr{Text}.
+
+Internals Reference: @rinternals{TextScript}.
+
+Init files: @file{scm/@/new@/-markup@/.scm}.
+
+
+@knownissues
+
+Syntax errors for markup mode are confusing.
+
+
+@node Common markup commands
+@subsubsection Common markup commands
+
+Markup text may be formatted using simple commands.
+
+@cindex font switching
+@funindex \italic
+@funindex \bold
+@funindex \underline
+
+Basic font switching is supported:
+
+@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
+}
+@end lilypond
+
+@cindex font size
+@cindex text size
+@funindex \fontsize
+@funindex \small
+@funindex \large
+@funindex \smaller
+@funindex \larger
+@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,
+
+@item
+predefined commands allow to easily select standard sizes,
+
+@item
+other commands allow to change the size relatively to its previous value.
+@end itemize
+
+@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
+}
+@end lilypond
+
+@cindex subscript
+@cindex superscript
+@funindex \super
+@funindex \sub
+
+Text may be printed as subscript or superscript. By default
+these are printed in a smaller size, but a normal size can be used as well:
 
 @lilypond[quote,verbatim]
 
 @lilypond[quote,verbatim]
-\header{ title = \markup{ \bold { foo \italic { bar! } } } }
-\score{
-  \relative c'' {
-    \override Score.RehearsalMark
-      #'break-visibility = #begin-of-line-invisible
-    \override Score.RehearsalMark #'self-alignment-X = #right
-
-    \set Staff.instrumentName = \markup{ \column{ Alto solo } }
-    c2^\markup{ don't be \flat }
-    \override TextSpanner #'bound-details #'left #'text = \markup{\italic rit }
-    b2\startTextSpan
-    a2\mark \markup{ \large \bold Fine }
-    r2\stopTextSpan
-    \bar "||"
+\markup {
+  \column {
+    \line { 1 \super st movement }
+    \line { 1 \normal-size-super st movement 
+      \sub { (part two) }  }
   }
   }
-  \addlyrics { bar, foo \markup{ \italic bar! } }
 }
 @end lilypond
 
 }
 @end lilypond
 
-A @code{\markup} block can also be printed on its own at the top-level
-of the input file, away from
-any @code{\score} block. This syntax is described in
-@ref{Multiple scores in a book}.
+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 following words.
 
 
-@lilypond[quote,ragged-right,verbatim]
-\markup{ Here is some text. }
+@lilypond[quote,verbatim]
+\markup {
+  \column {
+    \line { Act \number 1 }
+    \line { \sans { Scene I. } }
+    \line { \typewriter { Verona. An open place. } }
+    \line { \roman Enter Valentine and Proteus. }
+  }
+}
 @end lilypond
 
 @end lilypond
 
-@cindex font switching
+@noindent
+Some of these font families, used for specific items
+such as numbers or dynamics, do not provide all
+characters, as mentioned in @ref{New dynamic marks} and
+@ref{Manual repeat marks}.
 
 
-Some font switching commands are demonstrated here. Such commands
-apply only to the first following word; several words may be affected
-by enclosing them in braces.
 
 
-@example
-\markup @{ \bold @{ hi there @} @}
-@end example
+Defining custom font sets is also possible, as explained in
+@ref{Fonts}.
 
 
-@c TODO: remove the following line and example? -vv
-@noindent
-For clarity, you can also do this for single arguments, e.g.,
+An exhaustive list of font-switching, font-size and font-families related
+commands can be found in @ref{Font}.
+
+@c TODO: add @seealso
+
+@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}.
 
 
-@example
-\markup @{ is \italic @{ anyone @} home @}
-@end example
 
 
-The markup mode can be used to compose expressions, similar to
-mathematical expressions, XML documents, and music expressions.
-Such expressions can be vertically stacked, horizontally centered, 
-or aligned in different ways:
+
+@node Text alignment
+@subsubsection Text alignment
+
+@warning{This subsection discusses how to place text in markup mode,
+inside a @code{\markup} block.  However, markup objects can also
+be moved as a whole using the syntax described in
+@rlearning{Moving objects}.}
+
+Markup objects can 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.
 
 @lilypond[quote,verbatim,fragment,relative=1]
 
 @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 } }
+a1-\markup { poco }
+e'
+a,-\markup { \left-align poco }
+e'
+a,-\markup { \center-align { poco } }
+e'
+a,-\markup { \right-align poco }
 @end lilypond
 
 @end lilypond
 
-Lists with no previous command are not kept distinct.  In
-the following example, the two @code{\markup} expressions
-are equivalent:
+@c FIXME: \center-align actually doesn't belong here
+@c \center-align vs \column
+@c \center-align vs \hcenter
 
 
-@c TODO: merge these two examples in a @lilypond example -vv
+Horizontal alignment:
+\hcenter
+\general-align
+\halign 
 
 
-@example
-\center-align @{ @{ a b @} @{ c d @} @}
-\center-align @{ a b c d @}
-@end example
 
 
-@noindent
+\null
+\hspace
 
 
-To keep lists of words distinct, please use quotes @code{"} or
-the @code{\line} command
+\lower
+\raise 
+\translate 
+\translate-scaled
+\rotate
+\transparent
+\whiteout
 
 
-@lilypond[quote,verbatim,fragment,relative=1]
-\textLengthOn
-c4^\markup{ \center-align { on three lines } }
-c4^\markup{ \center-align { "all one line" } }
-c4^\markup{ \center-align { { on three lines } } }
-c4^\markup{ \center-align { \line { on one line } } }
-@end lilypond
+Vertical alignment: 
+\vcenter
+\column 
+\dir-column 
 
 
-Markups can be stored in variables and these variables may be
-attached to notes, like
+Building a "large" markup:
+
+\line
+
+\fill-line
+
+\hcenter-in
+       
+\pad-around
+\pad-markup
+\pad-to-box
+\pad-x
+       
+Alignment inside a "large" markup:
+
+\justify-field 
+\justify
+\justify-string
+
+\wordwrap-field
+\wordwrap
+\wordwrap-string
+
+
+@ignore
+TODO: here are some commands that could be described here.
+I'm putting them in bulk, prior to working on this section. -vv
+
+\simple
+
+\char
+\fraction
+
+\combine
+\concat
+\put-adjacent
+
+
+\page-ref (see also "Table of contents")
+\fromproperty
+\verbatim-file
+\with-url
+
+\on-the-fly 
+\override
+
+
+
+@end ignore
 
 
-@example
-allegro = \markup @{ \bold \large @{ Allegro @} @}
- @{ a^\allegro b c d @}
-@end example
 
 Some objects have alignment procedures of their own, which cancel
 out any effects of alignments applied to their markup arguments as
 
 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 @internalsref{RehearsalMark} is
+a whole.  For example, the @rinternals{RehearsalMark} is
 horizontally centered, so using @code{\mark \markup @{ \left-align
 .. @}} has no effect.
 
 horizontally centered, so using @code{\mark \markup @{ \left-align
 .. @}} has no effect.
 
-In addition, vertical placement is performed after creating the
-text markup object.  If you wish to move an entire piece of
-markup, you need to use the #'padding property or create an
-@q{anchor} point inside the markup (generally with @code{\hspace
-#0}).
 
 
-@lilypond[quote,verbatim,fragment,relative=1]
-\textLengthOn
-c'4^\markup{ \raise #5 "not raised" }
-\once \override TextScript #'padding = #3
-c'4^\markup{ raised }
-c'4^\markup{ \hspace #0 \raise #1.5 raised }
-@end lilypond
 
 
-Some situations (such as dynamic marks) have preset font-related
-properties.  If you are creating text in such situations, it is
-advisable to cancel those properties with @code{normal-text}.  See
-@ref{Text markup commands}, for more details.
+@node Graphic notation inside markup
+@subsubsection Graphic notation inside markup
+Graphics around text:
+\box
+\circle
 
 
+\bracket
+\hbracket
 
 
-@seealso
+"Standalone" graphics:
 
 
-This manual: @ref{Text markup commands}.
+\arrow-head
+\draw-line
+\draw-circle
+\filled-box
+\triangle
+\strut
 
 
-Snippets: @lsrdir{Text,Text}
+\with-color
 
 
-Internals Reference: @internalsref{TextScript}.
 
 
-Init files: @file{scm/@/new@/-markup@/.scm}.
+Advanced graphics:
+\stencil
 
 
+\postscript
+\epsfile
 
 
-@knownissues
+\with-dimensions
 
 
-Kerning or generation of ligatures is only done when the @TeX{}
-backend is used.  In this case, LilyPond does not account for them
-so texts will be spaced slightly too wide.
+@node Music notation inside markup
+@subsubsection Music notation inside markup
 
 
-Syntax errors for markup mode are confusing.
+Notes can be printed in markup mode blah blah:
+
+\note  
+\note-by-number
+
+Accidental symbols can be obtained easily:
 
 
+\doubleflat
+\sesquiflat
+\flat
+\semiflat
+\natural
+\semisharp
+\sharp
+\sesquisharp
+\doublesharp
 
 
-@node Nested scores
-@subsubsection Nested scores
+Some other notation objects blah blah
+
+\beam
+\finger
+\dynamic
+\tied-lyric
+\markalphabet
+\markletter
+@c TODO: add \text here? -vv
+
+Any musical symbol can be printed
+
+\musicglyph
+@c TODO: add \lookup here? -vv
+
+
+The markup mode has support for fret diagrams:
+
+\fret-diagram 
+\fret-diagram-terse
+\fret-diagram-verbose
+
+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.
+
+
+\score
 
 
-It is possible to nest music inside markups, by adding a
-@code{\score} block to a markup expression.  Such a score must
-contain a @code{\layout} block.
 
 @lilypond[quote,verbatim,ragged-right]
 \relative {
 
 @lilypond[quote,verbatim,ragged-right]
 \relative {
@@ -417,10 +751,11 @@ contain a @code{\layout} block.
 
 @seealso
 
 
 @seealso
 
-Snippets: @lsrdir{Text,Text}
+Snippets:
+@rlsr{Text}.
 
 
-@node Page wrapping text
-@subsubsection Page wrapping text
+@node Multi-page markup
+@subsubsection 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
 
 Whereas @code{\markup} is used to enter a non-breakable block of
 text, @code{\markuplines} can be used at top-level to enter lines
@@ -450,15 +785,58 @@ lists.  The built-in markup list commands are described in
 This manual: @ref{Text markup list commands}, @ref{New
 markup list command definition}.
 
 This manual: @ref{Text markup list commands}, @ref{New
 markup list command definition}.
 
-Snippets: @lsrdir{Text,Text}
+Snippets:
+@rlsr{Text}.
 
 @predefined
 
 @funindex \markuplines
 @code{\markuplines}
 
 
 @predefined
 
 @funindex \markuplines
 @code{\markuplines}
 
-@node Font selection
-@subsubsection Font selection
+
+@node Fonts
+@subsection Fonts
+
+@menu
+* Entire document fonts::       
+* Single entry fonts::          
+@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,
+
+@cindex font families, setting
+@cindex Pango
+
+
+@lilypond[verbatim]
+\paper  {
+  myStaffSize = #20
+
+  #(define fonts
+    (make-pango-font-tree "Times New Roman"
+                          "Nimbus Sans"
+                          "Luxi Mono"
+                           (/ myStaffSize 20)))
+}
+
+{
+  c'^\markup { roman: foo \sans bla \typewriter bar }
+}
+@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
 
 @cindex font selection
 @cindex font magnification
 
 @cindex font selection
 @cindex font magnification
@@ -535,39 +913,11 @@ property.  The resulting size is taken relative to the
 @cindex font magnification
 
 
 @cindex font magnification
 
 
-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,
-
-@cindex font families, setting
-@cindex Pango
-
-
-@lilypond[verbatim]
-\paper  {
-  myStaffSize = #20
-
-  #(define fonts
-    (make-pango-font-tree "Times New Roman"
-                          "Nimbus Sans"
-                          "Luxi Mono"
-                           (/ myStaffSize 20)))
-}
-
-{
-  c'^\markup { roman: foo \sans bla \typewriter bar }
-}
-@end lilypond
-
-@c we don't do Helvetica / Courier, since GS incorrectly loads
-@c Apple TTF fonts
-
 
 
 @seealso
 
 
 
 @seealso
 
-Snippets: @lsrdir{Text,Text}
+Snippets:
+@rlsr{Text}.