Thomas Morley <thomasmorle...@gmail.com> writes:

> 2017-08-02 22:38 GMT+02:00 David Kastrup <d...@gnu.org>:
>
>> I think that part of the problem is that looking at the functions in
>>
>> lily/book-scheme.cc
>>
>> it seems like bookparts were never intended to have paper blocks.  Now
>> after actually checking it would appear that at least several bookparts
>> cannot appear on the same page: so at least the paper dimensions likely
>> don't clash.
>>
>> So what is supposed to be the actual difference between bookparts and
>> books?
>>
>> I actually don't know how to tell, and it shows by the parser not
>> knowing how to know that
>>
>> \xxx
>>
>> is not a book when xxx has been defined as \bookpart { \paper {...} ...}.
>>
>> I really don't have an idea what the distinction is supposed to be about.
>
> Thanks for your findings and thoughts.
>
> At least one distinction can be seen here:
>
> foo = \book { }
> #(format #t "paper present? ~a" (ly:book-paper foo))
>
> bar = \bookpart { }
> #(format #t "paper present? ~a" (ly:book-paper bar))

Yes, books and bookparts can be told apart when specified _without_
paper block.  Once a paper block intervenes, it's getting impossible.

> The latter displays #f, which is inline with what you said above:
> "bookparts were never intended to have paper blocks"
> Otoh, paper in bookpart _is_ supported, at least nowadays ...

The Scheme code for creating a Book has a constructor _including_ a
paper block from the moment a book is created, and it would appear that
after creation, there is no real accessor for changing it.

The Scheme code for creating a Bookpart.  Actually, there is no such
thing.  The Scheme functions creating a Book that have "book-part" in
their name set the paper block to #f.

That's it from the Scheme side.  The parser, however, assigns to the
internal paper_ field bypassing any accessor functions.

That looks fishy.

In many cases of LilyPond's strangenesses I've been able to work out a
nice theory and manufacture principles useful for ironing out the
strangenesses and make the result appear to reflect a design that was
not really all that apparent from the start.

But I'm really sort-of adrift about what should and what should not be
possible here, and how.  Need to stall on this (and the other
discussion) until after the weekend as I am visiting accordionists in
Klingenthal.  Really need to start packing.

-- 
David Kastrup

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

Reply via email to