LilyPond Internals Reference: 2.1.8 FiguredBass

### 2.1.8 FiguredBass

A context for printing a figured bass line.

This context creates the following layout object(s):

BassFigure, BassFigureAlignment, BassFigureBracket, BassFigureContinuation, BassFigureLine, StaffSpacing and VerticalAxisGroup.

This context sets the following properties:

- Set grob-property `nonstaff-nonstaff-spacing padding` in VerticalAxisGroup to `0.5`.
- Set grob-property `nonstaff-relatedstaff-spacing padding` in VerticalAxisGroup to `0.5`.
- Set grob-property `remove-empty` in VerticalAxisGroup to `#t`.
- Set grob-property `remove-first` in VerticalAxisGroup to `#t`.
- Set grob-property `staff-affinity` in VerticalAxisGroup to `1`.

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

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

> `Figured_bass_engraver`

>   Make figured bass numbers.

>   Music types accepted:

>   bass-figure-event and rest-event

>   Properties (read)

>   > `figuredBassAlterationDirection` (direction)

>   >   Where to put alterations relative to the main figure.

>   > `figuredBassCenterContinuations` (boolean)

>   >   Whether to vertically center pairs of extender lines. This does not work with three or more lines.

>   > `figuredBassFormatter` (procedure)

>   >   A routine generating a markup for a bass figure.

>   > `ignoreFiguredBassRest` (boolean)

>   >   Don’t swallow rest events.

>   > `implicitBassFigures` (list)

>   >   A list of bass figures that are not printed as numbers, but only as extender lines.

>   > `useBassFigureExtenders` (boolean)

>   >   Whether to use extender lines for repeated bass figures.

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

>   BassFigure, BassFigureAlignment, BassFigureBracket, BassFigureContinuation and BassFigureLine.

> `Hara_kiri_engraver`

>   Like `Axis_group_engraver`, but make a hara-kiri spanner, and add interesting items (i.e., note heads, lyric syllables, and normal rests).

>   Properties (read)

>   > `keepAliveInterfaces` (list)

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

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

>   VerticalAxisGroup.

> `Separating_line_group_engraver`

>   Generate objects for computing spacing parameters.

>   Properties (read)

>   > `createSpacing` (boolean)

>   >   Create `StaffSpacing` objects? Should be set for staves.

>   Properties (write)

>   > `hasStaffSpacing` (boolean)

>   >   True if the current `CommandColumn` contains items that will affect spacing.

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

>   StaffSpacing.

#### Internals Reference