;;;; This file is part of LilyPond, the GNU music typesetter.
;;;;
-;;;; Copyright (C) 1998--2010 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
symbol)
;; put this in an alist?
-(define-public
- all-user-grob-properties
-
+(define-public all-user-grob-properties
(map
(lambda (x)
(apply define-grob-property x))
;;
(add-stem-support ,boolean? "If set, the @code{Stem} object is
included in this script's support.")
- (staffgroup-staff-spacing ,list? "An alist of spacing variables
-that controls the spacing after the last staff in this staff group.
-See @var{staff-staff-spacing} for a description of the elements of
-this alist.")
(after-line-breaking ,boolean? "Dummy property, used to trigger
callback for @code{after-line-breaking}.")
- (align-dir ,ly:dir? "Which side to align? @code{-1}: left side,
+ (align-dir ,ly:dir? "Which side to align? @w{@code{-1}}: left side,
@code{0}: around center of width, @code{1}: right side.")
(allow-loose-spacing ,boolean? "If set, column can be detached
from main spacing.")
(alteration-alist ,list? "List of @code{(@var{pitch}
. @var{accidental})} pairs for key signature.")
(annotation ,string? "Annotate a grob for debug purposes.")
+ (annotation-balloon ,boolean? "Print the balloon around an annotation.")
+ (annotation-line ,boolean? "Print the line from an annotation to the
+grob that it annotates.")
(arpeggio-direction ,ly:dir? "If set, put an arrow on the
arpeggio squiggly line.")
(arrow-length ,number? "Arrow length.")
(auto-knee-gap ,ly:dimension? "If a gap is found between note
heads where a horizontal beam fits that is larger than this number,
make a kneed beam.")
+ (automatically-numbered ,boolean? "Should a footnote be automatically
+numbered?")
(average-spacing-wishes ,boolean? "If set, the spacing wishes are
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
;;
;; b
;;
- (bar-size ,ly:dimension? "The size of a bar line.")
+ (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.")
beamlet is determined by taking either the default length or the
length specified by @code{beamlet-max-length-proportion}, whichever is
smaller.")
+ (beam-gap ,number-pair? "Size of a gap in a @code{Beam}.")
(beamlet-max-length-proportion ,pair? "The maximum length of a
beamlet, as a proportion of the distance between two adjacent stems.")
(before-line-breaking ,boolean? "Dummy property, used to trigger
a callback function.")
(between-cols ,pair? "Where to attach a loose column to.")
- (staff-staff-spacing ,list? "An alist of spacing variables
-that controls the spacing between staves within this staff group.
-See @var{staff-staff-spacing} for a description of the elements of
-this alist.")
(bound-details ,list? "An alist of properties for determining
attachments of spanners to edges.")
(bound-padding ,number? "The amount of padding to insert around
@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.")
- (circled-tip ,boolean? "Put a circle at start/end of
-hairpins (al/del niente).")
+ (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.")
+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.")
(common-shortest-duration ,ly:moment? "The most common shortest
note length. This is used in spacing. Enlarging this sets the score
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.")
-
;;
;; d
;;
whitespace. If negative, no line is drawn at all.")
(default-direction ,ly:dir? "Direction determined by note head
positions.")
- (default-staff-staff-spacing ,list? "An alist of spacing variables
-that controls the spacing between this staff and the next.
-See @var{staff-staff-spacing} for a description of the elements of
-this alist.")
+ (default-staff-staff-spacing ,list? "The settings to use for
+@code{staff-staff-spacing} when it is unset, for ungrouped staves
+and for grouped staves that do not have the relevant
+@code{StaffGrouper} property set (@code{staff-staff-spacing} or
+@code{staffgroup-staff-spacing}).")
(details ,list? "Alist of parameters for detailed grob behavior.
More information on the allowed parameters for a grob can be found by
looking at the top of the Internals Reference page for each interface
having a @code{details} property.")
(digit-names ,vector? "Names for string finger digits.")
(direction ,ly:dir? "If @code{side-axis} is @code{0} (or
-@code{#X}), then this property determines whether the object is placed
-@code{#LEFT}, @code{#CENTER} or @code{#RIGHT} with respect to the
+@code{X}), then this property determines whether the object is placed
+@code{LEFT}, @code{CENTER} or @code{RIGHT} with respect to the
other object. Otherwise, it determines whether the object is placed
-@code{#UP}, @code{#CENTER} or @code{#DOWN}. Numerical values may also
-be used: @code{#UP}=@code{1}, @code{#DOWN}=@code{-1},
-@code{#LEFT}=@code{-1}, @code{#RIGHT}=@code{1},
-@code{#CENTER}=@code{0}.")
+@code{UP}, @code{CENTER} or @code{DOWN}. Numerical values may also
+be used: @code{UP}=@code{1}, @code{DOWN}=@w{@code{-1}},
+@code{LEFT}=@w{@code{-1}}, @code{RIGHT}=@code{1},
+@code{CENTER}=@code{0}.")
(dot-count ,integer? "The number of dots.")
(dot-negative-kern ,number? "The space to remove between a dot
and a slash in percent repeat glyphs. Larger values bring the two
the vertical edges: @code{(@var{left-height} . @var{right-height})}.")
(edge-text ,pair? "A pair specifying the texts to be set at the
edges: @code{(@var{left-text} . @var{right-text})}.")
+ (round-up-exceptions ,list? "A list of pairs where car is the numerator
+and cdr the denominator of a moment. Each pair in this list means that
+the multi-measure rests of the corresponding length will be rounded up to
+the longer rest. See @var{round-up-to-longer-rest}.")
(expand-limit ,integer? "Maximum number of measures expanded in
church rests.")
;; remove me?
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
;;
- (flag ,ly:stencil? "A function returning the full flag stencil
-for the @code{Stem}, which is passed to the function as the only
-argument. The default ly:stem::calc-stencil function uses the
-@code{flag-style} property to determine the correct glyph for the
-flag. By providing your own function, you can create arbitrary
-flags.")
(flag-count ,number? "The number of tremolo beams.")
- (flag-style ,symbol? "A symbol determining what style of flag
-glyph is typeset on a @code{Stem}. Valid options include @code{'()}
-for standard flags, @code{'mensural} and @code{'no-flag}, which
-switches off the flag.")
+ (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
include @code{upright}, @code{italic}, @code{caps}.")
(font-size ,number? "The font size, compared to the
@q{normal}@tie{}size. @code{0}@tie{}is style-sheet's normal size,
-@code{-1} is smaller, @code{+1} is bigger. Each step of@tie{}1 is
+@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.")
@item
@code{fret-count} -- The number of frets. Default@tie{}4.
@item
+@code{fret-label-custom-format} -- The format string to be used label
+the lowest fret number, when @code{number-type} equals to
+@code{custom}. Default@tie{}\"~a\".
+@item
@code{fret-label-font-mag} -- The magnification of the font used to
label the lowest fret number. Default@tie{}0.5.
@item
Default@tie{}0.
@item
@code{label-dir} -- Side to which the fret label is attached.
-@code{-1}, @code{#LEFT}, or @code{#DOWN} for left or down; @code{1},
-@code{#RIGHT}, or @code{#UP} for right or up. Default @code{#RIGHT}.
+@w{@code{-1}}, @code{LEFT}, or @code{DOWN} for left or down; @code{1},
+@code{RIGHT}, or @code{UP} for right or up. Default @code{RIGHT}.
@item
@code{mute-string} -- Character string to be used to indicate muted
string. Default @code{\"x\"}.
@item
@code{number-type} -- Type of numbers to use in fret label. Choices
-include @code{roman-lower}, @code{roman-upper}, and @code{arabic}.
+include @code{roman-lower}, @code{roman-upper}, @code{arabic} and
+@code{custom}. In the later case, the format string is supplied by
+the @code{fret-label-custom-format} property.
Default @code{roman-lower}.
@item
@code{open-string} -- Character string to be used to indicate open
;;
(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.")
@itemize @bullet
@item
-@code{box-offset} -- Vertical shift of the center of flat/sharp pedal
-boxes above/below the horizontal line. Default value@tie{}0.8.
+@code{box-offset} -- Vertical shift of the center of flat/@/sharp pedal
+boxes above/@/below the horizontal line. Default value@tie{}0.8.
@item
@code{box-width} -- Width of each pedal box. Default value@tie{}0.4.
@item
;;
;; 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?")
configuration to this index, and print the respective scores.")
(inspect-quants ,number-pair? "If debugging is set, set beam and
slur quants to this position, and print the respective scores.")
- (nonstaff-nonstaff-spacing ,list? "Specifies how to vertically
-position a non-spaced line relative to the other non-spaced lines
-around it. See @var{staff-staff-spacing} for the format of this list.")
- (nonstaff-relatedstaff-spacing ,list? "Specifies how to vertically
-position a non-spaced line relative to the staff for which it
-has affinity. See @var{staff-staff-spacing} for the format of this list.")
;;
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
to flip the direction of custos stem.")
(next ,ly:grob? "Object that is next relation (e.g., the lyric
syllable following an extender).")
- (staff-staff-spacing ,list? "An alist of properties used to position
-the next staff in the system. The symbols that can be defined in the alist
-are
-@itemize @bullet
-@item @var{space} -- the amount of stretchable space between the center
-of this staff and the center of the next staff;
-@item @var{padding} -- the minimum amount of whitespace that must be
-present between this staff and the next staff;
-@item @var{stretchability} -- the ease with which the stretchable
-space increases when the system to which this staff belongs is stretched.
-If this is zero, the distance to the next staff will be fixed either at
-@var{space} or at @var{padding} plus the minimum distance to ensure
-there is no overlap, whichever is larger;
-@item @var{minimum-distance} -- the minimum distance to place between
-the center of this staff and the center of the next. This differs
-from @var{padding} in that the height of a staff has no effect on
-the application of @var{minimum-distance} (whereas the height of a
-staff is crucial for @var{padding}).
-@end itemize")
(no-alignment ,boolean? "If set, don't place this grob in a
@code{VerticalAlignment}; rather, place it using its own
@code{Y-offset} callback.")
- (non-break-align-symbols ,list? "A list of symbols that determine
-which NON-break-aligned interfaces to align this to.")
(no-ledgers ,boolean? "If set, don't draw ledger lines on this
object.")
(no-stem-extend ,boolean? "If set, notes with ledger lines do not
get stems extending to the middle staff line.")
- (nonstaff-unrelatedstaff-spacing ,list? "An alist of spacing variables
-that controls the spacing from a loose line (see @var{staff-affinity})
-to the staff for which the loose line does not have affinity.
-See @var{staff-staff-spacing} for a description of the elements of
-this alist.")
+ (non-break-align-symbols ,list? "A list of symbols that determine
+which NON-break-aligned interfaces to align this to.")
(non-default ,boolean? "Set for manually specified clefs.")
(non-musical ,boolean? "True if the grob belongs to a
@code{NonMusicalPaperColumn}.")
+ (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 @code{staff-affinity},
+if both are on the same side of the related staff, and
+@code{staff-affinity} is either @code{UP} or @code{DOWN}. See
+@code{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 @code{staff-affinity}, if
+there are no non-staff lines between the two, and
+@code{staff-affinity} is either @code{UP} or @code{DOWN}. If
+@code{staff-affinity} is @code{CENTER}, then
+@code{nonstaff-relatedstaff-spacing} is used for the nearest
+staves on @emph{both} sides, even if other non-staff lines appear
+between the current one and either of the staves. See
+@code{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
+@code{staff-affinity}, if there are no other non-staff lines
+between the two, and @code{staff-affinity} is either @code{UP} or
+@code{DOWN}. See @code{staff-staff-spacing} for a description of
+the alist structure.")
+ (normalized-endpoints ,pair? "Represents left and right placement
+over the total spanner, where the width of the spanner is normalized
+between 0 and 1.")
(note-names ,vector? "Vector of strings containing names for
easy-notation note heads.")
(outside-staff-padding ,number? "The padding to place between
this grob and the staff when spacing according to
@code{outside-staff-priority}.")
+ (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
shift dotted up-note to the right, rather than shifting just the
dot.")
-
;;
;; r
;;
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,
(right-padding ,ly:dimension? "Space to insert on the right side
of an object (e.g., between note and its accidentals).")
(rotation ,list? "Number of degrees to rotate this object, and
-what point to rotate around. For example, @code{#'(45 0 0)} rotates
+what point to rotate around. For example, @code{'(45 0 0)} rotates
by 45 degrees around the center of this object.")
+ (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.")
;;
(script-priority ,number? "A sorting key that determines in what
order a script is within a stack of scripts.")
(self-alignment-X ,number? "Specify alignment of an object. The
-value @code{-1} means left aligned, @code{0}@tie{}centered, and
+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.")
shortest note playing here.")
(shortest-starter-duration ,ly:moment? "The duration of the
shortest note that starts here.")
- (side-axis ,number? "If the value is @code{#X} (or
+ (side-axis ,number? "If the value is @code{X} (or
equivalently@tie{}@code{0}), the object is placed horizontally next to
-the other object. If the value is @code{#Y} or@tie{}@code{1}, it is
+the other object. If the value is @code{Y} or@tie{}@code{1}, it is
placed vertically.")
(side-relative-direction ,ly:dir? "Multiply direction of
@code{direction-source} with this to get the direction of this
object.")
+ (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
the top staff and the bottom staff. The larger this parameter is, the
farther apart the staves are placed in such a configuration.")
+ (skyline-vertical-padding ,number? "The amount by which the left
+and right skylines of a column are padded vertically, beyond the
+@code{Y-extent}s and @code{extra-spacing-height}s of the constituent
+grobs in the column. Increase this to prevent interleaving of grobs
+from adjacent columns.")
(slash-negative-kern ,number? "The space to remove between
slashes in percent repeat glyphs. Larger values bring the two
elements closer together.")
override:
@example
-\\override MultiMeasureRest #'spacing-pair = #'(staff-bar . staff-bar)
+\\override MultiMeasureRest
+ #'spacing-pair = #'(staff-bar . staff-bar)
@end example")
+ (spanner-id ,string? "An identifier to distinguish concurrent spanners.")
(springs-and-rods ,boolean? "Dummy variable for triggering
spacing routines.")
(stacking-dir ,ly:dir? "Stack objects in which direction?")
- (staff-affinity ,ly:dir? "The direction of the staff to which this
-line should stick.")
+ (staff-affinity ,ly:dir? "The direction of the staff to use
+for spacing the current non-staff line. Choices are @code{UP},
+@code{DOWN}, and @code{CENTER}. If @code{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 @code{staff-affinity} for a staff causes it
+to be treated as a non-staff line. Setting @code{staff-affinity}
+to @code{#f} causes a non-staff line to be treated as a staff.")
(staff-padding ,ly:dimension? "Maintain this much space between
reference points and the staff. Its effect is to align objects of
differing sizes (like the dynamics @b{p} and @b{f}) on their
staff spaces, counted from the middle line.")
(staff-space ,ly:dimension? "Amount of space between staff lines,
expressed in global @code{staff-space}.")
+ (staff-staff-spacing ,list? "When applied to a staff-group's
+@code{StaffGrouper} grob, this spacing alist controls the distance
+between consecutive staves within the staff-group. When applied
+to a staff's @code{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
+@code{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:
+
+@itemize
+
+@item
+@code{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.
+
+@item
+@code{minimum-distance} -- the smallest allowable vertical
+distance, measured in staff-spaces, between the reference points
+of the two items, when compressing is in effect.
+
+@item
+@code{padding} -- the minimum required amount of unobstructed
+vertical whitespace between the bounding boxes (or skylines) of
+the two items, measured in staff-spaces.
+
+@item
+@code{stretchability} -- a unitless measure of the dimension's
+relative propensity to stretch. If zero, the distance will not
+stretch (unless collisions would result).
+
+@end itemize")
+ (staffgroup-staff-spacing ,list? "The spacing alist
+controlling the distance between the last staff of the current
+staff-group and the staff just below it in the same system, even
+if one or more non-staff lines exist between the two staves. If
+the @code{staff-staff-spacing} property of the staff's
+@code{VerticalAxisGroup} grob is set, that is used instead. See
+@code{staff-staff-spacing} for a description of the alist
+structure.")
(stem-attachment ,number-pair? "An @code{(@var{x} . @var{y})}
pair where the stem attaches to the notehead.")
- (stem-end-position ,number? "Where does the stem end (the end is
-opposite to the support-head)?")
+ (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
@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, @code{-1}=>down, @code{0}=>center). A non-pair entry
+(@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
polyphonic patterns.")
(used ,boolean? "If set, this spacing column is kept in the
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
(vertical-skylines ,ly:skyline-pair? "Two skylines, one above and
one below this grob.")
-
;;
;; w
;;
(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.")
;;
(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
-column as start/begin point. Only columns that have grobs or act as
+column as start/@/begin point. Only columns that have grobs or act as
bounds are spaced.")
(bracket ,ly:grob? "The bracket for a number.")
(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.")
(direction-source ,ly:grob? "In case @code{side-relative-direction} is
set, which grob to get the direction from.")
+ (display-cautionary ,boolean? "Should the grob be displayed as a cautionary grob?")
(dot ,ly:grob? "A reference to a @code{Dots} object.")
(dots ,ly:grob-array? "Multiple @code{Dots} objects.")
in addition to notes and stems.")
(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
(spacing ,ly:grob? "The spacing spanner governing this section.")
(spacing-wishes ,ly:grob-array? "An array of note spacing or staff spacing
objects.")
+ (span-start ,boolean? "Is the note head at the start of a spanner?")
+ (spanner-broken ,boolean? "Indicates whether spanner
+alignment should be broken after the current spanner.")
+ (spanner-placement ,ly:dir? "The place of an annotation on a spanner.
+@code{LEFT} is for the first spanner, and @code{RIGHT} is for the last.
+@code{CENTER} will place it on the broken spanner that falls closest to the
+center of the length of the entire spanner, although this behavior is
+unpredictable in situations with lots of rhythmic diversity. For predictable
+results, use @code{LEFT} and @code{RIGHT}.")
(staff-grouper ,ly:grob? "The staff grouper we belong to.")
(staff-symbol ,ly:grob? "The staff symbol grob that we are in.")
(stem ,ly:grob? "A pointer to a @code{Stem} object.")
(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.")
(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.")
(pure-Y-offset-in-progress ,boolean? "A debugging aid for catching
cyclic dependencies.")
-
- (quant-score ,string? "The beam quanting score; stored for
-debugging.")
(quantize-position ,boolean? "If set, a vertical alignment is aligned
to be within staff spaces.")
(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.
(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.")
- (use-breve-rest ,boolean? "Use breve rests for measures longer
-than a whole rest.")
;;;;;;;;;;;;;;;;
;; ancient notation
(cavum ,boolean? "Is this neume outlined?")
(context-info ,integer? "Within a ligature, the final glyph or shape of
-a head may be affected by the left and/or right neighbour head.
+a head may be affected by the left and/@/or right neighbour head.
@code{context-info} holds for each head such information about the left and
right neighbour, encoded as a bit mask.")
(flexa-height ,ly:dimension? "The height of a flexa shape in a ligature
grob (in @code{staff-space} units).")
+ (flexa-interval ,integer? "The interval spanned by the two notes of a
+flexa shape (1 is a second, 7 is an octave).")
(flexa-width ,ly:dimension? "The width of a flexa shape in a
ligature grob in (in @code{staff-space} units).")
+ (ligature-flexa ,boolean? "request joining note to the previous one
+in a flexa.")
(inclinatum ,boolean? "Is this neume an inclinatum?")
- (join-right-amount ,number? "A length used for calculating the
-Y-extent of mensural ligatures.")
(linea ,boolean? "Attach vertical lines to this neume?")