(format out-port "~a\n~a\n" skip base)
(dump-tweaks out-port (cdr tweak-list) (graceless-moment now)))))
-(define (dump-all-tweaks pages tweaks)
- (let* ((paper (ly:paper-book-paper (page-property (car pages) 'paper-book)))
- (parser (ly:output-def-parser paper))
- (name (format "~a-page-layout.ly"
- (ly:parser-output-name parser)))
+(define (dump-all-tweaks pages tweaks output-name)
+ (let* ((paper (ly:paper-book-paper (page-property (car pages) 'paper-book)))
+ (name (format "~a-page-layout.ly" output-name))
(out-port (open-output-file name)))
+
(ly:message "Writing page layout to ~a" name)
(hash-for-each
(lambda (key val)
tweaks)
(close-port out-port)))
-(define (write-page-breaks pages)
+(define (write-page-breaks pages output-name)
"Dump page breaks and tweaks"
(let ((tweaks (make-hash-table 60)))
(define (handle-page page)
(record-line-tweak (cdr lines) #f (1+ index)))))))
;; Compute tweaks for each page, then dump them to the page-layout file
(for-each handle-page pages)
- (dump-all-tweaks pages tweaks)))
+ (dump-all-tweaks pages tweaks output-name)))
(define (post-process-pages layout pages)
"If the write-page-layout paper variable is true, dumps page breaks
and tweaks."
- (if (ly:output-def-lookup layout 'write-page-layout #f)
- (write-page-breaks pages)))
+
+ (let*
+ ((parser (ly:modules-lookup (list (current-module)) 'parser))
+ (output-name (ly:parser-output-name parser))
+ )
+
+ (if (ly:output-def-lookup layout 'write-page-layout #f)
+ (write-page-breaks pages output-name))))
;;;
;;; Utilities for computing line distances and positions
(let*
((paper (ly:parser-lookup parser '$defaultpaper))
(layout (ly:parser-lookup parser '$defaultlayout))
+
(count (ly:parser-lookup parser 'output-count))
(base (ly:parser-output-name parser)))
+ ;; must be careful: output-count is under user control.
(if (not (integer? count))
(set! count 0))