1 ;;;; font.scm -- implement Font stuff
3 ;;;; source file of the GNU LilyPond music typesetter
5 ;;;; (c) 2000--2004 Jan Nieuwenhuizen <janneke@gnu.org>
6 ;;;; Han-Wen Nienhuys <hanwen@cs.uu.nl>
8 ;; Should separate default sizes
9 ;; into separate list/alist ?
13 Each entry in this vector has the following format
19 #(SIZE-FONT-ENTRIES... ) ))
21 where each SIZE-FONT-ENTRY is
23 (cons DESIGN-SIZE FONT-NAME)
27 (cons DESIGN-SIZE (list FONT-NAME1 FONT-NAME2 .. ))
31 (define-public (magstep x)
32 (exp (* (/ x 6) (log 2))))
34 (define-public paper20-font-vector
35 '((#(medium upright number) .
36 (10 . #((10.0 . "feta-nummer10"))))
37 (#(medium upright roman) .
38 (10.0 . #((6.0 . "cmr6")
44 (20.0 . #((11.22 . ("feta11" "parmesan11"))
45 (12.60 . ("feta13" "parmesan13"))
46 (14.14 . ("feta14" "parmesan14"))
47 (15.87 . ("feta16" "parmesan16"))
48 (17.82 . ("feta18" "parmesan18"))
49 (20.0 . ("feta20" "parmesan20"))
50 (22.45 . ("feta23" "parmesan23"))
51 (25.20 . ("feta26" "parmesan26"))
53 (#(medium upright sans) .
54 (10.0 . #((8.0 . "cmss8")
59 (#(medium upright typewriter) .
60 (10.0 . #((8.0 . "cmtt8")
64 (#(bold italic roman) .
65 (10.0 . #((8.0 . "cmbxti8")
69 (#(medium italic roman) .
70 (10.0 . #((7.0 . "cmti7")
74 (#(bold upright roman) .
75 (10.0 . #((6.0 . "cmbx6")
80 (#(bold-narrow upright roman) .
81 (10.0 . #((10.0 . "cmb10")
83 (#(medium caps roman) .
84 (10.0 . #((10.0 . "cmcsc10"))))
86 (14.0 . #((6.0 . "feta-din6")
94 (10.0 . #((10.0 . "msam10"))))
97 (define (scale-font-entry entry factor)
100 (cons (* (cadr entry) factor)
103 (define size-independent-fonts
105 (10 . #((10.0 . ("feta-braces00"
113 "feta-braces80")))))))
115 (define-public (scale-font-list factor)
116 (append size-independent-fonts
117 (map (lambda (y) (scale-font-entry y factor)) paper20-font-vector)))