]> git.donarmstrong.com Git - lilypond.git/blobdiff - Documentation/snippets/center-text-below-hairpin-dynamics.ly
Web-es: typo.
[lilypond.git] / Documentation / snippets / center-text-below-hairpin-dynamics.ly
index 0df124d21e273eff58f6c9999aab805f62e4d0f0..67e197227006f1dd368930a9ea1b8545ab881f3c 100644 (file)
 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