summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/fonts/source/public/cmbright/bitalms.mf
blob: d53d62f7440b4cb8db1b6c5090935d1d0549e988 (plain)
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
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
% This file contains miscellaneous symbols of math italic fonts.
% The character codes are \0100, \0140, and \0173--\0177.
% Changed for the CM Bright fonts [1995/10/18 v0.998 WaS];
% changes are marked by (CMBR).

cmchar "Partial differential sign";
beginchar(oct"100",10u#,asc_height#,0);
italcorr .7asc_height#*slant+.5curve#-1.5u#;
adjust_fit(0,0);
numeric top_thickness,bot_thickness,side_thickness,pull;
top_thickness=max(fine.breadth,vround(slab-2vair_corr));
bot_thickness=max(fine.breadth,vround(slab-vair_corr));
side_thickness=max(fine.breadth,hround 1/3[curve,cap_curve]);
pull=min(.25,1.5superpull);
pickup fine.nib; pos2(top_thickness,90);
pos3(side_thickness,0); pos4(bot_thickness,-90);
pos5(side_thickness,-180); pos6(vair,-270);
lft x5r=w-rt x3r=hround max(.75u,1.5u-.5side_thickness);
x4=x6+.1u=x2+u=.5w;
top y2r=h+o; y3=.5[y2,y4]; bot y4r=-o;
y5=.5[y4,y6]; top y6=vround 5/8h+o;
path p; {{interim superness:=more_super; p=pulled_super_arc.l(3,4)(pull)}};
numeric t; t=xpart(p intersectiontimes((x3r,y5)--(x4,y5)));
pos7(thin_join,0); z7l=point t of p;
(x,y6r)=whatever[z7l,z6l]; x6r:=max(x,.5[x5r,x6]);
filldraw stroke pulled_super_arc.e(2,3)(pull)
 & {{interim superness:=more_super; pulled_super_arc.e(3,4)(pull)}}
 & {{less_tense; pulled_super_arc.e(4,5)(pull) & pulled_super_arc.e(5,6)(pull)}}
 & z6e{right}...{direction t of p}z7e;  % arc and bowl
pos1(hair,180); pos0(flare,180);
lft x0r=min(lft x2-eps,hround 1.2u);
y0=vround min(.85h-.5flare,.8h+.5flare)+o;
{{less_tense; bulb(2,1,0)}};  % arc and bulb
math_fit(-.3x_height#*slant+.5curve#-u#,ic#-u#);
penlabels(0,1,2,3,4,5,6,7); endchar;

cmchar "Lowercase italic script l";
beginchar(oct"140",4.5u#+max(1.5u#,stem#),asc_height#,0);
italcorr .8asc_height#*slant-u#;
adjust_fit(if monospace:u#,u# else: 0,0 fi); pickup fine.nib;
pos1(hair,-45); pos2(hair,0); pos3(vair,90);
pos4(stem,180); pos5(vair,270); pos6(hair,315);
lft x1l=hround(lft x1l-x1); rt x2r=hround(w-1.5u); x3=.5w;
lft x4r=hround .5u; x5=x3+.75u; x6=x1+w+1;
y1=y6=.125h; y2=.8h; top y3r=h+oo; y4=.5[y3,y5]; bot y5=-oo;
filldraw stroke z1e{10u,asc_height}...z2e{up}...pulled_arc.e(3,4)
 & pulled_arc.e(4,5)...z6e{10u,asc_height};  % bowl and hook
math_fit(0,ic#); penlabels(1,2,3,4,5,6); endchar;

cmchar "Dotless letter i"; % (CMBR)
beginchar(oct"173",5u#,x_height#,0);
italcorr x_height#*slant-serif_fit#+.5stem#-2u#;
adjust_fit(serif_fit#+stem_shift# if monospace:+.25u#fi,serif_fit#-stem_shift#);
pickup tiny.nib; pos1(stem',0); pos2(stem',0);
if odd(w-stem'): change_width; fi
lft x1l=hround(.5w-.5stem'); x1=x2;
top y1=x_height if serifs: +min(oo,serif_drop) fi; bot y2=0;
filldraw stroke z1e--z2e;  % stem
if serifs: sloped_serif.l(1,2,a,1/3,.95jut,serif_drop);  % upper serif
 dish_serif(2,1,b,1/3,jut,c,1/3,.9jut); fi  % lower serif
penlabels(1,2); endchar;

cmchar "Dotless letter j"; % (CMBR)
beginchar(oct"174",5.5u#,x_height#,desc_depth#);
italcorr x_height#*slant-serif_fit#+.5stem#-2u#;
adjust_fit(serif_fit#+2stem_shift# if monospace:+.5u# fi,
 serif_fit#-2stem_shift# if monospace:-.5u# fi);
pickup tiny.nib; pos1(stem',0); pos2(stem',0);
rt x1r=hround(.5w+.25u+.5stem'); x1=x2;
top y1=x_height if serifs: +min(oo,serif_drop) fi; bot y2=-1/3d;
filldraw stroke z1e--z2e;  % stem
if serifs: sloped_serif.l(1,2,a,1/3,1.1jut,serif_drop);  % upper serif
 pickup tiny.nib; pos5(vair,-90); pos6(hair,-180); pos7(flare,-180);
 x5=.5[x2,x6r]; bot y5r=-d-oo; y6-.5flare=-.88d;
 if monospace: lft x6r=0 else: z6r=z7r; rt x7l=floor .75u fi;
 (x,y5r)=whatever[z5l,z2l]; x5r:=max(x,.5[x6r,x5]);
 filldraw stroke z2e{down}...z5e{left};  bulb(5,6,7); % arc and bulb
else: pickup fine.nib; pos2'(stem',0); z2'=z2;
 pos6(.2[vair,stem'],-90); pos7(vair,-90);
 lft x7r=hround -.75u; bot y7r=vround 5/6(-d-oo);
 x3r=x1r; top y4r=min(2x_height,h+1);
 (x,y7l)=whatever[z7r,(x1,min(h,asc_height))]; x7l:=x;
 z5r=z2'r; (x2'l,y5l)=whatever[z7l,z5r]; x5l=x2'l; y5=y5r;
 x6r=.5[x7r,x5r]; x6l:=.5[x7l,x5l]; bot y6r=-d-oo;
 filldraw stroke z2'e..{down}z5e & super_arc.e(5,6)
  & term.e(6,7,left,1,4); fi  % arc and terminal
penlabels(1,2,5,6,7); endchar;

cmchar "Weierstrass p";
beginchar(oct"175",11u#,x_height#,desc_depth#);
italcorr .7x_height#*slant+.5stem#-u# if math_fitting:-.5u# fi;
adjust_fit(0,0); pickup fine.nib;
numeric theta; theta=90-angle(8u,h); slope:=-h/8u;  % angle at middle
pos2(vair,-90); pos1(vstem,theta); pos7(vair,-90);
x2+.5u=x1=x7-.5u=3u; top y2l=h+o; bot y7r=-d-o; y1=.4[-d,h];
lft x3l=hround .5u; rt x6r=hround max(rt x7+.5,.5w-.25u);
x3r-x3l=x6r-x6l=(hround .5[vair,vstem])-fine;
ellipse_set(2l,3l,4l,1l); ellipse_set(2r,3r,4r,1r); y3=y3r;
ellipse_set(7l,6l,5l,1l); ellipse_set(7r,6r,5r,1r); y6=y6r;
filldraw stroke super_arc.e(2,3) & z3e{down}
 ..z4e---z5e..z6e{down} & super_arc.e(6,7);  % flourish
pos8(hair,180); pos9(vair,90); pos10(stem,0);
pos11(vair,-90); pos12(hair,-180); pos13(.3[hair,flare],-180);
rt x10r=hround(w-1.5u+.5stem); lft x12r=hround(.5w-.5u);
rt x8l=hround 2.25u; x9=x11=max(x12l+eps,.5w+1.5u);
y8=0; top y9r=vround(.9h+o); y10=.5[y9,y11]; bot y11r=-oo;
filldraw stroke z7e{left}...z8e{up}...pulled_arc.e(9,10)
 & pulled_arc.e(10,11);  % stem and bowl
y13-.5(.6[hair,flare])=.15h; bulb(11,12,13);  % bulb
math_fit(0,ic#); penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13); endchar;

cmchar "Arrow (vector) accent";
beginchar(oct"176",9u#,asc_height#+.5rule_thickness#,0);
italcorr .7[x_height#,asc_height#]*slant;
adjust_fit(0,0); pickup rule.nib;
lft x1=hround .5u; x2=w-x1; y1=y2=good.x .7[x_height,asc_height];
draw z1--z2;  % bar
rt x3=rt x4=hround(x2-u);
y3=y2+.3(asc_height-x_height); y4=y2-.3(asc_height-x_height);
draw z3{x2-x3,2(y2-y3)}...{2(x2-x3),y2-y3}z2;  % upper point
draw z4{x2-x4,2(y2-y4)}...{2(x2-x4),y2-y4}z2;  % lower point
labels(1,2,3,4); endchar;

cmchar "Tie accent";
beginchar(oct"177",5u#,asc_height#,0);
italcorr 4/9[x_height#,asc_height#]*slant+4.5u#+2letter_fit#+.5hair#;
adjust_fit(if monospace:2u#,2u# else:serif_fit#,serif_fit# fi);
pickup fine.nib; pos1(hair,180); pos2(vround 1/5[vair,stem],90); pos3(hair,0);
lft x1r=hround(.5w-.5hair); x2=.5[x1,x3];
rt x3r=hround(w+4u+2letter_fit+.5hair);
y1=y3=4/9[x_height,asc_height]; top y2r=vround 8/9[x_height,asc_height];
filldraw stroke super_arc.e(1,2) & super_arc.e(2,3);  % arc
penlabels(1,2,3); endchar;