% x_height high small cap characters cmchar "The letter smallcap I"; newchar(Ismal,max(6u#,4u#+cap_stem#),x_height#,0); italcorr x_height#*slant-.25u#; adjust_fit(cap_serif_fit#,cap_serif_fit#); pickup tiny.nib; pos1(stem,0); pos2(stem,0); lft x1l=lft x2l=hround(.5w-.5stem); top y1=h; bot y2=0; filldraw stroke z1e--z2e; % stem if serifs: dish_serif(1,2,a,1/3,1.05cap_jut,b,1/3,1.05cap_jut); % upper serif dish_serif(2,1,c,1/3,1.05cap_jut,d,1/3,1.05cap_jut); fi % lower serif pairequate(tca,z1); %top center accentpoint pairequate(lca,z2); %low center accentpoint pairequate(tra,tca); %top right accentpoint pairequate(tla,tca); %top left accentpoint pairequate(lla,lca); %low left accentpoint pairequate(lra,lca); %low right accentpoint math_fit(0,.5ic#); penlabels(1,2); endchar; cmchar "The letter smallcap U"; newchar(Usmal,9u#+.5width_adj#,x_height#,0); italcorr x_height#*slant-serif_fit#+jut#-2.5u#+min(.5cap_stem#,u#); if monospace: adjust_fit(serif_fit#-.5u#,serif_fit#-.5u#) else: adjust_fit(serif_fit#,serif_fit#) fi; pickup tiny.nib; pos1(stem,0); pos2(stem,0); pos2'(stem,180); z2'=z2; %pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0); %pos2'(cap_stem,180); z2'=z2; pos3(cap_band,-90); pos4(cap_hair,0); pos5(cap_hair,0); x1=x2; x3=.5[x1,x5]; x4=x5; x1l=w-x5r; top y1=top y5=h; y2=y4=1/3h; bot y3r=-o; lft x1l=hround max(u,2u-.5cap_stem); filldraw stroke z1e--z2e; % left stem filldraw stroke pulled_arc.e(2',3) & pulled_arc.e(3,4)&z4e--z5e; % arc and right stem if serifs: dish_serif(1,2,a,1/3,.5jut,b,1/3,.5jut); % left serif dish_serif(5,4,c,1/2,.5jut,d,1/2,.5jut)(dark); fi % right serif math_fit(-serif_fit#-.3x_height#*slant-min(x_height#*slant,u#), max(.5ic#-.5u#,0)); pairassign(tca,.5[x1,x5],y5); %top center accentpoint pairequate(lca,z3); %low center accentpoint pairequate(tra,z5); %top right accentpoint pairequate(tla,z1); %top left accentpoint pairequate(lla,lca); %low left accentpoint pairequate(lra,lca); %low right accentpoint penlabels(1,2,3,4,5); endchar;