-;;;; framework-tex.scm --
-;;;;
-;;;; source file of the GNU LilyPond music typesetter
-;;;;
-;;;; (c) 2004--2005 Han-Wen Nienhuys <hanwen@cs.uu.nl>
+;;
+;; framework-tex.scm -- structure for TeX output
+;;
+;; source file of the GNU LilyPond music typesetter
+;;
+;; (c) 2004--2005 Han-Wen Nienhuys <hanwen@cs.uu.nl>
(define-module (scm framework-tex)
#:export (output-framework-tex
(define (header-end)
(string-append
"\\def\\scaletounit{ "
- (number->string (cond
- ((equal? (ly:unit) "mm") (/ 72.0 25.4))
- ((equal? (ly:unit) "pt") (/ 72.0 72.27))
- (else (error "unknown unit" (ly:unit)))))
+ (number->string lily-unit->bigpoint-factor)
" mul }%\n"
"\\ifx\\lilypondstart\\undefined\n"
" \\input lilyponddefs\n"
(define-public (output-framework basename book scopes fields)
(let* ((filename (format "~a.tex" basename))
- (outputter (ly:make-paper-outputter filename "tex"))
+ (outputter (ly:make-paper-outputter (open-file filename "wb") "tex"))
(paper (ly:paper-book-paper book))
(pages (ly:paper-book-pages book))
(last-page (car (last-pair pages)))
(define-public (output-classic-framework
basename book scopes fields)
(let* ((filename (format "~a.tex" basename))
- (outputter (ly:make-paper-outputter filename "tex"))
+ (outputter (ly:make-paper-outputter
+ (open-file filename "w") "tex"))
(paper (ly:paper-book-paper book))
(lines (ly:paper-book-systems book))
(last-line (car (last-pair lines))))
(define-public (output-preview-framework
basename book scopes fields)
(let* ((filename (format "~a.tex" basename))
- (outputter (ly:make-paper-outputter filename
+ (outputter (ly:make-paper-outputter (open-file filename "wb")
"tex"))
(paper (ly:paper-book-paper book))
(lines (ly:paper-book-systems book))
(ly:outputter-dump-string outputter "\\lilypondend\n")
(ly:outputter-close outputter)
(postprocess-output book framework-tex-module filename
- (output-formats))
-
-))
+ (output-formats))))
(define-public (convert-to-pdf book name)
(let* ((defs (ly:paper-book-paper book))
(papersizename (ly:output-def-lookup defs 'papersizename)))
(postscript->pdf (if (string? papersizename) papersizename "a4")
- (string-append
- (basename name ".tex")
- ".ps"))))
+ (string-append (basename name ".tex") ".ps"))))
(define-public (convert-to-png book name)
(let* ((defs (ly:paper-book-paper book))
(resolution (ly:output-def-lookup defs 'pngresolution))
(papersizename (ly:output-def-lookup defs 'papersizename)))
(postscript->png
- (if (number? resolution) resolution (ly:get-option 'resolution))
- (if (string? papersizename) papersizename "a4")
+ (if (number? resolution)
+ resolution
+ (ly:get-option 'resolution))
+
+ (if (string? papersizename)
+ papersizename
+ "a4")
+
(string-append (basename name ".tex") ".ps"))))
(define-public (convert-to-ps book name)
(delete-file ps-name))
(if (not (ly:get-option 'verbose))
(begin
- (format (current-error-port)
- (_ "Converting to `~a'...") (string-append base ".psbl"))
- (newline (current-error-port))))
+ (ly:message (_ "Converting to `~a'...") (string-append base ".ps"))
+ (ly:progress "\n")))
(ly:system cmd)))
(define-public (convert-to-dvi book name)
;; FIXME: latex 'foo bar' works, but \input 'foe bar' does not?
(if (string-index name (char-set #\space #\ht #\newline #\cr))
- (error (format
- #f
- (_"TeX file name must not contain whitespace: `~a'") name)))
+ (ly:error (_"TeX file name must not contain whitespace: `~a'") name))
(setenv "extra_mem_top" (number->string (max curr-extra-mem 1024000)))
(let ((dvi-name (string-append base ".dvi")))
(delete-file dvi-name)))
(if (not (ly:get-option 'verbose))
(begin
- (format (current-error-port) (_ "Converting to `~a'...")
- (string-append base ".dvi"))
- (newline (current-error-port))))
+ (ly:message (_ "Converting to `~a'...") (string-append base ".dvi"))
+ (ly:progress "\n")))
;; FIXME: set in environment?
(if (ly:get-option 'safe)
(define-public (convert-to-tex book name)
#t)
+