On 10/8/10 2:37 AM, "Francisco Vila" <paconet....@gmail.com> wrote:

> Hello.  This makes figures attached to notes to be printed in the
> expected (ascending) order, but instrument names in reverse
> (descending) order.  Another exciting case later below.
> 

Here's a different version that forces the evaluation to happen during
parsing, thus making it happen the way you want it.

\version "2.13.34"

#(define sequence-number 0)
#(define-markup-command (score-sequence layout props sequence-number)
(number?)
 (interpret-markup layout props
   (markup #:bold #:large (number->string sequence-number))))

\new Staff {
 #(set! sequence-number (1+ sequence-number))
 \set Staff.instrumentName = \markup\score-sequence #sequence-number
 a'1^\markup\score-sequence #sequence-number
}

\new Staff {
 #(set! sequence-number (1+ sequence-number))
 \set Staff.instrumentName = \markup\score-sequence #sequence-number
 b'1^\markup\score-sequence #sequence-number
}

\new Staff {
 #(set! sequence-number (1+ sequence-number))
 \set Staff.instrumentName = \markup\score-sequence #sequence-number
 c''1^\markup\score-sequence #sequence-number
}


The problem you had earlier was that the scheme was not evaluated during the
parsing stage, but during the translation stage.  And there is no implied
relationship between parsing order and translation order.

If you want stuff to happen in parsing order, it's necessary to make sure
the code is evaluated during parsing.

HTH,

Carl


_______________________________________________
bug-lilypond mailing list
bug-lilypond@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-lilypond

Reply via email to