X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=scm%2Fdefine-grob-properties.scm;h=8f05a8b324a366f90fb9227b9f893fa6fdf7f57e;hb=1a0b8d90d648b03f9bc6d93bcb3d0699f93482d0;hp=25519bca80bda4f7bafa7b45a0ae7b78c88b1b45;hpb=6324c8222979e466162644e6793e5e734441a149;p=lilypond.git diff --git a/scm/define-grob-properties.scm b/scm/define-grob-properties.scm index 25519bca80..8f05a8b324 100644 --- a/scm/define-grob-properties.scm +++ b/scm/define-grob-properties.scm @@ -1,6 +1,6 @@ ;;;; This file is part of LilyPond, the GNU music typesetter. ;;;; -;;;; Copyright (C) 1998--2010 Han-Wen Nienhuys +;;;; Copyright (C) 1998--2011 Han-Wen Nienhuys ;;;; Jan Nieuwenhuizen ;;;; ;;;; LilyPond is free software: you can redistribute it and/or modify @@ -25,9 +25,7 @@ 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)) @@ -50,6 +48,9 @@ be created below this bar line.") (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.") @@ -77,7 +78,6 @@ 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.") @@ -170,6 +170,10 @@ hairpins (al/del niente).") edges of beams?") (collapse-height ,ly:dimension? "Minimum height of system start delimiter. If equal or smaller, the bracket/brace/line is removed.") + (collision-interfaces ,list? "A list of interfaces for which +automatic beam-collision resolution is run.") + (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 @@ -184,7 +188,6 @@ 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 ;; @@ -296,6 +299,7 @@ include @code{upright}, @code{italic}, @code{caps}.") @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-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}.") @@ -336,6 +340,10 @@ Default @code{none} for markup fret diagrams, @code{below-string} for @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 @@ -351,7 +359,9 @@ Default@tie{}0. 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 @@ -609,6 +619,9 @@ the nearest staff in the opposite direction from 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.") @@ -683,6 +696,10 @@ 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 by 45 degrees around the center of this object.") + (round-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.") ;; @@ -724,6 +741,11 @@ 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.") @@ -781,20 +803,30 @@ 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{padding} -- the minimum required amount of -unobstructed vertical whitespace between the two items, measured -in staff-spaces. -@item @code{space} -- the vertical distance, measured in + +@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 + +@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{stretchability} -- a unitless measure of the -dimension's relative propensity to stretch. If zero, the distance -will not stretch (unless collisions would result). + +@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 @@ -869,6 +901,8 @@ proportionally to their durations. This looks better in complex 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.") ;; @@ -959,9 +993,12 @@ bounds are spaced.") (columns ,ly:grob-array? "An array of grobs, typically containing @code{PaperColumn} or @code{NoteColumn} objects.") (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.") @@ -972,6 +1009,8 @@ in addition to notes and stems.") (figures ,ly:grob-array? "Figured bass objects for continuation line.") + (glissando-index ,integer? "The index of a glissando in its note +column.") (grace-spacing ,ly:grob? "A run of grace notes.") (heads ,ly:grob-array? "An array of note heads.") @@ -1013,6 +1052,12 @@ grobs.") (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-placement ,ly:dir? "The place of an annotation on a spanner. +LEFT is for the first spanner, and RIGHT is for the last. 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 LEFT and 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.") @@ -1071,9 +1116,6 @@ 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 @@ -1087,8 +1129,6 @@ Internally used to distribute beam shortening over stems.") (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 @@ -1123,13 +1163,15 @@ 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?")