LilyPond Notation Reference: 4.5.4.3 Spacing between adjacent columns

#### 4.5.4.3 Spacing between adjacent columns

Contrary to spacing within one column, spacing between adjacent columns is flexible and stretches or compresses according to the density of music on the line. By default, columns may even overlap in some situations. The following example shows three cases. The second accidental slides behind the bar line, while the third one overlaps with the clef. Also, the tempo marking Presto spans several columns. Observe how the first accidental, which remains within the vertical extent of the bar line on its left, is placed further apart.

These spacing rules can be overridden. This is done by modifying the width and height that an object takes in horizontal spacing. The relevant properties are `extra-spacing-width` and `extra-spacing-height`. When unset, an object takes as much space in horizontal spacing as its `X-extent` and `Y-extent` properties allow. These are accurate values of its dimensions. The `extra-spacing-width` and `extra-spacing-height` properties make an object larger or smaller for computation of horizontal spacing between columns only, but preserve its dimensions for other spacing types.

>     {
>       \textMark "Default"
>       c'2 2 cis'2 2
>     }

>     {
>       \textMark "Modified X-extent"
>       \override NoteHead.X-extent = #'(-2 . 2)
>       c'2 2 cis'2 2
>     }

>     {
>       \textMark "Modified extra-spacing-width"
>       \override NoteHead.extra-spacing-width = #'(-2 . 2)
>       c'2 2 cis'2 2
>     }

`extra-spacing-width` and `extra-spacing-height` are pairs of numbers, which are added to the dimensions on each axis. For instance, setting `extra-spacing-height` to `'(-2 . 3)` makes the object three units larger on the top, and two units larger on the bottom (limit lowered by 2). The following example shows how to use `extra-spacing-height` to change the limit after which accidentals no longer overlap with bar lines.

>     music = \relative {
>       \time 1/4
>       cis8 8 | dis8 8 | eis8 8 | fis8 8 |
>       gis8 8 | ais8 8 | bis8 8 | cis8 8 |
>     }

>     {
>       \music
>     }

>     {
>       \override Accidental.extra-spacing-height = #'(0 . 1.0)
>       \music
>     }

The value `'(+inf.0 . -inf.0)` for `extra-spacing-width` or `extra-spacing-height` removes the object’s presence.

>     music = \relative {
>       \time 1/4
>       cis8 8 | dis8 8 | eis8 8 | fis8 8 |
>       gis8 8 | ais8 8 | bis8 8 | cis8 8 |
>     }

>     {
>       \override Accidental.extra-spacing-height = #'(+inf.0 . -inf.0)
>       \music
>     }

Conversely, an `extra-spacing-height` of `'(-inf.0 . +inf.0)` makes the object infinitely high, preventing overlap with another column completely. The below example demonstrates this technique on `Accidental` and `MetronomeMark`. In the case of `MetronomeMark`, it is necessary to set `extra-spacing-width` to `'(0 . 0)` because the default is `'(+inf.0 . -inf.0)`, and even an infinitely high object does not take space if it has no width.

>     {
>       \override Score.MetronomeMark.extra-spacing-width =
>         #'(0 . 0)
>       \override Score.MetronomeMark.extra-spacing-height =
>         #'(-inf.0 . +inf.0)
>       \override Accidental.extra-spacing-height =
>         #'(-inf.0 . +inf.0)
>       cis'4 r2.
>       \tempo Presto
>       fis16 8 16 4 \clef alto cis4 fis4
>     }

#### See also

Internals Reference: item-interface, separation-item-interface.

#### LilyPond — Notation Reference v2.24.4 (stable-branch).