]> git.donarmstrong.com Git - lilypond.git/blob - scm/font.scm
* scm/font.scm (paper20-font-vector): add more design sizes for
[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 (define-public (magstep x)
9   (exp (* (/ x 6) (log 2))))
10
11 ;; Should separate default sizes
12 ;; into separate list/alist ?
13
14 ;; FIXME docstring for paper20-font-vector 
15   """ Entries have the following format
16
17   ( #(SERIES SHAPE FAMILY)  .
18     (DEFAULT-SIZE . #(SIZE-FONT-ENTRY... ) ))
19
20 where SIZE-FONT-ENTRY is
21
22   (DESIGN-SIZE FONT-NAME)
23
24 or
25
26   (DESIGN-SIZE (FONT-NAME1 FONT-NAME2 ... ))"""
27   
28 (define-public paper20-font-vector
29   '((#(medium upright number) .
30      (10 . #(
31              (4.0  . "feta-nummer4")
32              (6.0  . "feta-nummer6")
33              (8.0  . "feta-nummer8")
34              (10.0  . "feta-nummer10")
35              (12.0  . "feta-nummer12")
36              (16.0  . "feta-nummer16")
37              
38
39              )
40
41
42          ))
43     (#(medium upright roman) .
44      (10.0 . #((6.0 . "cmr6")
45                (8.0 . "cmr8") 
46                (10.0 . "cmr10")
47                (17.0 . "cmr17")
48                )))
49     (#(* * music). 
50      (20.0 . #((11.22 . ("feta11" "parmesan11"))
51                (12.60 . ("feta13" "parmesan13"))
52                (14.14 . ("feta14" "parmesan14"))
53                (15.87 . ("feta16" "parmesan16"))
54                (17.82 . ("feta18" "parmesan18"))
55                (20.0 . ("feta20" "parmesan20"))
56                (22.45 . ("feta23" "parmesan23"))
57                (25.20 . ("feta26" "parmesan26"))
58                )))
59     (#(medium upright sans) .
60      (10.0  . #((8.0 . "cmss8")
61                 (10.0 . "cmss10")
62                 (12.0 . "cmss12")
63                 (17.0 . "cmss17")
64                 )))
65     (#(medium upright typewriter) .
66      (10.0 . #((8.0 .  "cmtt8")
67                (10.0 . "cmtt10")
68                (12.0 . "cmtt12")
69                )))
70     (#(bold italic roman) .
71      (10.0 . #((8.0 . "cmbxti8")
72                (10.0 . "cmbxti10")
73                (14.0 . "cmbxti14")
74                )))
75     (#(medium italic roman) .
76      (10.0 . #((7.0 . "cmti7")
77                (10.0 . "cmti10")
78                (12.0 . "cmti12")
79                )))
80     (#(bold upright roman) .
81      (10.0 . #((6.0 . "cmbx6")
82                (8.0 . "cmbx8")
83                (10.0 . "cmbx10")
84                (12.0 . "cmbx12")
85                )))
86     (#(bold-narrow upright roman) .
87      (10.0 . #((10.0 . "cmb10")
88                )))
89     (#(medium caps roman) .
90      (10.0 . #((10.0 . "cmcsc10"))))
91     (#(* * dynamic) .
92      (14.0 .  #((6.0 . "feta-din6")
93                 (8.0 . "feta-din8")
94                 (10.0 . "feta-din10")
95                 (12.0 . "feta-din12")
96                 (14.0 . "feta-din14")
97                 (17.0 . "feta-din17")
98                 )))
99     (#(* * math) .
100      (10.0 . #((10.0 . "msam10"))))
101     ;; testing ps-encoding
102     (#(medium latin1 roman) .
103      (10.0 . #((12.0 . "ecrm12"))))
104     (#(bold latin1 roman) .
105      (10.0 . #((14.0 . "ecbm14"))))))
106
107 (define (scale-font-entry entry factor)
108   (cons
109    (car entry)
110    (cons (* (cadr entry) factor)
111          (cddr entry))))
112
113 (define size-independent-fonts
114   '((#(* * braces) .
115      (10 . #((10.0 . ("feta-braces00"
116                       "feta-braces10"
117                       "feta-braces20"
118                       "feta-braces30"
119                       "feta-braces40"
120                       "feta-braces50"
121                       "feta-braces60"
122                       "feta-braces70"
123                       "feta-braces80")))))))
124
125 (define-public (scale-font-list factor)
126   (append size-independent-fonts
127           (map (lambda (y) (scale-font-entry y factor)) paper20-font-vector)))
128
129