X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=scm%2Fdefine-grob-properties.scm;h=ce9ceaab4f23309d10f2b6ad2d884991dbe58a50;hb=ddbff5c8aef487bfed2f75b8490eb7a37afb0dc4;hp=9015764dc1f028f8df0fb5f6bfdb5d53a074ae67;hpb=75cb539581ca2dd6f92e51a8d0d76b9eec5afd2c;p=lilypond.git diff --git a/scm/define-grob-properties.scm b/scm/define-grob-properties.scm index 9015764dc1..ce9ceaab4f 100644 --- a/scm/define-grob-properties.scm +++ b/scm/define-grob-properties.scm @@ -1,14 +1,14 @@ -;;;; grob-property-description.scm -- part of generated backend documentation +;;;; define-grob-properties.scm -- part of generated backend documentation ;;;; ;;;; source file of the GNU LilyPond music typesetter -;;;; -;;;; (c) 1998--2007 Han-Wen Nienhuys +;;;; +;;;; (c) 1998--2009 Han-Wen Nienhuys ;;;; Jan Nieuwenhuizen (define (define-grob-property symbol type? description) (if (not (equal? (object-property symbol 'backend-doc) #f)) (ly:error (_ "symbol ~S redefined") symbol)) - + (set-object-property! symbol 'backend-type? type?) (set-object-property! symbol 'backend-doc description) symbol) @@ -22,15 +22,11 @@ (apply define-grob-property 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.") - (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.") - +;; +;; a +;; (add-stem-support ,boolean? "If set, the @code{Stem} object is -included in this script's support.") +included in this script's support.") (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, @@ -50,22 +46,30 @@ arpeggio squiggly line.") (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.") - (average-spacing-wishes ,boolean? "If set, the spacing wishes -are averaged over staves.") + (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-slur ,symbol? "Method of handling slur collisions. -Choices are @code{around}, @code{inside}, @code{outside}. If unset, -scripts and slurs ignore each other. @code{around} only moves the -script if there is a collision; @code{outside} always moves the -script.") +Choices are @code{inside}, @code{outside}, @code{around}, and +@code{ignore}. @code{inside} adjusts the slur if needed to keep the +grob inside the slur. @code{outside} moves the grob vertically to the +outside of the slur. @code{around} moves the grob vertically to the +outside of the slur only if there is a collision. @code{ignore} does +not move either. In grobs whose notational significance depends on +vertical position (such as accidentals, clefs, etc.), @code{outside} +and @code{around} behave like @code{ignore}.") (axes ,list? "List of axis numbers. In the case of alignment grobs, this should contain only one number.") + +;; +;; b +;; (bar-size ,ly:dimension? "The size of a 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.") +shortest notes in a piece. Normally, pieces are spaced as if notes at +least as short as this are present.") (baseline-skip ,ly:dimension? "Distance between base lines of multiple lines of text.") (beam-thickness ,ly:dimension? "Beam thickness, measured in @@ -76,9 +80,18 @@ when their direction is forced. It is a list, since the value is different depending on the number of flags and beams.") (beaming ,pair? "Pair of number lists. Each number list specifies which beams to make. @code{0}@tie{}is the central beam, -@code{1}@tie{}is the next beam toward the note, etc. This -information is used to determine how to connect the beaming patterns -from stem to stem inside a beam.") +@code{1}@tie{}is the next beam toward the note, etc. This information +is used to determine how to connect the beaming patterns from stem to +stem inside a beam.") + (beamlet-default-length ,pair? "A pair of numbers. The first +number specifies the default length of a beamlet that sticks out of +the left hand side of this stem; the second number specifies the +default length of the beamlet to the right. The actual length of a +beamlet is determined by taking either the default length or the +length specified by @code{beamlet-max-length-proportion}, whichever is +smaller.") + (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.") @@ -99,14 +112,14 @@ grob 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") +@code{ly:break-aligned-interface::calc-extent-aligned-anchor} for +aligning an anchor to a grob's extent") (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).") +the first symbol in the list is invisible due to break-visibility, we +will align to the next grob (and so on).") (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 @@ -131,8 +144,14 @@ stick out of its bounds?") @code{#t} means visible, @code{#f} means killed.") (breakable ,boolean? "Allow breaks here.") + +;; +;; 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).") (clip-edges ,boolean? "Allow outward pointing beamlets at the edges of beams?") (collapse-height ,ly:dimension? "Minimum height of system start @@ -151,7 +170,14 @@ this grob looks as a continued break.") 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 +;; (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, +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).") @@ -159,6 +185,10 @@ this should list the control points of a third-order B@'ezier curve.") whitespace. If negative, no line is drawn at all.") (default-direction ,ly:dir? "Direction determined by note head positions.") + (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 @@ -166,15 +196,22 @@ positions.") 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{#LEFT}=@code{-1}, @code{#RIGHT}=@code{1}, +@code{#CENTER}=@code{0}.") (dot-count ,integer? "The number of dots.") - (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.") + (dot-negative-kern ,number? "The space to remove between a dot +and a slash in percent repeat glyphs. Larger values bring the two +elements closer together.") + (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.") (duration-log ,integer? "The 2-log of the note head duration, i.e., @code{0} = whole note, @code{1} = half note, etc.") + +;; +;; 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 @@ -195,29 +232,41 @@ engine is completely oblivious to it. The values are measured in @code{staff-space} units of the staff's @code{StaffSymbol}.") (extra-spacing-height ,number-pair? "In the horizontal spacing problem, we increase the height of each item by this amount (by adding -the @q{car} to the bottom of the item and adding the @q{cdr} to the top -of the item. In order to make a grob infinitely high (to prevent the -horizontal spacing problem from placing any other grobs above or below -this grob), set this to @code{(-inf.0 . +inf.0)}.") +the @q{car} to the bottom of the item and adding the @q{cdr} to the +top of the item). In order to make a grob infinitely high (to prevent +the horizontal spacing problem from placing any other grobs above or +below this grob), set this to @code{(-inf.0 . +inf.0)}.") (extra-spacing-width ,number-pair? "In the horizontal spacing problem, we pad each item by this amount (by adding the @q{car} on the 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)}.") + + +;; +;; 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 string determining what style of flag -glyph is typeset on a @code{Stem}. Valid options include @code{()} -and @code{mensural}. Additionally, @code{no-flag} switches off the -flag.") + (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.") (font-encoding ,symbol? "The font encoding is the broadest -category for selecting a font. Options include: @code{fetaMusic}, -@code{fetaNumber}, @code{TeX-text}, @code{TeX-math}, -@code{fetaBraces}, @code{fetaDynamic}.") +category for selecting a font. Currently, only lilypond's system +fonts (Emmentaler and Aybabtu) are using this property. Available +values are @code{fetaMusic} (Emmentaler), @code{fetaBraces} (Aybabtu), +@code{fetaNumber} (Emmentaler), and @code{fetaDynamic} (Emmentaler).") (font-family ,symbol? "The font family is the broadest category for selecting text fonts. Options include: @code{sans}, @code{roman}.") - (font-name ,string? "Specifies a file name (without extension) -of the font to load. This setting overrides selection using + (font-name ,string? "Specifies a file name (without extension) of +the font to load. This setting overrides selection using @code{font-family}, @code{font-series} and @code{font-shape}.") (font-series ,symbol? "Select the series of a font. Choices include @code{medium}, @code{bold}, @code{bold-narrow}, etc.") @@ -226,90 +275,109 @@ 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 -approximately 12% larger; 6@tie{}steps are exactly a factor@tie{}2 larger. -Fractional values are allowed.") +approximately 12% larger; 6@tie{}steps are exactly a factor@tie{}2 +larger. Fractional values are allowed.") (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}.") - (forced ,boolean? "Manually forced accidental.") (fraction ,number-pair? "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.") + (fret-diagram-details ,list? "An alist of detailed grob +properties for fret diagrams. Each alist entry consists of a +@code{(@var{property} . @var{value})} pair. The properties which can +be included in @code{fret-diagram-details} include the following: - (fret-diagram-details ,list? "An alist of detailed grob properties -for fret diagrams. Each alist entry consists of a -(@code{property} . @code{value}) pair. -The properties which can be included in fret-diagram-details -include the following: @itemize @bullet @item -@code{barre-type} -- Type of barre indication used. -Choices include @code{curved}, @code{straight}, and -@code{none}. Default @code{curved}. +@code{barre-type} -- Type of barre indication used. Choices include +@code{curved}, @code{straight}, and @code{none}. Default +@code{curved}. @item -@code{dot-color} -- Color of dots. Options include -@code{black} and @code{white}. Default @code{black}. +@code{capo-thickness} -- Thickness of capo indicator, in multiples of +fret-space. Default value@tie{}0.5. @item -@code{dot-label-font-mag} -- Magnification for font used to -label fret dots. Default value 1. +@code{dot-color} -- Color of dots. Options include @code{black} and +@code{white}. Default @code{black}. @item -@code{dot-radius} -- Radius of dots, in terms of fret spaces. -Default value 0.425 for labeled dots, 0.25 for unlabeled dots. +@code{dot-label-font-mag} -- Magnification for font used to label fret +dots. Default value@tie{}1. +@item +@code{dot-position} -- Location of dot in fret space. Default 0.6 for +dots without labels, 0.95-@code{dot-radius} for dots with labels. +@item +@code{dot-radius} -- Radius of dots, in terms of fret spaces. Default +value 0.425 for labeled dots, 0.25 for unlabeled dots. @item @code{finger-code} -- Code for the type of fingering indication used. -Options include @code{none}, @code{in-dot}, and -@code{below-string}. Default @code{none} for markup fret diagrams, -@code{below-string} for @code{FretBoards} fret diagrams. +Options include @code{none}, @code{in-dot}, and @code{below-string}. +Default @code{none} for markup fret diagrams, @code{below-string} for +@code{FretBoards} fret diagrams. @item -@code{fret-count} -- The number of frets. Default 4. +@code{fret-count} -- The number of frets. Default@tie{}4. @item -@code{fret-label-font-mag} -- The magnification of the font used to label -the lowest fret number. Default 0.5 +@code{fret-label-font-mag} -- The magnification of the font used to +label the lowest fret number. Default@tie{}0.5. @item -@code{fret-label-vertical-offset} -- The vertical offset of the fret label -from the fret. Default -0.2 +@code{fret-label-vertical-offset} -- The offset of the fret label from +the center of the fret in direction parallel to strings. +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}. +@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 \"x\". +@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}. Default -@code{roman-lower}. +include @code{roman-lower}, @code{roman-upper}, and @code{arabic}. +Default @code{roman-lower}. @item -@code{open-string} -- Character string to be used to indicate open -string. Default \"o\". +@code{open-string} -- Character string to be used to indicate open +string. Default @code{\"o\"}. @item @code{orientation} -- Orientation of fret-diagram. Options include -@code{normal} and @code{landscape}. Default @code{normal}. +@code{normal}, @code{landscape}, and @code{opposing-landscape}. +Default @code{normal}. @item -@code{string-count} -- The number of strings. Default 6. +@code{string-count} -- The number of strings. Default@tie{}6. @item -@code{string-label-font-mag} -- The magnification of the font used to label -fingerings at the string, rather than in the dot. Default value 0.6. +@code{string-label-font-mag} -- The magnification of the font used to +label fingerings at the string, rather than in the dot. Default value +0.6 for @code{normal} orientation, 0.5 for @code{landscape} and +@code{opposing-landscape}. @item -@code{top-fret-thickness} -- The thickness of the top fret line, as a multiple -of the standard thickness. Default value 3. +@code{string-thickness-factor} -- Factor for changing thickness of +each string in the fret diagram. Thickness of string @var{k} is given +by @code{thickness} +* (1+@code{string-thickness-factor})@tie{}^ (@var{k}-1). +Default@tie{}0. @item -@code{xo-font-magnification} -- Magnification used for mute and -open string indicators. Default value 0.5. +@code{top-fret-thickness} -- The thickness of the top fret line, as a +multiple of the standard thickness. Default value@tie{}3. @item -@code{xo-padding} -- Padding for open and mute indicators from top fret. -Default value 0.25. -@end itemize") ;" - - - ;; ugh: double, change. - (full-length-padding ,number? "How much padding to use at the right side of a full-length tuplet bracket.") - (full-length-to-extent ,boolean? "Run to the extent of the column for a full-length tuplet bracket.") - +@code{xo-font-magnification} -- Magnification used for mute and open +string indicators. Default value@tie{}0.5. +@item +@code{xo-padding} -- Padding for open and mute indicators from top +fret. Default value 0.25. +@end itemize") + ;; ugh: double, change. + (full-length-padding ,number? "How much padding to use at the +right side of a full-length tuplet bracket.") + (full-length-to-extent ,boolean? "Run to the extent of the column +for a full-length tuplet bracket.") + (full-measure-extra-space ,number? "Extra space that is allocated +at the beginning of a measure with only one note. This property is +read from the NonMusicalPaperColumn that begins the measure.") (full-size-change ,boolean? "Don't make a change clef smaller.") + +;; +;; g +;; (gap ,ly:dimension? "Size of a gap in a variable symbol.") (gap-count ,integer? "Number of gapped beams for tremolo.") (glyph ,string? "A string determining what @q{style} of glyph is @@ -318,12 +386,46 @@ property.") (glyph-name-alist ,list? "An alist of key-string pairs.") (grow-direction ,ly:dir? "Crescendo or decrescendo?") + +;; +;; h +;; (hair-thickness ,number? "Thickness of the thin line in a bar line.") + (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 +be included in harp-pedal-details include the following: + +@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. +@item +@code{box-width} -- Width of each pedal box. Default value@tie{}0.4. +@item +@code{box-height} -- Height of each pedal box. Default value@tie{}1.0. +@item +@code{space-before-divider} -- Space between boxes before the first +divider (so that the diagram can be made symmetric). Default +value@tie{}0.8. +@item +@code{space-after-divider} -- Space between boxes after the first +divider. Default value@tie{}0.8. +@item +@code{circle-thickness} -- Thickness (in unit of the line-thickness) +of the ellipse around circled pedals. Default value@tie{}0.5. +@item +@code{circle-x-padding} -- Padding in X direction of the ellipse +around circled pedals. Default value 0.15. +@item +@code{circle-y-padding} -- Padding in Y direction of the ellipse +around circled pedals. Default value@tie{}0.2. +@end itemize") (head-direction ,ly:dir? "Are the note heads left or right in a semitie?") - (height ,ly:dimension? "Height of an object in -@code{staff-space} units.") + (height ,ly:dimension? "Height of an object in @code{staff-space} +units.") (height-limit ,ly:dimension? "Maximum slur height: The longer the slur, the closer it is to this height.") (horizontal-shift ,integer? "An integer that identifies ranking @@ -332,15 +434,22 @@ of @code{NoteColumn}s for horizontal shifting. This is used by (horizontal-skylines ,ly:skyline-pair? "Two skylines, one to the left and one to the right of this grob.") + +;; +;; i +;; (ignore-collision ,boolean? "If set, don't do note collision resolution on this @code{NoteColumn}.") (implicit ,boolean? "Is this an implicit bass figure?") (inspect-index ,integer? "If debugging is set, set beam and slur 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.") + (inspect-quants ,number-pair? "If debugging is set, set beam and +slur quants to this position, and print the respective scores.") + +;; +;; k +;; (keep-fixed-while-stretching ,boolean? "A grob with this property set to true is fixed relative to the staff above it when systems are stretched.") @@ -353,10 +462,14 @@ bar lines, this is the amount of space after a thick line.") correction amount for kneed beams. Set between @code{0} for no correction and @code{1} for full correction.") + +;; +;; l +;; (labels ,list? "List of labels (symbols) placed on a column") - (layer ,integer? "The output layer (a value between 0 and@tie{}2: -Layers define the order of printing objects. Objects in lower layers -are overprinted by objects in higher layers.") + (layer ,integer? "The output layer (a value between 0 +and@tie{}2): Layers define the order of printing objects. Objects in +lower layers are overprinted by objects in higher layers.") (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 @@ -371,8 +484,8 @@ unbeamed stems.") determining ledger lines and stem lengths.") (line-break-penalty ,number? "Penalty for a line break at this column. This affects the choices of the line breaker; it avoids a -line break at a column with a positive penalty and prefers a line break -at a column with a negative penalty.") +line break at a column with a positive penalty and prefers a line +break at a column with a negative penalty.") (line-break-permission ,symbol? "Instructs the line breaker on whether to put a line break at this column. Can be @code{force} or @code{allow}.") @@ -382,9 +495,12 @@ if this column is the start of a system.") (line-positions ,list? "Vertical positions of staff lines.") (line-thickness ,number? "The thickness of the tie or slur contour.") - (long-text ,markup? "Text markup. See @ruser{Formatting -text}.") + (long-text ,markup? "Text markup. See @ruser{Formatting text}.") + +;; +;; 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 @@ -401,9 +517,9 @@ normal notation for some types of polyphonic music. @code{merge-differently-dotted} only applies to opposing stem directions (i.e., voice 1 &@tie{}2).") (merge-differently-headed ,boolean? "Merge note heads in -collisions, even if they have different note heads. The -smaller of the two heads is rendered invisible. This is used in -polyphonic guitar notation. The value of this setting is used by +collisions, even if they have different note heads. The smaller of +the two heads is rendered invisible. This is used in polyphonic +guitar notation. The value of this setting is used by @rinternals{note-collision-interface}. @code{merge-differently-headed} only applies to opposing stem @@ -424,15 +540,19 @@ as fraction of note head size.") (minimum-space ,ly:dimension? "Minimum distance that the victim should move (after padding).") + +;; +;; n +;; (neutral-direction ,ly:dir? "Which direction to take in the center of the staff.") (neutral-position ,number? "Position (in half staff spaces) where to flip the direction of custos stem.") (next ,ly:grob? "Object that is next relation (e.g., the lyric -syllable following an extender.") +syllable following an extender).") (no-alignment ,boolean? "If set, don't place this grob in a -@code{VerticalAlignment}; rather, place it using its own @code{Y-offset} -callback.") +@code{VerticalAlignment}; rather, place it using its own +@code{Y-offset} callback.") (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 @@ -443,6 +563,10 @@ get stems extending to the middle staff line.") (note-names ,vector? "Vector of strings containing names for easy-notation note heads.") + +;; +;; 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 @@ -451,18 +575,24 @@ is raised so that it is not so close to its neighbor.") this grob and the staff when spacing according to @code{outside-staff-priority}.") (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 +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 +;; (packed-spacing ,boolean? "If set, the notes are spaced as tightly as possible.") (padding ,ly:dimension? "Add this much extra space between objects that are next to each other.") + (padding-pairs ,list? "An alist mapping @code{(@var{name} +. @var{name})} to distances.") (page-break-penalty ,number? "Penalty for page break at this column. This affects the choices of the page breaker; it avoids a -page break at a column with a positive penalty and prefers a page break -at a column with a negative penalty.") +page break at a column with a positive penalty and prefers a page +break at a column with a negative penalty.") (page-break-permission ,symbol? "Instructs the page breaker on whether to put a page break at this column. Can be @code{force} or @code{allow}.") @@ -476,18 +606,22 @@ whether to put a page turn at this column. Can be @code{force} or (parenthesized ,boolean? "Parenthesize this grob.") (positions ,number-pair? "Pair of staff coordinates @code{(@var{left} . @var{right})}, where both @var{left} and -@var{right} are in @code{staff-space} units of the current staff. -For slurs, this value selects which slur candidate to use; if -extreme positions are requested, the closest one is taken.") +@var{right} are in @code{staff-space} units of the current staff. For +slurs, this value selects which slur candidate to use; if extreme +positions are requested, the closest one is taken.") (prefer-dotted-right ,boolean? "For note collisions, prefer to shift dotted up-note to the right, rather than shifting just the dot.") + +;; +;; 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 a orchestral + (remove-first ,boolean? "Remove the first staff of an orchestral score?") (restore-first ,boolean? "Print a natural before the accidental.") @@ -501,6 +635,10 @@ of an object (e.g., between note and its accidentals).") what point to rotate around. For example, @code{#'(45 0 0)} rotates by 45 degrees around the center of this object.") + +;; +;; 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 @@ -513,6 +651,11 @@ value @code{-1} means left aligned, @code{0}@tie{}centered, and values may also be specified.") (self-alignment-Y ,number? "Like @code{self-alignment-X} but for the Y@tie{}axis.") + (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.") (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.") @@ -525,13 +668,21 @@ 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 -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 placed vertically.") +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 +placed vertically.") (side-relative-direction ,ly:dir? "Multiply direction of @code{direction-source} with this to get the direction of this object.") (size ,number? "Size of object, relative to standard size.") + (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.") + (slash-negative-kern ,number? "The space to remove between +slashes in percent repeat glyphs. Larger values bring the two +elements closer together.") (slope ,number? "The slope of this object.") (slur-padding ,number? "Extra distance between slur and script.") (space-alist ,list? "A table that specifies distances between @@ -542,8 +693,9 @@ of spacing tuples: @code{(@var{break-align-symbol} @var{type} (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 -clef change followed by a bar line, for example, this means that we will -try to space the non-musical column as though the clef is not there.") +clef change followed by a bar line, for example, this means that we +will try to space the non-musical column as though the clef is not +there.") (spacing-increment ,number? "Add this much space for a doubled duration. Typically, the width of a note head. See also @rinternals{spacing-spanner-interface}.") @@ -558,8 +710,8 @@ baselines.") staff spaces, counted from the middle line.") (staff-space ,ly:dimension? "Amount of space between staff lines, expressed in global @code{staff-space}.") - (stem-attachment ,number-pair? "An @code{(@var{x} . @var{y})} pair -where the stem attaches to the notehead.") + (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)?") ;;[TODO: doco] @@ -567,15 +719,16 @@ opposite to the support-head)?") stems that are placed in tight configurations. For opposite directions, this amount is the correction for two normal sized stems that overlap completely.") - (stemlet-length ,number? "How long should a stem over a rest -be?") + (stemlet-length ,number? "How long should be a stem over a +rest?") (stencil ,ly:stencil? "The symbol to print.") (stencils ,list? "Multiple stencils, used as intermediate value.") - (strict-grace-spacing ,boolean? "If set, grace notes -are not spaced separately, but put before musical columns.") - (strict-note-spacing ,boolean? "If set, unbroken columns -with non-musical material (clefs, bar lines, etc.) are not spaced + (strict-grace-spacing ,boolean? "If set, main notes are spaced +normally, then grace notes are put left of the musical columns fot the +main notes.") + (strict-note-spacing ,boolean? "If set, unbroken columns with +non-musical material (clefs, bar lines, etc.) are not spaced separately, but put before musical columns.") (stroke-style ,string? "Set to @code{\"grace\"} to turn stroke through flag on.") @@ -583,6 +736,10 @@ through flag on.") typeset. Valid choices depend on the @code{stencil} callback reading this property.") + +;; +;; t +;; (text ,markup? "Text markup. See @ruser{Formatting text}.") ;;FIXME -- Should both be the same? (text-direction ,ly:dir? "This controls the ordering of the @@ -595,8 +752,6 @@ should use @code{LEFT}.") (thin-kern ,number? "The space after a hair-line in a bar line.") (threshold ,number-pair? "@code{(@var{min} . @var{max})}, where @var{min} and @var{max} are dimensions in staff space.") - (to-barline ,boolean? "If true, the spanner will stop at the bar line -just before it would otherwise stop.") (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 @@ -604,17 +759,31 @@ space and @var{dir} indicates the direction of the tie (@code{1}=>up, @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 +line just before it would otherwise stop.") (transparent ,boolean? "This makes the grob invisible.") + +;; +;; u +;; (uniform-stretching ,boolean? "If set, items stretch proportionally to their durations. This looks better in complex polyphonic patterns.") (used ,boolean? "If set, this spacing column is kept in the spacing problem.") + +;; +;; v +;; (vertical-skylines ,ly:skyline-pair? "Two skylines, one above and one below this grob.") + +;; +;; w +;; (when ,ly:moment? "Global time step associated with this column happen?") (width ,ly:dimension? "The width of a grob measured in staff @@ -622,12 +791,31 @@ space.") (word-space ,ly:dimension? "Space to insert between words in texts.") + +;; +;; 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.") + + +;; +;; 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 +;; (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.") (zigzag-width ,ly:dimension? "The width of one zigzag squiggle. -This number is adjusted slightly so that the glissando line can -be constructed from a whole number of squiggles.") +This number is adjusted slightly so that the glissando line can be +constructed from a whole number of squiggles.") ))) @@ -649,7 +837,7 @@ be constructed from a whole number of squiggles.") `( ;;;;;;;;;;;;;;;; - ;; grobs & grob arrays. (alphabetical) + ;; grobs & grob arrays. (alphabetical) (X-common ,ly:grob? "Common reference point for axis group.") (Y-common ,ly:grob? "See @code{X-common}.") @@ -657,7 +845,7 @@ be constructed from a whole number of squiggles.") (accidental-grob ,ly:grob? "The accidental for this note.") (accidental-grobs ,list? "An alist with @code{(@var{notename} . @var{groblist})} entries.") - (adjacent-pure-heights ,vector? "Used by a @code{VerticalAxisGroup} to + (adjacent-pure-heights ,pair? "A pair of vectors. Used by a @code{VerticalAxisGroup} to cache the @code{Y-extent}s of different column ranges.") (adjacent-hairpins ,ly:grob-array? "A list of directly neighboring hairpins.") @@ -694,6 +882,7 @@ the grob where this is set in.") in addition to notes and stems.") (figures ,ly:grob-array? "Figured bass objects for continuation line.") + (forced ,boolean? "Manually forced accidental.") (glyph-name ,string? "The glyph name within the font.") (grace-spacing ,ly:grob? "A run of grace notes.") @@ -716,9 +905,6 @@ columns.") (note-columns ,pair? "A list of @code{NoteColumn} grobs.") (note-head ,ly:grob? "A single note head.") (note-heads ,ly:grob-array? "A list of note head grobs.") - - (padding-pairs ,list? "An alist mapping @code{(@var{name} . @var{name})} -to distances.") (pedal-text ,ly:grob? "A pointer to the text of a mixed-style piano pedal.") (pure-Y-common ,ly:grob? "A cache of the @@ -757,27 +943,19 @@ notes that the arpeggio has to be before.") ;;;;;;;;;;;;;;;; ;; other - (begin-of-line-visible ,boolean? "Used for marking @code{ChordNames} -that should only show changes.") + (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.") - (circled-tip ,boolean? "Put a circle at start/end of hairpins (al/del -niente).") (delta-position ,number? "The vertical position difference.") - (details ,list? "Alist of parameters for detailed grob behavior. - -More information on the allowed parameters can be found by inspecting -@file{lily/slur-scoring.cc}, @file{lily/beam-quanting.cc}, and -@file{lily/tie-formatting-problem.cc}. Setting @code{debug-tie-scoring}, -@code{debug-beam-scoring} or @code{debug-slur-scoring} also provides -useful clues.") (font ,ly:font-metric? "A cached font metric object.") (head-width ,ly:dimension? "The width of this ligature head.") - + (ideal-distances ,list? "@code{(@var{obj} . (@var{dist} . @var{strength}))} pairs.") (interfaces ,list? "A list of symbols indicating the interfaces @@ -789,7 +967,7 @@ supported by this object. It is initialized from the @code{meta} field.") entries @code{name} and @code{interfaces}.") (minimum-distances ,list? "A list of rods that have the format @code{(@var{obj} . @var{dist})}.") - + (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.") @@ -800,18 +978,13 @@ debugging.") 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. Internally used to distribute beam shortening over stems.") (skyline-distance ,number? "The distance between this staff and the next one, as determined by a skyline algorithm.") - (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.") (stem-info ,pair? "A cache of stem parameters.") (use-breve-rest ,boolean? "Use breve rests for measures longer @@ -826,7 +999,7 @@ than a whole rest.") ;; However, such a list would consist of a couple of dozens of ;; entries, since head prefixes may be combined in many ways. If - ;; the macros in `gregorian-init.ly' would directly set prefix-set, + ;; the macros in `gregorian.ly' would directly set prefix-set, ;; all the head prefixes could be junked; however, such macros ;; would be quite numerous, I guess. --jr