3.2.79 line-spanner-interface

Generic line drawn between two objects, e.g., for use with glissandi.

bound-details is a nested alist. It’s possible to specify settings for the sub-properties: left, left-broken, right and right-broken.

Values for the following keys may be set:


Sets the Y coordinate of the end point, in staff-spaces offset from the staff center line. By default, it is the center of the bound object, so a glissando points to the vertical center of the note head. Not relevant for grobs having the horizontal-line-spanner-interface.


Determines where the line starts and ends in the X direction, relative to the bound object. So, a value of -1 (or LEFT) makes the line start/end at the left side of the note head it is attached to.


This is the absolute X coordinate of the end point. Usually computed on the fly.


If set to true, when the line spanner is broken, each broken piece only extends to the furthest note, not to the end of the staff, on sides where it is broken.


Only meaningful in bound-details.right. If set to true, the line spanner stops before the accidentals if its right bound is a note column or a grob contained in a note column, and this note column has accidentals.


Only meaningful in bound-details.left. If true, the line spanner starts after dots, in a fashion similar to end-on-accidental.


If true, the left-neighbor or right-neighbor object is read, and if it exists, the line spanner starts after it or stops before it.


Line spanners may have symbols at the beginning or end, which is contained in this sub-property. For internal use.


This is a markup that is evaluated to yield the stencil.


Without setting one of these, the stencil is simply put at the end-point, centered on the line, as defined by the X and Y sub-properties. Setting stencil-align-dir-y moves the symbol at the edge vertically relative to the end point of the line. With stencil-offset, expecting a number pair, the stencil is moved along the X axis according to the first value, the second value moves the stencil along the Y axis.


Produces an arrowhead at the end-points of the line.


Controls the space between the specified end point of the line and the actual end. Without padding, a glissando would start and end in the center of each note head.

User-settable properties:

bound-details (alist, with symbols as keys)

An alist of properties for determining attachments of spanners to edges.

extra-dy (number)

Slope glissandi this much extra.

gap (dimension, in staff space)

Size of a gap in a variable symbol.

left-bound-info (alist, with symbols as keys)

An alist of properties for determining attachments of spanners to edges.

right-bound-info (alist, with symbols as keys)

An alist of properties for determining attachments of spanners to edges.

thickness (number)

For grobs made up of lines, this is the thickness of the line. For slurs and ties, this is the distance between the two arcs of the curve’s outline at its thickest point, not counting the diameter of the virtual “pen” that draws the arcs. This property is expressed as a multiple of the current staff-line thickness (i.e., the visual output is influenced by changes to Staff.StaffSymbol.thickness).

to-barline (boolean)

If true, the spanner will stop at the bar line just before it would otherwise stop.

Internal properties:

left-neighbor (graphical (layout) object)

A grob similar to this one, on its left. For columns, the right-most column that has a spacing wish for this column.

note-columns (array of grobs)

An array of NoteColumn grobs.

right-neighbor (graphical (layout) object)

See left-neighbor.

This grob interface is used in the following graphical object(s): BendSpanner, FingerGlideSpanner, Glissando and VoiceFollower.

LilyPond Internals Reference v2.25.17 (development-branch).