(define-public (paper-system-stencil system)
(ly:prob-property system 'stencil))
+(define-public (paper-system-layout system)
+ (let*
+ ((g (paper-system-system-grob system)))
+
+ (if (ly:grob? g)
+ (ly:grob-layout g)
+ #f)))
+
(define-public (paper-system-system-grob paper-system)
(ly:prob-property paper-system 'system-grob))
(ly:stencil-extent (paper-system-stencil system) axis))
(define-public (paper-system-staff-extents ps)
- (ly:prob-property ps 'refpoint-Y-extent '(0 . 0)))
+ (ly:prob-property ps 'staff-refpoint-extent '(0 . 0)))
(define-public (paper-system-annotate-last system layout)
(let*
(list annotations
(ly:make-stencil '() (cons 0 1) (cons 0 0))
(apply ly:stencil-add
- extent-annotations)))))))))
+ extent-annotations))))))))
+
+ (grob (ly:prob-property system 'system-grob))
+ (estimate-extent (if (ly:grob? grob)
+ (annotate-y-interval layout
+ "extent-estimate"
+ (ly:grob-property grob 'pure-Y-extent)
+ #f)
+ #f)))
(let ((next-space (ly:prob-property
system 'next-space
(cond ((and next-system
"Y-extent" "next-padding" "space after next-padding")
(annotate-extent-and-space paper-system-staff-extents
(+ next-space next-padding)
- "refpoint-Y-extent" "next-space+padding"
+ "staff-refpoint-extent" "next-space+padding"
"space after next-space+padding"))
- (set! (ly:prob-property system 'stencil)
- (ly:stencil-add
- (ly:prob-property system 'stencil)
- (ly:make-stencil
- (ly:stencil-expr annotations)
- (ly:stencil-extent empty-stencil X)
- (ly:stencil-extent empty-stencil Y))))))
+ (if estimate-extent
+ (set! annotations
+ (stack-stencils X RIGHT 0.5
+ (list annotations
+ estimate-extent))))
+
+ (if (not (null? annotations))
+ (set! (ly:prob-property system 'stencil)
+ (ly:stencil-add
+ (ly:prob-property system 'stencil)
+ (ly:make-stencil
+ (ly:stencil-expr annotations)
+ (ly:stencil-extent empty-stencil X)
+ (ly:stencil-extent empty-stencil Y)))))
+ (ly:prob-property system 'stencil)))