%% filename: cyrspu.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. %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % cyrspu Uppercase forms having distinct lowercase forms % including O cmchar "The Russian letter A"; beginchar("A",13u#,cap_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=h+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 y0cap_notch_cut+y2: y0:=cap_notch_cut+y2; % +y2 added for sanserif face fill z0+.5right{up}...{z4r-z3r}diag_end(0,4l,1,1,4r,3r) --z3r--z2l--diag_end(2l,1l,1,1,1r,2r){z2-z1} ...{down}z0+.5left--cycle; % left and right diagonals else: fill z0--diag_end(0,4l,1,1,4r,3r)--z3r--z2l --diag_end(2l,1l,1,1,1r,0)--cycle; fi % left and right diagonals penpos5(alpha*bot_stem,0); z5r=whatever[z3r,z4r]; y5+.5vair=.65y2; if serifs: numeric light_bulb; light_bulb=hround 1.1[hair,flare]; clearpen; %7/8[hair,flare] penpos6(vair,-90); penpos7(hair,-180); penpos8(light_bulb,-180); x6=.4[x8,x5]; y6r=-oo; y8-.5light_bulb=.5y2; x8r=hround 1.35u; fill stroke z3e---z5e...{left}z6e; bulb(6,7,8); % arc and bulb numeric inner_jut; pickup tiny.nib; prime_points_inside(1,2); prime_points_inside(4,3); if rt x1'r+jut+.5u+1<=lft x4'l-jut: inner_jut=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); % left serif dish_serif(4',3,c,.6,inner_jut,d,1/2,outer_jut)(dark); % right serif else: penpos6(bot_vair,-90); x6=2.5u; y6r=-oo; fill stroke z3e---z5e...{left}z6e; % arc pickup fine.nib; pos6'(bot_vair,-90); z6'=z6; pos7(2/3[bot_vair,flare],-85); lft x7l=hround u; bot y7r=vround-oo; y7l:=good.y y7l; filldraw stroke term.e(6',7,left,1,4); fi % arc and terminal penlabels(0,1,2,3,4,5,6,7,8,9); endchar;