articulations, see @rlearning{Placement of objects}.
@funindex \textLengthOn
-@funindex textLengthOn
@funindex \textLengthOff
-@funindex textLengthOff
@predefined
@code{\textLengthOn},
@knownissues
Checking to make sure that text scripts and lyrics are within the
-margins requires additonal calculations. In cases where slightly faster
+margins requires additional calculations. In cases where slightly faster
performance is desired, use
@example
object property. This syntax is described in @ref{Line styles}.
@funindex \textSpannerUp
-@funindex textSpannerUp
@funindex \textSpannerDown
-@funindex textSpannerDown
@funindex \textSpannerNeutral
-@funindex textSpannerNeutral
@predefined
@cindex bar lines, symbols on
@funindex \mark
-@funindex mark
@funindex \markup
-@funindex markup
Various text elements may be added to a score using the syntax described
in @ref{Rehearsal marks}:
@lilypond[verbatim,quote]
\relative {
- c''4
- \mark "Allegro"
- c c c
+ \mark "Verse"
+ c'2 g'
+ \bar "||"
+ \mark "Chorus"
+ g2 c,
+ \bar "|."
}
@end lilypond
@end lilypond
@funindex \markLengthOn
-@funindex markLengthOn
@funindex \markLengthOff
-@funindex markLengthOff
@predefined
@code{\markLengthOn},
@ref{Rehearsal marks},
@ref{Formatting text},
@ref{Music notation inside markup},
-@ref{The Feta font}.
+@ref{The Emmentaler font}.
Snippets:
@rlsr{Text}.
@cindex text, standalone
@funindex \markup
-@funindex markup
A @code{\markup} block can exist by itself, outside of any
@code{\score} block, as a @qq{top-level expression}. This syntax
@funindex \markup
-@funindex markup
@funindex \markuplist
-@funindex markuplist
@predefined
@code{\markup},
@cindex typeset text
@funindex \markup
-@funindex markup
A @code{\markup} block is used to typeset text with an extensible
syntax called @qq{markup mode}.
@file{scm/markup.scm}.
@knownissues
-Syntax errors for markup mode can be confusing.
+Syntax error messages for markup mode can be confusing.
@node Selecting font and font size
@cindex switching fonts
@funindex \italic
-@funindex italic
@funindex \bold
-@funindex bold
@funindex \underline
-@funindex underline
Basic font switching is supported in markup mode:
@funindex \abs-fontsize
@funindex \fontsize
-@funindex fontsize
@funindex \smaller
-@funindex smaller
@funindex \larger
-@funindex larger
@funindex \magnify
-@funindex magnify
The font size can be altered, relative to the global staff size, in a
-number of different ways
+number of different ways.
-It can be set to predefined size,
+It can be set to predefined size.
@lilypond[quote,verbatim]
\relative b' {
}
@end lilypond
-It can be set relative to its previous value,
+It can be set relative to its previous value.
@lilypond[quote,verbatim]
\relative b' {
@end lilypond
It can be increased or decreased relative to the value set by the
-global staff size,
+global staff size.
@lilypond[quote,verbatim]
\relative b' {
@end lilypond
It can also be set to a fixed point-size, regardless of the global staff
-size,
+size.
@lilypond[quote,verbatim]
\relative b' {
@cindex superscript
@funindex \super
-@funindex super
@funindex \sub
-@funindex sub
@funindex \normal-size-super
-@funindex normal-size-super
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:
@ref{Fonts}.
@funindex \teeny
-@funindex teeny
@funindex \tiny
-@funindex tiny
@funindex \small
-@funindex small
@funindex \normalsize
-@funindex normalsize
@funindex \large
-@funindex large
@funindex \huge
-@funindex huge
@funindex \smaller
-@funindex smaller
@funindex \larger
-@funindex larger
@predefined
@cindex horizontal text alignment
@funindex \left-align
-@funindex left-align
@funindex \center-align
-@funindex center-align
@funindex \right-align
-@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,
@end lilypond
@funindex \halign
-@funindex halign
Horizontal alignment may be fine-tuned using a numeric value:
@cindex vertical text alignment
@funindex \raise
-@funindex raise
@funindex \lower
-@funindex lower
@funindex \null
-@funindex null
@c QUERY Should the function of ``\null'' be clarified? rp
@end lilypond
@funindex \general-align
-@funindex general-align
@funindex \translate
-@funindex translate
@funindex \translate-scaled
-@funindex translate-scaled
Some commands can affect both the horizontal and vertical alignment of
text objects in markup mode. Any object affected by these commands
@cindex columns, text
@funindex \column
-@funindex column
@funindex \center-column
-@funindex center-column
A markup object may include several lines of text. In the following
example, each element or expression is placed on its own line, either
@cindex markup, centering on the page
@funindex \fill-line
-@funindex fill-line
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
@cindex markup text, justified
@funindex \wordwrap
-@funindex wordwrap
@funindex \justify
-@funindex justify
Long text indications can also be automatically wrapped accordingly to
the given line width. These will be either left-aligned or justified,
@cindex markup text, framing
@funindex \box
-@funindex box
@funindex \circle
-@funindex circle
@funindex \rounded-box
-@funindex rounded-box
@funindex \bracket
-@funindex bracket
@funindex \hbracket
-@funindex hbracket
Some markup commands allow decoration of text elements with graphics,
as demonstrated in the following example.
@cindex markup text padding
@funindex \pad-markup
-@funindex pad-markup
@funindex \pad-x
-@funindex pad-x
@funindex \pad-to-box
-@funindex pad-to-box
@funindex \pad-around
-@funindex pad-around
Some commands may require an increase in the padding around the text;
this is achieved with some markup commands exhaustively described in
@cindex notation, graphic
@funindex \combine
-@funindex combine
@funindex \draw-circle
-@funindex draw-circle
@funindex \filled-box
-@funindex filled-box
@funindex \triangle
-@funindex triangle
@funindex \draw-line
-@funindex draw-line
@funindex \arrow-head
-@funindex arrow-head
Other graphic elements or symbols may be printed without requiring any
text. As with any markup expression, such objects can be combined.
@cindex postscript
@funindex \epsfile
-@funindex epsfile
@funindex \postscript
-@funindex postscript
Advanced graphic features include the ability to include external
image files converted to the Encapsulated PostScript format
More generally, any available musical symbol may be included
separately in a markup object, as demonstrated below; an exhaustive
list of these symbols and their names can be found in
-@ref{The Feta font}.
+@ref{The Emmentaler font}.
@lilypond[quote,verbatim]
\relative {
@seealso
Notation Reference:
@ref{Music},
-@ref{The Feta font},
+@ref{The Emmentaler font},
@ref{Fonts explained}.
Installed Files:
@cindex text spread over multiple pages
@funindex \markuplist
-@funindex markuplist
@funindex \justified-lines
-@funindex justified-lines
@funindex \wordwrap-lines
-@funindex wordwrap-lines
Although standard markup objects are not breakable, a specific syntax
makes it possible to enter lines of text that can spread over multiple
@rinternals{TextScript}.
@funindex \markuplist
-@funindex markuplist
@predefined
@code{\markuplist}.
using Pango.
Music notation fonts can be described as a set of specific glyphs,
-ordered in several families. The following syntax allows various
-LilyPond @code{feta} non-text fonts to be used directly in markup
-mode:
+ordered in several families. The following syntax allows LilyPond's
+various @emph{Feta} glyphs to be used directly in markup mode:
@lilypond[quote,verbatim,fragment]
a'1^\markup {
@ref{Rotating objects}.
Three families of text fonts are made available:
-@itemize
-@item
-The @emph{roman} (serif) font,
-which defaults to LilyPond Serif (an alias of TeX Gyre Schola).
-@item
-The @emph{sans} font,
-which defaults to LilyPond Sans Serif (an alias of TeX Gyre Heros).
-@item
-The @emph{typewriter} (monospaced) font,
-which defaults to LilyPond Monospace (an alias of TeX Gyre Cursor).
-@end itemize
+the @emph{roman} (serif) font,
+the @emph{sans} font, and the @emph{typewriter} font.
+
+For @code{svg} backend:
+@multitable @columnfractions .15 .30
+@headitem Family @tab Default font
+@item @emph{roman} @tab @code{serif}
+@item @emph{sans} @tab @code{sans-serif}
+@item @emph{typewriter} @tab @code{monospace}
+@end multitable
+
+@code{serif}, @code{sans-serif}, and @code{monospace} are
+@code{generic-family} in SVG and CSS specifications.
+
+For other backends:
+@multitable @columnfractions .15 .30 .55
+@headitem Family @tab Default font (alias) @tab Alias definition lists
+@item @emph{roman}
+@tab @code{LilyPond Serif}
+@tab
+TeX Gyre Schola,
+C059, Century SchoolBook URW, Century Schoolbook L,
+DejaVu Serif,
+..., serif
+@item @emph{sans}
+@tab @code{LilyPond Sans Serif}
+@tab
+TeX Gyre Heros,
+Nimbus Sans, Nimbus Sans L, DejaVu Sans,
+..., sans-serif
+@item @emph{typewriter}
+@tab @code{LilyPond Monospace}
+@tab
+TeX Gyre Cursor,
+Nimbus Mono PS, Nimbus Mono, Nimbus Mono L,
+DejaVu Sans Mono,
+..., monospace
+@end multitable
+
+@code{LilyPond Serif}, @code{LilyPond Sans Serif},
+and @code{LilyPond Monospace} are font aliases defined
+in the LilyPond dedicated FontConfig configuration file
+@code{00-lilypond-fonts.conf}.
+Where a character dosen't exist in the first font listed,
+the next font listed will be used instead for that character.
+For details of alias definitions, please see
+to @code{00-lilypond-fonts.conf} under the installed directory.
Each family may include different shapes and series. The following
example demonstrates the ability to select alternate families, shapes,
}
@end lilypond
+@noindent
+When using OpenType fonts, font features can be used.
+OpenType font scripts and languages can not be specified.
+Note: Not all OpenType fonts have all functions.
+If you request a feature that doesn't exist in the chosen font,
+then the feature is simply ignored.
+
+@lilypond[quote,verbatim]
+% True small caps
+\markup { Normal Style: Hello HELLO }
+\markup { \caps { Small Caps: Hello } }
+\markup { \override #'(font-features . ("smcp"))
+ { True Small Caps: Hello } }
+
+% Number styles
+\markup { Normal Number Style: 0123456789 }
+\markup { \override #'(font-features . ("onum"))
+ { Old Number Style: 0123456789 } }
+
+% Stylistic Alternates
+\markup { \override #'(font-features . ("salt 0"))
+ { Stylistic Alternates 0: εφπρθ } }
+\markup { \override #'(font-features . ("salt 1"))
+ { Stylistic Alternates 1: εφπρθ } }
+
+% Multiple features
+\markup { \override #'(font-features . ("onum" "smcp" "salt 1"))
+ { Multiple features: Hello 0123456789 εφπρθ } }
+@end lilypond
+
+@noindent For the full OpenType font feature list please see:
+@uref{https://www.microsoft.com/typography/otspec/featurelist.htm}
+
+@noindent For identifying features of OpenType fonts please see:
+@uref{http://lists.gnu.org/archive/html/lilypond-devel/2017-08/msg00004.html}
+
Although it is easy to switch between preconfigured fonts, it is also
possible to use other fonts, as explained in the following sections:
@ref{Single entry fonts} and @ref{Entire document fonts}.
@seealso
Notation Reference:
-@ref{The Feta font},
+@ref{The Emmentaler font},
@ref{Music notation inside markup},
@ref{Rotating objects},
@ref{Selecting font and font size},
\time 3/4
a'1_\markup {
- \override #'(font-name . "Vera Bold")
- { Vera Bold }
+ \override #'(font-name . "Bitstream Vera Sans,sans-serif, Oblique Bold")
+ { Vera Oblique Bold }
}
@end lilypond
@cindex listing available fonts
@cindex available fonts, listing
+@var{font-name} can be described using a comma-separated list of @q{fonts}
+and a white-space separated list of @q{styles}.
+As long as the @q{font} in the list is installed
+and contains requested glyph, it will be used,
+otherwise the @emph{next} font in the list will be used instead.
+
@funindex show-available-fonts
Running lilypond with the following option displays a list of all
the @emph{roman}, @emph{sans} and @emph{typewriter} font families by
specifying them, in that order, as shown in the example below, which
automatically scales the fonts with the value set for the global staff
-size. For an explanation of fonts, see @ref{Fonts explained}.
+size. Similar to @ref{Single entry fonts}, it can be described using a
+comma-separated list of @q{fonts}. However, font @q{styles} can not be
+described. For an explanation of fonts, see @ref{Fonts explained}.
@cindex font families, setting
@cindex fonts, changing for entire document
\paper {
#(define fonts
(make-pango-font-tree "Times New Roman"
- "Nimbus Sans"
+ "Nimbus Sans,Nimbus Sans L"
"Luxi Mono"
(/ staff-height pt 20)))
}