X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=ly%2Ftitling-init.ly;h=60c07e6ef0776102b59cbdcdedd2b07a5bd9db3e;hb=38d7d319eabc906e82fb42002678c6d42a23b6f7;hp=5901f3adbb71f88c3b9fdbc60a7823eecfc74103;hpb=71f5a117559e7d95c6389f8857b00842b0a65398;p=lilypond.git diff --git a/ly/titling-init.ly b/ly/titling-init.ly index 5901f3adbb..60c07e6ef0 100644 --- a/ly/titling-init.ly +++ b/ly/titling-init.ly @@ -1,112 +1,156 @@ -\version "2.4.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 } -%% FIXME: Would using http://lilypond.org/pdflink#music%20notation -%% help Google to find us even better? Is it bad not to point -%% to our main page, for this reason? How bad is using /web -%% iso /? tagline = \markup { \with-url - #"http://lilypond.org/pdflink/" + + %% todo: lilypond.org/music-engraving + #"http://lilypond.org/web/" \line { - "Engraving by LilyPond" - #(ly:export (lilypond-version)) - "-" - "www.lilypond.org" + + %% 2014 = em dash. + + #(ly:export + (format "Music engraving by LilyPond ~a~awww.lilypond.org" + (lilypond-version) + (ly:wide-char->utf-8 #x2014) + )) } } -bookTitleMarkup = \markup { +#(define (print-all-headers layout props arg) + (if (eq? (ly:output-def-lookup layout 'print-all-headers) #t) + (interpret-markup layout props arg) + empty-stencil)) +bookTitleMarkup = \markup { + \override #'(baseline-skip . 3.5) \column { - \override #'(baseline-skip . 3) \fill-line { \fromproperty #'header:dedication } - \fill-line { - \huge \bigger \bigger \bold \fromproperty #'header:title - } - \fill-line { - \override #'(baseline-skip . 6) - \column { - \fill-line { - \huge \bigger \bigger - \bold \fromproperty #'header:subtitle - } - \fill-line { - \huge \bigger - \bold \fromproperty #'header:subsubtitle - } -%% From 2.4: -%% \column { -%% \override #'(baseline-skip . 5) -%% "" -%% } + \override #'(baseline-skip . 3.5) + \column { + \huge \larger \bold + \fill-line { + \larger \fromproperty #'header:title } - } - \fill-line { - \fromproperty #'header:poet - \fromproperty #'header:instrument - \column { - \fromproperty #'header:composer - \fromproperty #'header:arranger + \fill-line { + \large \smaller \bold + \larger \fromproperty #'header:subtitle + } + \fill-line { + \smaller \bold + \fromproperty #'header:subsubtitle + } + \fill-line { + \fromproperty #'header:poet + { \large \bold \fromproperty #'header:instrument } + \fromproperty #'header:composer + } + \fill-line { + \fromproperty #'header:meter + \fromproperty #'header:arranger } } } - } -scoreTitleMarkup = \markup { +scoreTitleMarkup = \markup { \column { + \on-the-fly #print-all-headers { \bookTitleMarkup \hspace #1 } \fill-line { \fromproperty #'header:piece \fromproperty #'header:opus } } +} +%% Book first page and last page predicates #(define (first-page layout props arg) - (if (= (chain-assoc-get 'page:page-number props -1) 1) - (interpret-markup layout props arg) - empty-stencil)) + (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)) + (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 (and (chain-assoc-get 'page:is-bookpart-last-page props #f) + (chain-assoc-get 'page:is-last-bookpart 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) 1)) - (interpret-markup layout props arg) - empty-stencil)) - + (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))) + (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) 1) - (chain-assoc-get 'page:last? props -1))) - (interpret-markup layout props arg) - empty-stencil)) + (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) + empty-stencil)) + +#(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 'first-page-number))) + (eq? (ly:output-def-lookup layout 'print-first-page-number) #t)) + (create-page-number-stencil layout props arg) + empty-stencil)) oddHeaderMarkup = \markup -\on-the-fly #not-single-page \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 - \fromproperty #'page:page-number-string + \on-the-fly #print-page-number-check-first \fromproperty #'page:page-number-string } evenHeaderMarkup = \markup \fill-line { - \fromproperty #'page:page-number-string - \fromproperty #'header:instrument - "" + \on-the-fly #print-page-number-check-first \fromproperty #'page:page-number-string + \on-the-fly #not-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 } @@ -117,4 +161,3 @@ oddFooterMarkup = \markup { } } -