### 1.8.3 Fonts

This section presents the way fonts are handled, and how they may be changed in scores.

#### Fonts explained

Fonts are handled through several libraries. FontConfig is used to detect available fonts on the system; the selected fonts are rendered using Pango.

Music notation fonts can be described as a set of specific glyphs, ordered in several families. The following syntax allows various LilyPond `feta` non-text fonts to be used directly in markup mode:

```a'1^\markup {
\vcenter {
\override #'(font-encoding . fetaBraces)
\lookup #"brace120"
\override #'(font-encoding . fetaText)
\column { 1 3 sf }
\override #'(font-encoding . fetaMusic)
}
}
```

However, all these glyphs except the braces of various sizes contained in `fetaBraces` are available using the simpler syntax described in Music notation inside markup.

When using the glyphs contained in `fetaBraces`, the size of the brace is specified by the numerical part of the glyph name, in arbitrary units. Any integer from `0` to `575` inclusive may be specified, `0` giving the smallest brace. The optimum value must be determined by trial and error. These glyphs are all left braces; right braces may be obtained by rotation, see Rotating objects.

Three families of text fonts are made available:

• The roman (serif) font, which defaults to LilyPond Serif (an alias of TeX Gyre Schola).
• The sans font, which defaults to LilyPond Sans Serif (an alias of TeX Gyre Heros).
• The typewriter (monospaced) font, which defaults to LilyPond Monospace (an alias of TeX Gyre Cursor).

Each family may include different shapes and series. The following example demonstrates the ability to select alternate families, shapes, series and sizes. The value supplied to `font-size` is the required change from the default size.

```\override Score.RehearsalMark.font-family = #'typewriter
\mark \markup "Ouverture"
\override Voice.TextScript.font-shape = #'italic
\override Voice.TextScript.font-series = #'bold
d''2.^\markup "Allegro"
\override Voice.TextScript.font-size = #-3
c''4^smaller
```

A similar syntax may be used in markup mode; however in this case it is preferable to use the simpler syntax explained in Selecting font and font size:

```\markup {
\column {
\line {
\override #'(font-shape . italic)
\override #'(font-size . 4)
Idomeneo,
}
\line {
\override #'(font-family . typewriter)
{
\override #'(font-series . bold)
re
di
}
\override #'(font-family . sans)
Creta
}
}
}
```

Although it is easy to switch between preconfigured fonts, it is also possible to use other fonts, as explained in the following sections: Single entry fonts and Entire document fonts.

Notation Reference: The Feta font, Music notation inside markup, Rotating objects, Selecting font and font size, Font.

#### Single entry fonts

Any font that is installed on the operating system and recognized by FontConfig may be used in a score, using the following syntax:

```\override Staff.TimeSignature.font-name = #"Bitstream Charter"
\override Staff.TimeSignature.font-size = #2
\time 3/4

a'1_\markup {
\override #'(font-name . "Bitstream Vera Sans,sans-serif, Oblique Bold")
{ Vera Oblique Bold }
}
```

font-name can be described using a comma-separated list of ‘fonts’ and a white-space separated list of ‘styles’. As long as the ‘font’ in the list is installed and contains requested glyph, it will be used, otherwise the next font in the list will be used instead.

Running lilypond with the following option displays a list of all available fonts on the operating system:

```lilypond -dshow-available-fonts x
```

Notation Reference: Fonts explained, Entire document fonts.

Snippets: Text.

#### Entire document fonts

It is possible to change the fonts to be used as the default fonts in the roman, sans and 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. Similar to Single entry fonts, it can be described using a comma-separated list of ‘fonts’. However, font ‘styles’ can not be described. For an explanation of fonts, see Fonts explained.

```\paper  {
#(define fonts
(make-pango-font-tree "Times New Roman"
"Nimbus Sans,Nimbus Sans L"
"Luxi Mono"
(/ staff-height pt 20)))
}

\relative c'{
c1-\markup {
roman,
\sans sans,
\typewriter typewriter. }
}
```