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 (define-public (magstep x)
9 (exp (* (/ x 6) (log 2))))
11 ;; Should separate default sizes
12 ;; into separate list/alist ?
14 ;; FIXME docstring for paper20-font-vector
15 """ Entries have the following format
17 ( #(SERIES SHAPE FAMILY) .
18 (DEFAULT-SIZE . #(SIZE-FONT-ENTRY... ) ))
20 where SIZE-FONT-ENTRY is
22 (DESIGN-SIZE FONT-NAME)
26 (DESIGN-SIZE (FONT-NAME1 FONT-NAME2 ... ))"""
28 (define-public paper20-font-vector
29 '((#(medium upright number) .
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")
43 (#(medium upright roman) .
44 (10.0 . #((6.0 . "cmr6")
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"))
59 (#(medium upright sans) .
60 (10.0 . #((8.0 . "cmss8")
65 (#(medium upright typewriter) .
66 (10.0 . #((8.0 . "cmtt8")
70 (#(bold italic roman) .
71 (10.0 . #((8.0 . "cmbxti8")
75 (#(medium italic roman) .
76 (10.0 . #((7.0 . "cmti7")
80 (#(bold upright roman) .
81 (10.0 . #((6.0 . "cmbx6")
86 (#(bold-narrow upright roman) .
87 (10.0 . #((10.0 . "cmb10")
89 (#(medium caps roman) .
90 (10.0 . #((10.0 . "cmcsc10"))))
92 (14.0 . #((6.0 . "feta-din6")
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"))))))
107 (define (scale-font-entry entry factor)
110 (cons (* (cadr entry) factor)
113 (define size-independent-fonts
115 (10 . #((10.0 . ("feta-braces00"
123 "feta-braces80")))))))
125 (define-public (scale-font-list factor)
126 (append size-independent-fonts
127 (map (lambda (y) (scale-font-entry y factor)) paper20-font-vector)))