1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
|
% blackboard typefaces by Anthony Phan.
% file: mbblight.mf (parameters' file for all light fonts)
% last modification: 25.10.2001.
numeric gen_; gen_=0;
for $=17pt#,12pt#,10pt#,9pt#,8pt#,7pt#,6pt#,5pt#:
if designsize<$: gen_:=gen_+1; fi
endfor;
vardef gen(expr unit)(text t)=
save a,b; a=0; for $=t:
if gen_>=a: b:=$; fi
a:=a+1; endfor; b*unit
enddef;
dh#:=0.6designsize;
superness:=(9/256)[sqrt 0.5,1];
superbowl:=(25/256)[sqrt 0.5,1];
math_spread:=gen(1)(-0.4,-0.2,0.2,0.4,0.6,0.8,1);
%
% Specific parameters
%
thin1# :=gen(1/36pt#)(18,14,12,11.5,11,10.5,10,9.5);
thick1# :=gen(1/36pt#)(43.5*(32.5/20),43.5*(23.5/20),43.5,0.8[30,43.5],
0.6[30,43.5],0.4[30,43.5],0.2[30,43.5],0.0[30,43.5]);
Thick1# :=gen(1/36pt#)(47.25*(32.5/20),43.5*(23.5/20),47.25,0.8[33.5,47.25],
0.6[33.5,47.25],0.4[33.5,47.25],0.2[33.5,47.25],0.0[33.5,47.25]);
thin2# :=gen(1/36pt#)(18,14,12,11.5,11,10.5,10,9.5);
thick2# :=gen(1/36pt#)(44.75*(32.5/20),43.5*(23.5/20),44.75,0.8[31,44.75],
0.6[31,44.75],0.4[31,44.75],0.2[31,44.75],0.0[31,44.75]);
Thick2# :=gen(1/36pt#)(48.75*(32.5/20),43.5*(23.5/20),48.75,0.8[34.5,48.75],
0.6[34.5,48.75],0.4[34.5,48.75],0.2[34.5,48.75],0.0[34.5,48.75]);
ess# :=gen(1/36pt#)(45*(32.5/20),43.5*(23.5/20),45,0.8[31,45],
0.6[31,45],0.4[31,45],0.2[31,45],0.0[31,45]);
cap_ess# :=gen(1/36pt#)(49*(32.5/20),43.5*(23.5/20),49,0.8[35,49],
0.6[35,49],0.4[35,49],0.8[35,49],0.2[35,49],0.0[35,49]);
dot_size#:=gen(1/36pt#)(66*(32.5/20),43.5*(23.5/20),55,49.5,
44,38.5,33,27.5);
%
% Relative (to Computer Modern) parameters
%
u#:=gen(1/36pt#)( 32.5, 23.5, 20, 18.5, 17, 15.5, 14, 12.5);
letter_fit#:=gen(1/36pt#)( -0.1, 0, 0, 0, 0, 2, 3, 5);
body_height# :=gen(1/36pt#)(466, 324, 270, 243, 216, 189, 162, 135);
asc_height# :=gen(1/36pt#)(432, 300, 250, 225, 200, 175, 150, 125);
cap_height# :=gen(1/36pt#)(425, 295.2, 246, 221.4, 196.8, 172.2, 147.6, 123);
fig_height# :=gen(1/36pt#)(401, 278.4, 232, 208.8, 185.6, 162.4, 139.2, 116);
x_height# :=gen(1/36pt#)(267.5, 186, 155, 139.5, 124, 108.5, 93, 77.5);
math_axis# :=gen(1/36pt#)(155.5, 108, 90, 81, 72, 63, 54, 45);
desc_depth# :=gen(1/36pt#)(121, 84, 70, 63, 56, 49, 42, 35);
o# :=gen(1/36pt#)(10, 9, 8, 7, 6, 5, 4.5, 4);
ho# :=gen(1/36pt#)(10, 9, 8, 7, 6, 5, 4.5, 4);
rule_thickness#:=gen(1pt#)(0.60,0.44,0.4,0.38,0.36,0.34,0.31,0.28);
endinput;
%
% Extra parameters (not usefull and wrong)
%
subs:=gen(1)(8/12,7/10,6/9,6/8,5/7,5/6,5/5);
rth'#:=0.4pt#;
fontdimen8:
math_axis#+3.51rth'#+36/36pt#+subs*desc_depth#, % num1
math_axis#+1.51rth'#+gen(1/36pt#)(30,30,30,24,12,9,3), % num2
math_axis#+1.51rth'#+gen(1/36pt#)(48,48,43,38,34,29,24), % num3
-(math_axis#-3.51rth'#-subs*fig_height#
-gen(1/36pt#)(124,124,111,98,86,74,63)), % denom1
-(math_axis#-1.51rth'#-subs*fig_height#
-gen(1/36pt#)(30,30,30,24,12,9,3)), % denom2
gen(1pt#)(8.99,8.99,8.49,7.49,6.99,6.49,5.99)-subs*asc_height#,% sup1
gen(1pt#)(8.49,8.49,7.99,7.99,6.49,5.99,5.49)-subs*asc_height#,% sup2
gen(1/36pt#)(104,104,), % sup3
gen(1/36pt#)(54,54,36,36,36,36,,36), % sub1
-(if gen_<3:if gen_<2: 8.49pt# else: 7.99pt# fi
-2subs*asc_height#-0.31rth'#
else: gen(1/36pt#)(0,0,72,72,72,72) fi), % sub2
subs*asc_height#-36/36pt#, % sup_drop
18/36pt#, % sub_drop
gen(1pt#)( 23.9, 23.9, 23.9, 11.9, 11.9, 11.9, 9.9), % delim1
gen(1pt#)( 10.1, 10.1, 9.1, 9.1, 8.1, 8.1, 7.1), % delim2
math_axis#;
|