On 07.11.2016 17:56, David Kastrup wrote:
David Sumbler <da...@aeolia.co.uk> writes:

I had the following lines in the main file of my current Lilypond
project:

\book {
   \bookOutputName "../firstCello"
     partName = "Cello 1"
     \include "frontcover.ily"
     \bookpart { %music...

The file "frontcover.ily" contains a \bookpart block which prints a
front cover with title, composer etc. - these are defined elsewhere.
  But it needs one more variable, viz. 'partName'.

I discovered that Lilypond will not accept a variable definition in
Lilypond format in the position I have put it: at the top level of a
\book block.  Nor will it accept it in a \bookpart block.  But at a
higher or a lower level, it will.

This seems a bit weird (to say the least), in view of the fact that by
replacing the line
        partName = "Cello 1"
with the Scheme form
        #(define partName "Cello 1")
everything works as intended.

Is there any useful reason why a variable cannot be defined in Lilypond
format in these contexts?
Because they would not be local to these contexts?

In other words, to make this work, books and bookparts would need their own namespaces, am I right? What would be the drawbacks of that? I daresay it would be pretty intuitive to use, and I’ve also found myself wanting that feature in the past, mainly to simplify \include structures.

Best, Simon

_______________________________________________
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user

Reply via email to