### 2.1.16 Lyrics

Corresponds to a voice with lyrics. Handles the printing of a single line of lyrics.

This context creates the following layout object(s):

InstrumentName, LyricExtender, LyricHyphen, LyricSpace, LyricText, StanzaNumber and VerticalAxisGroup.

This context sets the following properties:

- Set grob-property `bar-extent` in BarLine to `'(-0.05 . 0.05)`.
- Set grob-property `font-size` in InstrumentName to `1.0`.
- Set grob-property `nonstaff-nonstaff-spacing` in VerticalAxisGroup to `'((basic-distance . 0) (minimum-distance . 2.8) (padding . 0.2) (stretchability . 0))`.
- Set grob-property `nonstaff-relatedstaff-spacing` in VerticalAxisGroup to `'((basic-distance . 5.5) (padding . 0.5) (stretchability . 1))`.
- Set grob-property `nonstaff-unrelatedstaff-spacing padding` in VerticalAxisGroup to `1.5`.
- Set grob-property `remove-empty` in VerticalAxisGroup to `#t`.
- Set grob-property `remove-first` in VerticalAxisGroup to `#t`.
- Set grob-property `self-alignment-Y` in InstrumentName to `#f`.
- Set grob-property `staff-affinity` in VerticalAxisGroup to `1`.
- Set translator property `instrumentName` to `'()`.
- Set translator property `searchForVoice` to `#f`.
- Set translator property `shortInstrumentName` to `'()`.

This context is a ‘bottom’ context; it cannot contain other contexts.

This context is built from the following engraver(s):

> `Axis_group_engraver`

>   Group all objects created in this context in a `VerticalAxisGroup` spanner.

>   Properties (read)

>   > `currentCommandColumn` (graphical (layout) object)

>   >   Grob that is X-parent to all current breakable (clef, key signature, etc.) items.

>   > `hasAxisGroup` (boolean)

>   >   True if the current context is contained in an axis group.

>   > `keepAliveInterfaces` (list)

>   >   A list of symbols, signifying grob interfaces that are worth keeping a staff with `remove-empty` set around for.

>   Properties (write)

>   > `hasAxisGroup` (boolean)

>   >   True if the current context is contained in an axis group.

>   This engraver creates the following layout object(s):

>   VerticalAxisGroup.

> `Extender_engraver`

>   Create lyric extenders.

>   Music types accepted:

>   completize-extender-event and extender-event

>   Properties (read)

>   > `extendersOverRests` (boolean)

>   >   Whether to continue extenders as they cross a rest.

>   > `includeGraceNotes` (boolean)

>   >   Do not ignore grace notes for Lyrics.

>   This engraver creates the following layout object(s):

>   LyricExtender.

> `Font_size_engraver`

>   Put `fontSize` into `font-size` grob property.

>   Properties (read)

>   > `fontSize` (number)

>   >   The relative size of all grobs in a context.

> `Hyphen_engraver`

>   Create lyric hyphens and distance constraints between words.

>   Music types accepted:

>   hyphen-event

>   This engraver creates the following layout object(s):

>   LyricHyphen and LyricSpace.

> `Instrument_name_engraver`

>   Create a system start text for instrument or vocal names.

>   Properties (read)

>   > `currentCommandColumn` (graphical (layout) object)

>   >   Grob that is X-parent to all current breakable (clef, key signature, etc.) items.

>   > `instrumentName` (markup)

>   >   The name to print left of a staff. The `instrumentName` property labels the staff in the first system, and the `shortInstrumentName` property labels following lines.

>   > `shortInstrumentName` (markup)

>   >   See `instrumentName`.

>   > `shortVocalName` (markup)

>   >   Name of a vocal line, short version.

>   > `vocalName` (markup)

>   >   Name of a vocal line.

>   This engraver creates the following layout object(s):

>   InstrumentName.

> `Lyric_engraver`

>   Engrave text for lyrics.

>   Music types accepted:

>   lyric-event

>   Properties (read)

>   > `ignoreMelismata` (boolean)

>   >   Ignore melismata for this Lyrics line.

>   > `includeGraceNotes` (boolean)

>   >   Do not ignore grace notes for Lyrics.

>   > `lyricMelismaAlignment` (number)

>   >   Alignment to use for a melisma syllable.

>   > `searchForVoice` (boolean)

>   >   Signal whether a search should be made of all contexts in the context hierarchy for a voice to provide rhythms for the lyrics.

>   This engraver creates the following layout object(s):

>   LyricText.

> `Pure_from_neighbor_engraver`

>   Coordinates items that get their pure heights from their neighbors.

> `Stanza_number_engraver`

>   Engrave stanza numbers.

>   Properties (read)

>   > `stanza` (markup)

>   >   Stanza ‘number’ to print before the start of a verse. Use in `Lyrics` context.

>   This engraver creates the following layout object(s):

>   StanzaNumber.

#### Internals Reference v2.18.2 (稳定分支).