lilypond-user
[Top][All Lists]
Advanced

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

Re: How to get a book twice with different page-footers?


From: Thomas Morley
Subject: Re: How to get a book twice with different page-footers?
Date: Fri, 22 Mar 2013 22:27:05 +0100

Hi Jan-Peter,

thanks for your reply.

2013/3/22 Jan-Peter Voigt <address@hidden>:
> Hello Harm,
>
> I don't have a solution, but I found, that not-first-page is not defined in
> the global space. You can't access it with $(display not-first-page).

Yep.
That's the problem.

> If you (re-)define a procedure #(define (not-first-page layout props arg)
> (interpret-markup layout props arg)) the example compiles.
> So propably there is a way to expose the needed functions/vars to another
> scope?

I found a very simple solution:
Instead of redefining all definitions from /ly/titling-init.ly I
simply include titling-init.ly

Et voilĂ :

\version "2.16.2"

\include "titling-init.ly"

myname = #(ly:parser-output-name parser)

oddFooterMarkupI =
  \markup \fill-line { "XYZ" }

oddFooterMarkupII =
  \markup {
          \on-the-fly #not-first-page
          \fill-line { \with-color #red "123" }
  }

writeBookTwice =
#(define-void-function (parser location book)
   (ly:book?)

   ; process with oddFooterMarkupI
   (ly:output-def-set-variable!
      (ly:book-paper book)
      'oddFooterMarkup
      oddFooterMarkupI)
   (ly:book-process
      book
      $defaultpaper
      $defaultlayout
      myname)

   ; process with oddFooterMarkupII
   (ly:output-def-set-variable!
      (ly:book-paper book)
      'oddFooterMarkup
      oddFooterMarkupII)
   (ly:book-process
      book
      $defaultpaper
      $defaultlayout
      (format "~a-other-footer" myname)))


\writeBookTwice
  \book {
    \bookpart { \repeat unfold 2 { c''1 \pageBreak } }
    \bookpart { \repeat unfold 2 { cis''1 \pageBreak } }
  }


Works.
Though, I've to test it with some larger real-life-examples.


Cheers,
  Harm



reply via email to

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