[ << Tweaking output ] | [Top][Contents][Index] | [ Templates >> ] |
[ < Properties of layout objects ] | [ Up : The Internals Reference manual ] | [ Types of properties > ] |
5.2.2 Properties found in interfaces
Suppose now that we wish to print the lyrics in italics. What form of
\override
command do we need to do this? We first look in the
IR page listing ‘All layout objects’, as before, and look for an
object that might control lyrics. We find LyricText
, which
looks right. Clicking on this shows the settable properties for lyric
text. These include the font-series
and font-size
, but
nothing that might give an italic shape. This is because the shape
property is one that is common to all font objects, so, rather than
including it in every layout object, it is grouped together with other
similar common properties and placed in an Interface, the
font-interface
.
So now we need to learn how to find the properties of interfaces, and to discover what objects use these interface properties.
Look again at the IR page that describes LyricText
. At the bottom of
the page is a list of clickable interfaces that LyricText
supports.
The list has several items, including font-interface
. Clicking
on this brings up the properties associated with this interface, which
are also properties of all the objects which support it, including
LyricText
.
Now we see all the user-settable properties which control fonts,
including ‘font-shape
(symbol)’. The value in
parentheses gives the variable type expected by the property; here
it is a (Scheme) symbol. The IR also documents the possible
values, which are upright
, italics
, or slanted
.
You will notice that font-series
and font-size
are also
listed there. This immediately raises the question: Why are the
common font properties font-series
and font-size
listed
under LyricText
as well as under the interface
font-interface
but font-shape
is not? The answer is
that font-series
and font-size
are changed from their
global default values when a LyricText
object is created, but
font-shape
is not. The entries in LyricText
then tell
you the values for those two properties which apply to
LyricText
. Other objects which support font-interface
will set these properties differently when they are created.
Let’s see if we can now construct the \override
command
to change the lyrics to italics. The object is LyricText
,
the property is font-shape
and the value is
italic
. As before, we’ll omit the context.
As an aside, although it is an important one, note that some
properties take values that are symbols, like italic
, and
must be preceded by an apostrophe, ‘'’. Symbols are then
read internally by LilyPond. Note the distinction from arbitrary
text strings, which would appear as "a text string"
; for
more details about symbols and strings, see Scheme tutorial.
So we see that the \override
command needed to print the lyrics
in italics is:
\override LyricText.font-shape = #'italic
This should be placed just in front of the lyrics we wish to affect, like so:
{ \key es \major \time 6/8 \relative { r4 bes'8 bes[( g]) g | g8[( es]) es d[( f]) as | as8 g } \addlyrics { \override LyricText.font-shape = #'italic The man who | feels love's sweet e -- | mo -- tion } }
and the lyrics are all printed in italics.
Note: In lyrics, always leave whitespace between the final syllable and the terminating brace.
See also
Extending: Scheme tutorial.
[ << Tweaking output ] | [Top][Contents][Index] | [ Templates >> ] |
[ < Properties of layout objects ] | [ Up : The Internals Reference manual ] | [ Types of properties > ] |