* Text marks::
* Text markup::
* Nested scores::
+* Page wrapping text::
* Overview of text markup commands::
+* Overview of text markup list commands::
* Font selection::
* New dynamic marks::
@end menu
@cindex text items, non-empty
@cindex non-empty texts
-It is possible to place arbitrary strings of text or @ref{Text markup}
+It is possible to place arbitrary strings of text or @ref{Text markup},
above or below notes by using a string @code{c^"text"}. By default,
these indications do not influence the note spacing, but by using the
command @code{\fatText}, the widths will be taken into account
@internalsref{Glissando}, @internalsref{VoiceFollower},
@internalsref{TrillSpanner}, @internalsref{line-spanner-interface}.
-Examples: @lsr{expressive,line-styles.ly}
-@c FIXME: add {contemporary/line-arrows.ly} when LSR is updated. -gp
+Examples: @lsr{expressive,line-styles.ly}, @lsr{expressive,line-arrows.ly}
@node Text spanners
@lilypond[quote,ragged-right,fragment,relative=1,verbatim]
c1
\textSpannerDown
-\override TextSpanner #'edge-text = #'("rall " . "")
+\override TextSpanner #'bound-details #'left #'text =
+ \markup { \upright "rall" }
c2\startTextSpan b c\stopTextSpan a
\break
\textSpannerUp
-\override TextSpanner #'edge-text = #(cons (markup #:italic "rit" ) "")
+\override TextSpanner #'bound-details #'left #'text =
+ \markup { \italic "rit" }
c2\startTextSpan b c\stopTextSpan a
@end lilypond
but it can also be used to put signs like coda,
segno, and fermata on a bar line. Use @code{\markup} to
access the appropriate symbol (symbols are listed in
-@ref{The Feta font})
+@ref{The Feta font}).
@lilypond[fragment,quote,ragged-right,verbatim,relative=2]
c1 \mark \markup { \musicglyph #"scripts.ufermata" }
c1
\key cis \major
\clef alto
- \override Score.RehearsalMark #'break-align-symbol = #'key-signature
+ \override Score.RehearsalMark #'break-align-symbols = #'(key-signature)
\mark "on key"
cis
\key ces \major
- \override Score.RehearsalMark #'break-align-symbol = #'clef
+ \override Score.RehearsalMark #'break-align-symbols = #'(clef)
\clef treble
\mark "on clef"
ces
- \override Score.RehearsalMark #'break-align-symbol = #'time-signature
+ \override Score.RehearsalMark #'break-align-symbols = #'(time-signature)
\key d \minor
\clef tenor
\time 3/4
}
@end lilypond
+Possible symbols for the @code{break-align-symbols} list are
+@code{ambitus}, @code{breathing-sign}, @code{clef}, @code{custos},
+@code{staff-bar}, @code{left-edge}, @code{key-cancellation},
+@code{key-signature}, and @code{time-signature}.
+
+The text marks will, by default, be aligned with the middle of the notation
+object, but this can be changed by overriding the
+@code{break-align-anchor-alignment} and
+@code{break-align-anchor} properties for the appropriate grob.
+
+@lilypond[fragment,quote,ragged-right,verbatim]
+{
+ \override Score.RehearsalMark #'break-align-symbols = #'(key-signature)
+ c1
+ \key cis \major
+
+ % the RehearsalMark will be aligned with the left edge of the KeySignature
+ \once \override Staff.KeySignature #'break-align-anchor-alignment = #LEFT
+ \mark \default
+ cis1
+ \key ces \major
+
+ % the RehearsalMark will be aligned with the right edge of the KeySignature
+ \once \override Staff.KeySignature #'break-align-anchor-alignment = #RIGHT
+ \mark \default
+ ces1
+ \key cis \major
+
+ % the RehearsalMark will be aligned with the left edge of the KeySignature
+ % and then shifted right by 2 units.
+ \once \override Staff.KeySignature #'break-align-anchor = #2
+ \mark \default
+ ces1
+}
+@end lilypond
+
Although text marks are normally only printed above the topmost
staff, you may alter this to print them on every staff,
@end lilypond
@noindent
-See @ref{Overview of text markup commands} for a list of all
+See @ref{Overview of text markup commands}, for a list of all
commands.
@code{\markup} is primarily used for @internalsref{TextScript}s,
\set Staff.instrumentName = \markup{ \column{ Alto solo } }
c2^\markup{ don't be \flat }
- \override TextSpanner #'edge-text = #(cons (markup #:italic "rit" ) "")
+ \override TextSpanner #'bound-details #'left #'text = \markup{\italic rit }
b2\startTextSpan
a2\mark \markup{ \large \bold Fine }
r2\stopTextSpan
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{Overview of text markup commands}
+@code{normal-text}. See @ref{Overview of text markup commands},
for more details.
}
@end lilypond
+@node Page wrapping text
+@subsection Page wrapping text
+Whereas @code{\markup} is used to enter a non-breakable block of text,
+@code{\markuplines} can be used at top-level to enter lines of text that
+can spread over multiple pages:
+
+@verbatim
+\markuplines {
+ \justified-lines {
+ A very long text of justified lines.
+ ...
+ }
+ \justified-lines {
+ An other very long paragraph.
+ ...
+ }
+ ...
+}
+@end verbatim
+
+@code{\markuplines} accepts a list of markup, that is either the result
+of a markup list command, or a list of markups or of markup lists. The
+built-in markup list commands are described in
+@ref{Overview of text markup list commands}.
+
+@seealso
+
+This manual: @ref{Overview of text markup list commands},
+@ref{New markup list command definition}.
+
+@refcommands
+
+@funindex \markuplines
+@code{\markuplines}
@node Overview of text markup commands
@subsection Overview of text markup commands
@include markup-commands.tely
+@node Overview of text markup list commands
+@subsection Overview of text markup list commands
+
+The following commands can all be used with @code{\markuplines}.
+
+@include markup-list-commands.tely
@node Font selection
@subsection Font selection
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{Overview of text markup commands}
+@code{normal-text}. See @ref{Overview of text markup commands},
for more details.
@cindex make-dynamic-script
@end lilypond
@noindent
-See @ref{Text markup} for more details.
+See @ref{Text markup}, for more details.
@seealso
@end lilypond
@noindent
-See @ref{The Feta font} for a list of symbols which may be
+See @ref{The Feta font}, for a list of symbols which may be
printed with @code{\musicglyph}.
-The horizontal location of rehearsal marks can be adjusted by
-setting @code{break-align-symbol}
-
-@lilypond[fragment,quote,ragged-right,verbatim,relative]
-c1
-\key cis \major
-\clef alto
-\override Score.RehearsalMark #'break-align-symbol = #'key-signature
-\mark "on-key"
-cis
-\key ces \major
-\override Score.RehearsalMark #'break-align-symbol = #'clef
-\clef treble
-\mark "on clef"
-ces
-@end lilypond
-
-@code{break-align-symbol} may also accept the following values:
-@code{ambitus}, @code{breathing-sign}, @code{clef}, @code{custos},
-@code{staff-bar}, @code{left-edge}, @code{key-cancellation},
-@code{key-signature}, and @code{time-signature}. Setting
-@code{break-align-symbol} will only have an effect if the symbol
-appears at that point in the music.
-
+For common tweaks to the positioning of rehearsal marks, see @ref{Text marks}.
@seealso
@code{format-mark-letters}. They can be used as inspiration for other
formatting functions.
-Examples: @lsr{preparing,rehearsal-mark-numbers.ly}
+Examples: @lsr{parts,rehearsal-mark-numbers.ly}
@node Bar numbers
Bar numbers can be typeset at regular intervals instead of at the
beginning of each line. This is illustrated in the following example,
whose source is available as
-@inputfileref{input/@/test,bar@/-number@/-regular@/-interval@/.ly}
+@lsr{staff,making-bar-numbers-appear-at-regular-intervals.ly}.
@lilypondfile[ragged-right,quote]{bar-number-regular-interval.ly}
Program reference: @internalsref{BarNumber}.
-Examples:
-@inputfileref{input/@/test,bar@/-number@/-every@/-five@/-reset@/.ly},
-and @inputfileref{input/@/test,bar@/-number@/-regular@/-interval@/.ly}.
+Examples: @lsrdir{staff}
@refbugs
@seealso
-Examples: @lsr{preparing,tag@/-filter@/.ly}
+Examples: @lsr{parts,tag@/-filter@/.ly}
@refbugs
In this manual: @ref{Instrument transpositions}.
-Examples:
-@c FIXME: Add when LSR is updated. -gp
-@c @i nputfileref{input/@/regression,quote@/.ly}
-@c @i nputfileref{input/@/regression,quote@/-transposition@/.ly}
+Examples: @lsr{parts,quote.ly}, @lsr{parts,quote-transportation.ly}
Program reference: @internalsref{QuoteMusic}.
faked. In the next example, the markup for the time signature is
created with a markup text. This markup text is inserted in the
@internalsref{TimeSignature} grob. See also
-@inputfileref{input/@/test,compound@/-time@/.ly}).
+@lsr{contemporary,compound-time-signature}.
@lilypond[verbatim,ragged-right]
% create 2/4 + 5/8
\makeClusters { <c e > <b f'> }
@end lilypond
-The following example (from
-@inputfileref{input/@/regression,cluster@/.ly}) shows what the result
-looks like
-
-@lilypondfile[ragged-right,quote]{cluster.ly}
-
Ordinary notes and clusters can be put together in the same staff,
even simultaneously. In such a case no attempt is made to
automatically avoid collisions between ordinary notes and clusters.
@internalsref{ClusterSpannerBeacon},
@internalsref{Cluster_spanner_engraver}.
-Examples: @inputfileref{input/@/regression,cluster@/.ly}.
+Examples: @lsr{contemporary,cluster@/.ly}.
@refbugs
can be used to adjust note durations.
@lilypond[ragged-right,relative=1,fragment,verbatim,quote]
+\override Beam #'grow-direction = #LEFT
\featherDurations #(ly:make-moment 5 4)
{
- \override Beam #'grow-direction = #LEFT
c16[ c c c c c c]
}
@end lilypond
Improvisation is sometimes denoted with slashed note heads. Such note
heads can be created by adding a @internalsref{Pitch_squash_engraver}
-to the @internalsref{Staff} or @internalsref{Voice} context. Then, the
+to the @internalsref{Voice} context. Then, the
following command
@example
the following example
@lilypond[verbatim,ragged-right,quote]
-\new Staff \with {
+\new Voice \with {
\consists Pitch_squash_engraver
} \transpose c c' {
e8 e g a a16(bes)(a8) g \improvisationOn
named normal color.
Notes in a chord cannot be colored with @code{\override}; use
-@code{\tweak} instead. See @ref{Objects connected to the input}
+@code{\tweak} instead. See @ref{Objects connected to the input},
for details.
@node Grid lines
@subsection Grid lines
-@c FIXME: get an example for grid lines. -gp
Vertical lines can be drawn between staves synchronized with
the notes.
-Examples: @inputfileref{input/@/regression,grid@/-lines@/.ly}.
+@lilypond[ragged-right,quote,verbatim]
+\layout {
+ \context {
+ \Staff
+ \consists "Grid_point_engraver" %% sets of grid
+ gridInterval = #(ly:make-moment 1 4)
+ }
+}
+
+\new Score \with {
+ \consists "Grid_line_span_engraver"
+ %% centers grid lines horizontally below noteheads
+ \override NoteColumn #'X-offset = #-0.5
+}
+
+\new ChoirStaff <<
+ \new Staff {
+ \stemUp
+ \relative {
+ c'4. d8 e8 f g4
+ }
+ }
+ \new Staff {
+ %% centers grid lines vertically
+ \override Score.GridLine #'extra-offset = #'( 0.0 . 1.0 )
+ \stemDown
+ \clef bass
+ \relative c {
+ c4 g' f e
+ }
+ }
+>>
+@end lilypond
+
+Examples: @lsrdir{education}
+