On Thu, Dec 3, 2015 at 10:54 AM, David Nalesnik <[email protected]> wrote:
> Hi, > > On Thu, Dec 3, 2015 at 10:35 AM, Urs Liska <[email protected]> wrote: > >> >> >> Am 03.12.2015 um 17:30 schrieb Graham King: >> >> On Thu, 2015-12-03 at 17:12 +0100, Urs Liska wrote: >> >> >> >> Am 03.12.2015 um 17:10 schrieb Graham King: >> >> On Thu, 2015-12-03 at 16:57 +0100, Urs Liska wrote: >> >> Ah, forgot: the ending function would also have to be written before the >> syllable, so >> >> Three \foo deaf and \bar blind mice are \foobar alive. >> >> should return >> >> Three [deaf and blind] mice are [alive] >> >> Uh, no. I'd like it to return >> Three [deaf and] blind mice are [alive] >> >> That's the bit I'm struggling with. >> >> >> You can't do that (I think). But I don't see a problem with writing the >> function before the syllable. >> Or what am I missing? >> >> I've got a lot of music with >> >> foo = \override LyricText.font-shape = #'italic >> bar = \revert LyricText.font-shape >> >> and I'd like to redefine foo and bar to replace the italics with >> [bracketed text]. And to switch between italics and brackets easily. >> >> >> To achieve that it doesn't matter if the function is placed before or >> after the syllable. >> Your function has to merge the syllable with the surrounding (be it a >> bracket or an \override) anyway, so you can handle the pre-/postfix issue >> within the function itself. >> >> But as I wrote in another reply (with full code example) I don't know how >> to mix music and lyrics inside that function. But surely someone else can >> help with that. >> >> > This looks too hideous to be the right way, but... > Yes, my sense was right Maybe I'm missing something, but wouldn't the following suffice? \version "2.19.21" start = #(define-scheme-function (parser location syllable)(markup?) (format "[~a" syllable)) start = \override LyricText.color = #red end = #(define-scheme-function (parser location syllable)(markup?) (format "~a]" syllable)) end = \revert LyricText.color wrap = #(define-scheme-function (parser location syllable)(markup?) (format "[~a]" syllable)) wrap = \once \override LyricText.color = #red theNotes = { \relative { e''1 d c d e } } theWords = \lyricmode { Three \start blind \end mice are \wrap alive } \score { \new StaffGroup << \new Voice = "voice" \theNotes \new Lyrics \lyricsto "voice" \theWords >> } (Just comment out the definitions you don't want.) --David
_______________________________________________ lilypond-user mailing list [email protected] https://lists.gnu.org/mailman/listinfo/lilypond-user
