-(define (font-load-command bookpaper font)
- (string-append
- "\\font\\" (tex-font-command font) "="
- (ly:font-filename font)
- " scaled "
- (ly:number->string (inexact->exact
- (round (* 1000
- (ly:font-magnification font)
- (ly:bookpaper-outputscale bookpaper)))))
- "\n"))
-
-
-(define (define-fonts bookpaper)
+(define (simple-font-load-command paper font)
+ (let* ((coding-alist (ly:font-encoding-alist font))
+ (font-encoding (assoc-get 'output-name coding-alist)))
+ (string-append
+ "\\font\\lilypond" (tex-font-command font) "="
+ (if (or (equal? (ly:font-encoding font) "cork-lm")
+ ;; FIXME: encoding: FontSpecific for cork-lm
+ (string-prefix? "lm" (ly:font-file-name font)))
+ "cork-" "")
+ (ly:font-file-name font)
+ " scaled "
+ (ly:number->string (inexact->exact
+ (round (* 1000
+ (ly:font-magnification font)
+ (ly:paper-outputscale paper)))))
+ "\n"
+ "\\def\\" (tex-font-command font) "{%\n"
+ ;; UGH. Should be handled via alist.
+ (if (or (equal? "Extended-TeX-Font-Encoding---Latin" font-encoding)
+ (not font-encoding))
+ " \\lilypondfontencoding{T1}"
+ " ")
+ "\\lilypond" (tex-font-command font)
+ "}%\n")))
+
+(define (font-load-command paper font)
+ (if (pair? (ly:font-sub-fonts font))
+ (otf-font-load-command paper font)
+ (simple-font-load-command paper font)))
+
+(define (define-fonts paper)