]> 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 540a26c1d65adaafb6b657e84f41b9ff34c296ac..6730c5f547ff9142aeec2874a106619e95de6b98 100644 (file)
@@ -53,20 +53,20 @@ This section introduces different ways of adding text to a score.
 @cindex Text scripts
 @cindex text items, non-empty
 @cindex non-empty texts
+@cindex quoted text
 
-It is possible to add arbitrary text indications
+Simple @q{quoted text} indications may be added
 to a score, as demonstrated in the following example.
-Such indications can also be manually placed
+Such indications can be manually placed
 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
 
-In LilyPond, such text strings are called @command{markup}
-objects.  This syntax is actually a shorthand; more complex text
+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}.
 
@@ -95,12 +95,12 @@ d8^"pizz." e f g \textLengthOn a4_"scherzando" f
 @seealso
 
 Notation Reference: @ref{Formatting text},
-@ref{Controlling direction and placement}.
+@ref{Direction and placement}.
 
 Snippets:
-@lsrdir{Text,Text}.
+@rlsr{Text}.
 
-Internals Reference: @internalsref{TextScript}.
+Internals Reference: @rinternals{TextScript}.
 
 @knownissues
 
@@ -161,9 +161,9 @@ object property.  This syntax is described in @ref{Line styles}.
 Notation Reference: @ref{Line styles}.
 
 Snippets:
-@lsrdir{Text,Text}.
+@rlsr{Text}.
 
-Internals Reference: @internalsref{TextSpanner}.
+Internals Reference: @rinternals{TextSpanner}.
 
 
 @node Text marks
@@ -209,13 +209,13 @@ c c
 
 @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}
 
-@lilypondfile[verbatim,lilyquote,ragged-right,texidoc]
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
 {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
@@ -224,14 +224,12 @@ Notation Reference: @ref{Rehearsal marks},
 @ref{Formatting text}, @ref{The Feta font}.
 
 Snippets:
-@lsrdir{Text,Text}.
+@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
-@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
@@ -250,7 +248,7 @@ 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[quote,ragged-right,verbatim]
+@lilypond[verbatim,quote]
 \markup {
   Tomorrow, and tomorrow, and tomorrow...
 }
@@ -283,7 +281,6 @@ use LilyPond as a word processor.  This syntax is described in
 
 @predefined
 
-@funindex \markup
 @code{\markup},
 @funindex \markuplines
 @code{\markuplines}
@@ -302,9 +299,9 @@ Notation Reference: @ref{Formatting text},
 @ref{Multi-page markup}.
 
 Snippets:
-@lsrdir{Text,Text}.
+@rlsr{Text}.
 
-Internals Reference: @internalsref{TextScript}.
+Internals Reference: @rinternals{TextScript}.
 
 
 @node Formatting text
@@ -329,72 +326,55 @@ using the @code{\markup} mode specific syntax.
 @cindex text markup
 @cindex markup text
 @cindex typeset text
+@funindex \markup
 
-A @code{\markup} block is used to typeset text with an extensible syntax,
-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
-To @emph{print} such characters as
-@code{\} and @code{#} in the output, use double
-quotation marks.
+A @code{\markup} block is used to typeset text with an extensible
+specific syntax called @qq{markup mode}.
 
-@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" }
-@end lilypond
+@cindex markup expressions
+@cindex markup syntax
 
-@noindent
-An exhaustive list of @code{\markup}-specific commands can be found in
-@ref{Text markup commands}.
+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.
 
-@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 "||"
-  }
-  \addlyrics { bar, foo \markup{ \italic bar! } }
-}
+@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:
 
-@cindex font switching
-
-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
-
-@c TODO: remove the following line and example? -vv
-@noindent
-For clarity, you can also do this for single arguments, e.g.,
-
-@example
-\markup @{ is \italic @{ anyone @} home @}
-@end example
+@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
 
-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:
+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 } } }
@@ -402,187 +382,201 @@ c1^\markup { \center-align { a bbbb c } }
 c1^\markup { \line { a b c } }
 @end lilypond
 
-Lists with no previous command are not kept distinct.  In
-the following example, the two @code{\markup} expressions
+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:
 
-@c TODO: merge these two examples in a @lilypond example -vv
-
-@example
-\center-align @{ @{ a b @} @{ c d @} @}
-\center-align @{ a b c d @}
-@end example
-
-@noindent
-
-To keep lists of words distinct, please use quotes @code{"} or
-the @code{\line} command
-
 @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 } } }
+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 and these variables may be
-attached to notes, like
 
-@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
-a whole.  For example, the @internalsref{RehearsalMark} is
-horizontally centered, so using @code{\mark \markup @{ \left-align
-.. @}} has no effect.
+Markups can be stored in variables.  These variables may be
+directly attached to notes:
 
-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]
+allegro = \markup { \bold \large Allegro }
 
-@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 }
+{
+  d''8.^\allegro
+  d'16 d'4 r2
+}
 @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.
-
-@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
+@noindent
+An exhaustive list of @code{\markup}-specific commands can be found in
+@ref{Text markup commands}.
 
-@end ignore
 
 @seealso
 
 This manual: @ref{Text markup commands}.
 
 Snippets:
-@lsrdir{Text,Text}.
+@rlsr{Text}.
 
-Internals Reference: @internalsref{TextScript}.
+Internals Reference: @rinternals{TextScript}.
 
 Init files: @file{scm/@/new@/-markup@/.scm}.
 
 
 @knownissues
 
-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.
-
 Syntax errors for markup mode are confusing.
 
+
 @node Common markup commands
 @subsubsection Common markup commands
 
-Some basic formatting can be used blah blah
+Markup text may be formatted using simple commands.
 
-\italic 
-\upright
-\bold 
-\medium        
-\underline
-       
+@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,
 
-@c TODO: what's the difference between the following commands? -vv
-\smallCaps     
-\caps 
-\fontCaps
+@item
+predefined commands allow to easily select standard sizes,
 
+@item
+other commands allow to change the size relatively to its previous value.
+@end itemize
 
-Some alternate font families can easily be selected:
+@noindent
+The following example demonstrates these three methods:
 
-\sans
-\typewriter
-\roman
-\number (only for numbers, such as fingerings and time signatures)
-@c TODO: add \slashed-digit here? -vv
+@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
 
-The size can be blah blah blah
+@cindex subscript
+@cindex superscript
+@funindex \super
+@funindex \sub
 
-\fontsize
+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:
 
-Some predefined font sizes can be used blah blah
+@lilypond[quote,verbatim]
+\markup {
+  \column {
+    \line { 1 \super st movement }
+    \line { 1 \normal-size-super st movement 
+      \sub { (part two) }  }
+  }
+}
+@end lilypond
 
-\teeny
-\tiny
-\small 
-\normalsize
-\large
-\huge
+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.
 
-Some shorcuts allow to change the font size relatively to its previous value 
+@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
 
-\smaller
-\bigger
-\larger
+@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}.
 
-\magnify
 
-Text may be printed as subscript or superscript:
+Defining custom font sets is also possible, as explained in
+@ref{Fonts}.
 
-\sub 
-\super
+An exhaustive list of font-switching, font-size and font-families related
+commands can be found in @ref{Font}.
 
-To obtain subscripts or superscripts in a normal text size, use
-\normal-size-sub
-\normal-size-super
+@c TODO: add @seealso
 
-All these settings (except the size) can be reverted to the default font:
+@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}.
 
-\normal-text 
 
 
 @node Text alignment
 @subsubsection Text alignment
 
-Alignment basics:
-\left-align
-\center-align
-\right-align
+@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]
+a1-\markup { poco }
+e'
+a,-\markup { \left-align poco }
+e'
+a,-\markup { \center-align { poco } }
+e'
+a,-\markup { \right-align poco }
+@end lilypond
+
+@c FIXME: \center-align actually doesn't belong here
+@c \center-align vs \column
+@c \center-align vs \hcenter
 
 Horizontal alignment:
 \hcenter
@@ -590,6 +584,17 @@ Horizontal alignment:
 \halign 
 
 
+\null
+\hspace
+
+\lower
+\raise 
+\translate 
+\translate-scaled
+\rotate
+\transparent
+\whiteout
+
 Vertical alignment: 
 \vcenter
 \column 
@@ -618,6 +623,42 @@ Alignment inside a "large" markup:
 \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
+
+
+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.
+
+
+
 @node Graphic notation inside markup
 @subsubsection Graphic notation inside markup
 Graphics around text:
@@ -711,7 +752,7 @@ block.  In such a case, the @code{\score} must contain a @code{\layout} block.
 @seealso
 
 Snippets:
-@lsrdir{Text,Text}.
+@rlsr{Text}.
 
 @node Multi-page markup
 @subsubsection Multi-page markup
@@ -745,7 +786,7 @@ This manual: @ref{Text markup list commands}, @ref{New
 markup list command definition}.
 
 Snippets:
-@lsrdir{Text,Text}.
+@rlsr{Text}.
 
 @predefined
 
@@ -753,9 +794,6 @@ Snippets:
 @code{\markuplines}
 
 
-
-@c TODO: move the following subsubsec into NR3 -vv
-@c maybe.  -gp
 @node Fonts
 @subsection Fonts
 
@@ -880,6 +918,6 @@ property.  The resulting size is taken relative to the
 @seealso
 
 Snippets:
-@lsrdir{Text,Text}.
+@rlsr{Text}.