X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=ly%2Ftitling-init.ly;h=c35b97aa750c61a00a6d35ead1195e4e966d567c;hb=9dd88ce33b9caf1ff6746c92f3b5080727dde946;hp=08b23d469d8538c99d6538502d8aa8a14e7489a3;hpb=edbaa4793402ff05a4d3c2823b0cd36862e591c2;p=lilypond.git diff --git a/ly/titling-init.ly b/ly/titling-init.ly index 08b23d469d..c35b97aa75 100644 --- a/ly/titling-init.ly +++ b/ly/titling-init.ly @@ -1,4 +1,4 @@ -\version "2.11.57" +\version "2.16.0" slashSeparator = \markup { \center-align @@ -10,17 +10,15 @@ slashSeparator = \markup { tagline = \markup { \with-url - %% todo: lilypond.org/music-engraving - #"http://lilypond.org/web/" + #"http://lilypond.org/" \line { %% 2014 = em dash. - - #(ly:export - (format "Music engraving by LilyPond ~a~awww.lilypond.org" + + #(format #f "Music engraving by LilyPond ~a~awww.lilypond.org" (lilypond-version) (ly:wide-char->utf-8 #x2014) - )) + ) } } @@ -35,13 +33,13 @@ bookTitleMarkup = \markup { \fill-line { \fromproperty #'header:dedication } \override #'(baseline-skip . 3.5) \column { - \huge \larger \bold \fill-line { - \larger \fromproperty #'header:title + \huge \larger \larger \bold + \fromproperty #'header:title } \fill-line { - \large \smaller \bold - \larger \fromproperty #'header:subtitle + \large \bold + \fromproperty #'header:subtitle } \fill-line { \smaller \bold @@ -70,51 +68,70 @@ 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))) +#(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)))) - (if (= (chain-assoc-get 'page:page-number props -1) - (ly:output-def-lookup (ancestor layout) 'first-page-number)) + (= (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 (book-first-page? layout props) (interpret-markup layout props arg) empty-stencil)) #(define (last-page layout props arg) - (if (and (chain-assoc-get 'page:is-bookpart-last-page props #f) - (chain-assoc-get 'page:is-last-bookpart props #f)) + (if (book-last-page? layout props) (interpret-markup layout props arg) empty-stencil)) #(define (not-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 (not (= (chain-assoc-get 'page:page-number props -1) - (ly:output-def-lookup (ancestor layout) 'first-page-number))) + (if (not (book-first-page? layout props)) (interpret-markup layout props arg) empty-stencil)) +#(define ((on-page nmbr) layout props arg) + (if (= (chain-assoc-get 'page:page-number props -1) nmbr) + (interpret-markup layout props arg) + 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)) %% unused #(define (not-single-page layout props arg) - (if (not (and (= (chain-assoc-get 'page:page-number props -1) + (if (not (and (= (chain-assoc-get 'page:page-number props -1) (ly:output-def-lookup layout 'first-page-number)) (chain-assoc-get 'page:last? props -1))) (interpret-markup layout props arg) @@ -126,8 +143,7 @@ scoreTitleMarkup = \markup { \column { 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 'first-page-number))) + (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)) @@ -137,27 +153,32 @@ oddHeaderMarkup = \markup %% 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 } +%% evenHeaderMarkup would inherit the value of +%% oddHeaderMarkup if it were not defined here 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 } } } +%% As long as evenFooterMarkup is unset, it inherits the value of +%% oddFooterMarkup, as if this were declared here: +% evenFooterMarkup = \oddFooterMarkup