2018-04-25 23:13 GMT+02:00 Thomas Morley <thomasmorle...@gmail.com>:

>> There's only one issue: The TOC will create wrong entries when LilyPond's
>> first page number is not 1. So there should actually be an offset in place.
>> How can I read the value of the first-page-number variable to set up this
>> offset?
>
> page-post-process has the layout-variable.
> (ly:output-def-lookup layout 'first-page-number) should do the trick.

Rethinking this ...
With the code above you'll catch the first-page-number of the
book_part_ not the entire book.

You need to find the topmost parent layout and look for first-page-number there:

%% slightly changed `book-first-page' from define-markup-comands
#(define-public (get-book-first-page layout)
  "Return the @code{'first-page-number} of the entire book"
  (define (ancestor layout)
    "Return the topmost layout ancestor"
    (let ((parent (ly:output-def-parent layout)))
      (if (not (ly:output-def? parent))
          layout
          (ancestor parent))))
  (ly:output-def-lookup (ancestor layout) 'first-page-number))

Cheers,
  Harm

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

Reply via email to