X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=Documentation%2Fsnippets%2Fcenter-text-below-hairpin-dynamics.ly;h=67e197227006f1dd368930a9ea1b8545ab881f3c;hb=06e603a47cce832f2ed45edc0dd4b2c168877703;hp=0df124d21e273eff58f6c9999aab805f62e4d0f0;hpb=f25b23eb6fbbf83489dfac39f1908ab13a75b4b9;p=lilypond.git diff --git a/Documentation/snippets/center-text-below-hairpin-dynamics.ly b/Documentation/snippets/center-text-below-hairpin-dynamics.ly index 0df124d21e..67e1972270 100644 --- a/Documentation/snippets/center-text-below-hairpin-dynamics.ly +++ b/Documentation/snippets/center-text-below-hairpin-dynamics.ly @@ -13,9 +13,10 @@ This example provides a function to typeset a hairpin (de)crescendo with some additional text below it, such as @qq{molto} or @qq{poco}. The added text will change the direction according to the direction of -the hairpin. The Hairpin is aligned to DynamicText. The example also -illustrates how to modify the way an object is normally printed, using -some Scheme code. +the hairpin. The Hairpin is aligned to DynamicText. + +The example also illustrates how to modify the way an object is +normally printed, using some Scheme code. " doctitle = "Center text below hairpin dynamics" @@ -30,20 +31,27 @@ hairpinWithCenteredText = (par-y (ly:grob-parent grob Y)) (dir (ly:grob-property par-y 'direction)) (new-stencil (ly:stencil-aligned-to - (ly:stencil-combine-at-edge - (ly:stencil-aligned-to stencil X CENTER) - Y dir - (ly:stencil-aligned-to (grob-interpret-markup grob text) X CENTER)) - X LEFT)) + (ly:stencil-combine-at-edge + (ly:stencil-aligned-to stencil X CENTER) + Y dir + (ly:stencil-aligned-to (grob-interpret-markup grob text) X CENTER)) + X LEFT)) (staff-space (ly:output-def-lookup (ly:grob-layout grob) 'staff-space)) - (staff-line-thickness (ly:output-def-lookup (ly:grob-layout grob) 'line-thickness)) + (staff-line-thickness + (ly:output-def-lookup (ly:grob-layout grob) 'line-thickness)) (grob-name (lambda (x) (assq-ref (ly:grob-property x 'meta) 'name))) (par-x (ly:grob-parent grob X)) (dyn-text (eq? (grob-name par-x) 'DynamicText )) - (dyn-text-stencil-x-length (if dyn-text - (interval-length (ly:stencil-extent (ly:grob-property par-x 'stencil) X)) - 0)) - (x-shift (if dyn-text (- (+ staff-space dyn-text-stencil-x-length) (* 0.5 staff-line-thickness)) 0))) + (dyn-text-stencil-x-length + (if dyn-text + (interval-length + (ly:stencil-extent (ly:grob-property par-x 'stencil) X)) + 0)) + (x-shift + (if dyn-text + (- + (+ staff-space dyn-text-stencil-x-length) + (* 0.5 staff-line-thickness)) 0))) (ly:grob-set-property! grob 'Y-offset 0) (ly:grob-set-property! grob 'stencil