Internals Reference: @rinternals{KeySignature}.
-Examples: @c @lsrdir{ancient}
@node Ancient rests
@subsubsection Ancient rests
@seealso
Examples:
-@c @lsrdir{chords}
Init files: @file{scm/@/chords@/-ignatzek@/.scm}, and
@file{scm/@/chord@/-entry@/.scm}.
@seealso
-Music Glossary: @rglos{tenuto}, @rglos{accent}, @rglos{staccato},
+Music Glossary:
+@rglos{tenuto},
+@rglos{accent},
+@rglos{staccato},
@rglos{portato}.
+Notation Reference:
+@ref{Controlling direction and placement}.
+
+Installed Files:
+@file{scm/@/script@/.scm}.
+
Snippets:
@rlsr{Expressive marks}.
-Internals Reference: @rinternals{Script},
+Internals Reference:
+@rinternals{Script},
@rinternals{TextScript}.
@node Dynamics
@subsubsection Dynamics
+@cindex absolute dynamics
@cindex dynamics
+@cindex dynamics, absolute
@funindex \ppppp
@funindex \pppp
@funindex \ppp
c1\!
@end lilypond
-A @notation{hairpin} normally starts at the left edge of the
-beginning note and ends on the right edge of the ending note. If
-the ending note falls on the downbeat, the @notation{hairpin} ends
-on the immediately preceding bar line. The following example
-illustrates this behavior:
-
-@c This example currently does not work. -pm
-@c TODO: Add link to new snippet for #'to-barline
-
Spacer notes are needed to engrave multiple marks on one note.
@lilypond[verbatim,quote,ragged-right,fragment,relative=2]
<< f1 { s4 s4\< s4\> s4\! } >>
@end lilypond
-If hairpins are too short, they can be lengthened using the
-following method:
-
-@lilypond[verbatim,quote,ragged-right,fragment,relative=2]
-c4\< c\! d\> e\!
-\override Voice.Hairpin #'minimum-length = #5
-<< f1 { s4 s4\< s4\> s4\! } >>
-@end lilypond
-
-@cindex espressivo, articulation
+@cindex espressivo articulation
In some situations the @code{\espressivo} articulation mark may be
-the appropriate choice to indicate a crescendo and decrescendo on
-one note:
+the appropriate choice to indicate a @notation{crescendo} and
+@notation{decrescendo} on one note:
@lilypond[verbatim,quote,ragged-right,fragment,relative=2]
c2 b4 a
g1\espressivo
@end lilypond
-@cindex al niente
-@cindex niente, al
-
-Hairpins may be printed with a circled tip (al niente notation):
-
-@lilypond[verbatim,quote,ragged-right,fragment,relative=2]
-\override Hairpin #'circled-tip = ##t
-c2\< c\!
-c4\> c\< c2\!
-@end lilypond
-
@cindex crescendo
@cindex decrescendo
@cindex diminuendo
@funindex \setHairpinDim
@funindex \setHairpinDecresc
-Crescendos and decrescendos can be engraved as @notation{cresc.},
-@notation{decresc.}, @notation{decr.}, or @notation{dim.} instead
-of using hairpins with the commands @code{\setTextCresc},
+@notation{Crescendos} and @notation{decrescendos} can be engraved
+as textual markings instead of hairpins. The built-in commands
+that enable these text modes are @code{\setTextCresc},
@code{\setTextDecresc}, @code{\setTextDecr}, and
@code{\setTextDim}. The corresponding @code{\setHairpinCresc},
-@code{\setHairpinDim}, and @code{\setHairpinDecresc} will revert
-to hairpins again:
+@code{\setHairpinDim}, and @code{\setHairpinDecresc} commands will
+revert to hairpins again:
@lilypond[verbatim,quote,ragged-right,fragment,relative=2]
-\setTextCresc
c\< d e f\!
-\setHairpinCresc
e\> d c b\!
+\setTextCresc
+c\< d e f\!
\setTextDecresc
-e\> d e f\!
-\setTextDecr
-c\> d e f\!
-\setTextDim
e\> d c b\!
+\setHairpinCresc
+c\< d e f\!
@end lilypond
-You can also supply your own texts and change the style of the
-spanner line with the properties @code{crescendoText},
-@code{crescendoSpanner}, @code{decrescendoText}, and
-@code{decrescendoSpanner}. Available values for the spanner
-properties are @code{hairpin}, @code{line}, @code{dashed-line},
-and @code{dotted-line}. If unset, a hairpin crescendo is used:
+The text used for @notation{crescendos} and
+@notation{decrescendos} can be changed by modifying the context
+properties @code{crescendoText} and @code{decrescendoText}. The
+style of the spanner line can be changed by modifying the context
+properties @code{crescendoSpanner} and @code{decrescendoSpanner}.
+Available values for the spanner properties are @code{'hairpin},
+@code{'line}, @code{'dashed-line}, and @code{'dotted-line}. If
+unset, a hairpin crescendo is used:
@lilypond[verbatim,quote,ragged-right,fragment,relative=1]
\set crescendoText = \markup { \italic "cresc. poco" }
\set crescendoSpanner = #'dotted-line
-a'2\< a a a a a a a\!\mf
+a'2\< a a a a a a a\mf
@end lilypond
To create new absolute dynamic marks or text that should be
@c Add LilyPond examples to these snippets. -pm
+@c A @notation{hairpin} normally starts at the left edge of the
+@c beginning note and ends on the right edge of the ending note. If
+@c the ending note falls on the downbeat, the @notation{hairpin} ends
+@c on the immediately preceding bar line. The following example
+@c illustrates this behavior:
+@c
+@c TODO: Add link to new snippet for #'to-barline
+
+If hairpins are too short, they can be lengthened using the
+following method:
+
+@lilypond[verbatim,quote,ragged-right,fragment,relative=2]
+c4\< c\! d\> e\!
+\override Voice.Hairpin #'minimum-length = #5
+<< f1 { s4 s4\< s4\> s4\! } >>
+@end lilypond
+
+@cindex al niente
+@cindex niente, al
+
+Hairpins may be printed with a circled tip (al niente notation):
+
+@lilypond[verbatim,quote,ragged-right,fragment,relative=2]
+\override Hairpin #'circled-tip = ##t
+c2\< c\!
+c4\> c\< c2\!
+@end lilypond
+
Dynamics that occur at, begin on, or end on the same note will be
vertically aligned. If you want to ensure that dynamics are
aligned when they do not occur on the same note, you can increase
\override DynamicLineSpanner #'staff-padding = #4
@end example
-@noindent
-You may also use this property if the dynamics are colliding with
-other notation.
-
@notation{Crescendi} and @notation{decrescendi} that cross a line
break will be continued on the second line. If they end on the
first note of a new line, nothing will be printed on that line.
Learning Manual:
@rlearning{Articulation and dynamics}.
+Notation Reference:
+@ref{Controlling direction and placement}.
+
Snippets:
@rlsr{Expressive marks}.
@seealso
-Music Glossary: @rglos{slur}
+Music Glossary:
+@rglos{slur}.
+
+Notation Reference:
+@ref{Controlling direction and placement}.
Snippets:
@rlsr{Expressive marks}.
-Internals Reference: @rinternals{Slur}.
+Internals Reference:
+@rinternals{Slur}.
@node Phrasing slurs
@seealso
+Notation Reference:
+@ref{Controlling direction and placement}.
+
Snippets:
@rlsr{Expressive marks}.
-Internals Reference: @rinternals{PhrasingSlur}
+Internals Reference:
+@rinternals{PhrasingSlur}.
@node Breath marks
@rlsr{Expressive marks}.
@c @lsr{expressive,breathing-sign.ly}.
-Internals Reference: @rinternals{BreathingSign}
+Internals Reference:
+@rinternals{BreathingSign}.
@node Falls and doits
@seealso
@c TODO: add falls and doits to glossary.
-@c Music Glossary: @rglos{falls}, @rglos{doits}.
+@c Music Glossary:
+@c @rglos{falls},
+@c @rglos{doits}.
Snippets:
@rlsr{Expressive marks}.
@seealso
-Music Glossary: @rglos{glissando}
+Music Glossary:
+@rglos{glissando}.
Snippets:
@rlsr{Expressive marks}.
@c @lsr{expressive,glissando.ly},
@c @lsr{expressive,line-styles.ly}
-Internals Reference: @rinternals{Glissando}
+Internals Reference:
+@rinternals{Glissando}.
@knownissues
@cindex arpeggio
@cindex broken chord
+@c Add documentation for new 'parenthesis' style arpeggio. Maybe
+@c create a new \arpeggioParen command, or something similar. -pm
+
You can specify an @notation{arpeggio} (also known as a
@notation{broken chord}) on a chord by attaching an
@code{\arpeggio} to the chord:
@c TODO: Add 'broken chord' to glossary.
-Music Glossary: @rglos{arpeggio}
+Music Glossary:
+@rglos{arpeggio}.
-Notation Reference: @ref{Ties}, for writing out arpeggios.
+Notation Reference:
+@ref{Ties}, for writing out arpeggios.
Snippets:
@rlsr{Expressive marks}.
-Internals Reference: @rinternals{Arpeggio},
+Internals Reference:
+@rinternals{Arpeggio},
@rinternals{PianoStaff}.
@seealso
-Music Glossary: @rglos{trill}
+Music Glossary:
+@rglos{trill}.
Snippets:
@rlsr{Expressive marks}.
-Internals Reference: @rinternals{TrillSpanner}
+Internals Reference:
+@rinternals{TrillSpanner}.
@seealso
-Examples: @c @lsrdir{guitar}
@node Right hand fingerings
examples this works well, but for more complex examples, especially
when additional commands are used, the implicit creation of contexts
can give surprising results, maybe creating extra unwanted staves.
-When entering more than a few lines of music it is advisable to
-always create staves and voices explicitly, see
+The way to create contexts explicitly is explained in
@ref{Contexts and engravers}.
+@warning{When entering more than a few lines of music it is
+advisable to always create staves and voices explicitly.}
+
For now, though, let us return to the first example and examine the
@code{\score} command, leaving the others to default.
@end quotation
@noindent
-You may find it useful to review
+To understand what is meant by a music expression and a compound
+music expression you may find it useful to review
@ref{Music expressions explained}. In that section, we saw how to
build big music expressions from small pieces -- we started from
notes, then chords, etc. Now we're going to start from a big
}
@end lilypond
+Now let's look at three different ways to notate the same passage
+of polyphonic music, each of which is advantageous in different
+circumstances, using the example from the previous section.
+
An expression that appears directly inside a @code{<< >>} belongs
to the main voice (but, note, @strong{not} in a @code{<< \\ >>}
construct). This is useful when extra voices appear while the
-main voice is playing. Here is a more correct rendition of the
-example from the previous section. The red diamond-shaped notes
+main voice is playing. Here is a more correct rendition of our
+example. The red diamond-shaped notes
demonstrate that the main melody is now in a single voice context,
permitting a phrasing slur to be drawn over them.
More deeply nested polyphony constructs are possible, and if a
voice appears only briefly this might be a more natural way to
-typeset the music.
+typeset the music:
@lilypond[quote,ragged-right,verbatim]
\new Staff \relative c' {
>>
@end lilypond
+@subsubheading Note columns
+
@cindex note column
@cindex shift commands
@funindex \shiftOff
Here is a example of the first line of a hymn with four
verses, set for SATB. In this case the words for all four
-parts are the same.
+parts are the same. Note how we use variables to separate the
+music notation and words from the staff structure. See too
+how a variable, which we have chosen to call @q{TimeKey}, is used
+to hold several commands for use within the two staves. In other
+examples this is often called @q{global}.
@lilypond[quote,verbatim]
TimeKey = { \time 4/4 \partial 4 \key c \major}
the single top-level @code{Score} context is introduced
with @code{\score}.
+You have seen many practical examples which created new
+@code{Staff} and @code{Voice} contexts in earlier sections, but
+to remind you how these commands are used in practice, here's an
+annotated real-music example:
+
+@lilypond[quote,verbatim,ragged-right]
+\score { % start single compound music expression
+ << % start of simultaneous staves section
+ \time 2/4
+ \new Staff { % create RH staff
+ \key g \minor
+ \clef "treble"
+ \new Voice { % create voice for RH notes
+ \relative c'' { % start of RH notes
+ d4 ees16 c8. |
+ d4 ees16 c8. |
+ } % end of RH notes
+ } % end of RH voice
+ } % end of RH staff
+ \new Staff << % create LH staff; needs two simultaneous voices
+ \key g \minor
+ \clef "bass"
+ \new Voice { % create LH voice one
+ \voiceOne
+ \relative g { % start of LH voice one notes
+ g8 <bes d> ees, <g c> |
+ g8 <bes d> ees, <g c> |
+ } % end of LH voice one notes
+ } % end of first LH voice
+ \new Voice { % create LH voice two
+ \voiceTwo
+ \relative g { % start of LH voice two notes
+ g4 ees |
+ g4 ees |
+ } % end of LH voice two notes
+ } % end of LH voice two
+ >> % end of LH staff
+ >> % end of simultaneous staves section
+} % end of single compound music expression
+@end lilypond
+
+(Note how all the statements which open a block with either a
+curly bracket, @code{@{}, or double angle brackets, @code{<<},
+are indented by two further spaces, and the corresponding
+closing bracket is indented by exactly the same amount. While
+this is not required, following this practice will greatly
+reduce the number of @q{unmatched bracket} errors, and is
+strongly recommended. It enables the structure of the music to
+be seen at a glance, and any unmatched brackets will be obvious.
+Note too how the LH staff is created using double angle brackets
+because it requires two voices for its music, whereas the RH staff
+is created with a single music expression surrounded by curly
+brackets because it requires only one voice.)
+
@cindex contexts, naming
@cindex naming contexts
>> % end ChoirStaff
\new PianoStaff <<
- \set PianoStaff.instrumentName = "Piano "
+ \set PianoStaff.instrumentName = "Piano"
\new Staff = "upper" \upper
\new Staff = "lower" \lower
>>
>> % end ChoirStaff
\new PianoStaff <<
- \set PianoStaff.instrumentName = "Piano "
+ \set PianoStaff.instrumentName = "Piano"
\new Staff = "upper" \upper
\new Staff = "lower" \lower
>>
Next we need to add a staff for the pedal organ.
This goes underneath the PianoStaff, but it must
be simultaneous with it, so we need angle brackets
-round the two. Missing these out would generate
+around the two. Missing these out would generate
an error in the log file. It's a common mistake
which you'll make sooner or later! Try copying
the final example at the end of this section,
g4 g f ees | d2 c2 |
}
ManualOneVoiceTwoMusic = \relative c' {
- ees16 d ees8~ ees16 f ees s c8 d~ d c~ |
+ ees16 d ees8~ ees16 f ees d c8 d~ d c~ |
c c4 b8 c8. g16 c b c d |
}
ManualTwoMusic = \relative c' {
articulations, just like simple notes:
@lilypond[verbatim,ragged-right,fragment,quote,relative=1]
-<c e g>1 <c e g>->
+<c e g>2 <c f a>4-> <e g c>-.
@end lilypond
For more information about chords, see @ref{Modern chords}.
@ref{Modern chords}.
Snippets:
-@lsrdir{Simultaneous,Simultaneous-notes}.
+@rlsr{Simultaneous notes}.
@knownissues
-Music expressions like @code{<< @{ g8 e8 @} a4 >>} are not printed
-accurately. Use @code{<g a>8 <e a>8} instead.
+For some reason, music expressions like @code{<< @{ g8 e8 @} a4 >>}
+that should automatically turn into chords, appear splitted in two
+staves. To avoid this, use explicit chords instead as in
+@code{<g a>8 <e a>8}.
@node Clusters
@rglos{cluster}.
Snippets:
-@lsrdir{Simultaneous,Simultaneous-notes}.
+@rlsr{Simultaneous notes}.
Internals Reference:
-@internalsref{ClusterSpanner},
-@internalsref{ClusterSpannerBeacon},
-@internalsref{Cluster_spanner_engraver}.
+@rinternals{ClusterSpanner},
+@rinternals{ClusterSpannerBeacon},
+@rinternals{Cluster_spanner_engraver}.
-@c Examples: @lsr{contemporary,cluster@/.ly}.
+@c Examples: @rlsr{contemporary,cluster@/.ly}.
@knownissues
Normally, note heads with a different number of dots are not
merged, but when the object property
@code{merge-differently-dotted} is set in the
-@internalsref{NoteCollision} object, they are merged:
+@rinternals{NoteCollision} object, they are merged:
@lilypond[quote,verbatim,fragment,ragged-right,relative=2]
\new Voice << {
levels.
When LilyPond cannot cope, the @code{force-hshift} property of the
-@internalsref{NoteColumn} object and pitched rests can be used to
+@rinternals{NoteColumn} object and pitched rests can be used to
override typesetting decisions.
@lilypond[quote,verbatim,ragged-right]
@seealso
Snippets:
-@lsrdir{Simultaneous,Simultaneous-notes}.
+@rlsr{Simultaneous notes}.
Internals Reference: the objects responsible for resolving collisions
are
-@internalsref{NoteCollision} and
-@internalsref{RestCollision}.
+@rinternals{NoteCollision} and
+@rinternals{RestCollision}.
@knownissues
@end lilypond
Both arguments to @code{\partcombine} will be interpreted as
-@internalsref{Voice} contexts. If using relative octaves,
+@rinternals{Voice} contexts. If using relative octaves,
@code{\relative} should be specified for both music expressions,
i.e.,
@rglos{a due}.
Snippets:
-@lsrdir{Simultaneous,Simultaneous-notes}.
+@rlsr{Simultaneous notes}.
Internals Reference:
-@internalsref{PartCombineMusic},
-@internalsref{Voice}.
+@rinternals{PartCombineMusic},
+@rinternals{Voice}.
@knownissues
Internally, the @code{\partcombine} interprets both arguments as
@code{Voice}s named @code{one} and @code{two}, and then decides
when the parts can be combined. Consequently, if the arguments
-switch to differently named @internalsref{Voice} contexts, the
+switch to differently named @rinternals{Voice} contexts, the
events in those will be ignored.
This works quite well for piano music.
-@c It would be nice if the first bar fit onto one 66-char line.
-@c Maybe simplify the example? -gp
@lilypond[quote,verbatim]
+global = { \key g \major \time 2/4 }
music = {
- \key c \major
- \time 4/4
\parallelMusic #'(voiceA voiceB voiceC voiceD) {
- % Bar 1
- r8 g'16[ c''] e''[ g' c'' e'']
- r8 g'16[ c''] e''[ g' c'' e''] |
- c'2
- c'2 |
- r8 a16[ d'] f'[ a d' f']
- r8 a16[ d'] f'[ a d' f'] |
- c2
- c2 |
+ % Bar 1
+ a'8 b' c'' d'' |
+ d'4 e' |
+ c16 d e f d e f g |
+ a,4 a,4 |
% Bar 2
- a'8 b' c'' d'' e'' f'' g'' a'' |
- d'4 d' d' d' |
- c16 d e f d e f g e f g a f g a b |
- a,4 a,4 a,4 a,4 |
+ e''8 f'' g'' a'' |
+ f'4 g' |
+ e16 f g a f g a b |
+ a,4 a,4 |
% Bar 3 ...
}
}
-\score {
+\score {
\new PianoStaff <<
- \music
- \new Staff <<
- \voiceA \\
- \voiceB
- >>
\new Staff {
- \clef bass
+ \global
+ <<
+ \voiceA \\
+ \voiceB
+ >>
+ }
+ \new Staff {
+ \global \clef bass
<<
\voiceC \\
\voiceD
@seealso
Snippets:
-@lsrdir{Simultaneous,Simultaneous-notes}.
+@rlsr{Simultaneous notes}.
@cindex markup text
@cindex typeset text
-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{} @}}.
+In markup mode, specific commands are 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! } }
-}
-@end lilypond
+Markup expressions may also be enclosed in double quotes
+@code{"..."}. Such expressions are treated as text strings
+and may not contain nested expressions or commands.
+Therefore, braces are generally prefered to double quotes;
+the following example demonstrates both syntaxes.
+@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 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
+Special characters such as @code{\} and @code{#}
+can be printed in the output simply using double
+quotes. Double quotation marks are only printed
+in the output when preceded by backslashes:
-@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 } } }
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 previous 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
+@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
-@example
-\center-align @{ @{ a b @} @{ c d @} @}
-\center-align @{ a b c d @}
-@end example
-@noindent
+Markups can be stored in variables. These variables may be
+directly attached to notes:
-To keep lists of words distinct, please use quotes @code{"} or
-the @code{\line} command
+@lilypond[quote,verbatim]
+allegro = \markup { \bold \large Allegro }
-@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 } } }
+{
+ d''8.^\allegro
+ d'16 d'4 r2
+}
@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
+@noindent
+An exhaustive list of @code{\markup}-specific commands can be found in
+@ref{Text markup commands}.
-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.
-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}).
+@seealso
+
+This manual: @ref{Text markup commands}.
+
+Snippets:
+@rlsr{Text}.
+
+Internals Reference: @rinternals{TextScript}.
+
+Init files: @file{scm/@/new@/-markup@/.scm}.
+
+
+@knownissues
+
+@c FIXME: this is totally deprecated, isn't it? -vv
+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.
+
+@c is the following sentence really relevant? -vv
+Syntax errors for markup mode are confusing.
+
+
+@node Common markup commands
+@subsubsection Common markup commands
+
+Some basic formatting can be used blah blah
-@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.
@ignore
TODO: here are some commands that could be described here.
@end ignore
-@seealso
-
-This manual: @ref{Text markup commands}.
-
-Snippets:
-@rlsr{Text}.
-
-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
+@cindex font switching
-Some basic formatting can be used blah blah
+Some font switching commands are demonstrated here.
\italic
\upright
@node Text alignment
@subsubsection Text alignment
+
+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.
+
+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.
+
+
Alignment basics:
\left-align
\center-align
(shortest-starter-duration ,ly:moment? "The duration of the
shortest note that starts here.")
(side-axis ,number? "If the value is @code{#X} (or
-equivalently@tie{}@code{1}), the object is placed horizontally next
-to the other object. If the value is @code{#Y} or@tie{}@code{0}, it
+equivalently@tie{}@code{0}), the object is placed horizontally next
+to the other object. If the value is @code{#Y} or@tie{}@code{1}, it
is placed vertically.")
(side-relative-direction ,ly:dir? "Multiply direction of
@code{direction-source} with this to get the direction of this