home *** CD-ROM | disk | FTP | other *** search
/ Fresh Fish 8 / FreshFishVol8-CD2.bin / bbs / text / pastex-1.3-7of9.lha / PasTeX / MF / inputs / amsfonts / cyrilu.mf < prev    next >
Text File  |  1991-07-03  |  29KB  |  628 lines

  1. %% @metafontfile{
  2. %%     filename="cyrilu.mf",
  3. %%     version="2.1",
  4. %%     date="30-MAY-1991",
  5. %%     filetype="Metafont: driver",
  6. %%     copyright="Copyright (C) Humanities and Arts Computing Center,
  7. %%            University of Washington;
  8. %%            all rights reserved.  Copying of this file is
  9. %%            authorized only if either:
  10. %%            (1) you make absolutely no changes to your copy
  11. %%                including name; OR
  12. %%            (2) if you do make changes, you first rename it to some
  13. %%                other name.",
  14. %%     author="American Mathematical Society",
  15. %%     address="American Mathematical Society,
  16. %%            Technical Support Group,
  17. %%            P. O. Box 6248,
  18. %%            Providence, RI 02940,
  19. %%            USA",
  20. %%     telephone="401-455-4080 or (in the USA) 800-321-4AMS",
  21. %%     email="Internet: Tech-Support@Math.AMS.com",
  22. %%     codetable="ISO/ASCII",
  23. %%     checksumtype="line count",
  24. %%     checksum="628",
  25. %%     keywords="amsfonts, tex, metafont , cyrillic ",
  26. %%     abstract="This is the driver file for use with 
  27. %%            the cyrillic fonts in AMSFonts 2.1."
  28. %%     }
  29. %
  30. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  31. %  This file contains definitions of letters that have the same shapes in
  32. %  both upper and lower case.
  33.  
  34. cmchar "The Russian letter TSE";
  35. beginchar("C",13u#+width_adj#,cap_height#,0);
  36. italcorr cap_height#*slant-cap_serif_fit#+cap_jut#-2.5u#+min(.5cap_stem#,u#);
  37. adjust_fit(cap_serif_fit#,cap_serif_fit#);
  38. pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
  39. pos3(cap_stem,0); pos4(cap_stem,0);
  40. lft x1l=lft x2l=hround max(2u,3u-.5cap_stem); x3=x4=w-x1;
  41. top y1=top y3=h; bot y2=bot y4=0;
  42. filldraw stroke z1e--z2e; % left stem
  43. filldraw stroke z3e--z4e; % right stem
  44. if serifs: numeric inner_jut;
  45.   if rt x1r+cap_jut+.5u+1<=lft x3l-cap_jut: inner_jut=cap_jut;
  46.   else: rt x1r+inner_jut+.5u+1=lft x3l-inner_jut; fi
  47.   dish_serif(1,2,a,1/3,cap_jut,b,1/3,inner_jut);  % upper left serif
  48.   dish_serif(3,4,e,1/3,inner_jut,f,1/3,cap_jut);  % upper left serif
  49.   inner_jut:=.5(x3l-x1r);
  50.   nodish_serif(2,1,c,1/3,cap_jut,d,1/3,inner_jut); % lower left serif
  51.   r_cyr_serif(4,3,g,1/3,inner_jut,h,1/3,cap_jut);   % lower left serif
  52. else: 
  53.   lcyrsanserif(4); lft x2'= lft x2l; bot y2'l=0; pos2'(slab,90);
  54.   rt x4'=rt x4r; y4'=y2'; pos4'(slab,90); filldraw stroke z2'e--z4'e;
  55. fi
  56. math_fit(0,.5ic#); penlabels(1,2,3,4,5,6); endchar;
  57.  
  58. cmchar "The Russian letter DE";
  59. beginchar("D",13u#,cap_height#,0);
  60. adjust_fit(.25u#,.75u#);
  61. pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
  62. lft x1l=lft x2l=hround(w-3u); top y1=h; bot y2=0;
  63. x3=u+.75cap_jut; bot y3l=0; pos3(cap_hair,90); lft x3'l=x3l; bot y3'=0; 
  64. if serifs: pos3'(1.5cap_hair,0); else: pos3'(cap_hair,0); fi
  65. x5=.42[x3,x1]; top y5=h; 
  66. if serifs: pos5(1.5cap_hair,0); else: pos5(cap_hair,0);  fi
  67. filldraw stroke z1e--z2e;
  68. filldraw stroke z3'e{z1-z3}...{up}z5e;
  69. bot y4l=0; x4=x2r; pos4(cap_hair,90);
  70. %filldraw stroke z3e--z4e;
  71. pickup crisp.nib; 
  72. top y6=h;  x6-.75cap_jut=rt x1r; pos6(slab,90);
  73. x9=x5; y9r=0; pos9(cap_hair,90);
  74. if serifs:
  75.   numeric inner_jut;
  76.   inner_jut=.5(x1-x5);
  77.   nodish_serif(5,9,aa,1/3,cap_jut,b,1/3,inner_jut);  % upper left serif
  78.   nodish_serif(1,2,ae,1/3,inner_jut,f,1/3,cap_jut);  % upper right serif
  79.   inner_jut:=.5(x2-x3);
  80.   l_cyr_serif(3',1,ac,1/3,cap_jut,d,1/3,inner_jut); % lower left serif
  81.   r_cyr_serif(2,1,ag,1/3,inner_jut,h,1/3,cap_jut);   % lower right serif
  82. else:
  83.   cyrsanserif(3'); lcyrsanserif(2);
  84.   x5'=lft x5l; top y5'=h; pos5'(slab,90);
  85.   filldraw stroke z3e--z4e; filldraw stroke z5'e--z6e;
  86. fi
  87. endchar;
  88.  
  89. cmchar "The Russian letter GHE (looks like Gamma)";
  90. beginchar("G",11.5u#-width_adj#,cap_height#,0);
  91. italcorr cap_height#*slant-beak_jut#-.25u#;
  92. adjust_fit(cap_serif_fit#,0);
  93. h:=vround(h-stem_corr);
  94. pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
  95. lft x1l=lft x2l=hround max(2u,3u-.5cap_stem); top y1=h; bot y2=0;
  96. filldraw stroke z1e--z2e; % stem
  97. pickup crisp.nib; pos3(slab,90); pos4(hair,0);
  98. top y3r=h; x3=x1; rt x4r=hround(w-.75u); y4=good.y(y3l-beak)-eps;
  99. arm(3,4,e,beak_darkness,beak_jut);  % upper arm and beak
  100. pos5(cap_bar,-90); pos6(hair,0);
  101. top y5l=vround(.5[y2,y1]+.5cap_bar); x5=x1;
  102. pos0(cap_bar,90); pos7(hair,0);
  103. z0=z5; x6=x7; y6-y5l=y0l-y7;
  104. if serifs: rt x6r=hround(w-4u+.5hair); y6=good.y(y5l+.6beak)+eps;
  105.   rt x9r=hround(w-.5u);
  106. else: rt x6r=hround(w-1.5u); y6=y5l+eps; rt x9r=hround(w-.75u);
  107. fi
  108. %arm(5,6,f,beak_darkness,0); arm(0,7,g,beak_darkness,0);  % middle arm and serif
  109. if serifs: nodish_serif(1,2,a,1/3,cap_jut,b,1/3,.5cap_jut);  % upper serif
  110.   dish_serif(2,1,c,1/3,cap_jut,d,1/3,1.25cap_jut);  % lower serif
  111. fi
  112. math_fit(0,ic#-2.5u#); penlabels(0,1,2,3,4,5,6,7,8,9); endchar;
  113.  
  114. cmchar "The Russian letter KHA (looks like X)";
  115. beginchar("H",13u#,cap_height#,0);
  116. italcorr cap_height#*slant-.25u#;
  117. adjust_fit(cap_serif_fit#,cap_serif_fit#);
  118. numeric stem[],outer_jut,xjut,alpha[];
  119. stem1=cap_stem-2stem_corr; stem2=min(cap_hair,stem1);
  120. outer_jut=.75cap_jut; xjut= if serifs: (stem1-stem2)/4 else: 0 fi;
  121. x1l=l+letter_fit+.5u+outer_jut; x2r=r-letter_fit-u-outer_jut-xjut;
  122. x3l=l+letter_fit+.25u+outer_jut+xjut; x4r=r-letter_fit-.25u-outer_jut;
  123. y1=y2=h; y3=y4=0;
  124. alpha1=diag_ratio(1,stem1,h,x4r-x1l);
  125. alpha2=diag_ratio(1,stem2,h,x2r-x3l);
  126. penpos1(alpha1*stem1,0); penpos2(alpha2*stem2,0);
  127. penpos3(alpha2*stem2,0); penpos4(alpha1*stem1,0);
  128. if hefty: z0=whatever[z1,z4]=whatever[z2,z3];
  129.   x12=x34=x0; y13=y24=y0;
  130.   z12=whatever[z2l,z3l]; z13=whatever[z2l,z3l];
  131.   z24=whatever[z2r,z3r]; z34=whatever[z2r,z3r];
  132.   forsuffixes $=13,24,34: z$'=.1[z$,z0]; endfor
  133.   fill diag_end(12,1r,.5,1,1l,13')--z13'--diag_end(13',3l,1,.5,3r,34')--z34'
  134.    --diag_end(34',4l,.5,1,4r,24')--z24'
  135.    --diag_end(24',2r,1,.5,2l,12)--z12--cycle; % diagonals
  136. else: fill diag_end(4r,1r,.5,1,1l,4l)
  137.    --diag_end(1l,4l,.5,1,4r,1r)--cycle; % left diagonal
  138.   fill diag_end(2l,3l,.5,1,3r,2r)
  139.    --diag_end(3r,2r,.5,1,2l,3l)--cycle;  % right diagonal
  140. fi
  141. if serifs: numeric inner_jut[]; pickup tiny.nib;
  142.   prime_points_inside(1,4); prime_points_inside(2,3);
  143.   prime_points_inside(3,2); prime_points_inside(4,1);
  144.   if rt x1'r+cap_jut+.5u+1<=lft x2'l-cap_jut-xjut: inner_jut1=cap_jut;
  145.   else: rt x1'r+inner_jut1+.5u+1=lft x2'l-inner_jut1-xjut; fi
  146.   if rt x3'r+cap_jut+.5u+1<=lft x4'l-cap_jut-xjut: inner_jut2=cap_jut;
  147.   else: rt x3'r+inner_jut2+.5u+1=lft x4'l-inner_jut2-xjut; fi
  148.   dish_serif(1',4,a,1/3,outer_jut,b,2/3,inner_jut1);  % upper left serif
  149.   dish_serif(4',1,c,2/3,inner_jut2,d,1/3,outer_jut);  % lower right serif
  150.   dish_serif(2',3,e,2/3,inner_jut1+xjut,
  151.    f,1/2,outer_jut+xjut)(dark);  % upper right serif
  152.   dish_serif(3',2,g,1/2,outer_jut+xjut,
  153.    h,2/3,inner_jut2+xjut)(dark);  % lower left serif
  154. fi
  155. math_fit(0,.5ic#); penlabels(0,1,2,3,4,12,13,24,34); endchar;
  156.  
  157. cmchar "The Russian letter I (looks like backwards N)";
  158. beginchar("I",14u#+width_adj#,cap_height#,0);
  159. italcorr cap_height#*slant-cap_serif_fit#+cap_jut#-2.5u#+min(.5cap_stem#,u#);
  160. adjust_fit(cap_serif_fit#,cap_serif_fit#);
  161. pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
  162. pos3(cap_stem,0); pos4(cap_stem,0);
  163. lft x1l=lft x2l=hround max(2u,3u-.5cap_stem); x3=x4=w-x1;
  164. top y1=top y3=h; bot y2=bot y4=0;
  165. filldraw stroke z1e--z2e; % left stem
  166. filldraw stroke z3e--z4e; % right stem
  167. if serifs: penpos5(.85cap_stem,90); penpos6(.85cap_stem,90);
  168. else: penpos5(cap_stem,90); penpos6(cap_stem,90);
  169. fi
  170. x5=x1r; x6=x3l; if serifs: y5=.1h; y6=.9h; else: bot y5l=0; top y6r=h; fi
  171. fill stroke z5e--z6e;  % bar
  172. if serifs: numeric inner_jut;
  173.   if rt x1r+cap_jut+.5u+1<=lft x3l-cap_jut: inner_jut=cap_jut;
  174.   else: rt x1r+inner_jut+.5u+1=lft x3l-inner_jut; fi
  175.   dish_serif(1,2,a,1/3,cap_jut,b,1/3,inner_jut);  % upper left serif
  176.   dish_serif(2,1,c,1/3,cap_jut,d,1/3,inner_jut); % lower left serif
  177.   dish_serif(3,4,e,1/3,inner_jut,f,1/3,cap_jut);  % upper left serif
  178.   dish_serif(4,3,g,1/3,inner_jut,h,1/3,cap_jut);  % lower left serif
  179. fi
  180. math_fit(0,.5ic#); penlabels(1,2,3,4,5,6); endchar;
  181.  
  182. %  The letter "K" is the last character defined in this file.
  183. %  See below for comments.
  184.  
  185. cmchar "The Russian letter EL";
  186. beginchar("L",13u#,cap_height#,0);
  187. adjust_fit(0,1.5u#);
  188. numeric ldot_size; ldot_size=1.15flare;
  189. pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
  190.