"\\def\\" (tex-font-command font) "{%\n"
;; UGH. Should be handled via alist.
(if (equal? "Extended-TeX-Font-Encoding---Latin" font-encoding)
- " \\fontencoding{T1}\\selectfont"
+ " \\lilypondfontencoding{T1}"
" ")
"\\lilypond" (tex-font-command font)
"}\n"
"{" (sanitize-tex-string str) "}%\n")))
(define (header bookpaper page-count classic?)
- (let ((scale (ly:output-def-lookup bookpaper 'outputscale)))
-
+ (let ((scale (ly:output-def-lookup bookpaper 'outputscale))
+ (texpaper (string-append
+ (ly:output-def-lookup bookpaper 'papersizename)
+ "paper"))
+ (landscape? (eq? #t (ly:output-def-lookup bookpaper 'landscape)))
+ )
+
(string-append
"% Generated by LilyPond "
(lilypond-version) "\n"
(tex-string-def
"lilypondpaper" 'linewidth
(ly:number->string (* scale (ly:output-def-lookup bookpaper 'linewidth))))
-
+ "\\def\\lilyponddocumentclassoptions{"
+ texpaper
+ (if landscape? ",landscape" "")
+ "}%\n"
(tex-string-def
"lilypondpaper" 'interscoreline
(ly:number->string
"\\lilypondspecial\n"
"\\lilypondpostscript\n"))
-(define (dump-page putter page last?)
+(define (dump-page putter page last? with-extents?)
(ly:outputter-dump-string
putter
- "\\vbox to 0pt{%\n\\leavevmode\n\\lybox{0}{0}{0}{0}{%\n")
+ (format "\\vbox to ~a\\outputscale{%\n\\leavevmode\n\\lybox{0}{0}{0}{0}{%\n"
+ (if with-extents?
+ (- (interval-start (ly:stencil-extent page Y)))
+ 0.0
+ )))
(ly:outputter-dump-stencil putter page)
(ly:outputter-dump-string
putter
(let* ((bookpaper (ly:paper-book-book-paper book))
(pages (ly:paper-book-pages book))
(last-page (car (last-pair pages)))
+ (with-extents
+ (eq? #t (ly:output-def-lookup bookpaper 'dump-extents)))
)
(for-each
(lambda (x)
(header bookpaper (length pages) #f)
(define-fonts bookpaper)
(header-end)))
-
+ (ly:outputter-dump-string outputter "\\lilypondnopagebreak")
(for-each
- (lambda (page) (dump-page outputter page (eq? last-page page)))
+ (lambda (page) (dump-page outputter page (eq? last-page page) with-extents))
pages)
(ly:outputter-dump-string outputter "\\lilypondend\n")))
(define-public (convert-to-ps book name)
(let*
- ((cmd (string-append "dvips -u+ec-mftrace.map -u+lilypond.map -Ppdf "
+ ((bookpaper (ly:paper-book-book-paper book))
+ (papersize (ly:output-def-lookup bookpaper 'papersizename))
+ (landscape? (eq? #t (ly:output-def-lookup bookpaper 'landscape)))
+ (cmd (string-append "dvips -t " papersize
+ (if landscape? " -t landscape " " ")
+ " -u+ec-mftrace.map -u+lilypond.map -Ppdf "
(basename name ".tex"))))
(display (format #f (_ "Invoking ~S") cmd) (current-error-port))
(define-public (convert-to-dvi book name)
(let*
- ((cmd (string-append "latex \\\\nonstopmode \\\\input " name)))
+ ((curr-extra-mem (string->number (regexp-substitute/global #f " *%.*\n?"
+ (ly:kpathsea-expand-variable "$extra_mem_top")
+ 'pre "" 'post)))
+ (cmd (string-append "latex \\\\nonstopmode \\\\input " name)))
+ (setenv "extra_mem_top" (number->string (max curr-extra-mem 1024000)))
(newline (current-error-port))
(display (format #f (_ "Invoking ~S") cmd) (current-error-port))
(newline (current-error-port))