version that you are working on. See TRANSLATION for details.
@end ignore
-@c \version "2.11.38"
+@c \version "2.11.51"
@node Text
@section Text
to a score, as demonstrated in the following example.
Such indications can be manually placed
above or below the staff, using the
-simple syntax described in @ref{Direction and
+syntax described in @ref{Direction and
placement}.
@lilypond[quote,fragment,ragged-right,verbatim,relative=1]
spacing, whereas the second one does.
@lilypond[quote,fragment,ragged-right,verbatim,relative=1]
-d8^"pizz." e f g \textLengthOn a4_"scherzando" f
+d8^"pizz." e f g
+\textLengthOn
+a4_"scherzando" f
@end lilypond
@predefined
@cindex Text spanners
-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., @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
from one note to another using the following syntax:
Various text elements can 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
+
@lilypond[verbatim,quote,ragged-right,fragment,relative=2]
-c4\mark "Allegro" c c c
+c4
+\mark "Allegro"
+c c c
@end lilypond
-This syntax makes possible to put any text on a bar line;
+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:
@lilypond[fragment,quote,ragged-right,verbatim,relative=2]
-c1 \mark \markup { \musicglyph #"scripts.ufermata" }
+c1
+\mark \markup { \musicglyph #"scripts.ufermata" }
c1
@end lilypond
the beginning of the line (the next line, in case of a line break).
@lilypond[fragment,quote,ragged-right,verbatim,relative=2]
-\mark "Allegro" c1
-c\mark "assai" \break
-c c
+\mark "Allegro"
+c1 c
+\mark "assai" \break
+c c
@end lilypond
@end lilypond
@noindent
-This allows to print text separately
+This allows printing text separately
from the music, which is particularly
useful when the input file contains
several music pieces, as described in
@menu
* Text markup introduction::
-* Common markup commands::
+* Selecting font and font size::
* Text alignment::
* Graphic notation inside markup::
* Music notation inside markup::
@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:
+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
@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:
+or preceded by a command are not treated as a distinct
+expression. 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 } }
@knownissues
-Syntax errors for markup mode are confusing.
-
+Syntax errors for markup mode can be confusing.
-@node Common markup commands
-@subsubsection Common markup commands
-Markup text may be formatted using simple commands.
+@node Selecting font and font size
+@subsubsection Selecting font and font size
@cindex font switching
@funindex \italic
@funindex \bold
@funindex \underline
-Basic font switching is supported:
+Basic font switching is supported in markup mode:
@lilypond[quote,verbatim,relative=2]
{
d1^\markup {
- \bold { Più mosso }
- \italic { non troppo \underline Vivo }
- }
+ \bold { Più mosso }
+ \italic { non troppo \underline Vivo }
+ }
r2 r4 r8
d,_\markup { \italic quasi \smallCaps Tromba }
f1 d2 r
@cindex font size
@cindex text size
@funindex \fontsize
-@funindex \small
-@funindex \large
@funindex \smaller
@funindex \larger
+@funindex \bigger
@funindex \magnify
The size of the characters can also be altered in different ways:
-@itemize @bullet
+@itemize
@item
the font size can be defined to an absolute value,
predefined commands allow to easily select standard sizes,
@item
-other commands allow to change the size relatively to its previous value.
+the font size can also be changed relatively to its previous value.
@end itemize
@noindent
{
f1^\markup { \fontsize #5 Sinfonia }
a,_\markup {
- \tiny espressivo
- \large e
- \normalsize intenso
- }
+ \tiny espressivo
+ \large e
+ \normalsize intenso
+ }
bes^\markup { (con
- \larger grande
- \smaller emozione
- \magnify #0.6 { e sentimento } )
- }
+ \larger grande
+ \smaller emozione
+ \magnify #0.6 { e sentimento } )
+ }
d c2 r8 c bes a g1
}
@end lilypond
}
@end lilypond
+@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 following words.
+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 {
\line { Act \number 1 }
\line { \sans { Scene I. } }
\line { \typewriter { Verona. An open place. } }
- \line { \roman Enter Valentine and Proteus. }
+ \line { Enter \roman Valentine and Proteus. }
}
}
@end lilypond
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, font-size
+and font-families related commands can be found in @ref{Font}.
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}.
-
-@c TODO: add @seealso
+@predefined
-@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}.
+@funindex \teeny
+@funindex \tiny
+@funindex \small
+@funindex \normalsize
+@funindex \large
+@funindex \huge
+@code{\teeny},
+@code{\tiny},
+@code{\small},
+@code{\normalsize},
+@code{\large},
+@code{\huge}.
+@c TODO: add @seealso
@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}.}
+@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}.
-Markup objects can be aligned in different ways. By default,
+@c The 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
+@funindex \hcenter
+@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'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 } }
+a,-\markup { \hcenter { 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
-\general-align
-\halign
-
-
-\null
-\hspace
-
-\lower
-\raise
-\translate
-\translate-scaled
-\rotate
-\transparent
-\whiteout
-
-Vertical alignment:
-\vcenter
-\column
-\dir-column
-
-Building a "large" markup:
-
-\line
-
-\fill-line
+@funindex \halign
-\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
+The horizontal alignment may be fine-tuned
+using a numeric value:
+@lilypond[quote,verbatim,fragment,relative=1]
+a1-\markup { \halign #-1 poco }
+e'
+a,-\markup { \halign #0 poco }
+e'
+a,-\markup { \halign #0.5 poco }
+e'
+a,-\markup { \halign #2 poco }
+@end lilypond
-@ignore
-TODO: here are some commands that could be described here.
-I'm putting them in bulk, prior to working on this section. -vv
+@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
+
+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
+with an @emph{anchor point}, that can be another markup element
+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.
-\simple
+@lilypond[quote,verbatim,fragment,relative=1]
+d2^\markup {
+ Acte I
+ \raise #2 { Scène 1 } }
+a'
+g_\markup {
+ \null
+ \lower #4 \bold { Très modéré } }
+a
+d,^\markup {
+ \raise #4 \italic { Une forêt. } }
+a'4 a g2 a
+@end lilypond
-\char
-\fraction
+@funindex \general-align
+@funindex \translate
+@funindex \translate-scaled
-\combine
-\concat
-\put-adjacent
+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 with an
+anchor point:
+@lilypond[quote,verbatim,fragment,relative=1]
+d2^\markup {
+ Acte I
+ \translate #'(-1 . 2) "Scène 1" }
+a'
+g_\markup {
+ \null
+ \general-align #Y #3.2 \bold "Très modéré" }
+a
+d,^\markup {
+ \null
+ \translate-scaled #'(-1 . 2) \teeny "Une forêt." }
+a'4 a g2 a
+@end lilypond
-\page-ref (see also "Table of contents")
-\fromproperty
-\verbatim-file
-\with-url
+@cindex multi-line markup
+@cindex multi-line text
+@cindex columns, text
-\on-the-fly
-\override
+A markup object may include several lines of text.
+In the following example, each element or expression
+is placed on its own line, either left-aligned or centered:
+@lilypond[quote,verbatim]
+\markup {
+ \column {
+ a
+ "b c"
+ \line { d e f }
+ }
+ \hspace #10
+ \center-align {
+ a
+ "b c"
+ \line { d e f }
+ }
+}
+@end lilypond
+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:
-@end ignore
+@lilypond[quote,verbatim]
+\markup {
+ \fill-line {
+ \line { William S. Gilbert }
+ \center-align {
+ \huge \smallCaps "The Mikado"
+ or
+ \smallCaps "The Town of Titipu"
+ }
+ \line { Sir Arthur Sullivan }
+ }
+}
+\markup {
+ \fill-line { 1885 }
+}
+@end lilypond
+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.
-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.
+@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 vé 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
+An exhaustive list of text alignment commands
+can be found in @ref{Align}.
+@c TODO: add @seealso
@node Graphic notation inside markup
@subsubsection Graphic notation inside markup
+
Graphics around text:
\box
\circle
+(TODO: document padding commands here)
+
\bracket
\hbracket