]> git.donarmstrong.com Git - lilypond.git/blobdiff - ly/titling-init.ly
Nested book parts: in header/footer texts, make the difference between
[lilypond.git] / ly / titling-init.ly
index 9ef8cd48dd9b598f6d8f8a216474c6e117518781..ebec85b53eef90e5412a4d4255df08d7678ed289 100644 (file)
@@ -69,9 +69,16 @@ scoreTitleMarkup = \markup { \column {
 }
 }
 
+%% Book first page and last page predicates
 #(define (first-page layout props arg)
+  (define (ancestor layout)
+    "Return the topmost layout ancestor"
+    (let ((parent (ly:output-def-parent layout)))
+       (if (not (ly:output-def? parent))
+           layout
+           (ancestor parent))))
   (if (= (chain-assoc-get 'page:page-number props -1)
-         (ly:output-def-lookup layout 'first-page-number))
+         (ly:output-def-lookup (ancestor layout) 'first-page-number))
       (interpret-markup layout props arg)
       empty-stencil))
 
@@ -80,6 +87,18 @@ scoreTitleMarkup = \markup { \column {
    (interpret-markup layout props arg)
    empty-stencil))
 
+%% Part first page and last page predicates
+#(define (part-first-page layout props arg)
+  (if (= (chain-assoc-get 'page:page-number props -1)
+         (ly:output-def-lookup layout 'first-page-number))
+      (interpret-markup layout props arg)
+      empty-stencil))
+
+#(define (part-last-page layout props arg)
+  (if (chain-assoc-get 'page:part-last? props #f)
+   (interpret-markup layout props arg)
+   empty-stencil))
+
 #(define (not-first-page layout props arg)
   (if (not (= (chain-assoc-get 'page:page-number props -1)
               (ly:output-def-lookup layout 'first-page-number)))