On 1/9/12 3:59 PM, "Francisco Vila" <paconet....@gmail.com> wrote:

>2012/1/9 Светлана <eurid...@yandex.ru>:
>> 10.01.2012, 00:01, "Francisco Vila" <paconet....@gmail.com>:
>>> Use complex markups as syllables.
>>>
>>> { c' } \addlyrics { \markup { \concat { \with-color #red "A" "bc" } } }
>>>
>>> --
>>> Francisco Vila. Badajoz (Spain)
>>> www.paconet.org , www.csmbadajoz.com
>>
>> Well, thank you, that works! But each score has at least 30 syllables
>>and each of them has 1 or 2 colored letters... quite a mess in the
>>code... Could there be any way to make this shorter and readable?
>
>Are the coloured symbols always the first ones in a given syllable?
>Then a simple scheme function that takes two arguments could work.
>
>#(define-markup-command (firstred layout props sone stwo) (string?
>string?)
>  "Print the first string in red"
>  (interpret-markup layout props
>    (markup #:concat ((#:with-color red sone) stwo))))
>
>{ c' c' c' c' }
>  \addlyrics {
>
>    \markup \firstred #"A" #"bc"
>    Def
>    Ghi
>    \markup \firstred #"Jk" #"l"
>}

One could also do the following
#(define-markup-command (center_red layout props sone stwo sthree)
(string? string? string?)
  "Print the middle string in red"
  (interpret-markup layout props
    (markup #:concat (sone (#:with-color red stwo) sthree))))

{ c' c' c' c' }
 \addlyrics {

 \markup \center_red #"A" #"bc" #""
 Def
 \markup \center_red #"" #"G" #"hi"
 \markup \center_red #"J" #"k" #"l"
}

Or one could define three markup commands: first_red, center_red, and
last_red.

HTH,

Carl







_______________________________________________
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user

Reply via email to