;;;; This file is part of LilyPond, the GNU music typesetter.
;;;;
-;;;; Copyright (C) 1998--2011 Han-Wen Nienhuys <hanwen@xs4all.nl>
+;;;; Copyright (C) 1998--2012 Han-Wen Nienhuys <hanwen@xs4all.nl>
;;;; Jan Nieuwenhuizen <janneke@gnu.org>
;;;;
;;;; LilyPond is free software: you can redistribute it and/or modify
(apply define-grob-property x))
`(
-;;
-;; a
-;;
+;;;
+;;; a
+;;;
(add-stem-support ,boolean? "If set, the @code{Stem} object is
included in this script's support.")
(after-line-breaking ,boolean? "Dummy property, used to trigger
averaged over staves.")
(avoid-note-head ,boolean? "If set, the stem of a chord does not
pass through all note heads, but starts at the last note head.")
+ (avoid-scripts ,boolean? "If set, a tuplet bracket avoids the
+scripts associated with the note heads it encompasses.")
(avoid-slur ,symbol? "Method of handling slur collisions.
Choices are @code{inside}, @code{outside}, @code{around}, and
@code{ignore}. @code{inside} adjusts the slur if needed to keep the
grobs, this should contain only one number.")
-;;
-;; b
-;;
+;;;
+;;; b
+;;;
+ (bar-extent ,number-pair? "The Y-extent of the actual bar line.
+This may differ from @code{Y-extent} because it does not include the
+dots in a repeat bar line.")
(base-shortest-duration ,ly:moment? "Spacing is based on the
shortest notes in a piece. Normally, pieces are spaced as if notes at
least as short as this are present.")
@code{#(@var{end-of-line} @var{unbroken} @var{begin-of-line})}.
@code{#t} means visible, @code{#f} means killed.")
(breakable ,boolean? "Allow breaks here.")
+ (broken-bound-padding ,number? "The amount of padding to insert
+when a spanner is broken at a line break.")
-
-;;
-;; c
-;;
- (c0-position ,integer? "An integer indicating the position of
-middle@tie{}C.")
+;;;
+;;; c
+;;;
(circled-tip ,boolean? "Put a circle at start/@/end of
hairpins (al/@/del niente).")
(clip-edges ,boolean? "Allow outward pointing beamlets at the
edges of beams?")
(collapse-height ,ly:dimension? "Minimum height of system start
delimiter. If equal or smaller, the bracket/@/brace/@/line is removed.")
+ (collision-bias ,number? "Number determining how much to favor the
+left (negative) or right (positive). Larger absolute values in either
+direction will push a collision in this direction.")
(collision-interfaces ,list? "A list of interfaces for which
automatic beam-collision resolution is run.")
+ (collision-padding ,number? "Amount of padding to apply after
+a collision is detected via the self-alignment-interface.")
(collision-voice-only ,boolean? "Does automatic beam collsion apply
only to the voice in which the beam was created?")
(color ,color? "The color of this grob.")
(control-points ,list? "List of offsets (number pairs) that form
control points for the tie, slur, or bracket shape. For B@'eziers,
this should list the control points of a third-order B@'ezier curve.")
+ (count-from ,integer? "The first measure in a measure count
+receives this number. The following measures are numbered in
+increments from this initial value.")
-;;
-;; d
-;;
+;;;
+;;; d
+;;;
(damping ,number? "Amount of beam slope damping.")
(dash-definition ,pair? "List of @code{dash-elements} defining the
dash structure. Each @code{dash-element} has a starting t value,
i.e., @code{0} = whole note, @code{1} = half note, etc.")
-;;
-;; e
-;;
+;;;
+;;; e
+;;;
(eccentricity ,number? "How asymmetrical to make a slur.
Positive means move the center to the right.")
(edge-height ,pair? "A pair of numbers specifying the heights of
left side of the item and adding the @q{cdr} on the right side of the
item). In order to make a grob take up no horizontal space at all,
set this to @code{(+inf.0 . -inf.0)}.")
- (extra-X-extent ,number-pair? "A grob is enlarged in
-X@tie{}dimension by this much.")
- (extra-Y-extent ,number-pair? "A grob is enlarged in
-Y@tie{}dimension by this much.")
-;;
-;; f
-;;
+;;;
+;;; f
+;;;
(flag-count ,number? "The number of tremolo beams.")
+ (flag-style ,symbol? "The style of the flag to be used with
+@code{MetronomeMark}. Available are @code{'modern-straight-flag},
+@code{'old-straight-flag}, @code{flat-flag}, @code{mensural} and
+@code{'default}")
+ (flat-positions ,list? "Flats in key signatures are placed
+within the specified ranges of staff-positions. The general form
+is a list of pairs, with one pair for each type of clef, in order
+of the staff-position at which each clef places C:
+@code{(alto treble tenor soprano baritone mezzosoprano bass)}.
+If the list contains a single element it applies for all clefs.
+A single number in place of a pair sets accidentals within the octave
+ending at that staff-position.")
(font-encoding ,symbol? "The font encoding is the broadest
category for selecting a font. Currently, only lilypond's system
fonts (Emmentaler) are using this property. Available
@w{@code{-1}} is smaller, @code{+1} is bigger. Each step of@tie{}1 is
approximately 12% larger; 6@tie{}steps are exactly a factor@tie{}2
larger. Fractional values are allowed.")
+ (footnote ,boolean? "Should this be a footnote or in-note?")
+ (footnote-music ,ly:music? "Music creating a footnote.")
(footnote-text ,markup? "A footnote for the grob.")
(force-hshift ,number? "This specifies a manual shift for notes
in collisions. The unit is the note head width of the first voice
note. This is used by @rinternals{note-collision-interface}.")
- (fraction ,number-pair? "Numerator and denominator of a time
+ (forced-spacing ,number? "Spacing forced between grobs, used in
+various ligature engravers.")
+ (fraction ,fraction? "Numerator and denominator of a time
signature object.")
(french-beaming ,boolean? "Use French beaming style for this
stem. The stem stops at the innermost beams.")
(full-size-change ,boolean? "Don't make a change clef smaller.")
-;;
-;; g
-;;
+;;;
+;;; g
+;;;
(gap ,ly:dimension? "Size of a gap in a variable symbol.")
(gap-count ,integer? "Number of gapped beams for tremolo.")
+ (glissando-skip ,boolean? "Should this @code{NoteHead} be skipped
+by glissandi?")
(glyph ,string? "A string determining what @q{style} of glyph is
typeset. Valid choices depend on the function that is reading this
-property.")
- (glyph-name ,string? "The glyph name within the font.")
+property.
+
+In combination with (span) bar lines, it is a string resembling the
+bar line appearance in ASCII form.")
+ (glyph-name ,string? "The glyph name within the font.
+
+In the context of (span) bar lines, @var{glyph-name} represents
+a processed form of @code{glyph}, where decisions about line breaking
+etc. are already taken.")
(glyph-name-alist ,list? "An alist of key-string pairs.")
(graphical ,boolean? "Display in graphical (vs. text) form.")
(grow-direction ,ly:dir? "Crescendo or decrescendo?")
-;;
-;; h
-;;
+;;;
+;;; h
+;;;
(hair-thickness ,number? "Thickness of the thin line in a bar
line.")
(harp-pedal-details ,list? "An alist of detailed grob properties
slur, the closer it is to this height.")
(hide-tied-accidental-after-break ,boolean? "If set, an accidental
that appears on a tied note after a line break will not be displayed.")
+ (horizon-padding ,number? "The amount to pad the axis
+along which a @code{Skyline} is built for the
+@code{side-position-interface}.")
(horizontal-shift ,integer? "An integer that identifies ranking
of @code{NoteColumn}s for horizontal shifting. This is used by
@rinternals{note-collision-interface}.")
left and one to the right of this grob.")
-;;
-;; i
-;;
+;;;
+;;; i
+;;;
+ (id ,string? "An id string for the grob. Depending on the typestting
+backend being used, this id will be assigned to a group containing all of
+the stencils that comprise a given grob. For example, in the svg backend,
+the string will be assigned to the @code{id} attribute of a group (<g>)
+that encloses the stencils that comprise the grob. In the Postscript
+backend, as there is no way to group items, the setting of the id property
+will have no effect.")
(ignore-collision ,boolean? "If set, don't do note collision
resolution on this @code{NoteColumn}.")
(implicit ,boolean? "Is this an implicit bass figure?")
slur quants to this position, and print the respective scores.")
-;;
-;; k
-;;
+;;;
+;;; k
+;;;
(keep-inside-line ,boolean? "If set, this column cannot have
objects sticking into the margin.")
(kern ,ly:dimension? "Amount of extra white space to add. For
correction and @code{1} for full correction.")
-;;
-;; l
-;;
+;;;
+;;; l
+;;;
(labels ,list? "List of labels (symbols) placed on a column.")
(layer ,integer? "An integer which determines the order of printing
objects. Objects with the lowest value of layer are drawn first, then
objects with progressively higher values are drawn, so objects with
higher values overwrite objects with lower values. By default most
objects are assigned a layer value of 1.")
+ (ledger-extra ,ly:dimension? "Extra distance from staff line to draw ledger
+lines for.")
(ledger-line-thickness ,number-pair? "The thickness of ledger
lines. It is the sum of 2@tie{}numbers: The first is the factor for
line thickness, and the second for staff space. Both contributions
are added.")
+ (ledger-positions ,list? "Repeating pattern for the vertical positions
+of ledger lines. Bracketed groups are always shown together.")
(left-bound-info ,list? "An alist of properties for determining
attachments of spanners to edges.")
(left-padding ,ly:dimension? "The amount of space that is put
(long-text ,markup? "Text markup. See @ruser{Formatting text}.")
-;;
-;; m
-;;
+;;;
+;;; m
+;;;
(max-beam-connect ,integer? "Maximum number of beams to connect
to beams from this stem. Further beams are typeset as beamlets.")
(max-stretch ,number? "The maximum amount that this
@code{VerticalAxisGroup} can be vertically stretched (for example, in
order to better fill a page).")
+ (maximum-gap ,number? "Maximum value allowed for @code{gap}
+property.")
(measure-count ,integer? "The number of measures for a
multi-measure rest.")
(measure-length ,ly:moment? "Length of a measure. Used in some
Y@tie{}dimension, measured in @code{staff-space} units.")
-;;
-;; n
-;;
+;;;
+;;; n
+;;;
(neutral-direction ,ly:dir? "Which direction to take in the
center of the staff.")
(neutral-position ,number? "Position (in half staff spaces) where
easy-notation note heads.")
-;;
-;; o
-;;
+;;;
+;;; o
+;;;
(outside-staff-horizontal-padding ,number? "By default, an
outside-staff-object can be placed so that is it very close to another
grob horizontally. If this property is set, the outside-staff-object
is raised so that it is not so close to its neighbor.")
(outside-staff-padding ,number? "The padding to place between
-this grob and the staff when spacing according to
-@code{outside-staff-priority}.")
+grobs when spacing according to @code{outside-staff-priority}.
+Two grobs with different @code{outside-staff-padding} values have
+the larger value of padding between them.")
+ (outside-staff-placement-directive ,symbol? "One of four directives
+telling how outside staff objects should be placed.
+@itemize @bullet
+@item
+@code{left-to-right-greedy} -- Place each successive grob from left to
+right.
+@item
+@code{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.
+@item
+@code{right-to-left-greedy} -- Same as @code{left-to-right-greedy}, but
+from right to left.
+@item
+@code{right-to-left-polite} -- Same as @code{left-to-right-polite}, but
+from right to left.
+@end itemize")
(outside-staff-priority ,number? "If set, the grob is positioned
outside the staff in such a way as to avoid all collisions. In case
of a potential collision, the grob with the smaller
@code{outside-staff-priority} is closer to the staff.")
-;;
-;; p
-;;
+;;;
+;;; p
+;;;
(packed-spacing ,boolean? "If set, the notes are spaced as
tightly as possible.")
(padding ,ly:dimension? "Add this much extra space between
(prefer-dotted-right ,boolean? "For note collisions, prefer to
shift dotted up-note to the right, rather than shifting just the
dot.")
+ (protrusion ,number? "In an arpeggio bracket, the length of the
+horizontal edges.")
-
-;;
-;; r
-;;
+;;;
+;;; r
+;;;
(ratio ,number? "Parameter for slur shape. The higher this
number, the quicker the slur attains its @code{height-limit}.")
(remove-empty ,boolean? "If set, remove group if it contains no
interesting items.")
(remove-first ,boolean? "Remove the first staff of an orchestral
score?")
+ (replacement-alist ,list? "Alist of strings.
+The key is a string of the pattern to be replaced. The value is a
+string of what should be displayed. Useful for ligatures.")
(restore-first ,boolean? "Print a natural before the
accidental.")
(rhythmic-location ,rhythmic-location? "Where (bar number,
(rotation ,list? "Number of degrees to rotate this object, and
what point to rotate around. For example, @code{'(45 0 0)} rotates
by 45 degrees around the center of this object.")
+ (rounded ,boolean? "Decide whether lines should be drawn rounded or not.")
(round-up-to-longer-rest ,boolean? "Displays the longer multi-measure
rest when the length of a measure is between two values of
@code{usable-duration-logs}. For example, displays a breve instead of a whole
in a 3/2 measure.")
-;;
-;; s
-;;
+;;;
+;;; s
+;;;
(same-direction-correction ,number? "Optical correction amount
for stems that are placed in tight configurations. This amount is
used for stems with the same direction to compensate for note head to
stem distance.")
- (script-priority ,number? "A sorting key that determines in what
-order a script is within a stack of scripts.")
+ (script-priority ,number? "A key for determining the order of
+scripts in a stack, by being added to the position of the script in
+the user input, the sum being the overall priority. Smaller means
+closer to the head.")
(self-alignment-X ,number? "Specify alignment of an object. The
value @w{@code{-1}} means left aligned, @code{0}@tie{}centered, and
@code{1}@tie{}right-aligned in X@tie{}direction. Other numerical
values may also be specified.")
(self-alignment-Y ,number? "Like @code{self-alignment-X} but for
the Y@tie{}axis.")
+ (sharp-positions ,list? "Sharps in key signatures are placed
+within the specified ranges of staff-positions. The general form
+is a list of pairs, with one pair for each type of clef, in order
+of the staff-position at which each clef places C:
+@code{(alto treble tenor soprano baritone mezzosoprano bass)}.
+If the list contains a single element it applies for all clefs.
+A single number in place of a pair sets accidentals within the octave
+ending at that staff-position.")
(shorten-pair ,number-pair? "The lengths to shorten a
text-spanner on both sides, for example a pedal bracket. Positive
values shorten the text-spanner, while negative values lengthen it.")
(simple-Y ,boolean? "Should the Y placement of a spanner
disregard changes in system heights?")
(size ,number? "Size of object, relative to standard size.")
+ (skip-quanting ,boolean? "Should beam quanting be skipped?")
(skyline-horizontal-padding ,number? "For determining the
vertical distance between two staves, it is possible to have a
configuration which would result in a tight interleaving of grobs from
elements closer together.")
(slope ,number? "The slope of this object.")
(slur-padding ,number? "Extra distance between slur and script.")
+ (snap-radius ,number? "The maximum distance between two objects that
+will cause them to snap to alignment along an axis.")
(space-alist ,list? "A table that specifies distances between
prefatory items, like clef and time-signature. The format is an alist
of spacing tuples: @code{(@var{break-align-symbol} @var{type}
structure.")
(stem-attachment ,number-pair? "An @code{(@var{x} . @var{y})}
pair where the stem attaches to the notehead.")
+ (stem-begin-position ,number? "User override for the
+begin position of a stem.")
;;[TODO: doco]
(stem-spacing-correction ,number? "Optical correction amount for
stems that are placed in tight configurations. For opposite
this property.")
-;;
-;; t
-;;
+;;;
+;;; t
+;;;
(text ,markup? "Text markup. See @ruser{Formatting text}.")
-;;FIXME -- Should both be the same?
+ ;;FIXME -- Should both be the same?
(text-direction ,ly:dir? "This controls the ordering of the
words. The default @code{RIGHT} is for roman text. Arabic or Hebrew
should use @code{LEFT}.")
(tie-configuration ,list? "List of @code{(@var{position} .
@var{dir})} pairs, indicating the desired tie configuration, where
@var{position} is the offset from the center of the staff in staff
-space and @var{dir} indicates the direction of the tie
-(@code{1}=>up, @w{@code{-1}}=>down, @code{0}=>center). A non-pair entry
+space and @var{dir} indicates the direction of the tie (@code{1}=>up,
+@w{@code{-1}}=>down, @code{0}=>center). A non-pair entry
in the list causes the corresponding tie to be formatted
automatically.")
(to-barline ,boolean? "If true, the spanner will stop at the bar
(transparent ,boolean? "This makes the grob invisible.")
-;;
-;; u
-;;
+;;;
+;;; u
+;;;
(uniform-stretching ,boolean? "If set, items stretch
proportionally to their durations. This looks better in complex
polyphonic patterns.")
spacing problem.")
(usable-duration-logs ,list? "List of @code{duration-log}s that
can be used in typesetting the grob.")
+ (use-skylines ,boolean? "Should skylines be used for side
+positioning?")
-
-;;
-;; v
-;;
+;;;
+;;; v
+;;;
(vertical-skylines ,ly:skyline-pair? "Two skylines, one above and
one below this grob.")
-
-;;
-;; w
-;;
+;;;
+;;; w
+;;;
(when ,ly:moment? "Global time step associated with this column
happen?")
(whiteout ,boolean? "If true, the grob is printed over a white
texts.")
-;;
-;; x
-;;
+;;;
+;;; x
+;;;
(X-extent ,number-pair? "Hard coded extent in X@tie{}direction.")
(X-offset ,number? "The horizontal amount that this object is
moved relative to its X-parent.")
+ (X-positions ,number-pair? "Pair of X staff coordinates of a spanner
+in the form @code{(@var{left} . @var{right})}, where both @var{left} and
+@var{right} are in @code{staff-space} units of the current staff.")
-;;
-;; y
-;;
+;;;
+;;; y
+;;;
(Y-extent ,number-pair? "Hard coded extent in Y@tie{}direction.")
(Y-offset ,number? "The vertical amount that this object is moved
relative to its Y-parent.")
-;;
-;; z
-;;
+;;;
+;;; z
+;;;
(zigzag-length ,ly:dimension? "The length of the lines of a
zigzag, relative to @code{zigzag-width}. A value of@tie{}@code{1}
gives 60-degree zigzags.")
dynamic spanners.")
(all-elements ,ly:grob-array? "An array of all grobs in this line. Its
function is to protect objects from being garbage collected.")
- (arpeggio ,ly:grob? "A pointer to an @code{Arpeggio} object.")
(axis-group-parent-X ,ly:grob? "Containing X@tie{}axis group.")
(axis-group-parent-Y ,ly:grob? "Containing Y@tie{}axis group.")
(bars ,ly:grob-array? "An array of bar line pointers.")
(beam ,ly:grob? "A pointer to the beam, if applicable.")
+ (beam-segments ,list? "Internal representation of beam segments.")
(bound-alignment-interfaces ,list "Interfaces to be used
for positioning elements that align with a column.")
(bounded-by-me ,ly:grob-array? "An array of spanners that have this
bounds are spaced.")
(bracket ,ly:grob? "The bracket for a number.")
+ (c0-position ,integer? "An integer indicating the position of
+middle@tie{}C.")
(columns ,ly:grob-array? "An array of grobs, typically containing
@code{PaperColumn} or @code{NoteColumn} objects.")
+ (concurrent-hairpins ,ly:grob-array? "All concurrent hairpins.")
(conditional-elements ,ly:grob-array? "Internal use only.")
(covered-grobs ,ly:grob-array? "Grobs that could potentially collide
with a beam.")
(figures ,ly:grob-array? "Figured bass objects for continuation line.")
(flag ,ly:grob? "A pointer to a @code{Flag} object.")
+ (footnote-stencil ,ly:stencil? "The stencil of a system's footnotes.")
+ (footnotes-before-line-breaking ,ly:grob-array? "Footnote grobs of
+a whole system.")
+ (footnotes-after-line-breaking ,ly:grob-array? "Footnote grobs of
+a broken system.")
(glissando-index ,integer? "The index of a glissando in its note
column.")
(grace-spacing ,ly:grob? "A run of grace notes.")
+ (has-span-bar ,pair? "A pair of grobs containing the span bars to
+be drawn below and above the staff. If no span bar is in a position,
+the respective element is set to @code{#f}.")
(heads ,ly:grob-array? "An array of note heads.")
(items-worth-living ,ly:grob-array? "An array of interesting items. If
empty in a particular staff, then that staff is erased.")
+ (in-note-direction ,ly:dir? "Direction to place in-notes above a system.")
+ (in-note-padding ,number? "Padding between in-notes.")
+ (in-note-stencil ,ly:stencil? "The stencil of a system's in-notes.")
(keep-alive-with ,ly:grob-array? "An array of other
@code{VerticalAxisGroup}s. If any of them are alive, then we will stay alive.")
(left-neighbor ,ly:grob? "The right-most column that has a spacing-wish
for this column.")
+ (melody-spanner ,ly:grob? "The @code{MelodyItem} object for a stem.")
+ (minimum-translations-alist ,list? "An list of translations for a given
+start and end point.")
+
+ (neighbors ,ly:grob-array? "The X-axis neighbors of a grob. Used by the
+pure-from-neighbor-interface to determine various grob heights.")
+
(normal-stems ,ly:grob-array? "An array of visible stems.")
(note-columns ,ly:grob-array? "An array of @code{NoteColumn} grobs.")
(note-head ,ly:grob? "A single note head.")
(note-heads ,ly:grob-array? "An array of note head grobs.")
(pedal-text ,ly:grob? "A pointer to the text of a mixed-style piano
pedal.")
+ (potential-X-colliding-grobs ,ly:grob-array? "Grobs that can potentially
+collide with a self-aligned grob on the X-axis.")
(pure-relevant-grobs ,ly:grob-array? "All the grobs (items and spanners)
that are relevant for finding the @code{pure-Y-extent}")
(pure-relevant-items ,ly:grob-array? "A subset of elements that are
(stems ,ly:grob-array? "An array of stem objects.")
(tie ,ly:grob? "A pointer to a @code{Tie} object.")
+ (ties ,ly:grob-array? "A grob array of @code{Tie} objects.")
(tremolo-flag ,ly:grob? "The tremolo object on a stem.")
(tuplet-number ,ly:grob? "The number for a bracket.")
+ (tuplet-start ,boolean? "Is stem at the start of a tuplet?")
(tuplets ,ly:grob-array? "An array of smaller tuplet brackets.")
+
+ (vertical-alignment ,ly:grob? "The VerticalAlignment in a System.")
+ (vertical-skyline-elements ,ly:grob-array? "An array of grobs
+used to create vertical skylines.")
+
+ (X-colliding-grobs ,ly:grob-array? "Grobs that can collide
+with a self-aligned grob on the X-axis.")
+ (Y-colliding-grobs ,ly:grob-array? "Grobs that can collide
+with a self-aligned grob on the Y-axis.")
(X-common ,ly:grob? "Common reference point for axis group.")
(Y-common ,ly:grob? "See @code{X-common}.")
@code{VerticalAxisGroup} to cache the @code{Y-extent}s of different column
ranges.")
- (bar-extent ,number-pair? "The Y-extent of the actual bar line.
-This may differ from @code{Y-extent} because it does not include the dots in
-a repeat bar line.")
(begin-of-line-visible ,boolean? "Set to make @code{ChordName} or
@code{FretBoard} be visible only at beginning of line or at
chord changes.")
(cause ,scheme? "Any kind of causation objects (i.e., music, or perhaps
translator) that was the cause for this grob.")
- (cross-staff ,boolean? "For a beam or a stem, this is true if we
-depend on inter-staff spacing.")
+ (cross-staff ,boolean? "True for grobs whose @code{Y-extent} depends on
+inter-staff spacing. The extent is measured relative to the grobs's parent
+staff (more generally, its @code{VerticalAxisGroup}) so this boolean flags
+grobs that are not rigidly fixed to their parent staff.
+Beams that join notes from two staves are @code{cross-staff}.
+Grobs that are positioned around such beams are also @code{cross-staff}.
+Grobs that are grouping objects, however, like @code{VerticalAxisGroups}
+will not in general be marked @code{cross-staff} when some of the members
+of the group are @code{cross-staff}.")
(delta-position ,number? "The vertical position difference.")
(minimum-distances ,list? "A list of rods that have the format
@code{(@var{obj} . @var{dist})}.")
+ (note-collision ,ly:grob? "The @code{NoteCollision} object of a
+dot column.")
+ (numbering-assertion-function ,scheme? "The function used to assert
+that footnotes are receiving correct automatic numbers.")
+
(positioning-done ,boolean? "Used to signal that a positioning element
did its job. This ensures that a positioning is only done once.")
(pure-Y-extent ,number-pair? "The estimated height of a system.")
(quantized-positions ,number-pair? "The beam positions after
quanting.")
+
(script-stencil ,pair? "A pair @code{(@var{type} . @var{arg})} which
acts as an index for looking up a @code{Stencil} object.")
(shorten ,ly:dimension? "The amount of space that a stem is shortened.