% Accented Turkish based on Computer Modern Roman lower case:
% These letters were originally coded by D. E. Knuth in November, 1979,
% inspired by the Monotype faces used in {\sl The Art of Computer Programming}.
% Sans serif designs by Richard Southall were added in April, 1982.
% The programs were revised for the new \MF\ conventions in 1985.
% Accents added by P. A. MacKay in December, 1986.
% Accents are intended to be exact copies of the accents in the
% Computer Modern file accent.mf, with the following exceptions:
% 1. Bar accents are adjusted to the width of the associated letter.
% 2. The hat accent is pinched in to fit the letter i.
% 3. Acute and grave accents are rotated to whatever angle
% best suits the letter associated letter.
% 4. The under_h accent is based on an inverted tie accent.
% No attempt is made to put the accent in the same position
% that it would occupy if \TeX\ put it in with the \accent primitive.
% Each accent has been adjusted for vertical and horizontal position
% position to best fit the associated letter.
% Character codes \0033--\0037, \0053, \0074--\0076, \0176 and \0177
% are generated.
% Character \0040 is generated |iff not monospace|.
if unknown accsub: input accsub fi
cmchar "The letter hatted a";
beginchar(oct "074",9u#,if serifs: if .5(asc_height#-x_height#)>1.5stem#:
.8[x_height#,asc_height#] else:asc_height# fi
else:asc_height# fi, 0);
bh#:=min(bar_height#,1.14x_height#-bar_height#); define_pixels(bh);
italcorr 2/3[x_height#,asc_height#]*slant+.5stem#-serif_fit#-if serifs: 3 fi u#;
adjust_fit(0,serif_fit# if serifs: if hair#+.5stem#>1.5u#:-.25u# fi\\fi);
pickup fine.nib; top y3r=x_height+vround 1.5oo;
if serifs: pos1(flare,180); pos2(hair,180);
pos3(vair,90); lft x1r=hround max(u,2.1u-.5flare); x3=.5w-.5u;
y1=min(bh+.5flare+2vair+2,.9[bh,x_height]-.5flare);
bulb(3,2,1); % bulb
else: pos1(5/7[vair,flare],95); x1l=good.x 1.5u; x1r:=good.x x1r;
pos3(1/8[vair,thin_join],90);
x3=.5w-.2u; top y1r=vround .82[bh,top y3r];
filldraw stroke term.e(3,1,left,.9,4); fi % terminal
pos4(stem,0); rt x4r=hround(w-2.5u+.5stem); y4=1/3[bh,x_height];
pos5(stem,0); x5=x4; y5=max(.55bh,2vair);
filldraw stroke super_arc.e(3,4)&z4e..z5e; % arc and stem
pos6(.3[thin_join,vair],90); x6=x4; bot y6=bh;
pos7(hround(curve-2stem_corr),180);
lft x7r=hround max(.5u,1.5u-.5curve); y7=1/3[top y8l,top y6r];
pos8(vair,270); x8l=.5w-.75u; bot y8r=-oo;
pos9(thin_join,360); z9l=z5l;
(x,y8r)=whatever[z8l,z9l]; x8r:=max(x,x8-u);
{{interim superness:=more_super;
filldraw stroke z9e{down}...z8e{left}...{up}z7e&super_arc.e(7,6)}}; % bowl
if serifs: numeric shaved_stem; shaved_stem=hround(stem-3stem_corr);
if hair#+.5stem#>1.5u#: pickup tiny.nib;
pos5'(shaved_stem,0); rt x5'r=fine.rt x5r; y5'=y5;
pos10(shaved_stem,0); x10=x5'; y10=.2[.5tiny,bh];
pos11(shaved_stem,0); rt x11r=hround(w-.25u); bot y11=0;
pos12(shaved_stem,0); x11=x12; top y12=slab+eps;
filldraw z5'l---z10l...z11l{right}--z11r
--z12r{left}...z10r+.75(z12-z11)---z5'r--cycle; % foot
else: pickup crisp.nib; pos5'(shaved_stem,0); rt x5'r=fine.rt x5r; y5'=y5;
pos10(shaved_stem,0); x10=x5'; y10=1/3bh;
pos11(.2[vair,stem],90); x11r=.5[x10r,x12r]; bot y11l=-vround .5oo;
pos12(hair,180); rt x12l=hround(w-.1u); y12=max(y10,y11+vair);
pos13(hair,180); x13=x12; top y13=max(vround .6bh,top y12);
(x',y11l)=whatever[z11r,z12r]; x11l:=max(x',x10);
filldraw stroke z5'e---z10e...z11e{right}...z12e---z13e; fi % hook
else: numeric shaved_stem; shaved_stem=hround(stem-stem_corr);
pickup tiny.nib; pos5'(shaved_stem,0); rt x5'r=fine.rt x5r; y5'=y5;
pos10(shaved_stem,0); x10=x5'; bot y10=0;
filldraw stroke z5'e--z10e; fi % base of stem
numeric hat_shift; if h<asc_height:hat_shift=-.2(asc_height-x_height);
else:hat_shift=0; fi
hat_accent(3,a,hat_shift);
penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13); endchar;
cmchar "The letter chim";
beginchar(oct "033",8u#,x_height#,.875desc_depth#);
italcorr x_height#*slant-.2u#;
adjust_fit(if monospace: .5u#,.5u# else: 0,0 fi);
pickup fine.nib; pos2(vair',90); pos4(vair',270);
x2=x4=.5(w+u); top y2r=vround(h+1.5oo); bot y4r=-oo;
pos3(curve,180); lft x3r=hround max(.6u,1.35u-.5curve); y3=.5h;
if serifs: pos1(hair,0); pos0(flare,0);
y1=min(bar_height+.5flare+2vair'+2,.9[bar_height,h]-.5flare);
rt x1r=hround(w-.7u); bulb(2,1,0); % bulb
pos5(hair,0); rt x5r=hround(w-.5u);
y5=max(good.y(.5bar_height-.9),y4l+vair');
(x,y4l)=whatever[z4r,z5l]; x4l:=min(x,x4l+.5u);
filldraw stroke pulled_super_arc.e(2,3)(.7superpull)
& pulled_super_arc.e(3,4)(.5superpull)
..tension .9 and 1..{x5-x4,5(y5-y4)}z5e; % arc and lower terminal
else: pos1(4/7[vair',flare],80);
rt x1r=hround(w-.6u); top y1r=vround .82[bar_height,top y2r];
filldraw stroke term.e(2,1,right,.8,4); % upper terminal
pos5(.6[vair',flare],275); rt x5r=hround(w-.5u);
y5r=good.y(y5r+1/3bar_height-y5); y5l:=good.y y5l; x5l:=good.x x5l;
forsuffixes e=l,r: path p.e; p.e=z4e{right}..tension .9 and 1..z5e;
if angle direction 1 of p.e>75:
p.e:=z4e{right}..tension atleast.9 and 1..{dir 75}z5e; fi endfor
filldraw stroke pulled_super_arc.e(2,3)(.7superpull)
& pulled_super_arc.e(3,4)(.5superpull) & p.e; fi % arc and lower terminal
cedilla_accent(4,a,o if serifs: -crisp fi);
penlabels(0,1,2,3,4,5); endchar;
% cupped g. This is fairly straightforward, except for the
% lengthy calculation of cup_shift. To understand that, you must
% look at the dimension calculations and use of mid_thickness
% in Breve accent in accent.mf. No change to italic correction,
% because right horn of cup will always fall to left of hook of g.
iff not variant_g: cmchar "The letter cupped g";
beginchar(oct "035",9u#,min(asc_height#,2x_height#),desc_depth#);
italcorr x_height#*slant+.25u#;
adjust_fit(0,0);
numeric light_vair,light_curve,loop_top,loop_side;
light_vair=Vround(.5[thin_join,vair]+vair_corr);
light_curve=max(fine.breadth,hround(curve-3stem_corr));
loop_top=Vround .77[vair,fudged.stem];
loop_side=hround .64[vair,fudged.stem];
pickup fine.nib; pos1(light_vair,90);
pos2(light_curve,180); pos3(light_vair,270);
pos4(light_curve,360); pos11(loop_top,90);
y11r=good.y(y11r+.15bar_height-y11); x1=x3=.5[x2,x4]; y2=y4=.5[y1,y3];
lft x2r=hround(1.75u-.5light_curve); rt x4r=hround(w-2.75u+.5light_curve);
top y1r=x_height+oo; y3r=good.y(y3r+.27[top y11r,bot y1l]-y3);
filldraw stroke pulled_arc.e(1,2) & pulled_arc.e(2,3); % left half of bowl
filldraw stroke pulled_arc.e(3,4) & pulled_arc.e(4,1); % right half of bowl
x0=superness[x1r,x4r]; y0=superness[y4r,y1r]; % NE point on the super bowl
x8'=superness[x3r,x2r]; y8'=superness[y2r,y3r]; % SW point on the super bowl
x8''=superness[x3,x2]; y8''=superness[y2,y3];
pos0(thin_join,angle(z0-z8')+90);
pos8(thin_join,angle(z0-z8')-90); z8=.618[z8',z8''];
if serifs: pos5(vair,90);
pos6(hair,0); pos7(.5[hair,flare],0); x5=.75[x0,x6]; top y5r=x_height+o;
rt x6r=hround(w-.25u); y6+(.5[hair,flare])/2=.95[bar_height,x_height]+oo;
filldraw stroke z0e..{right}z5e; bulb(5,6,7); % ear
else: pos5(vair',100); top y5r=x_height+oo;
rt x5l=hround(w-.25u); y5l:=good.y y5l;
filldraw z0l{z5-z0}..z5l--z5r{left}..{curl 1}z0r--cycle; fi % ear
pos10(loop_top,90); x10=x8+.75u; y10=y11;
pos12(loop_side,0); pos13(light_vair,-90);
pos14(loop_side,-180); pos10'(.5[thin_join,vair],-270);
rt x12r=hround max(w-1.25u+.5loop_side,w-.5u); y12=y14=.5[y11,y13];
x11=x13=max(.5w,x10+eps); bot y13r=-d-oo-1; x14=w-x12; z10'l=z10l;
filldraw stroke z8e{z8-z0}..z10e---z11e; % link
filldraw stroke {{interim superness:=hein_super; super_arc.e(11,12)}}
& super_arc.e(12,13) & super_arc.e(13,14) & super_arc.e(14,10'); % loop
numeric cup_shift; cup_shift=
x_height+slab-max(x_height+o+tiny,1/3[x_height,asc_height]+o-vround 1/6[vair,stem]);
if cup_shift>0:cup_shift:=0; fi
cup_accent(1,c,cup_shift);
penlabels(0,1,2,3,4,5,6,7,8,10,11,12,13,14); labels(8',8''); endchar;
cmchar "The letter kha";
beginchar(oct "036",10u#,asc_height#,.6desc_depth#);
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
if dish>0: under_h_accent(2,4,k);
else: bar_accent(2,4,k,-8/9desc_depth); fi
penlabels(1,2,3,4); endchar;
cmchar "The letter hatted i";
beginchar(oct"075",5u#,if serifs: if .5(asc_height#-x_height#)>1.5stem#:
.8[x_height#,asc_height#] else:asc_height# fi
else:asc_height# fi, 0);
italcorr if serifs: asc_height#*slant-serif_fit#+.5stem#-2u#;
else: asc_height#*slant+.5stem#; fi
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
numeric hat_shift; if h<asc_height:hat_shift=-.2(asc_height-x_height);
else:hat_shift=0; fi
hat_accent(1,d,hat_shift);
penlabels(1,2); endchar;
cmchar "The letter gnaf";
beginchar(oct "037",10u#,if serifs: if .5(asc_height#-x_height#)>1.5stem#:
.8[x_height#,asc_height#] else:asc_height# fi
else:asc_height# fi, 0);
italcorr .8[x_height#,asc_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);
numeric shaved_stem; shaved_stem=hround(stem-2stem_corr);
pos1'(shaved_stem,0); pos2'(shaved_stem,0); pos3(stem,0);
lft x1l=hround(2.5u-.5stem); x1l=x1'l=x2l=x2'l; x3=w-x1;
top y1=x_height+min(oo,serif_drop); 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 tilde_shift; if h<asc_height:tilde_shift=-.3(asc_height-x_height);
else:tilde_shift=0; fi
x5=hround .5w;
tilde_accent(5,t,tilde_shift);
penlabels(1,2,3,4); endchar;
iff not monospace: cmchar "The letter hatted o";
beginchar(oct "040",9u#,if serifs: if .5(asc_height#-x_height#)>1.5stem#:
.8[x_height#,asc_height#] else:asc_height# fi
else:asc_height# fi, 0);
italcorr 1/3[x_height#,asc_height#]*slant-.5u# if serifs: - stem# fi;
adjust_fit(if monospace: .5u#,.5u# else: 0,0 fi);
penpos1(vair,90); penpos3(vair',-90);
penpos2(curve,180); penpos4(curve,0);
x2r=hround max(.5u,1.25u-.5curve);
x4r=w-x2r; x1=x3=.5w; y1r=x_height+vround 1.5oo; y3r=-oo;
y2=y4=.5x_height-vair_corr; y2l:=y4l:=.52x_height;
penstroke pulled_arc.e(1,2) & pulled_arc.e(2,3)
& pulled_arc.e(3,4) & pulled_arc.e(4,1) & cycle; % bowl
numeric hat_shift; if h<asc_height:hat_shift=-.2(asc_height-x_height);
else:hat_shift=0; fi
hat_accent(1,a,hat_shift);
penlabels(1,2,3,4); endchar;