summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/fonts/source/public/cmbright/brmsb.mf
blob: 081e4acaf38f60589441cf9024f87458b8e12c8e (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
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
% MSB symbols, bright style [1996/07/02 v1.0 (WaS)]

cmchar "Lowercase variation of Greek kappa";
% will use same dimensions as standard Greek lowercase kappa
% see vol E, p 155.
beginchar(oct"173", 12u#, x_height#, 0);
italcorr 1/3x_height#*slant+.5hair#+.5u#;
adjust_fit(0,0); pickup rule.nib;
pos1(stem,0); pos2(stem,0);x1l=hround(2u-.5stem); x2r=w-x1l;
top y2+.3stem=h+oo; bot y1-.3stem=-oo;
filldraw z1l---z2l...z2r---z1r...cycle;
pickup crisp.nib;
pos3(hair,180); x3=lft x1l; y3=3/4h; pos4(stem,90); 
top y4r+.15stem=h+oo; x4-x3=.05[x1,x2]; 
pos4'(hair,0); y4'=y3; x4'=1/4[x1,x2];
pos5(hair,90); z5=z1; 
filldraw super_arc.r(3,4)&super_arc.r(4,4')...{z1-z2}z5&z5{z2-z1}
...super_arc.l(4',4)&super_arc.l(4,3)---cycle; % left arm
pos8(hair,-90); pos6(hair,0);                     
z8=z2; pos7(stem, -90); bot y7r-.15stem=-oo; x6-x7=x4-x3;
x6=w-x3; 
pos7'(hair,180); y7'=y6; x7'=w-x4';
y6=h-y3;
filldraw super_arc.r(6,7)&super_arc.r(7,7')...{z2-z1}z8&z8{z1-z2}
...super_arc.l(7',7)&super_arc.l(7,6)---cycle; % right arm
%filldraw z8{z1-z2}..z7l...{up}z6r---z6l{-u,-2u}...z7r..{z2-z1}z8---cycle; %right arm
penlabels(range 1 thru 8,4'); endchar;

cmchar "H-bar symbol, slanted bar";
beginchar(oct"175",10u#,asc_height#,0);
italcorr .5[bar_height#,x_height#]*slant-serif_fit#+.5stem#-2u#;
adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#);
pickup tiny.nib; pos1(stem,0); pos2(stem,0);
pos1'(stem',0); pos2'(stem',0); pos3(stem,0);
lft x1l=hround(2.5u-.5stem); x1l=x1'l=x2l=x2'l; x3=w-x1;
top y1=h; bot y2=0; y1=y1'; y2=y2';
filldraw stroke z1'e--z2'e;  % left stem
h_stroke(2,a,3,4);  % arch and right stem
if serifs: sloped_serif.l(1',2',b,1/3,jut,serif_drop); % upper left serif
 numeric inner_jut; pickup tiny.nib;
 if rt x2r+jut+.5u+1<=lft x4l-jut: inner_jut=jut;
 else: rt x2r+jut+.5u+1=lft x4l-inner_jut; fi
 dish_serif(2,1,c,1/3,jut,d,1/3,jut); % lower left serif
 dish_serif(4,3,e,1/3,inner_jut,f,1/3,jut); fi % lower right serif

numeric macron_breadth; macron_breadth:=Vround .2[vair,stem];
pickup if serifs: crisp.nib else: fine.nib fi;
pos5(macron_breadth,90); pos6(macron_breadth,90);
y5=0.7h; y6=7/8h;
lft x5=w-2.5u-rt x6=hround 0.5u;
filldraw stroke z5e--z6e;  % bar

penlabels(1,2,3,4,5,6); endchar;

cmchar "H-bar symbol, vertical bar";
beginchar(oct"176",10u#,asc_height#,0);
italcorr .5[bar_height#,x_height#]*slant-serif_fit#+.5stem#-2u#;
adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#);
pickup tiny.nib; pos1(stem,0); pos2(stem,0);
pos1'(stem',0); pos2'(stem',0); pos3(stem,0);
lft x1l=hround(2.5u-.5stem); x1l=x1'l=x2l=x2'l; x3=w-x1;
top y1=h; bot y2=0; y1=y1'; y2=y2';
filldraw stroke z1'e--z2'e;  % left stem
h_stroke(2,a,3,4);  % arch and right stem
if serifs: sloped_serif.l(1',2',b,1/3,jut,serif_drop); % upper left serif
 numeric inner_jut; pickup tiny.nib;
 if rt x2r+jut+.5u+1<=lft x4l-jut: inner_jut=jut;
 else: rt x2r+jut+.5u+1=lft x4l-inner_jut; fi
 dish_serif(2,1,c,1/3,jut,d,1/3,jut); % lower left serif
 dish_serif(4,3,e,1/3,inner_jut,f,1/3,jut); fi % lower right serif

numeric macron_breadth; macron_breadth:=Vround .2[vair,stem];
pickup if serifs: crisp.nib else: fine.nib fi;
pos5(macron_breadth,90); pos6(macron_breadth,90);
top y5r=top y6r=0.81h; %h+o; 
lft x5=w-2.5u-rt x6=hround 0.5u;
filldraw stroke z5e--z6e;  % bar

penlabels(1,2,3,4,5,6); endchar;

cmchar "Reversed, reflected, lowercase Greek epsilon";
beginchar(oct"177",8u#,x_height#,0);
italcorr x_height#*slant+.5hair#-2u#;
adjust_fit(0,0); pickup fine.nib;
pos0(bar,90); pos1(bar,90); pos2(curve,180);
pos3(vair,270); pos4(hair,300); pos6(bar,90); pos7(bar,90);
x1=.5w+.5u; x0=x1+u; lft x2r=hround(1.5u-.5curve); x3=.5[x0,x1];
x4r=good.x(w-u); x5=w+.5u; x6=x0; z7=z2l;
top y0r=top y1r=h; y2=y5=y6=bar_height; bot y3r=-oo;
path p; p=z3r{right}...{up}z5;
numeric t; t=ypart(((x4r,y3r)--(x4r,y5))intersectiontimes p);
y4r=ypart point t of p;
filldraw circ_stroke z0e..pulled_arc.e(1,2) & pulled_arc.e(2,3)
 ...z4e{direction t of p};  % arc
filldraw circ_stroke z6e--z7e;  % bar
math_fit(-.3x_height#*slant+.5curve#-u#,ic#);
picture v;
v:=currentpicture; 
v:=v reflectedabout((0,h*aspect_ratio/2),(w,h*aspect_ratio/2)); 
v:=v reflectedabout((w/2,-d),(w/2,h)); 
currentpicture:=v shifted (2u,0);
penlabels(0,1,2,3,4,5,6,7); endchar;

slant:=mono_charic#:=0;  % the remaining characters will not be slanted
currenttransform:=identity yscaled aspect_ratio scaled granularity;

cmchar "Upsidedown, uppercase Greek Omega";
beginchar(oct"146",13u#,cap_height#,0);
italcorr .75cap_height#*slant-.5u#;
adjust_fit(0,0);
pickup tiny.nib; pos1(vair,90); pos2(cap_curve,180);
pos3(vair,180); pos4(cap_curve,0); pos5(vair,0);
x1=.5w; top y1r=h+o; lft x2r=hround u; y2=y4=2/3h; x4=w-x2;
rt x3l=hround(1/3(w+.5u)+.5hair); bot y3=bot y5=0; x5=w-x3;
filldraw stroke z3e{up}...{up}z2e
 & pulled_super_arc.e(2,1)(.5superpull)
 & pulled_super_arc.e(1,4)(.5superpull)
 & z4e{down}...{down}z5e;  % bowl
numeric arm_thickness; path p; p=z3{up}...{up}z2;
arm_thickness=Vround(if hefty:slab+2stem_corr else:.75[slab,cap_vstem] fi);
pickup crisp.nib; pos6(arm_thickness,-90); pos7(fudged.hair,-180);
bot y6r=0; x6=x3; lft x7r=hround .8u; y7=good.y(y6l+.5beak)+eps;
(x,y)=p intersectionpoint((0,y6l)--(w,y6l)); x6l:=x;
arm(6,7,a,.5beak_darkness,-1.2beak_jut);  % left arm and beak
pos8(arm_thickness,-90); pos9(fudged.hair,0);
y8=y6; y9=y7; x8+x6=x9+x7=w; x8l:=w-x6l;
arm(8,9,b,.5beak_darkness,1.2beak_jut);  % right arm and beak
%math_fit(0,.5ic#);
picture v; v:=currentpicture; 
numeric t; t=h-d;
v:=v reflectedabout((0,0),(w,0));
currentpicture:=v shifted(0,aspect_ratio*cap_height);
penlabels(1,2,3,4,5,6,7,8,9); endchar;

cmchar "The letter Edh (Old English rune, like thorn)";
% adapted from cm partial differential sign, vol E, p 233.
beginchar(oct"147",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; 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]);
x2:=x5; x2l:=x2r:=x2;
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); % commenting out the arc and bulb
%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#);
pickup pencircle xscaled 1.4rule_thickness yscaled .5rule_thickness;
x10=x11=x5; x12=x13=w-x10; y10=y13;
y10-y11=y12-y13=cap_stem; .5[y11,y10]=.5[y6,y2];
draw z10--z11--z12--z13; % cross piece
penlabels(2,3,4,5,6,7,10,11,12,,13); endchar;