(ly:stencil-add (ly:make-stencil link-expr xextent yextent) stil)))
+(define-public (book-first-page layout props)
+ "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))
+
(define-markup-command (with-link layout props label arg)
(symbol? markup?)
#:category other
(if (list? table)
(assoc-get label table)
#f))
- (first-page-number
- (ly:output-def-lookup layout 'first-page-number))
+ (first-page-number (book-first-page layout props))
(current-page-number
(if table-page-number
(1+ (- table-page-number first-page-number))
(thickness-offset (cons 0 (* -1 thickness dir)))
(spacing (* -1 flag-spacing factor dir))
(start (cons (- half-stem-thickness) (* half-stem-thickness dir)))
- ;; The points of a round-filled-polygon need to be given in
- ;; clockwise order, otherwise the polygon will be enlarged by
- ;; blot-size*2!
- (points (if stem-up
- (list start
- flag-end
- (offset-add flag-end thickness-offset)
- (offset-add start thickness-offset))
- (list start
- (offset-add start thickness-offset)
- (offset-add flag-end thickness-offset)
- flag-end)))
+ (points (list start
+ flag-end
+ (offset-add flag-end thickness-offset)
+ (offset-add start thickness-offset)))
(stencil (ly:round-filled-polygon points half-stem-thickness))
;; Log for 1/8 is 3, so we need to subtract 3
(flag-stencil (buildflags stencil (- log 3) stencil spacing)))