- (ly:outputter-dump-stencil outputter dump-me)
- (ly:outputter-dump-string outputter "} stop-system\n%%Trailer\n%%EOF\n")
- (ly:outputter-close outputter)
- (postprocess-output book framework-ps-module filename
- (ly:output-formats))
-))
-
-
-(define-public (output-classic-framework
- basename book scopes fields)
- (define paper (ly:paper-book-paper book))
- (define (dump-line outputter line)
- (let*
- ((dump-me (ly:paper-system-stencil line))
- (xext (ly:stencil-extent dump-me X))
- (yext (ly:stencil-extent dump-me Y))
- (scale (ly:output-def-lookup paper 'outputscale))
- (bbox
- (map
- (lambda (x)
- (if (or (nan? x) (inf? x))
- 0.0 x))
- (list (car xext) (car yext)
- (cdr xext) (cdr yext))))
- (header (eps-header paper
- (map
- (lambda (x)
- (inexact->exact
- (round (* x scale mm-to-bigpoint))))
- bbox) #f)))
-
- (for-each
- (lambda (str) (ly:outputter-dump-string outputter str))
- (cons
- header
- (preamble paper #f)))
-
- (ly:outputter-dump-string outputter
- (string-append "start-system { "
- "set-ps-scale-to-lily-scale "
- "\n"))
-
- (ly:outputter-dump-stencil outputter dump-me)
- (ly:outputter-dump-string outputter "} stop-system\n%%Trailer\n%%EOF\n")
- (ly:outputter-close outputter)))
-
- (define (dump-lines lines count)
- (if (pair? lines)
- (let*
- ((outputter (ly:make-paper-outputter (format "~a-~a.eps" basename count)
- (ly:output-backend)))
- (line (car lines))
- (rest (cdr lines)))
- (dump-line outputter line)
- (dump-lines rest (1+ count))
- )))
-
- (let* ((lines (ly:paper-book-systems book))
- (tex-port (open-output-file (format "~a.tex" basename)))
- (last-line (car (last-pair lines))))
-
- (dump-lines lines 1)
- (for-each (lambda (c)
- (display (format "\\includegraphics{~a-~a.eps}%\n"
- basename (1+ c)) tex-port))
- (iota (length lines))
- )))