On 02.03.2012 10:30, David Kastrup wrote:
Jan-Peter Voigt<jp.vo...@gmx.de> writes:
Hello David, hello lists,
now, when we have a book-predicate, we are dealing with books in
scheme. And then we might want to set a header after creating a book.
There is a function ly:score-set-header!, which I copied and adapted
for the Book-class.
This patch compiled and works with the following snippet.
--snip--
\version "2.15.32"
bk = \book {
\score {
\relative c' {
c4 e g b
}
}
}
#(let ((bh (eval-string "(define-module (a b))")))
(eval '(define title "Hallo") bh)
(ly:book-set-header! bk bh))
"eval-string" is not exactly what I call "in Scheme".
\book { \bk }
--snip--
Is this helpful for lily-devel?
And is there another (better) way of creating a module (for header
generation) on the fly in scheme?
make-module would be obvious.
But if you try a (eval '(define title "Titel") (make-module)) it fails
with "Unbound variable: define"?
But you could write the above just as
bk = \book {
\score {
\relative c' {
c4 e g b
}
}
}
#(define bk #{ \book { \bk \header { title = "Hallo" } } #})
\book { \bk }
It is a bit of cheating since it works on a copy of the book, but not
all that much.
Yes, that would work, but if I have a function (set-book-headers! book
head-a-list) I want to modify the header of the actual book.
I am working on my methods to create books with common style but without
too much copy&paste.
Thanks for your answer and have nice weekend!
Cheers,
Jan-Peter
_______________________________________________
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user