X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=ly%2Ftitling-init.ly;h=12bfa4f34072e919b2a38b2e607b47f33bab1554;hb=97a0169312a260933246ab224e4f8b0969871dd5;hp=98ad8b2e63ce89d6ddabb2aa5aa85be825767d07;hpb=522f419e3ed3e09ecf834bbb5315ac1777ab13e0;p=lilypond.git diff --git a/ly/titling-init.ly b/ly/titling-init.ly index 98ad8b2e63..12bfa4f340 100644 --- a/ly/titling-init.ly +++ b/ly/titling-init.ly @@ -1,5 +1,8 @@ \version "2.16.0" +#(if (guile-v2) + (use-modules (ice-9 curried-definitions))) + slashSeparator = \markup { \center-align \vcenter \combine @@ -8,17 +11,19 @@ slashSeparator = \markup { } tagline = \markup { - \with-url + \pad-to-box #'(0 . 0) #'(0 . 3) + { \with-url - #"http://lilypond.org/" - \line { + #"http://lilypond.org/" + \line { - %% 2014 = em dash. + %% 2014 = em dash. - #(format #f "Music engraving by LilyPond ~a~awww.lilypond.org" - (lilypond-version) - (ly:wide-char->utf-8 #x2014) - ) + #(format #f "Music engraving by LilyPond ~a~awww.lilypond.org" + (lilypond-version) + (ly:wide-char->utf-8 #x2014) + ) + } } } @@ -59,7 +64,7 @@ bookTitleMarkup = \markup { } scoreTitleMarkup = \markup { \column { - \on-the-fly #print-all-headers { \bookTitleMarkup \hspace #1 } + \on-the-fly \print-all-headers { \bookTitleMarkup \hspace #1 } \fill-line { \fromproperty #'header:piece \fromproperty #'header:opus @@ -71,14 +76,8 @@ scoreTitleMarkup = \markup { \column { #(define (book-first-page? layout props) "Return #t iff the current page number, got from @code{props}, is the book first one." - (define (ancestor layout) - "Return the topmost layout ancestor" - (let ((parent (ly:output-def-parent layout))) - (if (not (ly:output-def? parent)) - layout - (ancestor parent)))) (= (chain-assoc-get 'page:page-number props -1) - (ly:output-def-lookup (ancestor layout) 'first-page-number))) + (book-first-page layout props))) #(define (book-last-page? layout props) "Return #t iff the current page number, got from @code{props}, is the @@ -107,14 +106,25 @@ book last one." empty-stencil)) %% Bookpart first page and last page predicates +#(define (part-first-page? layout props) + (= (chain-assoc-get 'page:page-number props -1) + (ly:output-def-lookup layout 'first-page-number))) + +#(define (part-last-page? layout props) + (chain-assoc-get 'page:is-bookpart-last-page props #f)) + #(define (part-first-page layout props arg) - (if (= (chain-assoc-get 'page:page-number props -1) - (ly:output-def-lookup layout 'first-page-number)) + (if (part-first-page? layout props) + (interpret-markup layout props arg) + empty-stencil)) + +#(define (not-part-first-page layout props arg) + (if (not (part-first-page? layout props)) (interpret-markup layout props arg) empty-stencil)) #(define (part-last-page layout props arg) - (if (chain-assoc-get 'page:is-bookpart-last-page props #f) + (if (part-last-page? layout props) (interpret-markup layout props arg) empty-stencil)) @@ -139,10 +149,8 @@ book last one." oddHeaderMarkup = \markup \fill-line { - %% force the header to take some space, otherwise the - %% page layout becomes a complete mess. - " " - \on-the-fly #not-first-page \fromproperty #'header:instrument + "" + \on-the-fly #not-part-first-page \fromproperty #'header:instrument \on-the-fly #print-page-number-check-first \fromproperty #'page:page-number-string } @@ -151,18 +159,18 @@ oddHeaderMarkup = \markup evenHeaderMarkup = \markup \fill-line { \on-the-fly #print-page-number-check-first \fromproperty #'page:page-number-string - \on-the-fly #not-first-page \fromproperty #'header:instrument - " " + \on-the-fly #not-part-first-page \fromproperty #'header:instrument + "" } oddFooterMarkup = \markup { \column { \fill-line { - %% Copyright header field only on first page. - \on-the-fly #first-page \fromproperty #'header:copyright + %% Copyright header field only on first page in each bookpart. + \on-the-fly #part-first-page \fromproperty #'header:copyright } \fill-line { - %% Tagline header field only on last page. + %% Tagline header field only on last page in the book. \on-the-fly #last-page \fromproperty #'header:tagline } }