X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=scm%2Ftitling.scm;h=66f45fc8a5566e2d5de7dfbb0f460abde6db5e8c;hb=cfc4cbf34569db6a6c8968694f86e36b206a9d05;hp=a72fa8085696e99e4ccbba800a6b0bb0324ba5d4;hpb=c0ba46b982f0bb0544c5267b5176c17d8d9d1447;p=lilypond.git diff --git a/scm/titling.scm b/scm/titling.scm index a72fa80856..66f45fc8a5 100644 --- a/scm/titling.scm +++ b/scm/titling.scm @@ -2,55 +2,57 @@ ;;;; ;;;; source file of the GNU LilyPond music typesetter ;;;; -;;;; (c) 2004 Jan Nieuwenhuizen -;;;; Han-Wen Nienhuys +;;;; (c) 2004--2009 Jan Nieuwenhuizen +;;;; Han-Wen Nienhuys -(define-public (page-properties layout) - (list (append `((linewidth . ,(ly:paper-get-number - layout 'linewidth))) +(define-public (layout-extract-page-properties layout) + (list (append `((line-width . ,(ly:paper-get-number + layout 'line-width))) (ly:output-def-lookup layout 'text-font-defaults)))) ;;;;;;;;;;;;;;;;;; -(define-public ((marked-up-headfoot what-odd what-even) layout scopes page-number last?) +(define-public ((marked-up-headfoot what-odd what-even) + layout scopes page-number is-last-bookpart is-bookpart-last-page) "Read variables WHAT-ODD, WHAT-EVEN from LAYOUT, and interpret them as markup. The PROPS argument will include variables set in SCOPES and -page:last?, page:page-number-string and page:page-number -" +page:is-bookpart-last-page, page:is-last-bookpart, page:page-number-string +and page:page-number" (define (get sym) (ly:output-def-lookup layout sym)) (define (interpret-in-page-env potential-markup) (if (markup? potential-markup) - (let* - ((alists (map ly:module->alist scopes)) - (prefixed-alists - (map (lambda (alist) - (map (lambda (entry) - (cons - (string->symbol - (string-append - "header:" - (symbol->string (car entry)))) - (cdr entry) - )) - alist)) - alists)) - (pgnum-alist (list - (cons 'page:last? last?) - (cons 'page:page-number-string - (number->string page-number)) - (cons 'page:page-number page-number))) - (props (append - (list pgnum-alist) - prefixed-alists - (page-properties layout))) - ) - + (let* ((alists (map ly:module->alist scopes)) + (prefixed-alists + (map (lambda (alist) + (map (lambda (entry) + (cons + (string->symbol + (string-append + "header:" + (symbol->string (car entry)))) + (cdr entry))) + alist)) + alists)) + (pgnum-alist + (list + (cons 'header:tagline + (ly:modules-lookup scopes 'tagline + (ly:output-def-lookup layout 'tagline))) + (cons 'page:is-last-bookpart is-last-bookpart) + (cons 'page:is-bookpart-last-page is-bookpart-last-page) + (cons 'page:page-number-string + (number->string page-number)) + (cons 'page:page-number page-number))) + (props (append + (list pgnum-alist) + prefixed-alists + (layout-extract-page-properties layout)))) (interpret-markup layout props potential-markup)) - + empty-stencil)) (interpret-in-page-env @@ -69,28 +71,23 @@ PROPS argument will include variables set in SCOPES (prefixed with (let ((x (ly:modules-lookup scopes sym))) (if (markup? x) x #f))) - (let* - ((alists (map ly:module->alist scopes)) - (prefixed-alist - (map (lambda (alist) - (map (lambda (entry) - (cons - (string->symbol - (string-append - "header:" - (symbol->string (car entry)))) - (cdr entry) - )) - alist)) - alists)) - (props (append prefixed-alist - (page-properties layout))) + (let* ((alists (map ly:module->alist scopes)) + (prefixed-alist + (map (lambda (alist) + (map (lambda (entry) + (cons + (string->symbol + (string-append + "header:" + (symbol->string (car entry)))) + (cdr entry))) + alist)) + alists)) + (props (append prefixed-alist + (layout-extract-page-properties layout))) - (markup (ly:output-def-lookup layout what)) - ) + (markup (ly:output-def-lookup layout what))) (if (markup? markup) (interpret-markup layout props markup) - (ly:make-stencil '() '(1 . -1) '(1 . -1))) - )) - + (ly:make-stencil '() '(1 . -1) '(1 . -1)))))