lilypond-user
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Feature sponsor request for \paper block


From: Rick Hansen (aka RickH)
Subject: Re: Feature sponsor request for \paper block
Date: Thu, 28 Sep 2006 20:32:03 -0700 (PDT)

Daniel,

Your solution worked great except for the case where the first page is also
the last page (1 page scores), so I added another condition:  (on 1 page
scores the footers were overprinting twice for both first and last on same
page).  I'm reposting this here because it's such a useful solution that
others may want to check it out.


%EXAMPLE BEGIN

\version "2.9.16"
varModifiedTimeString = "changed:"
% NOTE: first-page and last-page are defined in ly/titling-init.ly

#(define (not-first-and-not-last-page layout props arg)
   (if
      (not
          (or
             (= (chain-assoc-get 'page:page-number props -1)
                (ly:output-def-lookup layout 'first-page-number)
             )
             (chain-assoc-get 'page:last? props #f)
          )
      )
      (interpret-markup layout props arg)
      empty-stencil
   )
)

#(define (first-and-last-page layout props arg)
   (if
       (and
          (= (chain-assoc-get 'page:page-number props -1)
             (ly:output-def-lookup layout 'first-page-number)
          )
          (chain-assoc-get 'page:last? props #f)
       )
      (interpret-markup layout props arg)
      empty-stencil
   )
)

\paper {

   oddFooterMarkup = \markup {
      \on-the-fly #first-and-last-page {
         \fill-line {
            { \hspace #0 }
            { \teeny "first-and-last-page" }
            { \bold \fromproperty #'page:page-number-string }
         }
      }
      \on-the-fly #first-page {
         \fill-line {
            { \hspace #0 }
            { \teeny "first-page" }
            { \bold \fromproperty #'page:page-number-string }
         }
      }
      \on-the-fly #last-page {
         \fill-line {
            { \tiny \sans \varModifiedTimeString }
            { \bold \fromproperty #'page:page-number-string }
         }
      }
      \on-the-fly #not-first-and-not-last-page {
         \fill-line {
            { \hspace #0 }
            { \bold \fromproperty #'page:page-number-string }
         }
      }
   }

   evenFooterMarkup = \markup {
      \on-the-fly #first-and-last-page {
         \fill-line {
            { \bold \fromproperty #'page:page-number-string }
            { \teeny "first-and-last-page" }
            { \hspace #0 }
         }
      }
      \on-the-fly #first-page {
         \fill-line {
            { \bold \fromproperty #'page:page-number-string }
            { \teeny "first-page" }
            { \hspace #0 }
         }
      }
      \on-the-fly #last-page {
         \fill-line {
            { \bold \fromproperty #'page:page-number-string }
            { \tiny \sans \varModifiedTimeString }
         }
      }
      \on-the-fly #not-first-and-not-last-page {
         \fill-line {
            { \bold \fromproperty #'page:page-number-string }
            { \hspace #0 }
         }
      }
   }

  system-count = 100
}

   \header {
        tagline = " "
   }

\score {
  R1*100
%  R1
}



%EXAMPLE END





Daniel Johnson-2 wrote:
> 
> Hmm. realized I'd forgotten to CC the list.
> 
>> How hard/costly would it be to add 4 more properties? called:
>>
>> firstHeaderMarkup
>> firstFooterMarkup
>> lastHeaderMarkup
>> lastFooterMarkup
>>
> 
> %%% BEGIN LILYPOND CODE %%%
> 
> \version "2.9.16"
> 
> % NOTE: first-page and last-page are defined in ly/titling-init.ly
> 
> #(define (not-first-or-last-page layout props arg)
>   (if (not (or (= (chain-assoc-get 'page:page-number props -1)
>                (ly:output-def-lookup layout 'first-page-number))
>             (chain-assoc-get 'page:last? props #f)))
>    (interpret-markup layout props arg)
>    empty-stencil))
> 
> \paper {
>   oddHeaderMarkup = \markup {
>     \on-the-fly #first-page {
>       \fill-line { "This is the first page" }
>     }
>     \on-the-fly #last-page {
>       \fill-line { "This is the last page" }
>     }
>     \on-the-fly #not-first-or-last-page {
>       \fill-line { "" "This is a middle page" }
>     }
>   }
>   evenHeaderMarkup = \markup {
>     \on-the-fly #first-page {
>       \fill-line { "This is the first page" }
>     }
>     \on-the-fly #last-page {
>       \fill-line { "This is the last page" }
>     }
>     \on-the-fly #not-first-or-last-page {
>       \left-align { "This is a middle page" }
>     }
>   }
>   system-count = 100
> }
> 
> \score {
>   R1*100
> }
> 
> 
> 
> _______________________________________________
> lilypond-user mailing list
> address@hidden
> http://lists.gnu.org/mailman/listinfo/lilypond-user
> 
> 

-- 
View this message in context: 
http://www.nabble.com/Feature-sponsor-request-for-%5Cpaper-block-tf2351903.html#a6558857
Sent from the Gnu - Lilypond - User mailing list archive at Nabble.com.





reply via email to

[Prev in Thread] Current Thread [Next in Thread]