On 2017/06/10 19:36:30, pwm wrote:
That's a nice consistency. I tried it out and the following works
too:
#(define (onpage proc nmbr) (markup-when ((page:page-number -1)) (proc page:page-number nmbr)))
\paper { #(set-paper-size "a7landscape") oddFooterMarkup = \markup \on-the-fly #(onpage > 3) "This is long!" }
Come to think of it, the only application would seem in connection with \on-the-fly, so it should be possible to wrap the \on-the-fly invocation into the macro as well. I've put up issue 5145 for basically replacing \on-the-fly with $ when one really wants to write this as \markup $(onpage > 3) "This is long!". This requires an amended definition of markup-when adding a markup command signature: #(define-macro (markup-when properties . cond) `(let ((markfun (lambda (layout props arg) (if (let ,(map (lambda (p) (if (pair? p) `(,(car p) (chain-assoc-get ',(car p) props ,@(cdr p))) `(,p (chain-assoc-get ',p props)))) properties) ,@cond) (interpret-markup layout props arg) empty-stencil)))) (set! (markup-command-signature markfun) (list markup?)) markfun)) #(define (on-page-greater-than nmbr) (markup-when ((page:page-number -1)) (> page:page-number nmbr))) \paper { #(set-paper-size "a7landscape") oddFooterMarkup = \markup $(on-page-greater-than 3) "This is long!" } \score { \repeat unfold 256 c'1 } I don't actually want to pursue this path as the preferred user interface: it just seemed to me that it should work. https://codereview.appspot.com/74540044/ _______________________________________________ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel