%% filename: cyrilu.mf %% version: 2.2 %% date: 1995/01/04 %% %% American Mathematical Society %% Technical Support %% Publications Technical Group %% 201 Charles Street %% Providence, RI 02904 %% USA %% tel: (401) 455-4080 %% (800) 321-4267 (USA and Canada only) %% fax: (401) 331-3842 %% email: tech-support@ams.org %% %% Copyright 1995 Humanities and Arts Computing Center, University of %% Washington. %% %% Unlimited copying and redistribution of this file are permitted as %% long as this file is not modified. Modifications, and distribution %% of modified versions, are permitted, but only if the resulting file %% is renamed. %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % This file contains definitions of letters that have the same shapes in % both upper and lower case. cmchar "The Russian letter TSE"; beginchar("C",13u#+width_adj#,cap_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#); pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0); pos3(cap_stem,0); pos4(cap_stem,0); lft x1l=lft x2l=hround max(2u,3u-.5cap_stem); x3=x4=w-x1; top y1=top y3=h; bot y2=bot y4=0; filldraw stroke z1e--z2e; % left stem filldraw stroke z3e--z4e; % right stem if serifs: numeric inner_jut; if rt x1r+cap_jut+.5u+1<=lft x3l-cap_jut: inner_jut=cap_jut; else: rt x1r+inner_jut+.5u+1=lft x3l-inner_jut; fi dish_serif(1,2,a,1/3,cap_jut,b,1/3,inner_jut); % upper left serif dish_serif(3,4,e,1/3,inner_jut,f,1/3,cap_jut); % upper left serif inner_jut:=.5(x3l-x1r); nodish_serif(2,1,c,1/3,cap_jut,d,1/3,inner_jut); % lower left serif r_cyr_serif(4,3,g,1/3,inner_jut,h,1/3,cap_jut); % lower left serif else: lcyrsanserif(4); lft x2'= lft x2l; bot y2'l=0; pos2'(slab,90); rt x4'=rt x4r; y4'=y2'; pos4'(slab,90); filldraw stroke z2'e--z4'e; fi math_fit(0,.5ic#); penlabels(1,2,3,4,5,6); endchar; cmchar "The Russian letter DE"; beginchar("D",13u#,cap_height#,0); adjust_fit(.25u#,.75u#); pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0); lft x1l=lft x2l=hround(w-3u); top y1=h; bot y2=0; x3=u+.75cap_jut; bot y3l=0; pos3(cap_hair,90); lft x3'l=x3l; bot y3'=0; if serifs: pos3'(1.5cap_hair,0); else: pos3'(cap_hair,0); fi x5=.42[x3,x1]; top y5=h; if serifs: pos5(1.5cap_hair,0); else: pos5(cap_hair,0); fi filldraw stroke z1e--z2e; filldraw stroke z3'e{z1-z3}...{up}z5e; bot y4l=0; x4=x2r; pos4(cap_hair,90); %filldraw stroke z3e--z4e; pickup crisp.nib; top y6=h; x6-.75cap_jut=rt x1r; pos6(slab,90); x9=x5; y9r=0; pos9(cap_hair,90); if serifs: numeric inner_jut; inner_jut=.5(x1-x5); nodish_serif(5,9,aa,1/3,cap_jut,b,1/3,inner_jut); % upper left serif nodish_serif(1,2,ae,1/3,inner_jut,f,1/3,cap_jut); % upper right serif inner_jut:=.5(x2-x3); l_cyr_serif(3',1,ac,1/3,cap_jut,d,1/3,inner_jut); % lower left serif r_cyr_serif(2,1,ag,1/3,inner_jut,h,1/3,cap_jut); % lower right serif else: cyrsanserif(3'); lcyrsanserif(2); x5'=lft x5l; top y5'=h; pos5'(slab,90); filldraw stroke z3e--z4e; filldraw stroke z5'e--z6e; fi endchar; cmchar "The Russian letter GHE (looks like Gamma)"; beginchar("G",11.5u#-width_adj#,cap_height#,0); italcorr cap_height#*slant-beak_jut#-.25u#; adjust_fit(cap_serif_fit#,0); h:=vround(h-stem_corr); pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0); lft x1l=lft x2l=hround max(2u,3u-.5cap_stem); top y1=h; bot y2=0; filldraw stroke z1e--z2e; % stem pickup crisp.nib; pos3(slab,90); pos4(hair,0); top y3r=h; x3=x1; rt x4r=hround(w-.75u); y4=good.y(y3l-beak)-eps; arm(3,4,e,beak_darkness,beak_jut); % upper arm and beak pos5(cap_bar,-90); pos6(hair,0); top y5l=vround(.5[y2,y1]+.5cap_bar); x5=x1; pos0(cap_bar,90); pos7(hair,0); z0=z5; x6=x7; y6-y5l=y0l-y7; if serifs: rt x6r=hround(w-4u+.5hair); 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 if serifs: nodish_serif(1,2,a,1/3,cap_jut,b,1/3,.5cap_jut); % upper serif dish_serif(2,1,c,1/3,cap_jut,d,1/3,1.25cap_jut); % lower serif fi math_fit(0,ic#-2.5u#); penlabels(0,1,2,3,4,5,6,7,8,9); endchar; cmchar "The Russian letter KHA (looks like X)"; beginchar("H",13u#,cap_height#,0); italcorr cap_height#*slant-.25u#; adjust_fit(cap_serif_fit#,cap_serif_fit#); numeric stem[],outer_jut,xjut,alpha[]; stem1=cap_stem-2stem_corr; stem2=min(cap_hair,stem1); outer_jut=.75cap_jut; xjut= if serifs: (stem1-stem2)/4 else: 0 fi; x1l=l+letter_fit+.5u+outer_jut; x2r=r-letter_fit-u-outer_jut-xjut; x3l=l+letter_fit+.25u+outer_jut+xjut; x4r=r-letter_fit-.25u-outer_jut; y1=y2=h; y3=y4=0; alpha1=diag_ratio(1,stem1,h,x4r-x1l); alpha2=diag_ratio(1,stem2,h,x2r-x3l); penpos1(alpha1*stem1,0); penpos2(alpha2*stem2,0); penpos3(alpha2*stem2,0); penpos4(alpha1*stem1,0); if hefty: z0=whatever[z1,z4]=whatever[z2,z3]; x12=x34=x0; y13=y24=y0; z12=whatever[z2l,z3l]; z13=whatever[z2l,z3l]; z24=whatever[z2r,z3r]; z34=whatever[z2r,z3r]; forsuffixes $=13,24,34: z$'=.1[z$,z0]; endfor fill diag_end(12,1r,.5,1,1l,13')--z13'--diag_end(13',3l,1,.5,3r,34')--z34' --diag_end(34',4l,.5,1,4r,24')--z24' --diag_end(24',2r,1,.5,2l,12)--z12--cycle; % diagonals else: fill diag_end(4r,1r,.5,1,1l,4l) --diag_end(1l,4l,.5,1,4r,1r)--cycle; % left diagonal fill diag_end(2l,3l,.5,1,3r,2r) --diag_end(3r,2r,.5,1,2l,3l)--cycle; % right diagonal fi if serifs: numeric inner_jut[]; pickup tiny.nib; prime_points_inside(1,4); prime_points_inside(2,3); prime_points_inside(3,2); prime_points_inside(4,1); if rt x1'r+cap_jut+.5u+1<=lft x2'l-cap_jut-xjut: inner_jut1=cap_jut; else: rt x1'r+inner_jut1+.5u+1=lft x2'l-inner_jut1-xjut; fi if rt x3'r+cap_jut+.5u+1<=lft x4'l-cap_jut-xjut: inner_jut2=cap_jut; else: rt x3'r+inner_jut2+.5u+1=lft x4'l-inner_jut2-xjut; fi dish_serif(1',4,a,1/3,outer_jut,b,2/3,inner_jut1); % upper left serif dish_serif(4',1,c,2/3,inner_jut2,d,1/3,outer_jut); % lower right serif dish_serif(2',3,e,2/3,inner_jut1+xjut, f,1/2,outer_jut+xjut)(dark); % upper right serif dish_serif(3',2,g,1/2,outer_jut+xjut, h,2/3,inner_jut2+xjut)(dark); % lower left serif fi math_fit(0,.5ic#); penlabels(0,1,2,3,4,12,13,24,34); endchar; cmchar "The Russian letter I (looks like backwards N)"; beginchar("I",14u#+width_adj#,cap_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#); pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0); pos3(cap_stem,0); pos4(cap_stem,0); lft x1l=lft x2l=hround max(2u,3u-.5cap_stem); x3=x4=w-x1; top y1=top y3=h; bot y2=bot y4=0; filldraw stroke z1e--z2e; % left stem filldraw stroke z3e--z4e; % right stem if serifs: penpos5(.85cap_stem,90); penpos6(.85cap_stem,90); else: penpos5(cap_stem,90); penpos6(cap_stem,90); fi x5=x1r; x6=x3l; if serifs: y5=.1h; y6=.9h; else: bot y5l=0; top y6r=h; fi fill stroke z5e--z6e; % bar if serifs: numeric inner_jut; if rt x1r+cap_jut+.5u+1<=lft x3l-cap_jut: inner_jut=cap_jut; else: rt x1r+inner_jut+.5u+1=lft x3l-inner_jut; fi dish_serif(1,2,a,1/3,cap_jut,b,1/3,inner_jut); % upper left serif dish_serif(2,1,c,1/3,cap_jut,d,1/3,inner_jut); % lower left serif dish_serif(3,4,e,1/3,inner_jut,f,1/3,cap_jut); % upper left serif dish_serif(4,3,g,1/3,inner_jut,h,1/3,cap_jut); % lower left serif fi math_fit(0,.5ic#); penlabels(1,2,3,4,5,6); endchar; % The letter "K" is the last character defined in this file. % See below for comments. cmchar "The Russian letter EL"; beginchar("L",13u#,cap_height#,0); adjust_fit(0,1.5u#); numeric ldot_size; ldot_size=1.15flare; pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0); lft x1l=lft x2l=hround(w-3u); top y1=h; bot y2=0; filldraw stroke z1e--z2e; if serifs: numeric inner_jut; inner_jut=.5(x1-x5); x4=u+.5ldot_size; x3=x4+.5ldot_size; bot y3r=0; pos3(1.5cap_hair,-90); x5=.42[x4,x1]; top y5=h; pos5(1.5cap_hair,0); pos4(ldot_size,-180); pos10(hair,-180); filldraw stroke z3e{right}...{up}z5e; y4=ldot_size; bulb(3,10,4); dish_serif(2,1,a,1/3,cap_jut,b,1/3,cap_jut); nodish_serif(1,2,c,1/3,inner_jut,d,1/3,cap_jut); top y6=h; x6-.75cap_jut=rt x1r; pos6(slab,90); x5'+.5cap_jut=lft x5l; top y5'=h; pos5'(slab,90); x9=x5; y9=0; pos9(cap_hair,0); nodish_serif(5,9,aa,1/3,cap_jut,ab,1/3,inner_jut); % upper left serif else: x5r=hround u; bot y5r=vround(.06h-o); bot y4r=-o; x4r=.35[x5,x3r]; x3=x5+3flare; top y3=h; lft x3'=lft x3l; top y3'r=h; rt x1'r=rt x1r; top y1'r=h; pos3'(slab,90); pos1'(slab,90); pos5(flare,-120); pos4(vair,-90); pos3(hair,0); filldraw stroke z5e...{right}z4e...{up}z3e; filldraw stroke z3'e--z1'e; fi endchar; cmchar "The Russian letter EM"; beginchar("M",16u#+width_adj#,cap_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 stem[]; % thicknesses of the four strokes stem1=hround(fudged.hair+stem_corr); stem2=hround(fudged.cap_stem-4stem_corr); stem3=hround(fudged.hair-stem_corr); stem4=hround(fudged.cap_stem-3stem_corr); if stem4