* lily/main.cc (main_prog): print summary of failed files.
[lilypond.git] / scm / font.scm
blobe83b8894a18e5ceffce752c5894c82e8c5f3403f
1 ;;;
2 ;;; font.scm -- implement Font stuff
3 ;;;
4 ;;; source file of the GNU LilyPond music typesetter
5 ;;; 
6 ;;; (c)  2000--2003 Jan Nieuwenhuizen <janneke@gnu.org>
7 ;;;
9 ;; Should separate default sizes
10 ;; into separate list/alist ?
14 Each entry in this vector has the following format
17  (cons
18   #(QUALIFIERS)
19   (cons DEFAULT-SIZE
20         #(SIZE-FONT-ENTRIES... ) ))
22 where each SIZE-FONT-ENTRY is
24   (cons DESIGN-SIZE FONT-NAME)
28   (cons DESIGN-SIZE (list FONT-NAME1 FONT-NAME2 .. )) 
32 (define-public (magstep x)
33   (exp (* (/ x 6) (log 2))))
36 (define-public paper20-font-vector
37   '((#(medium upright number) .
38      (10 . #((10.0  . "feta-nummer10"))))
39     (#(medium upright roman) .
40      (10.0 . #((6.0 . "cmr6")
41                (8.0 . "cmr8") 
42                (10.0 . "cmr10")
43                (17.0 . "cmr17")
44                )))
45     (#(* * music). 
46      (20.0 . #((11.22 . ("feta11" "parmesan11"))
47                (12.60 . ("feta13" "parmesan13"))
48                (14.14 . ("feta14" "parmesan14"))
49                (15.87 . ("feta16" "parmesan16"))
50                (17.82 . ("feta18" "parmesan18"))
51                (20.0 . ("feta20" "parmesan20"))
52                (22.45 . ("feta23" "parmesan23"))
53                (25.20 . ("feta26" "parmesan26"))
54                )))
55     (#(medium upright sans) .
56      (10.0  . #((8.0 . "cmss8")
57                 (10.0 . "cmss10")
58                 (12.0 . "cmss12")
59                 (17.0 . "cmss17")
60                 )))
61     (#(medium upright typewriter) .
62      (10.0 . #((8.0 .  "cmtt8")
63                (10.0 . "cmtt10")
64                (12.0 . "cmtt12")
65                )))
66     (#(bold italic roman) .
67      (10.0 . #((8.0 . "cmbxti8")
68                (10.0 . "cmbxti10")
69                (14.0 . "cmbxti14")
70                )))
71     (#(medium italic roman) .
72      (10.0 . #((7.0 . "cmti7")
73                (10.0 . "cmti10")
74                (12.0 . "cmti12")
75                )))
76     (#(bold upright roman) .
77      (10.0 . #((6.0 . "cmbx6")
78                (8.0 . "cmbx8")
79                (10.0 . "cmbx10")
80                (12.0 . "cmbx12")
81                )))
82     (#(bold-narrow upright roman) .
83      (10.0 . #((10.0 . "cmb10")
84                )))
85     (#(medium caps roman) .
86      (10.0 . #((10.0 . "cmcsc10"))))
88     ;; this is a little pointless, since feta-din scales linearly
89     (#(* * dynamic) .
90      (14.0 .  #((8.0 . "feta-din10")
91                 (10.0 . "feta-din10")
92                 (14.0 . "feta-din14")
93                 (17.0 . "feta-din17")
94                 )))
95     (#(* * math) .
96      (10.0 . #((10.0 . "msam10"))))
97      ))
99 (define (scale-font-entry entry factor)
100   (cons
101    (car entry)
102    (cons (* (cadr entry) factor)
103          (cddr entry))))
105 (define size-independent-fonts
106   '((#(* * braces) .
107      (10 . #((10.0 . ("feta-braces00"
108                       "feta-braces10"
109                       "feta-braces20"
110                       "feta-braces30"
111                       "feta-braces40"
112                       "feta-braces50"
113                       "feta-braces60"
114                       "feta-braces70"
115                       "feta-braces80")))))))
117 (define-public (scale-font-list factor)
118   (append size-independent-fonts
119           (map (lambda (y) (scale-font-entry y factor))   paper20-font-vector)
120   ))
121