Okay, fellas, I have a problem with this stanza code then.
When I plug it into my script, this code numbers every word as well as every line. I've attached a minimal example along with the include and my pdf output.
Maybe I'm doing it wrong. \header { title = "Stanza Test" } \include "stanza-number-every-line.ly" verses = \new Voice = "verses" \relative c' { \time 4/4 \key c \major a4 b4 c4 d4 | e2 f2 \bar "||" }wordsOne = \new Lyrics \with \numberLyrics 1 \lyricsto "verses" {
Here are some words to sing }wordsTwo = \new Lyrics \with \numberLyrics 2 \lyricsto "verses" {
And line up with them -- selves }wordsThree = \new Lyrics \with \numberLyrics 3 \lyricsto "verses" {
See the stanz -- as line up in place } \score { << \new Staff{ \verses } \wordsOne \wordsTwo \wordsThree >> \layout {} } On 7/4/2016 2:15 PM, Thomas Morley wrote:
2016-07-04 18:49 GMT+02:00 Br. Gabriel-Marie | SSPX <brgabr...@sspx.org>:Gabriel-Marie, attached you'll find the most recent coding. It indeed needs a newer devel-version because of `ly:item-get-column'-usage David, thanks a lot for your research and findings. Your suggestions are all implemented leading to geat simplifications. In `keep-at-line-begin' I added some fool-proof. Regrettable StanzaNumber does not respond correctly for 'break-visibility... Thanks, Harm
\version "2.19.44" %% Thanks to David Nalesnik %% http://lists.gnu.org/archive/html/lilypond-user/2016-07/msg00028.html #(define create-stanza-number-grob-engraver ;; puts out a StanzaNumber for every LyricText-grob (lambda (context) (let ((stanza (ly:context-property context 'stanza))) `((acknowledgers (lyric-syllable-interface . ,(lambda (engraver grob source-engraver) (let ((new-stanza-grob (ly:engraver-make-grob engraver 'StanzaNumber '()))) (ly:grob-set-property! new-stanza-grob 'text stanza))))))))) #(define (at-line-beginning? grob) (let* ((col (ly:item-get-column grob)) (ln (ly:grob-object col 'left-neighbor)) (col-to-check (if (ly:grob? ln) ln col))) (and (eq? #t (ly:grob-property col-to-check 'non-musical)) (= 1 (ly:item-break-dir col-to-check))))) #(define (keep-at-line-begin grob) (if (and (ly:item? grob) (not (at-line-beginning? grob))) (ly:grob-suicide! grob) grob)) keepLineStartStanzaNumbers = \layout { \context { \Lyrics \override StanzaNumber.after-line-breaking = #keep-at-line-begin } } numberLyrics = #(define-scheme-function (nmbr)(number?) "Return a context-modification setting @code{stanza} and consisting @code{create-stanza-number-grob-engraver}." #{ \with { stanza = \markup \italic #(format #f "~a." nmbr) \consists #create-stanza-number-grob-engraver } #})
\header { title = "Stanza Test" } \include "stanza-number-every-line.ly" verses = \new Voice = "verses" \relative c' { \time 4/4 \key c \major a4 b4 c4 d4 | e2 f2 \bar "||" } wordsOne = \new Lyrics \with \numberLyrics 1 \lyricsto "verses" { Here are some words to sing } wordsTwo = \new Lyrics \with \numberLyrics 2 \lyricsto "verses" { And line up with them -- selves } wordsThree = \new Lyrics \with \numberLyrics 3 \lyricsto "verses" { See the stanz -- as line up in place } \score { << \new Staff{ \verses } \wordsOne \wordsTwo \wordsThree >> \layout {} }
Stanza-Test.pdf
Description: Adobe PDF document
_______________________________________________ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user