% 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;

