your scores.
@cindex Text, other languages
-To write non-ascii text (such as characters from other languages), simply
+To write accented and special text (such as characters from other languages),
+simply
insert the characters directly into the lilypond file. The file must be
saved as UTF-8. For more information, see @ref{Text encoding}.
* 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
These all use the same routines as the glissando for drawing the texts
and the lines, and tuning their behavior is therefore also done in the
same way. It is done with a spanner, and the routine responsible for
-drawing the spanners is @code{ly:new-line-interface::print}. This
-routine creates determines the exact location of the two @i{span
+drawing the spanners is @code{ly:line-interface::print}. This
+routine determines the exact location of the two @i{span
points} and draws a line in between, in the style requested.
Here is an example of the different line styles available, and how to
@end lilypond
The @code{Glissando} object, like any other using the
-@code{ly:new-line-interface::print} routine, carries a nested
-association list. In the above statement, the @item value for @code{Y}
-is set to @code{-2} for association list corresponding to the right
+@code{ly:line-interface::print} routine, carries a nested
+association list. In the above statement, the value for @code{Y}
+is set to @code{-2} for the association list corresponding to the right
end point. Of course, it is also possible to adjust the left side with
@code{left} instead of @code{right}.
position of right attachment point of the spanner.
In case of a line break, the values for the span-points are extended
-with contents of the @code{left-break} and @code{right-break}
+with contents of the @code{left-broken} and @code{right-broken}
sublists, for example
@lilypond[relative=2,ragged-right,verbatim,fragment]
\override Glissando #'breakable = ##T
-\override Glissando #'bound-details #'right-break #'Y = #-3
-\override Glissando #'bound-details #'left-break #'Y = #3
+\override Glissando #'bound-details #'right-broken #'Y = #-3
c1 \glissando \break
f1
@end lilypond
This is a markup that is evaluated to yield stencil. It is
used to put @i{cresc.} and @i{tr} on horizontal spanners.
-@lilypond[quote,ragged-right,fragment,relative=1,verbatim]
+@lilypond[quote,ragged-right,fragment,relative=2,verbatim]
\override TextSpanner #'bound-details #'left #'text
- = \markup { \bold Slower }
-c2\startTextSpan b c\stopTextSpan a
+ = \markup { \small \bold Slower }
+c2\startTextSpan b c a\stopTextSpan
@end lilypond
-
@item stencil-align-dir-y
@item stencil-offset
Without setting this, the stencil is simply put there at the
@end table
+@seealso
+
+Program reference: @internalsref{TextSpanner},
+@internalsref{Glissando}, @internalsref{VoiceFollower},
+@internalsref{TrillSpanner}, @internalsref{line-spanner-interface}.
+
+Examples: @lsr{expressive,line-styles.ly}, @lsr{expressive,line-arrows.ly}
+
@node Text spanners
@subsection 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
@refcommands
-@cindex textSpannerUp
-@code{textSpannerUp},
-@cindex textSpannerDown
-@code{textSpannerDown},
-@cindex textSpannerNeutral
-@code{textSpannerNeutral}.
+@funindex textSpannerUp
+@code{\textSpannerUp},
+@funindex textSpannerDown
+@code{\textSpannerDown},
+@funindex textSpannerNeutral
+@code{\textSpannerNeutral}.
@commonprop
Program reference: @internalsref{TextSpanner}.
-Examples: @inputfileref{input/@/regression,text@/-spanner@/.ly}.
-
@node Text marks
@subsection Text marks
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" }
@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
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 "anchor" point
+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]
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 not breakable block of text,
+@code{\markuplines} can be used at top-level to enter lines of text that
+can spread over 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
@seealso
-Examples: @inputfileref{input/@/regression,font@/-family@/-override.ly}.
+Examples: @lsr{text,font@/-family@/-override.ly}.
@node New dynamic marks
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
@code{format-mark-letters}. They can be used as inspiration for other
formatting functions.
-Examples: @inputfileref{input/@/regression,rehearsal@/-mark@/-letter@/.ly},
-
-@inputfileref{input/@/regression,rehearsal@/-mark@/-number@/.ly}.
+Examples: @lsr{parts,rehearsal-mark-numbers.ly}
@node Bar numbers
Program reference: @internalsref{OttavaBracket}.
-Examples: @inputfileref{input/@/regression,ottava@/.ly},
-@inputfileref{input/@/regression,ottava@/-broken@/.ly}.
-
@refbugs
@seealso
-Examples: @inputfileref{input/@/regression,tag@/-filter@/.ly}.
+Examples: @lsr{parts,tag@/-filter@/.ly}
@refbugs
In this manual: @ref{Instrument transpositions}.
-Examples: @inputfileref{input/@/regression,quote@/.ly}
-@inputfileref{input/@/regression,quote@/-transposition@/.ly}
+Examples: @lsr{parts,quote.ly}, @lsr{parts,quote-transportation.ly}
Program reference: @internalsref{QuoteMusic}.
\addQuote clarinet \relative {
R1*20
- r2 r8 c f f
+ r2 r8 c' f f
}
\new Staff \relative <<
- % setup a context for cue notes.
+ % setup a context for cue notes.
\new Voice = "cue" { \smaller \skip 1*21 }
\set Score.skipBars = ##t
\new Voice {
R1*20
- \cueDuring #"clarinet" #1 {
+ \cueDuring #"clarinet" #UP {
R1
}
g4 g2.
@menu
* Polymetric notation::
* Time administration::
-* Proportional notation::
+* Proportional notation (introduction)::
* Clusters::
* Special noteheads::
* Feathered beams::
seven sixteenths notes.
-@node Proportional notation
-@subsection Proportional notation
+@node Proportional notation (introduction)
+@subsection Proportional notation (introduction)
@cindex Proportional notation
+See @ref{Proportional notation}.
+
+
+TODO: remove all this stuff?
+
Notes can be spaced proportionally to their time-difference by
assigning a duration to @code{proportionalNotationDuration}
@seealso
-@inputfileref{input/@/regression,spacing-proportional/.ly}
-@inputfileref{input/@/regression,spacing-strict-notespacing/.ly}
-@inputfileref{input/@/regression,spacing-strict-spacing-grace/.ly}
+Examples: @lsr{spacing,proportional@/-spacing@/.ly},
+@lsr{spacing,proportional@/-strict@/-grace@/-notes@/.ly}, and
+@lsr{spacing,proportional@/-strict@/-notespacing@/.ly}
An example of strict proportional notation is in the
example file @file{input/proportional.ly}.
\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
@noindent
To see all notehead styles, please see
-@inputfileref{input/@/regression,note@/-head@/-style@/.ly}.
+@ref{Note head styles}.
@seealso
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
standard size for the current staff height. Each step up is an
increase of approximately 12% of the font size. Six steps is exactly a
factor two. The Scheme function @code{magstep} converts a
-@code{font-size} number to a scaling factor.
+@code{font-size} number to a scaling factor. The @code{font-size}
+property can also be set directly, so that only certain layout objects are
+affected.
@lilypond[quote,fragment,relative=1,verbatim]
c8
Program reference: @internalsref{text-balloon-interface}.
-Examples: @inputfileref{input/@/regression,balloon@/.ly}.
-
Program reference: @internalsref{HorizontalBracket}.
-Examples: @inputfileref{input/@/regression,note@/-group@/-bracket@/.ly}.
-
@node Coloring objects
@subsection Coloring objects
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.
Vertical lines can be drawn between staves synchronized with
the notes.
+@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: @inputfileref{input/@/regression,grid@/-lines@/.ly}.
+
+