X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=ly%2Ftitling-init.ly;h=4b72bf36949569b3bed542549e153c833d3c8c0f;hb=76c1654d8e6daceabb68d530729f87194fa49fed;hp=4e155b0dc09182afb8c27f7445dcd3b89c92b359;hpb=d15fe331c8c497051c589dd9000fc08c21bda3ee;p=lilypond.git diff --git a/ly/titling-init.ly b/ly/titling-init.ly index 4e155b0dc0..4b72bf3694 100644 --- a/ly/titling-init.ly +++ b/ly/titling-init.ly @@ -1,7 +1,7 @@ -\version "2.6.0" +\version "2.12.0" slashSeparator = \markup { - \hcenter + \center-align \vcenter \combine \beam #2.0 #0.5 #0.48 \raise #0.7 \beam #2.0 #0.5 #0.48 @@ -13,17 +13,19 @@ tagline = \markup { %% todo: lilypond.org/music-engraving #"http://lilypond.org/web/" \line { - "Music engraving by LilyPond" - #(ly:export (lilypond-version)) %% 2014 = em dash. - #(ly:export (ly:wide-char->utf-8 #x2014)) - "www.lilypond.org" + + #(ly:export + (format "Music engraving by LilyPond ~a~awww.lilypond.org" + (lilypond-version) + (ly:wide-char->utf-8 #x2014) + )) } } #(define (print-all-headers layout props arg) - (if (eq? (ly:output-def-lookup layout 'printallheaders) #t) + (if (eq? (ly:output-def-lookup layout 'print-all-headers) #t) (interpret-markup layout props arg) empty-stencil)) @@ -33,13 +35,13 @@ bookTitleMarkup = \markup { \fill-line { \fromproperty #'header:dedication } \override #'(baseline-skip . 3.5) \column { - \huge \bigger \bold + \huge \larger \bold \fill-line { - \bigger \fromproperty #'header:title + \larger \fromproperty #'header:title } \fill-line { \large \smaller \bold - \bigger \fromproperty #'header:subtitle + \larger \fromproperty #'header:subtitle } \fill-line { \smaller \bold @@ -67,40 +69,69 @@ scoreTitleMarkup = \markup { \column { } } +%% Book first page and last page predicates +#(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))) + +#(define (book-last-page? layout props) + "Return #t iff the current page number, got from @code{props}, is the +book last one." + (and (chain-assoc-get 'page:is-bookpart-last-page props #f) + (chain-assoc-get 'page:is-last-bookpart props #f))) + #(define (first-page layout props arg) - (if (= (chain-assoc-get 'page:page-number props -1) - (ly:output-def-lookup layout 'firstpagenumber)) (interpret-markup layout props arg) - empty-stencil)) + (if (book-first-page? layout props) + (interpret-markup layout props arg) + empty-stencil)) #(define (last-page layout props arg) - (if (chain-assoc-get 'page:last? props #f) - (interpret-markup layout props arg) - empty-stencil)) + (if (book-last-page? layout props) + (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 'firstpagenumber))) - (interpret-markup layout props arg) - empty-stencil)) + (if (not (book-first-page? layout props)) + (interpret-markup layout props arg) + empty-stencil)) + +%% Bookpart 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:is-bookpart-last-page props #f) + (interpret-markup layout props arg) + empty-stencil)) %% unused #(define (not-single-page layout props arg) (if (not (and (= (chain-assoc-get 'page:page-number props -1) - (ly:output-def-lookup layout 'firstpagenumber)) + (ly:output-def-lookup layout 'first-page-number)) (chain-assoc-get 'page:last? props -1))) (interpret-markup layout props arg) empty-stencil)) -#(define (print-page-number layout props arg) - (if (eq? (ly:output-def-lookup layout 'printpagenumber) #t) +#(define (create-page-number-stencil layout props arg) + (if (eq? (ly:output-def-lookup layout 'print-page-number) #t) (interpret-markup layout props arg) empty-stencil)) #(define (print-page-number-check-first layout props arg) - (if (or (not (= (chain-assoc-get 'page:page-number props -1) - (ly:output-def-lookup layout 'firstpagenumber))) - (eq? (ly:output-def-lookup layout 'printfirstpagenumber) #t)) - (print-page-number layout props arg) + (if (or (not (book-first-page? layout props)) + (eq? (ly:output-def-lookup layout 'print-first-page-number) #t)) + (create-page-number-stencil layout props arg) empty-stencil)) oddHeaderMarkup = \markup @@ -116,7 +147,7 @@ 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 - "" + " " } oddFooterMarkup = \markup {