Correction for cases when you have more pages than you specified ranges for:
On Thu, May 5, 2016 at 9:18 AM, David Nalesnik <david.nales...@gmail.com> wrote: > \version "2.19.30" > > > #(define (my-nmbrs rngs) > (append-map (lambda (e) (iota (- (last e) (- (car e) 1)) (car e) 1)) rngs)) > > #(define-markup-command (use-page-number-ranges layout props arg) > (number-list?) > (let ((page-number (chain-assoc-get 'page:page-number props -1))) > (interpret-markup layout props > (if (< page-number (length arg)) > (number->string (list-ref arg (1- page-number))) > (chain-assoc-get 'page:page-number-string props -1))))) #(define-markup-command (use-page-number-ranges layout props ls) (number-list?) (let ((page-number (chain-assoc-get 'page:page-number props -1)) (len (length ls))) (interpret-markup layout props (number->string (if (< page-number len) (list-ref ls (1- page-number)) (+ page-number (- (last ls) len))))))) > > \paper { > print-first-page-number = ##t > print-page-number = ##t > oddHeaderMarkup = \markup > \fill-line { > " " > \on-the-fly #not-first-page \fromproperty #'header:instrument > \on-the-fly #print-page-number-check-first \use-page-number-ranges > #(my-nmbrs '((1) (3 5) (7 10))) > } > evenHeaderMarkup = \markup > \fill-line { > \on-the-fly #print-page-number-check-first \use-page-number-ranges > #(my-nmbrs '((1) (3 5) (7 10))) > \on-the-fly #not-first-page \fromproperty #'header:instrument > " " > } > } > > \score { > \new Staff { > \repeat unfold 15 { > s1 > \pageBreak > } > } > } _______________________________________________ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user