]> git.donarmstrong.com Git - lilypond.git/blobdiff - Documentation/user/text.itely
GDP: Process comments on LM 3 (C)
[lilypond.git] / Documentation / user / text.itely
index d1c02fba42af292adac1171370d94147a9960747..3c2c2a4d20aa1a17a2b445ff5466ca705328c94d 100644 (file)
@@ -14,7 +14,7 @@
 @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
@@ -37,6 +37,8 @@ information, see @ref{Text encoding}.}
 @node Writing text
 @subsection Writing text
 
+This section introduces different ways of adding text to a score.
+
 @menu
 * Text scripts::                
 * Text spanners::               
@@ -95,9 +97,10 @@ d8^"pizz." e f g \textLengthOn a4_"scherzando" f
 Notation Reference: @ref{Formatting text},
 @ref{Controlling direction and placement}.
 
-Snippets: @lsrdir{Text,Text}
+Snippets:
+@rlsr{Text}.
 
-Internals Reference: @internalsref{TextScript}.
+Internals Reference: @rinternals{TextScript}.
 
 @knownissues
 
@@ -119,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.
-
 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." 
@@ -131,9 +133,9 @@ e,\stopTextSpan
 
 @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
-@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 =
@@ -143,7 +145,7 @@ e,\stopTextSpan
 @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
 
@@ -158,9 +160,10 @@ object property. This syntax is described in @ref{Line styles}.
 
 Notation Reference: @ref{Line styles}.
 
-Snippets: @lsrdir{Text,Text}
+Snippets:
+@rlsr{Text}.
 
-Internals Reference: @internalsref{TextSpanner}.
+Internals Reference: @rinternals{TextSpanner}.
 
 
 @node Text marks
@@ -176,7 +179,7 @@ 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]
-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;
@@ -191,14 +194,14 @@ c1
 @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]
-\mark "dolce" c1
+\mark "Allegro" c1
 c\mark "assai" \break
 c c
 @end lilypond
@@ -220,9 +223,10 @@ c c
 Notation Reference: @ref{Rehearsal marks},
 @ref{Formatting text}, @ref{The Feta font}.
 
-Snippets: @lsrdir{Text,Text}
+Snippets:
+@rlsr{Text}.
 
-Internals Reference: @internalsref{RehearsalMark}.
+Internals Reference: @rinternals{RehearsalMark}.
 
 @knownissues
 @c  IMO this is a bug; hopefully it'll be fixed soon, so I can
@@ -243,16 +247,14 @@ all.
 @funindex \markup
 
 A @code{\markup} block can exist by itself, outside of any
-any @code{\score} block.  This syntax is called a @q{top-level
-expression}, and is described in @code{File structure}.
-
-@c TODO: turn this into a @lilypond example
+any @code{\score} block, as a @qq{top-level
+expression}.  This syntax is described in @ref{File structure}.
 
-@example
-\markup @{
-  @var{..}
-@}
-@end example
+@lilypond[quote,ragged-right,verbatim]
+\markup {
+  Tomorrow, and tomorrow, and tomorrow...
+}
+@end lilypond
 
 @noindent
 This allows to print text separately
@@ -261,61 +263,63 @@ useful when the input file contains
 several music pieces, as described in
 @ref{Multiple scores in a book}.
 
-@example
-\score @{
-  @var{..}
-@}
-\markup @{
-  @var{..}
-@}
-\score @{
-  @var{..}
-@}
-@end example
+@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-pages markup}.
+@ref{Multi-page markup}.
+
+@predefined
+
+@funindex \markup
+@code{\markup},
+@funindex \markuplines
+@code{\markuplines}
 
 @ignore
 @snippets
 
-TODO: add convenient snippets, e.g.
-"Inserting large plain text sections"
-(this requires the LSR to be updated) -vv
+TODO: add convenient snippets in input/new -vv
 @end ignore
 
 @seealso
 
-Notation Reference: @code{Formatting text},
-@code{File structure}, 
+Notation Reference: @ref{Formatting text},
+@ref{File structure}, 
 @ref{Multiple scores in a book},
-@ref{Multi-pages markup}.
+@ref{Multi-page markup}.
 
-Snippets: @lsrdir{Text,Text}.
+Snippets:
+@rlsr{Text}.
 
-Internals Reference: @internalsref{TextScript}.
-
-@predefined
-
-@funindex \markup
-@code{\markup},
-@funindex \markuplines
-@code{\markuplines}
+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::    
 * Common markup commands::      
 * Text alignment::              
 * Graphic notation inside markup::  
 * Music notation inside markup::  
-* Multi-pages markup::          
+* Multi-page markup::          
 @end menu
 
 @node Text markup introduction
@@ -327,7 +331,7 @@ Internals Reference: @internalsref{TextScript}.
 @cindex typeset text
 
 A @code{\markup} block is used to typeset text with an extensible syntax,
-called @q{markup mode}.
+called @qq{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
@@ -346,8 +350,6 @@ c1_\markup { "\special {weird} #characters" }
 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.
 
 @lilypond[quote,verbatim]
 \header{ title = \markup{ \bold { foo \italic { bar! } } } }
@@ -369,14 +371,7 @@ and not only for @internalsref{TextScript}s objects.
 }
 @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}.
 
-@lilypond[quote,ragged-right,verbatim]
-\markup{ Here is some text. }
-@end lilypond
 
 @cindex font switching
 
@@ -441,7 +436,7 @@ allegro = \markup @{ \bold \large @{ Allegro @} @}
 
 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.
 
@@ -464,14 +459,50 @@ 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.
 
+@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
+
+
+\null
+\hspace
+
+\lower
+\raise 
+\translate 
+\translate-scaled
+\rotate
+\transparent
+\whiteout
+
+@end ignore
 
 @seealso
 
 This manual: @ref{Text markup commands}.
 
-Snippets: @lsrdir{Text,Text}
+Snippets:
+@rlsr{Text}.
 
-Internals Reference: @internalsref{TextScript}.
+Internals Reference: @rinternals{TextScript}.
 
 Init files: @file{scm/@/new@/-markup@/.scm}.
 
@@ -487,24 +518,183 @@ Syntax errors for markup mode are confusing.
 @node Common markup commands
 @subsubsection Common markup commands
 
-TODO: everything
+Some basic formatting can be used blah blah
+
+\italic 
+\upright
+\bold 
+\medium        
+\underline
+       
+
+@c TODO: what's the difference between the following commands? -vv
+\smallCaps     
+\caps 
+\fontCaps
+
+
+Some alternate font families can easily be selected:
+
+\sans
+\typewriter
+\roman
+\number (only for numbers, such as fingerings and time signatures)
+@c TODO: add \slashed-digit here? -vv
+
+The size can be blah blah blah
+
+\fontsize
+
+Some predefined font sizes can be used blah blah
+
+\teeny
+\tiny
+\small 
+\normalsize
+\large
+\huge
+
+Some shorcuts allow to change the font size relatively to its previous value 
+
+\smaller
+\bigger
+\larger
+
+\magnify
+
+Text may be printed as subscript or superscript:
+
+\sub 
+\super
+
+To obtain subscripts or superscripts in a normal text size, use
+\normal-size-sub
+\normal-size-super
+
+All these settings (except the size) can be reverted to the default font:
+
+\normal-text 
+
 
 @node Text alignment
 @subsubsection Text alignment
 
-TODO: everything
+Alignment basics:
+\left-align
+\center-align
+\right-align
+
+Horizontal alignment:
+\hcenter
+\general-align
+\halign 
+
+
+Vertical alignment: 
+\vcenter
+\column 
+\dir-column 
+
+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
 
 @node Graphic notation inside markup
 @subsubsection Graphic notation inside markup
+Graphics around text:
+\box
+\circle
+
+\bracket
+\hbracket
+
+"Standalone" graphics:
+
+\arrow-head
+\draw-line
+\draw-circle
+\filled-box
+\triangle
+\strut
+
+\with-color
 
-TODO: everything
+
+Advanced graphics:
+\stencil
+
+\postscript
+\epsfile
+
+\with-dimensions
 
 @node Music notation inside markup
 @subsubsection Music notation inside markup
 
-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.
+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
+
+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
+
 
 @lilypond[quote,verbatim,ragged-right]
 \relative {
@@ -520,10 +710,11 @@ contain a @code{\layout} block.
 
 @seealso
 
-Snippets: @lsrdir{Text,Text}
+Snippets:
+@rlsr{Text}.
 
-@node Multi-pages markup
-@subsubsection Multi-pages markup
+@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
@@ -553,7 +744,8 @@ lists.  The built-in markup list commands are described in
 This manual: @ref{Text markup list commands}, @ref{New
 markup list command definition}.
 
-Snippets: @lsrdir{Text,Text}
+Snippets:
+@rlsr{Text}.
 
 @predefined
 
@@ -687,6 +879,7 @@ property.  The resulting size is taken relative to the
 
 @seealso
 
-Snippets: @lsrdir{Text,Text}
+Snippets:
+@rlsr{Text}.