[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: question about overrides within repeats
From: |
David Kastrup |
Subject: |
Re: question about overrides within repeats |
Date: |
Sun, 22 Nov 2015 20:21:55 +0100 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/25.0.50 (gnu/linux) |
David Nalesnik <address@hidden> writes:
> Hi,
>
> Given the following function, each time an override of NoteHead.color
> occurs, a new color from the list is used:
>
> \version "2.19.30"
>
> #(define test
> (let ((colors (circular-list red green blue yellow darkgreen magenta)))
> (lambda ()
> (let ((color (car colors)))
> (set! colors (cdr colors))
> color))))
>
> {
> \once\override NoteHead.color = #(test)
> c''4
> \once\override NoteHead.color = #(test)
> c''4
> However, when I put the override within a repeat structure, the override
> only seems to happen once:
>
> %% All darkgreen (we left off with yellow above
> {
> \repeat unfold 10 {
> \once \override NoteHead.color = #(test)
> c''4
> }
> }
>
> Is there any way to get the override to be reevaluated with each repeat?
No. Written in that manner, the override is evaluated at _input_ time.
If you put it in a variable and use that variable 3 times, the colors
will be the same each time. What you want is
#(define test
(let ((colors (circular-list red green blue yellow darkgreen magenta)))
(lambda (grob)
(let ((color (car colors)))
(set! colors (cdr colors))
color))))
and
\override NoteHead.color = #test
That way you'll get one call per actual _grob_ since then each grob is
then initialized with the callback, and the callback is replaced by the
value when the property is first used.
--
David Kastrup
- question about overrides within repeats, David Nalesnik, 2015/11/22
- Re: question about overrides within repeats,
David Kastrup <=
- Re: question about overrides within repeats, David Nalesnik, 2015/11/22
- Re: question about overrides within repeats, David Kastrup, 2015/11/22
- Re: question about overrides within repeats, Simon Albrecht, 2015/11/22
- Re: question about overrides within repeats, David Kastrup, 2015/11/22
- Re: question about overrides within repeats, David Nalesnik, 2015/11/22
- Re: question about overrides within repeats, David Kastrup, 2015/11/22
- Re: question about overrides within repeats, David Nalesnik, 2015/11/22