3.2.7 axis-group-interface

An object that groups other layout objects.

User settable properties:

axes (list)

List of axis numbers. In the case of alignment grobs, this should contain only one number.

default-staff-staff-spacing (list)

The settings to use for staff-staff-spacing when it is unset, for ungrouped staves and for grouped staves that do not have the relevant StaffGrouper property set (staff-staff-spacing or staffgroup-staff-spacing).

max-stretch (number)

The maximum amount that this VerticalAxisGroup can be vertically stretched (for example, in order to better fill a page).

no-alignment (boolean)

If set, don’t place this grob in a VerticalAlignment; rather, place it using its own Y-offset callback.

nonstaff-nonstaff-spacing (list)

The spacing alist controlling the distance between the current non-staff line and the next non-staff line in the direction of staff-affinity, if both are on the same side of the related staff, and staff-affinity is either UP or DOWN. See staff-staff-spacing for a description of the alist structure.

nonstaff-relatedstaff-spacing (list)

The spacing alist controlling the distance between the current non-staff line and the nearest staff in the direction of staff-affinity, if there are no non-staff lines between the two, and staff-affinity is either UP or DOWN. If staff-affinity is CENTER, then nonstaff-relatedstaff-spacing is used for the nearest staves on both sides, even if other non-staff lines appear between the current one and either of the staves. See staff-staff-spacing for a description of the alist structure.

nonstaff-unrelatedstaff-spacing (list)

The spacing alist controlling the distance between the current non-staff line and the nearest staff in the opposite direction from staff-affinity, if there are no other non-staff lines between the two, and staff-affinity is either UP or DOWN. See staff-staff-spacing for a description of the alist structure.

outside-staff-placement-directive (symbol)

One of four directives telling how outside staff objects should be placed.

  • left-to-right-greedy – Place each successive grob from left to right.
  • left-to-right-polite – Place a grob from left to right only if it does not potentially overlap with another grob that has been placed on a pass through a grob array. If there is overlap, do another pass to determine placement.
  • right-to-left-greedy – Same as left-to-right-greedy, but from right to left.
  • right-to-left-polite – Same as left-to-right-polite, but from right to left.
staff-affinity (direction)

The direction of the staff to use for spacing the current non-staff line. Choices are UP, DOWN, and CENTER. If CENTER, the non-staff line will be placed equidistant between the two nearest staves on either side, unless collisions or other spacing constraints prevent this. Setting staff-affinity for a staff causes it to be treated as a non-staff line. Setting staff-affinity to #f causes a non-staff line to be treated as a staff.

staff-staff-spacing (list)

When applied to a staff-group’s StaffGrouper grob, this spacing alist controls the distance between consecutive staves within the staff-group. When applied to a staff’s VerticalAxisGroup grob, it controls the distance between the staff and the nearest staff below it in the same system, replacing any settings inherited from the StaffGrouper grob of the containing staff-group, if there is one. This property remains in effect even when non-staff lines appear between staves. The alist can contain the following keys:

  • basic-distance – the vertical distance, measured in staff-spaces, between the reference points of the two items when no collisions would result, and no stretching or compressing is in effect.
  • minimum-distance – the smallest allowable vertical distance, measured in staff-spaces, between the reference points of the two items, when compressing is in effect.
  • padding – the minimum required amount of unobstructed vertical whitespace between the bounding boxes (or skylines) of the two items, measured in staff-spaces.
  • stretchability – a unitless measure of the dimension’s relative propensity to stretch. If zero, the distance will not stretch (unless collisions would result).

Internal properties:

adjacent-pure-heights (pair)

A pair of vectors. Used by a VerticalAxisGroup to cache the Y-extents of different column ranges.

bound-alignment-interfaces (list)

Interfaces to be used for positioning elements that align with a column.

elements (array of grobs)

An array of grobs; the type is depending on the grob where this is set in.

pure-relevant-grobs (array of grobs)

All the grobs (items and spanners) that are relevant for finding the pure-Y-extent

pure-relevant-items (array of grobs)

A subset of elements that are relevant for finding the pure-Y-extent.

pure-relevant-spanners (array of grobs)

A subset of elements that are relevant for finding the pure-Y-extent.

pure-Y-common (graphical (layout) object)

A cache of the common_refpoint_of_array of the elements grob set.

staff-grouper (graphical (layout) object)

The staff grouper we belong to.

system-Y-offset (number)

The Y-offset (relative to the bottom of the top-margin of the page) of the system to which this staff belongs.

vertical-skyline-elements (array of grobs)

An array of grobs used to create vertical skylines.

X-common (graphical (layout) object)

Common reference point for axis group.

Y-common (graphical (layout) object)

See X-common.

This grob interface is used in the following graphical object(s): Ambitus, BassFigureAlignment, BassFigureAlignmentPositioning, BassFigureLine, BreakAlignGroup, BreakAlignment, DotColumn, DynamicLineSpanner, NonMusicalPaperColumn, NoteCollision, NoteColumn, PaperColumn, SostenutoPedalLineSpanner, SustainPedalLineSpanner, System, TrillPitchGroup, UnaCordaPedalLineSpanner, VerticalAlignment, VerticalAxisGroup and VoltaBracketSpanner.


Internals Reference v2.17.97 (development-branch).