]> git.donarmstrong.com Git - lilypond.git/blobdiff - scm/framework-tex.scm
* scm/lily.scm (postscript->png): new function
[lilypond.git] / scm / framework-tex.scm
index 5b157a72020f6163fa0ca6075084a4c2a62a9c3a..754c50160d6007c590c3b3c82e0be149d2eeeb3e 100644 (file)
@@ -59,7 +59,7 @@
    (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)))
+