(tex-number-def "lilypondpaper" 'outputscale
(number->string (exact->inexact
(ly:bookpaper-outputscale bookpaper))))
- (tex-string-def "lilypondpapersize" 'papersize
+ (tex-string-def "lilypondpaper" 'papersize
(eval 'papersize (ly:output-def-scope bookpaper)))
(apply string-append
(string-append "\\def\\" prefix (symbol->tex-key key)
"{" (sanitize-tex-string str) "}%\n")))
-(define (header creator time-stamp bookpaper page-count classic?)
+(define (header bookpaper page-count classic?)
(let ((scale (ly:output-def-lookup bookpaper 'outputscale)))
(string-append
- "% Generated by " creator "\n"
- "% at " time-stamp "\n"
+ "% Generated by LilyPond "
+ (lilypond-version) "\n"
+ "% at " "time-stamp,FIXME" "\n"
(if classic?
(tex-string-def "lilypond" 'classic "1")
"")
(define (dump-page putter page last?)
(ly:outputter-dump-string
putter
- "\n\\vbox to 0pt{%\n\\leavevmode\n\\lybox{0}{0}{0}{0}{%\n")
+ "\\vbox to 0pt{%\n\\leavevmode\n\\lybox{0}{0}{0}{0}{%\n")
(ly:outputter-dump-stencil putter page)
(ly:outputter-dump-string
putter
"}\\vss\n}\n\\vfill\n"
"}\\vss\n}\n\\vfill\\lilypondpagebreak\n")))
-(define-public (output-framework-tex outputter book scopes fields basename)
+(define-public (output-framework outputter book scopes fields basename )
(let* ((bookpaper (ly:paper-book-book-paper book))
(pages (ly:paper-book-pages book))
(last-page (car (last-pair pages)))
(lambda (x)
(ly:outputter-dump-string outputter x))
(list
- (header "creator" "timestamp" bookpaper (length pages) #f)
+ (header bookpaper (length pages) #f)
(define-fonts bookpaper)
(header-end)))
"}%\n"
"}\\interscoreline\n")))
-(define-public (output-classic-framework-tex
+(define-public (output-classic-framework
outputter book scopes fields basename)
(let* ((bookpaper (ly:paper-book-book-paper book))
(lines (ly:paper-book-lines book))
(lambda (line) (dump-line outputter line (eq? line last-line))) lines)
(ly:outputter-dump-string outputter "\\lilypondend\n")))
+
+(define-public (output-preview-framework
+ outputter book scopes fields basename )
+ (let* ((bookpaper (ly:paper-book-book-paper book))
+ (lines (ly:paper-book-lines book)))
+ (for-each
+ (lambda (x)
+ (ly:outputter-dump-string outputter x))
+ (list
+ ;;FIXME
+ (header "creator" "timestamp" bookpaper (length lines) #f)
+ "\\def\\lilypondclassic{1}%\n"
+ (output-scopes scopes fields basename)
+ (define-fonts bookpaper)
+ (header-end)))
+
+ (dump-line outputter (car lines) #t)
+ (ly:outputter-dump-string outputter "\\lilypondend\n")))
+
+
+(define-public (convert-to-pdf book name)
+ (let*
+ ((defs (ly:paper-book-book-paper book))
+ (size (ly:output-def-lookup book 'papersize)))
+
+ (postscript->pdf (if (string? size) size "a4")
+ (string-append
+ (basename name ".tex")
+ ".ps")
+ )))
+
+(define-public (convert-to-png book name)
+ (let*
+ ((defs (ly:paper-book-book-paper book))
+ (resolution (ly:output-def-lookup defs 'pngresolution)))
+
+ (postscript->png
+ (if (number? resolution) resolution 90)
+ (string-append (basename name ".tex") ".ps")
+ )))
+
+(define-public (convert-to-ps book name)
+ (let*
+ ((cmd (string-append "dvips -u+ec-mftrace.map -u+lilypond.map -Ppdf " (basename name ".tex"))))
+
+ (display (format #f "invoking ~S" cmd))
+ (system cmd)))
+
+(define-public (convert-to-dvi book name)
+ (let*
+ ((cmd (string-append "latex " name)))
+
+ (display (format #f "invoking ~S\n" cmd))
+ (system cmd)))
+