%% @metafontfile{ %% filename="cyrspu.mf", %% version="2.2", %% date="04-JAN-1995", %% filetype="Metafont: driver", %% copyright="Copyright (C) Humanities and Arts Computing Center, %% University of Washington; %% all rights reserved. Copying of this file is %% authorized only if either: %% (1) you make absolutely no changes to your copy %% including name; OR %% (2) if you do make changes, you first rename it to some %% other name.", %% author="American Mathematical Society", %% address="American Mathematical Society, %% Technical Support, Electronic Products and Services, %% P. O. Box 6248, %% Providence, RI 02940, %% USA", %% telephone="401-455-4080 or (in the USA) 800-321-4AMS", %% email="Internet: Tech-Support@Math.AMS.org", %% codetable="ISO/ASCII", %% checksum = "54447 284 1071 13384" %% keywords="amsfonts, tex, metafont , cyrillic ", %% abstract="This is the driver file for use with %% the cyrillic fonts in AMSFonts 2.2." %% docstring = "The checksum field above contains a CRC-16 %% checksum as the first value, followed by the %% equivalent of the standard UNIX wc (word %% count) utility output of lines, words, and %% characters. This is produced by Robert %% Solovay's checksum utility.", %% } % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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;