% This file contains special letters and letter combinations,
% compatible with the alphabet `{\tt romanu}'.

% Codes \0035--\0037 are generated.

cmchar "The ligature AE";
beginchar(oct"035",16u#,cap←height#,0);
italcorr cap←height#*slant-beak←jut#-.5u#;
adjust←fit(cap←serif←fit#,0);
numeric left←stem,mid←stem,outer←jut,alpha;
mid←stem=max(tiny.breadth,hround .9[mfudged.hair,mfudged.cap←stem]);
pickup tiny.nib; pos1(mid←stem,0); pos2(mid←stem,0);
lft x1l=lft x2l=hround(if monospace or hefty:.55 else:.5 fi\\w-.75u);
top y1=h; bot y2=0;
filldraw stroke z1e--z2e; % stem
pickup crisp.nib; pos3(slab,90); pos4(mfudged.hair,0);
top y3r=h; x3=x1; rt x4r=hround(w-u); y4=good.y(y3l-beak)-eps;
arm(3,4,e,beak←darkness,beak←jut);  % upper arm and beak
pos5(cap←bar,-90); pos6(mfudged.hair,0); x5=x1;
top y5l=vround(if hefty:.52 else:.48 fi\\[y2,y1]+.5cap←bar);
pos0(cap←bar,90); pos7(mfudged.hair,0);
z0=z5; x6=x7; y6-y5l=y0l-y7;
if serifs and not(monospace and hefty): rt x6r=hround(w-3.65u+.5mfudged.hair);
 y6=good.y(y5l+.6beak)+eps; rt x9r=hround(w-.5u);
else: rt x6r=hround(w-1.5u); y6=y5l+eps; rt x9r=hround(w-.75u); fi
arm(5,6,f,beak←darkness,0); arm(0,7,g,beak←darkness,0);  % middle arm and serif
pos8(slab if not serifs:+2stem←corr fi,-90);
pos9(mfudged.hair,0); bot y8r=0; x8=x2; y9=good.y(y8l+7/6beak)+eps;
arm(8,9,h,beak←darkness,1.5beak←jut);  % lower arm and beak
left←stem=if monospace:fudged.hair else: cap←hair fi if hefty: -3stem←corr fi;
outer←jut=.8cap←jut; x11l=l+letter←fit+outer←jut+.5u; y11=0;
x12=x1l-apex←corr-if monospace:2 fi\\u; y12=h;
alpha=diag←ratio(1,.5left←stem,y12-y11,x12-x11l);
penpos11(alpha*left←stem,0); penpos12(alpha*left←stem,0);
fill diag←end(12l,11l,1,1,11r,12r)
 --diag←end(11r,12r,1,1,12l,11l)--cycle; % diagonal
y10=h-slab; z10=whatever[z11,z12];
fill z10--(x1,y10)--(x1,h)--z12--cycle;  % link
penpos13(whatever,angle(z2-z1)); z13=whatever[z11,z12];
penpos14(cap←band,90); x14=x0; y13l=y14l; y13r=y14r;
if hefty: y14r=.4h; else: y14=y0; fi
penstroke z13e--z14e; % bar line
if serifs: numeric inner←jut; pickup tiny.nib;
 prime←points←inside(11,12);
 if rt x11'r+cap←jut+.5u+1<=lft x2l-.75cap←jut: inner←jut=cap←jut;
 else: rt x11'r+inner←jut+.5u+1=lft x2l-.75inner←jut; fi
 dish←serif(11',12,i,1/2,outer←jut,j,.6,inner←jut)(dark);  % lower left serif
 dish←serif(1,2,a,1/3,cap←jut+x1l-x12,b,1/3,.5cap←jut);  % upper serif
 dish←serif(2,1,c,1/3,.75inner←jut,d,1/3,.5cap←jut); fi  % lower middle serif
penlabels(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14); endchar;

cmchar "The ligature OE";
beginchar(oct"036",18u#,cap←height#,0);
italcorr cap←height#*slant-beak←jut#-.5u#;
adjust←fit(cap←serif←fit#,0);
numeric light←stem;
light←stem=max(tiny.breadth,hround .8[mfudged.hair,mfudged.cap←stem]);
pickup tiny.nib; pos1(light←stem,0); pos2(light←stem,0);
lft x1l=lft x2l=hround .5w; top y1=h; bot y2=0;
filldraw stroke z1e--z2e; % stem
pickup crisp.nib; pos3(slab,90); pos4(mfudged.hair,0);
top y3r=h; x3=x1; rt x4r=hround(w-u); y4=good.y(y3l-beak)-eps;
arm(3,4,e,beak←darkness,beak←jut);  % upper arm and beak
pos5(cap←bar,-90); pos6(mfudged.hair,0);
top y5l=vround(.52[y2,y1]+.5cap←bar); x5=x1;
pos0(cap←bar,90); pos7(mfudged.hair,0);
z0=z5; x6=x7; y6-y5l=y0l-y7;
if serifs and not(monospace and hefty): rt x6r=hround(w-3.4u+.5mfudged.hair);
 y6=good.y(y5l+.6beak)+eps; rt x9r=hround(w-.5u);
else: rt x6r=hround(w-1.5u); y6=y5l+eps; rt x9r=hround(w-.75u); fi
arm(5,6,f,beak←darkness,0); arm(0,7,g,beak←darkness,0);  % middle arm and serif
pos8(slab if not serifs:+2stem←corr fi,-90);
pos9(mfudged.hair,0); bot y8r=0; x8=x2; y9=good.y(y8l+7/6beak)+eps;
arm(8,9,h,beak←darkness,1.5beak←jut);  % lower arm and beak
penpos11(vair,90); penpos13(vair,-90);
if monospace: penpos12(fudged.cap←stem,180);
 interim superness:=sqrt superness;  % make |"O"|, not |"0"|
else: penpos12(hround(cap←curve-stem←corr),180); fi
x11=x13=.5w-2u; y11r=h+o; y13r=-o; y12=.5h-vair←corr; x12r=hround u;
x14=x15=.5w; y14=2/3h; y15=1/3h; y12l:=.52h;
penstroke super←arc.e(11,12) & super←arc.e(12,13);  % left half of bowl
fill z13r{right}..{right}(x2,0)--(x1,h){left}..{left}z11r
 --z11l{right}...{z14-z11l}(.82[x11l,x14],.82[y14,y11l])
 ...z14---z15...{z13l-z15}(.82[x13l,x15],.82[y15,y13l])
 ...{left}z13l--cycle;  % right half of bowl
if serifs: serif(1,2,a,1/3,.5cap←jut);  % upper serif
 serif(2,1,b,1/3,.5cap←jut); fi  % lower serif
penlabels(0,1,2,3,4,5,6,7,8,9,11,12,13,14,15); endchar;

cmchar "Scandinavian letter O/slash";
beginchar(oct"037",14u#,cap←height#+.25desc←depth#,.25desc←depth#);
italcorr .7cap←height#*slant-.5u#;
adjust←fit(0,0);
penpos1(vair,90); penpos3(vair,-90);
penpos2(fudged.cap←stem,180); penpos4(fudged.cap←stem,0);
if monospace: x2r=hround 1.5u;
 interim superness:=sqrt superness;  % make |"O"| not |"0"|
else: x2r=hround u; fi
x4r=w-x2r; x1=x3=.5w;
y1r=cap←height+o; y2=y4=.5cap←height-vair←corr; y3r=-o;
penstroke pulled←arc.e(1,2) & pulled←arc.e(2,3)
 & pulled←arc.e(3,4) & pulled←arc.e(4,1) & cycle;  % bowl
x5=x4-vair; x6=x2+vair; y5=h; y6=-d;
numeric theta; theta=angle(z5-z6)-90;
pickup crisp.nib; pos5(vair',theta); pos6(vair',theta);
filldraw stroke z5e--z6e;  % diagonal
penlabels(1,2,3,4,5,6); endchar;