% exrueast.mf % % (c) Copyright 1995, 1996, 1997 J"org Knappen % (c) Copyright 1990, 1992 Norbert Schwarz % % This file is part of ecfonts version 1.0 % % Please read the files 00readme.txt, 00inst.txt, 00error.txt, and % copyrite.txt for further information % % You find some documentation in ecdoc.tex (needs LaTeX2e) % % Content: % % uppercase accented letters (common to roman and italic fonts) % "eastern part" % % oct"200" .. oct"235" % % Roman uppercase accents % % oct"200" A with breve % oct"201" A with ogonek % oct"202" C with acute % oct"203" C with hachek % oct"204" D with hachek % oct"205" E with hachek % oct"206" E with ogonek % oct"207" G with breve % % oct"210" L with acute % oct"211" L with komma % oct"212" L with stroke (polish) % oct"213" N with acute % oct"214" N with hachek % oct"215" The letter Eng % oct"216" O with hungarian umlaut % oct"217" R with acute % % oct"220" R with hachek % oct"221" S with acute % oct"222" S with hachek % oct"223" S with cedilla % oct"224" T with hachek % oct"225" T with cedilla % oct"226" U with hungarian umlaut % oct"227" U with ring % % oct"230" Y with umlauts % oct"231" Z with acute % oct"232" Z with hachek % oct"233" Z with dot % oct"234" IJ % oct"235" I with dot version_check(1,0); % |version_check| was introduced in dc1.3 ecchar "The letter A with breve"; beginchar(oct"200",13u#,cap_height#+acc_height#,0); adjust_fit(cap_serif_fit#,cap_serif_fit#); numeric left_stem,right_stem,outer_jut,alpha; right_stem=cap_stem-stem_corr; left_stem=min(cap_hair if hefty: -3stem_corr fi,right_stem); outer_jut=.8cap_jut; x1l=w-x4r=l+letter_fit+outer_jut+.5u; y1=y4=0; x2-x1=x4-x3; x3r=x2r+apex_corr; y2=y3=cap_height+apex_o+apex_oo; alpha=diag_ratio(2,left_stem,y2-y1,x4r-x1l-apex_corr); penpos1(alpha*left_stem,0); penpos2(alpha*left_stem,0); penpos3(alpha*right_stem,0); penpos4(alpha*right_stem,0); z0=whatever[z1r,z2r]=whatever[z3l,z4l]; if y0lower_notch: {left}(x4'-1,lower_notch){up}... fi {z5-z6}diag_in(6r,5r,1,5l)--cycle; % diagonal else: penpos5(whatever,0); penpos6(whatever,90); z5l=z1l; z6l=z4l; z7=z6l+(max(eps,cap_stem-3stem_corr-tiny),0) rotated (angle(z5l-z6l)-90); z5r=z7+whatever*(z5l-z6l); z6r=z7+whatever*(z5l-z6l); filldraw stroke z5e..z6e; fi % diagonal if serifs: if hefty: serif(1,2,a,1/3,-cap_jut); % upper left serif else: serif(5,6,a,1/3,-cap_jut); fi % upper left serif dish_serif(2,1,b,1/2,cap_jut,c,1/2,cap_jut)(dark); % lower left serif dish_serif(3,4,e,1/2,cap_jut,f,1/2,cap_jut)(dark); fi % upper right serif penlabels(1,1',2,3,4,4',5,6,7); hpos_corr=-.75u; put_accent; repeat_once; endchar; ecchar "The letter N with hachek"; % from cshacheu.mf (csfonts) beginchar(oct"214",13u#+width_adj#,cap_height#+acc_height#,0); italcorr cap_height#*slant-cap_serif_fit#+cap_jut#-2.5u#+min(.5cap_stem#,u#); adjust_fit(cap_serif_fit#,cap_serif_fit#); numeric thin_stem; thin_stem=hround(fudged.hair+stem_corr); pickup tiny.nib; pos1(thin_stem,0); pos2(thin_stem,0); pos3(thin_stem,0); pos4(thin_stem,0); pickup tiny.nib; top y1=top y3=cap_height; bot y2=bot y4=0; x1=x2; x3=x4; x1l=w-x3r; rt x3r=hround min(w-2u,w-3u+.5fudged.cap_stem); filldraw stroke z1e--z2e; % left stem filldraw stroke z3e--z4e; % right stem if hefty: penpos5(fudged.cap_stem,0); penpos6(fudged.cap_stem,0); x5l=x1; x6r=x4; y5=cap_height; y6=0; numeric upper_notch,lower_notch; upper_notch=cap_height-cap_notch_cut; lower_notch=cap_notch_cut; x1'=rt x1r; z1'=whatever[z5l,z6l]; x4'=lft x4l; z4'=whatever[z5r,z6r]; fill z5l.. if y1'lower_notch: {left}(x4'-1,lower_notch){up}... fi {z5-z6}diag_in(6r,5r,1,5l)--cycle; % diagonal else: penpos5(whatever,0); penpos6(whatever,90); z5l=z1l; z6l=z4l; z7=z6l+(max(eps,cap_stem-3stem_corr-tiny),0) rotated (angle(z5l-z6l)-90); z5r=z7+whatever*(z5l-z6l); z6r=z7+whatever*(z5l-z6l); filldraw stroke z5e..z6e; fi % diagonal if serifs: if hefty: serif(1,2,a,1/3,-cap_jut); % upper left serif else: serif(5,6,a,1/3,-cap_jut); fi % upper left serif dish_serif(2,1,b,1/2,cap_jut,c,1/2,cap_jut)(dark); % lower left serif dish_serif(3,4,e,1/2,cap_jut,f,1/2,cap_jut)(dark); fi % upper right serif math_fit(0,max(.5ic#-.5u#,0)); penlabels(1,1',2,3,4,4',5,6,7); uc_hachek_accent(.5[x2,x3]); endchar; ecchar "The letter Eng"; % from uppern.mf (fc fonts) beginchar(oct"215",14u#,cap_height#,0); adjust_fit(cap_serif_fit#,0); italcorr cap_height#*slant; pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0); y1=2/3h; rt x1r=hround(w-u); x2=x1; y2=.21h; if serifs: pos3(vair,-90); pos4(cap_hair,-180); pos5(flare+(cap_stem-stem),-180); bot y3r=-o; x3=.5[x4,x2]; y5=1/6h; rt x5l=hround 8.75u; z5r=z4r; filldraw stroke z1e--z2e&super_arc.e(2,3); % right stem and arc bulb(3,4,5); % bulb else: filldraw stroke z1e--z2e; % right stem pickup fine.nib; pos3(cap_stem,0); z3=z2; pos4(flare,angle(6.5u,-h)); pos5(1.1flare,-100); bot y4r=-o; x4r=.5[x5r,x3r]; lft x5r=hround 7.75u; bot y5r=vround.06h-o; filldraw stroke z3e{down}....term.e(4,5,left,1,4); fi % arc and terminal pickup tiny.nib; pos6(cap_stem,0);pos7(cap_stem,0); lft x6l=lft x7l=hround(max(2u,3u-.5cap_stem));top y6=h; bot y7=0; filldraw stroke z6e--z7e; %left stem pos8(min (cap_hair,cap_stem),0); pos9(cap_hair,-90); pos10(cap_stem,-180); y8=y10=2/3h; top y9=h+o; rt x8=rt x6; rt x10l=rt x1r; x9=.5[x8,x10]; filldraw stroke z8e{up}...z9e...{down}z10e; % big arc if serifs: numeric right_jut; if rt x7r+cap_jut+u+1y2+cap_notch_cut: y0:=y2+cap_notch_cut; fill z0+.5right{up}...{z4-z3}diag_end(3l,4l,1,1,4r,3r)--z5r --diag_end(5r,6r,1,1,6l,5l)--z5l--diag_end(2l,1l,1,1,1r,2r){z2-z1} ...{down}z0+.5left--cycle; % diagonals and stem else: fill z0--diag_end(0,4l,1,1,4r,3r)--z5r --diag_end(5r,6r,1,1,6l,5l)--z5l --diag_end(2l,1l,1,1,1r,0)--cycle; fi % diagonals and stem if serifs: numeric inner_jut; pickup tiny.nib; prime_points_inside(1,2); prime_points_inside(4,3); prime_points_inside(6,5); if rt x1'r+cap_jut+.5u+1<=lft x4'l-cap_jut: inner_jut=cap_jut; else: rt x1'r+inner_jut+.5u+1=lft x4'l-inner_jut; fi dish_serif(1',2,a,1/3,outer_jut,b,1/2,inner_jut); % upper left serif dish_serif(4',3,c,.6,inner_jut,d,1/2,outer_jut)(dark); % upper right serif dish_serif(6',5,e,1/3,cap_jut,f,1/3,cap_jut); fi % lower serif % the accent uppercase_umlaut(0,0,7,8,9,10); math_fit(.5u#-cap_height#*slant,ic#-4u#); penlabels(0,1,2,3,4,5,6,7,8,9,10); endchar; ecchar "The letter Z with acute"; % from pl_dl (plfonts) beginchar_twice(oct"231",11u#,cap_height#,0); italcorr cap_height#*slant-.5u#; adjust_fit(0,0); numeric arm_thickness[\\],z_stem; if hefty: arm_thickness1=Vround(slab-vair_corr); arm_thickness2=slab; z_stem=.8[vair,cap_stem]; else: arm_thickness1=slab; arm_thickness2=vround(slab+vair_corr); z_stem=.9[vair,cap_stem]; fi pickup tiny.nib; x3l=x4l=w-x1r=w-x2r; lft x3l=hround u; top y1=h; y2=min(y1,h-2/3arm_thickness1); bot y4=0; y3=max(y4,2/3arm_thickness2); numeric alpha; alpha=diag_ratio(1,z_stem-tiny,y2-y3,x2r-x3l); penpos1(alpha*(z_stem-tiny),0); penpos2(alpha*(z_stem-tiny),0); penpos3(alpha*(z_stem-tiny),0); penpos4(alpha*(z_stem-tiny),0); pair delta; delta=penoffset z3-z2 of currentpen; fill top lft z1l--z2l+delta---z3l+delta..lft z3l---lft z4l..bot z4l ---bot rt z4r--z3r-delta---z2r-delta..rt z2r---rt z1r..top z1r ---cycle; % diagonal pickup crisp.nib; pos5(arm_thickness1,90); pos6(hair,180); top y5r=h; x5=x1; lft x6r=hround 1.25u; y6=good.y(y5l-beak)-eps; arm(5,6,a,beak_darkness**.8,-.4beak_jut); % upper arm and beak pos7(arm_thickness2,-90); pos8(hair,0); bot y7r=0; x7=x4; rt x8r=hround(w-.9u); y8=good.y(y7l+1.2beak)+eps; arm(7,8,b,beak_darkness**.9,.6beak_jut); % lower arm and beak penlabels(1,2,3,4,5,6,7,8); hpos_corr=-.5u; put_accent; repeat_once; endchar; ecchar "The letter Z with hachek"; % from cshacheu.mf (csfonts) beginchar(oct"232",11u#,cap_height#+acc_height#,0); italcorr cap_height#*slant-.5u#; adjust_fit(0,0); numeric arm_thickness[],z_stem; if hefty: arm_thickness1=Vround(slab-vair_corr); arm_thickness2=slab; z_stem=.8[vair,cap_stem]; else: arm_thickness1=slab; arm_thickness2=vround(slab+vair_corr); z_stem=.9[vair,cap_stem]; fi pickup tiny.nib; x3l=x4l=w-x1r=w-x2r; lft x3l=hround u; top y1=cap_height; y2=min(y1,cap_height-2/3arm_thickness1); bot y4=0; y3=max(y4,2/3arm_thickness2); numeric alpha; alpha=diag_ratio(1,z_stem-tiny,y2-y3,x2r-x3l); penpos1(alpha*(z_stem-tiny),0); penpos2(alpha*(z_stem-tiny),0); penpos3(alpha*(z_stem-tiny),0); penpos4(alpha*(z_stem-tiny),0); pair delta; delta=penoffset z3-z2 of currentpen; fill top lft z1l--z2l+delta---z3l+delta..lft z3l---lft z4l..bot z4l ---bot rt z4r--z3r-delta---z2r-delta..rt z2r---rt z1r..top z1r ---cycle; % diagonal pickup crisp.nib; pos5(arm_thickness1,90); pos6(hair,180); top y5r=cap_height; x5=x1; lft x6r=hround 1.25u; y6=good.y(y5l-beak)-eps; arm(5,6,a,beak_darkness**.8,-.4beak_jut); % upper arm and beak pos7(arm_thickness2,-90); pos8(hair,0); bot y7r=0; x7=x4; rt x8r=hround(w-.9u); y8=good.y(y7l+1.2beak)+eps; arm(7,8,b,beak_darkness**.9,.6beak_jut); % lower arm and beak math_fit(0,.5ic#); penlabels(1,2,3,4,5,6,7,8); uc_hachek_accent(1/2[x6,x1]); endchar; ecchar "The letter Z with dot above"; % from pl_dl (plfonts) beginchar_twice(oct"233",11u#,cap_height#,0); italcorr cap_height#*slant-.5u#; adjust_fit(0,0); numeric arm_thickness[\\],z_stem; if hefty: arm_thickness1=Vround(slab-vair_corr); arm_thickness2=slab; z_stem=.8[vair,cap_stem]; else: arm_thickness1=slab; arm_thickness2=vround(slab+vair_corr); z_stem=.9[vair,cap_stem]; fi pickup tiny.nib; x3l=x4l=w-x1r=w-x2r; lft x3l=hround u; top y1=h; y2=min(y1,h-2/3arm_thickness1); bot y4=0; y3=max(y4,2/3arm_thickness2); numeric alpha; alpha=diag_ratio(1,z_stem-tiny,y2-y3,x2r-x3l); penpos1(alpha*(z_stem-tiny),0); penpos2(alpha*(z_stem-tiny),0); penpos3(alpha*(z_stem-tiny),0); penpos4(alpha*(z_stem-tiny),0); pair delta; delta=penoffset z3-z2 of currentpen; fill top lft z1l--z2l+delta---z3l+delta..lft z3l---lft z4l..bot z4l ---bot rt z4r--z3r-delta---z2r-delta..rt z2r---rt z1r..top z1r ---cycle; % diagonal pickup crisp.nib; pos5(arm_thickness1,90); pos6(hair,180); top y5r=h; x5=x1; lft x6r=hround 1.25u; y6=good.y(y5l-beak)-eps; arm(5,6,a,beak_darkness**.8,-.4beak_jut); % upper arm and beak pos7(arm_thickness2,-90); pos8(hair,0); bot y7r=0; x7=x4; rt x8r=hround(w-.9u); y8=good.y(y7l+1.2beak)+eps; arm(7,8,b,beak_darkness**.9,.6beak_jut); % lower arm and beak penlabels(1,2,3,4,5,6,7,8); put_dot(tiny,max(dot_size#,cap_curve#)); repeat_once; endchar; ecchar "The letter IJ"; beginchar(oct"234", 9u#+max(6u#,4u#+cap_stem#) if not serifs: -u# fi,cap_height#,0); italcorr cap_height#*slant-cap_serif_fit# +.75cap_jut#-2.5u#+min(.5cap_stem#,u#); adjust_fit(cap_serif_fit#,cap_serif_fit#); pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0); lft x1l=lft x2l=hround(.5(w-9u)-.5cap_stem); 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 % J part pickup tiny.nib; pos11(cap_stem',0); pos12(cap_stem',0); top y11=h; rt x11r=hround(w-2u); x12=x11; y12=.21h; if serifs: pos13(vair,-90); pos14(cap_hair,-180); pos15(flare+(cap_stem-stem),-180); bot y13r=-o; x13=.5[x14,x12]; y15=1/6h; rt x15l=hround w-9u+2.75u; z15r=z14r; filldraw stroke z11e--z12e&super_arc.e(12,13); % stem and arc dish_serif(11,12,aa,1/3,1.3cap_jut,bb,1/3,.75cap_jut); % serif pickup tiny.nib; bulb(13,14,15); % bulb else: filldraw stroke z11e--z12e; % stem pickup fine.nib; pos13(cap_stem',0); z13=z12; pos14(flare,angle(6.5u,-h)); pos15(1.1flare,-100); bot y14r=-o; x14r=.5[x15r,x13r]; lft x15r=hround max(6u,4u+cap_stem)-0.25u;% +.75u; bot y15r=vround.06h-o; filldraw stroke z13e{down}....term.e(14,15,left,1,4); fi % arc and terminal math_fit(0,.5ic#-.5u#); penlabels(1,2,3,4,5,11,12,13,14,15); endchar; iff not suppress_i_dot: ecchar "The letter I with dot"; beginchar_twice(oct"235",max(6u#,4u#+cap_stem#),cap_height#,0); italcorr cap_height#*slant-.25u#; adjust_fit(cap_serif_fit#,cap_serif_fit#); pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0); lft x1l=lft x2l=hround(.5w-.5cap_stem); top y1=cap_height; bot y2=0; filldraw stroke z1e--z2e; % stem if serifs or monospace: 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 if slitex: pickup crisp.nib; % arms based on proportions of uppercase E pos3(slab,90); pos4(slab if not serifs:+2stem_corr fi,-90); x3=x4=x1; top y3r=h; bot y4r=0; pos5(hair,0); pos6(hair,0); % top and bottom right arms rt x5r=rt x6r=hround(w-u); pos7(hair,180); pos8(hair,180); % top and bottom left arms lft x7r=lft x8r=hround(u); y5=y7=good.y(y3l-beak)-eps; % beak in case we ever want a beaked serif! y6=y8=good.y(y4l+beak)+eps; % watch that this doesn't get too heavy arm(3,5,a,darkness,jut); arm(3,7,b,darkness,jut); % top left and right arms arm(4,6,c,darkness,jut); arm(4,8,d,darkness,jut); % bottom left and right fi put_dot(tiny,max(dot_size#,cap_curve#)); repeat_once; math_fit(0,.5ic#); penlabels(1,2,3,4,5,6); endchar; endinput;