Sorry for the delay.

Thomas, I have no clue what you did there, but it works like a charm!
Lyrics and vertical alignment just perfect.
Thanks a million! One day I shall dig into the code and be enlightened.

One thing I haven't quite worked out yet is how to get the center-alignment
activated only for a single score, or for a single bookpart. I've tried a
layout block inside \score, but that doesn't seem to work. Suggestions
highly appreciated.

cheers
Hendrik

Thomas Morley <thomasmorle...@gmail.com> schrieb am Sa., 29. Apr. 2017 um
00:16 Uhr:

> 2017-04-28 17:39 GMT+02:00 David Nalesnik <david.nales...@gmail.com>:
>
> > It would be relatively easy to alter the function make-page-stencil in
> > scm/page.scm to do what you want.  The stencils of the individual
> > systems are already made at this point, and it's just a matter of
> > moving them around to your liking.  Unfortunately, this requires a
> > change to program files.  I've had no luck copy/pasting code from that
> > file into the LY file.
>
> It may be possible if one could get access to the (scm page)-module.
> Though, I had no luck with this either.
>
> Nevertheless, below probably a method to avoid ly:grob-extent's
> side-effects:
>
>
>
> \version "2.19.59"
>
> \paper {
>   ragged-right = ##t
>   indent = 0
> }
>
> centerLines =
>   \override NonMusicalPaperColumn.after-line-breaking =
>     #(lambda (grob)
>        (if (eqv? (ly:item-break-dir grob) 1) ; line beginning
>            (let* ((sys (ly:grob-system grob))
>                   ;; filter for StaffSymbol-grobs
>                   (staff-symbols
>                     (filter
>                       (lambda (grob)
>                         (grob::has-interface grob 'staff-symbol-interface))
>                       (ly:grob-array->list (ly:grob-object sys
> 'all-elements))))
>                   ;; StaffSymbols may start/end during same system
>                   ;; Best bet is to look for the most left/right
> start/end-coord
>                   (min-max
>                     (lambda (list-of-pairs)
>                       (cons
>                         (reduce min +inf.0 (map car list-of-pairs))
>                         (reduce max -inf.0 (map cdr list-of-pairs)))))
>                   (line-width
>                     (interval-length
>                       (min-max
>                         (map
>                           (lambda (g) (ly:grob-property g 'X-extent))
>                           staff-symbols))))
>                   (layout (ly:grob-layout grob))
>                   (line-full-width (ly:output-def-lookup layout
> 'line-width)))
>              (ly:grob-set-nested-property! grob
>                '(line-break-system-details X-offset)
>                (/ (- line-full-width line-width) 2)))))
>
> \layout {
>   \context {
>     \Score
>     \centerLines
>     \override BarNumber.stencil = ##f
>   }
> }
>
> \score {
>     \new Staff \with {
>         \override StaffSymbol.line-count = #1
>         \omit Staff.TimeSignature
>         \omit Staff.Clef
>     }
>     {
>         b'4 b' b'2 \break
>         b'4 b' b'2 \break
>         b'4 b' b' b' b' b' b'2 \break
>
>     }
>     \addlyrics {
>         Häns -- chen klein
>         ging al -- lein
>         in die wei -- te Welt hi -- nein
>     }
> }
>
>
> Cheers,
>   Harm
>
> _______________________________________________
> lilypond-user mailing list
> lilypond-user@gnu.org
> https://lists.gnu.org/mailman/listinfo/lilypond-user
>
_______________________________________________
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user

Reply via email to