]> git.donarmstrong.com Git - lilypond.git/blob - scm/font.scm
* scm/define-markup-commands.scm (smallcaps): New markup command.
[lilypond.git] / scm / font.scm
1 ;;;; font.scm -- implement Font stuff
2 ;;;;
3 ;;;; source file of the GNU LilyPond music typesetter
4 ;;;; 
5 ;;;; (c)  2000--2004 Jan Nieuwenhuizen <janneke@gnu.org>
6 ;;;;                 Han-Wen Nienhuys <hanwen@cs.uu.nl>
7
8 ;; Should separate default sizes
9 ;; into separate list/alist ?
10
11
12 "
13 Each entry in this vector has the following format
14
15
16  (cons
17   #(QUALIFIERS)
18   (cons DEFAULT-SIZE
19         #(SIZE-FONT-ENTRIES... ) ))
20
21 where each SIZE-FONT-ENTRY is
22
23   (cons DESIGN-SIZE FONT-NAME)
24
25 or
26
27   (cons DESIGN-SIZE (list FONT-NAME1 FONT-NAME2 .. )) 
28
29 "
30
31 (define-public (magstep x)
32   (exp (* (/ x 6) (log 2))))
33
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")
39                (8.0 . "cmr8") 
40                (10.0 . "cmr10")
41                (17.0 . "cmr17")
42                )))
43     (#(* * music). 
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"))
52                )))
53     (#(medium upright sans) .
54      (10.0  . #((8.0 . "cmss8")
55                 (10.0 . "cmss10")
56                 (12.0 . "cmss12")
57                 (17.0 . "cmss17")
58                 )))
59     (#(medium upright typewriter) .
60      (10.0 . #((8.0 .  "cmtt8")
61                (10.0 . "cmtt10")
62                (12.0 . "cmtt12")
63                )))
64     (#(bold italic roman) .
65      (10.0 . #((8.0 . "cmbxti8")
66                (10.0 . "cmbxti10")
67                (14.0 . "cmbxti14")
68                )))
69     (#(medium italic roman) .
70      (10.0 . #((7.0 . "cmti7")
71                (10.0 . "cmti10")
72                (12.0 . "cmti12")
73                )))
74     (#(bold upright roman) .
75      (10.0 . #((6.0 . "cmbx6")
76                (8.0 . "cmbx8")
77                (10.0 . "cmbx10")
78                (12.0 . "cmbx12")
79                )))
80     (#(bold-narrow upright roman) .
81      (10.0 . #((10.0 . "cmb10")
82                )))
83     (#(medium caps roman) .
84      (10.0 . #((10.0 . "cmcsc10"))))
85
86     (#(* * dynamic) .
87      (14.0 .  #((6.0 . "feta-din6")
88                 (8.0 . "feta-din8")
89                 (10.0 . "feta-din10")
90                 (12.0 . "feta-din10")
91                 (14.0 . "feta-din14")
92                 (17.0 . "feta-din17")
93                 )))
94     (#(* * math) .
95      (10.0 . #((10.0 . "msam10"))))
96      ))
97
98 (define (scale-font-entry entry factor)
99   (cons
100    (car entry)
101    (cons (* (cadr entry) factor)
102          (cddr entry))))
103
104 (define size-independent-fonts
105   '((#(* * braces) .
106      (10 . #((10.0 . ("feta-braces00"
107                       "feta-braces10"
108                       "feta-braces20"
109                       "feta-braces30"
110                       "feta-braces40"
111                       "feta-braces50"
112                       "feta-braces60"
113                       "feta-braces70"
114                       "feta-braces80")))))))
115
116 (define-public (scale-font-list factor)
117   (append size-independent-fonts
118           (map (lambda (y) (scale-font-entry y factor)) paper20-font-vector)))
119
120