;;;; This file is part of LilyPond, the GNU music typesetter.
;;;;
-;;;; Copyright (C) 1998--2014 Han-Wen Nienhuys <hanwen@xs4all.nl>
+;;;; Copyright (C) 1998--2015 Han-Wen Nienhuys <hanwen@xs4all.nl>
;;;; Jan Nieuwenhuizen <janneke@gnu.org>
;;;;
;;;; LilyPond is free software: you can redistribute it and/or modify
printing of the bracket. Setting the property to @code{if-no-beam}
makes it print only if there is no beam associated with this tuplet
bracket.")
- (break-align-anchor ,number? "Grobs aligned to this break-align
-grob will have their X-offsets shifted by this number. In bar lines,
+ (break-align-anchor ,number? "Grobs aligned to this breakable
+item will have their X-offsets shifted by this number. In bar lines,
for example, this is used to position grobs relative to the (visual)
center of the bar line.")
(break-align-anchor-alignment ,number? "Read by
@code{ly:break-aligned-interface::calc-extent-aligned-anchor} for
aligning an anchor to a grob's extent.")
- (break-align-orders ,vector? "Defines the order in which
-prefatory matter (clefs, key signatures) appears. The format is a
-vector of length@tie{}3, where each element is one order for
-end-of-line, middle of line, and start-of-line, respectively. An
-order is a list of symbols.
+ (break-align-orders ,vector? "This is a vector of 3@tie{}lists:
+@w{@code{#(@var{end-of-line} @var{unbroken} @var{start-of-line}}}).
+Each list contains @w{@emph{break-align symbols}} that specify an
+order of breakable items (see @rinternals{break-alignment-interface}).
-For example, clefs are put after key signatures by setting
+For example, this places time signatures before clefs:
@example
-\\override Score.BreakAlignment #'break-align-orders =
- #(make-vector 3 '(span-bar
+\\override Score.BreakAlignment.break-align-orders =
+ #(make-vector 3 '(left-edge
+ cue-end-clef
+ ambitus
breathing-sign
- staff-bar
- key
+ time-signature
clef
- time-signature))
+ cue-clef
+ staff-bar
+ key-cancellation
+ key-signature
+ custos))
@end example")
- (break-align-symbol ,symbol? "This key is used for aligning and
-spacing breakable items.")
- (break-align-symbols ,list? "A list of symbols that determine
-which break-aligned grobs to align this to. If the grob selected by
-the first symbol in the list is invisible due to break-visibility, we
-will align to the next grob (and so on). Choices are @code{left-edge},
-@code{ambitus}, @code{breathing-sign}, @code{clef}, @code{staff-bar},
-@code{key-cancellation}, @code{key-signature}, @code{time-signature},
-and @code{custos}.")
+ (break-align-symbol ,symbol? "This key is used for aligning,
+ordering, and spacing breakable items. See
+@rinternals{break-alignment-interface}.")
+ (break-align-symbols ,list? "A list of
+@w{@emph{break-align symbols}} that determines which breakable
+items to align this to. If the grob selected by the first symbol
+in the list is invisible due to @w{@code{break-visibility}}, we
+will align to the next grob (and so on). Choices are listed in
+@rinternals{break-alignment-interface}.")
(break-overshoot ,number-pair? "How much does a broken spanner
stick out of its bounds?")
(break-visibility ,vector? "A vector of 3@tie{}booleans,
-@code{#(@var{end-of-line} @var{unbroken} @var{begin-of-line})}.
+@w{@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
@code{chord-dots-limit} staff-positions.")
(circled-tip ,boolean? "Put a circle at start/@/end of
hairpins (al/@/del niente).")
+ (clef-alignments ,list? "An alist of parent-alignments
+that should be used for clef modifiers with various clefs")
(clip-edges ,boolean? "Allow outward pointing beamlets at the
edges of beams?")
(collapse-height ,ly:dimension? "Minimum height of system start
the slope of the beam.")
(connect-to-neighbor ,pair? "Pair of booleans, indicating whether
this grob looks as a continued break.")
- (control-points ,list? "List of offsets (number pairs) that form
+ (control-points ,number-pair-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
dash structure. Each @code{dash-element} has a starting t value,
an ending t-value, a @code{dash-fraction}, and a @code{dash-period}.")
(dash-fraction ,number? "Size of the dashes, relative to
-@code{dash-period}. Should be between @code{0.0} (no line) and
-@code{1.0} (continuous line).")
+@code{dash-period}. Should be between @code{0.1} and
+@code{1.0} (continuous line). If set to @code{0.0}, a dotted line is
+produced")
(dash-period ,number? "The length of one dash together with
whitespace. If negative, no line is drawn at all.")
(default-direction ,ly:dir? "Direction determined by note head
(dot-placement-list ,list? "List consisting of
@code{(@var{description} @var{string-number} @var{fret-number}
@var{finger-number})} entries used to define fret diagrams.")
+ (double-stem-separation ,number? "The distance between the two
+stems of a half note in tablature when using @code{\\tabFullNotation},
+not counting the width of the stems themselves, expressed as a multiple
+of the default height of a staff-space in the traditional five-line
+staff.")
(duration-log ,integer? "The 2-log of the note head duration,
i.e., @code{0} = whole note, @code{1} = half note, etc.")
;;; h
;;;
(hair-thickness ,number? "Thickness of the thin line in a bar
-line, expressed as a multiple of the default staff-line thickness
-(i.e. the visual output is @emph{not} influenced by changes to
-@code{@var{Staff}.StaffSymbol.thickness}).")
+line, expressed as a multiple of the default staff-line
+thickness (i.e. the visual output is @emph{not} influenced by changes
+to @code{@var{Staff}.StaffSymbol.thickness}).")
(harp-pedal-details ,list? "An alist of detailed grob properties
for harp pedal diagrams. Each alist entry consists of a
@code{(@var{property} . @var{value})} pair. The properties which can
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-ambitus ,boolean? "If set, don't consider this notehead
+for ambitus calculation.")
(ignore-collision ,boolean? "If set, don't do note collision
resolution on this @code{NoteColumn}.")
(implicit ,boolean? "Is this an implicit bass figure?")
(line-positions ,list? "Vertical positions of staff lines.")
(line-thickness ,number? "For slurs and ties, this is the
diameter of the virtual @qq{pen} that draws the two arcs of the
-curve's outline, which intersect at the endpoints. This property
-is expressed as a multiple of the current staff-line thickness
-(i.e. the visual output is influenced by changes to
+curve's outline, which intersect at the endpoints. This property is
+expressed as a multiple of the current staff-line thickness (i.e. the
+visual output is influenced by changes to
@code{@var{Staff}.StaffSymbol.thickness}).")
(long-text ,markup? "Text markup. See @ruser{Formatting text}.")
appropriate callback for the @code{springs-and-rods} property. If
added to a @code{Tie}, this sets the minimum distance between
noteheads.")
+ (minimum-length-after-break ,ly:dimension? "If set, try to make
+a broken spanner starting a line this long. This requires an
+appropriate callback for the @code{springs-and-rods} property. If
+added to a @code{Tie}, this sets the minimum distance to the
+notehead.")
(minimum-length-fraction ,number? "Minimum length of ledger line
as fraction of note head size.")
(minimum-space ,ly:dimension? "Minimum distance that the victim
between 0 and 1.")
(note-names ,vector? "Vector of strings containing names for
easy-notation note heads.")
+ (number-type ,symbol? "Numbering style. Choices include
+@code{roman-lower}, @code{roman-upper} and @code{arabic}.")
;;;
(page-turn-permission ,symbol? "Instructs the page breaker on
whether to put a page turn at this column. Can be @code{force} or
@code{allow}.")
+ (parent-alignment-X ,number? "Specify on which point
+of the parent the object is aligned. The value @w{@code{-1}} means
+aligned on parent's left edge, @code{0}@tie{}on@tie{}center, and
+@code{1}@tie{}right edge, in X@tie{}direction. Other numerical
+values may also be specified - the unit is half the parent's width.
+If unset, the value from @code{self-alignment-X} property will be
+used.")
+ (parent-alignment-Y ,number? "Like @code{parent-alignment-X}
+but for the Y@tie{}axis.")
+ (parenthesis-friends ,list? "A list of Grob types, as symbols.
+When parentheses enclose a Grob that has 'parenthesis-friends, the
+parentheses widen to include any child Grobs with type among
+'parenthesis-friends.")
(parenthesized ,boolean? "Parenthesize this grob.")
(positions ,number-pair? "Pair of staff coordinates
@code{(@var{left} . @var{right})}, where both @var{left} and
interesting items.")
(remove-first ,boolean? "Remove the first staff of an orchestral
score?")
+ (remove-layer ,integer? "The @code{Keep_alive_together_engraver}
+removes all @code{VerticalAxisGroup} grobs with a @code{remove-layer}
+larger than the smallest retained @code{remove-layer}. Set to
+@code{#f} to make a layer invisible to the
+@code{Keep_alive_together_engraver}, set to @code{'()} to have it not
+participate in the layering decisions.")
(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.")
(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.")
+values may also be specified - the unit is half the object width.")
(self-alignment-Y ,number? "Like @code{self-alignment-X} but for
the Y@tie{}axis.")
+ (shape ,symbol? "This setting determines what shape a grob
+has. Valid choices depend on the @code{stencil} callback reading
+this property.")
(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
(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}
-. @var{distance})}, where @var{type} can be the symbols
-@code{minimum-space} or @code{extra-space}.")
+ (space-alist ,list? "An alist that specifies distances from this
+grob to other breakable items, using the format:
+
+@example
+'((@var{break-align-symbol} . (@var{spacing-style} . @var{space}))
+ (@var{break-align-symbol} . (@var{spacing-style} . @var{space}))
+ ...)
+@end example
+
+Standard choices for @w{@code{@var{break-align-symbol}}} are listed in
+@rinternals{break-alignment-interface}. Additionally, three special
+@w{break-align} symbols available to @w{@code{space-alist}} are:
+
+@quotation
+@table @code
+@item first-note
+used when the grob is just left of the first note on a line
+
+@item next-note
+used when the grob is just left of any other note;
+if not set, the value of @code{first-note} gets used
+
+@item right-edge
+used when the grob is the last item on the line (only compatible with
+the @w{@code{extra-space}} spacing style)
+@end table
+@end quotation
+
+Choices for @code{@var{spacing-style}} are:
+
+@quotation
+@table @code
+@item extra-space
+Put this much space between the two grobs. The space is stretchable
+when paired with @w{@code{first-note}} or @w{@code{next-note}};
+otherwise it is fixed.
+
+@item minimum-space
+Put at least this much space between the left sides of both grobs,
+without allowing them to collide. The space is stretchable when paired
+with @w{@code{first-note}} or @w{@code{next-note}}; otherwise it
+is fixed. Not compatible with @w{@code{right-edge}}.
+
+@item fixed-space
+Only compatible with @w{@code{first-note}} and
+@w{@code{next-note}}. Put this much fixed space between the grob
+and the note.
+
+@item minimum-fixed-space
+Only compatible with @w{@code{first-note}} and
+@w{@code{next-note}}. Put at least this much fixed space between
+the left side of the grob and the left side of the note, without
+allowing them to collide.
+
+@item semi-fixed-space
+Only compatible with @w{@code{first-note}} and
+@w{@code{next-note}}. Put this much space between the grob and
+the note, such that half of the space is fixed and half is
+stretchable.
+@end table
+@end quotation
+
+Rules for this spacing are much more complicated than this.
+See [Wanske] page 126--134, [Ross] page 143--147.")
(space-to-barline ,boolean? "If set, the distance between a note
and the following non-musical column will be measured to the bar line
instead of to the beginning of the non-musical column. If there is a
line just before it would otherwise stop.")
(toward-stem-shift ,number? "Amount by which scripts are shifted
toward the stem if their direction coincides with the stem direction.
-@code{0.0} means keep the default position (centered on the note
-head), @code{1.0} means centered on the stem. Interpolated values are
-possible.")
+@code{0.0} means centered on the note head (the default position of
+most scripts); @code{1.0} means centered on the stem. Interpolated
+values are possible.")
+ (toward-stem-shift-in-column ,number? "Amount by which a script
+is shifted toward the stem if its direction coincides with the stem
+direction and it is associated with a @code{ScriptColumn} object.
+@code{0.0} means centered on the note head (the default position of
+most scripts); @code{1.0} means centered on the stem. Interpolated
+values are possible.")
(transparent ,boolean? "This makes the grob invisible.")
;;;
(vertical-skylines ,ly:skyline-pair? "Two skylines, one above and
one below this grob.")
+ (voiced-position ,number? "The staff-position of a voiced
+@code{Rest}, negative if the rest has @code{direction} @code{DOWN}.")
;;;
;;; w
;;;
- (when ,ly:moment? "Global time step associated with this column
-happen?")
- (whiteout ,boolean? "If true, the grob is printed over a white
-background to white-out underlying material, if the grob is visible.
- Usually #f by default.")
+ (when ,ly:moment? "Global time step associated with this column.")
+ (whiteout ,boolean-or-number? "If a number or true, the grob is
+printed over a white background that follows the outline of the stencil,
+if the grob is visible. A number sets the thickness of the outline as a
+multiple of the staff-line thickness. For compatibility with former
+behavior (now available with @code{whiteout-box}) the value @code{#t} is
+treated as @code{3.0}. Usually @code{#f} by default.")
+ (whiteout-box ,boolean? "If true, the grob is printed over a
+rounded rectangular white background to white-out underlying material,
+if the grob is visible. Usually @code{#f} by default.")
(width ,ly:dimension? "The width of a grob measured in staff
space.")
(word-space ,ly:dimension? "Space to insert between words in
(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-items ,ly:grob-array? "DOCME")
+ (left-items ,ly:grob-array? "Grobs organized on the left by a spacing
+object.")
(left-neighbor ,ly:grob? "The right-most column that has a spacing-wish
for this column.")
+ (make-dead-when ,ly:grob-array? "An array of other
+@code{VerticalAxisGroup}s. If any of them are alive, then we will turn dead.")
(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.")
(rest ,ly:grob? "A pointer to a @code{Rest} object.")
(rest-collision ,ly:grob? "A rest collision that a rest is in.")
(rests ,ly:grob-array? "An array of rest objects.")
- (right-items ,ly:grob-array? "DOCME")
+ (right-items ,ly:grob-array? "Grobs organized on the right by
+a spacing object.")
(right-neighbor ,ly:grob? "See @code{left-neighbor}.")
+ (scripts ,ly:grob-array? "An array of @code{Script} objects.")
(side-support-elements ,ly:grob-array? "The side support, an array of
grobs.")
(slur ,ly:grob? "A pointer to a @code{Slur} object.")
(spacing ,ly:grob? "The spacing spanner governing this section.")
+ (space-increment ,ly:dimension? "The amount by which the total duration
+of a multimeasure rest affects horizontal spacing. Each doubling of the
+duration adds @code{space-increment} to the length of the bar.")
(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?")
(quantized-positions ,number-pair? "The beam positions after
quanting.")
-
+ (script-column ,ly:grob? "A @code{ScriptColumn} associated with a
+@code{Script} object.")
(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.