Sorry, made more progress than I thought I would. My full explanation is below. 
Any simplifications (particularly ways to do away with the \markup \column 
redundancy) would be welcome.

Wrapping lyrics in LilyPond

Markup command:

#(define-markup-list-command (wrap-lyrics layout props line) (markup-list?)
        #:properties ((line-width 40))
        "Lyric wrapping"
        (interpret-markup-list layout props
                (make-override-lines-markup-list (cons 'line-width line-width)
                (make-wordwrap-lines-markup-list line))))

and invocation:

\lyricmode { 
        \markup \column { \wrap-lyrics {these lyrics will be wrapped as if they 
all belong to the same syllable} }
}

There is also the possbiility of changing the line width (default is 40) using 
the following example (line-width changed to 20):

\markup \column { \override-lines #'(line-width . 20) \wrap-lyrics {these 
lyrics will be wrapped with a narrower line width} }

On Jun 19, 2011, at 12:18 PM, Andrew C. Smith wrote:

> Thanks Kieren & James,
> 
> This helped a lot. I actually found a lesser workaround later last night, but 
> your solutions were way better.
> 
> Continuing this conversation: I'm trying to now make a markup function, and 
> running into trouble. Here's the function:
> 
> ---
> 
> #(define-markup-command (wrap-lyrics layout props line) (markup?)
>       #:properties ((line-wrap-width 40))
>       "Allow lyrics to wrap at the end of the line"
>       (interpret-markup layout props
>               (markup #:override '(line-width . ,line-wrap-width) #:column 
>                       (#:wordwrap-lines (line)))))
> 
> ...
> 
> \markup { \wrap-lyrics {sky's bluer than it seems sky's blue all seeming yet 
> feeling is first yet syntax seems clear} }
> 
> ---
> 
> However, I get this error:
> 
> error: Not a markup command: wordwrap-lines
> 
> Any ideas? Running \displayLilyMusic shows that \wordwrap-lines is replaced 
> by:
> 
>  #<procedure wordwrap-lines-markup-list (layout props args)> ("world's" 
> "chaos" "when" "we" "seek" "it" "water's" "drifting" "as" "slowly" "out" 
> "tides" "toward" "land" "twice" "daily")
> 
> But is there a workaround to let me use this same built-in procedure in my 
> scheme function?
> 
> Thanks, and sorry for the gobs of code. Hopefully we'll end up with a snippet 
> in the end.
> 
> Best,
> 
> Andrew
> 
> On Jun 19, 2011, at 10:32 AM, James Lowe wrote:
> 
>> Hello,
>> ________________________________________
>> From: lilypond-user-bounces+james.lowe=datacore....@gnu.org 
>> [lilypond-user-bounces+james.lowe=datacore....@gnu.org] on behalf of Kieren 
>> MacMillan [kieren_macmil...@sympatico.ca]
>> Sent: 18 June 2011 23:08
>> To: Andrew C.Smith
>> Cc: LilyPond User Group
>> Subject: Re: Adding line breaks within lyrics
>> 
>> Hi Andrew,
>> 
>>> or to set the max width and tell lilypond to wrap the text?
>> 
>> In markup, I used
>> 
>>    ^\markup \override #'(line-width . 62) \column { \wordwrap-lines { Lorem 
>> ipso dolor yadda yadda … } }
>> 
>> I'm assuming you could do the same with LyricText.
>> 
>> ------------------
>> 
>> Ah, I saw this after I wrote my response.
>> 
>> Yes that was the kind of thing I was looking at, but you can (it seems) 
>> incorporate it directly in LyricText object rather that just using it as a 
>> markup (which may be more convenient).
>> 
>> James
> 
> _______________________________________________
> 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