home *** CD-ROM | disk | FTP | other *** search
/ Fresh Fish 7 / FreshFishVol7.bin / bbs / text / pastex-1.3-2of8.lha / PasTeX / mf / inputs / serbspu.mf < prev    next >
Text File  |  1991-07-03  |  8KB  |  179 lines

  1. %% @metafontfile{
  2. %%     filename="serbspu.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="179",
  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 is serbspu.mf containing serbian and other letters with offsets
  32. %of 8 between upper and lower case.
  33. %spu = separate upper and lower case.
  34.  
  35. cmchar "The Ukrainian letter I";
  36. beginchar(oct"004",max(6u#,4u#+cap_stem#),cap_height#,0);
  37. italcorr cap_height#*slant-.25u#;
  38. adjust_fit(cap_serif_fit#,cap_serif_fit#);
  39. pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
  40. lft x1l=lft x2l=hround(.5w-.5cap_stem); top y1=h; bot y2=0;
  41. filldraw stroke z1e--z2e; % stem
  42. if serifs: dish_serif(1,2,a,1/3,1.05cap_jut,b,1/3,1.05cap_jut);  % upper serif
  43.  dish_serif(2,1,c,1/3,1.05cap_jut,d,1/3,1.05cap_jut);  fi % lower serif
  44. math_fit(0,.5ic#); penlabels(1,2); endchar;
  45.  
  46. cmchar "The Serbian letter Soft DJ (looks like Th with a tail)";
  47. beginchar(oct"006",15.5u#-width_adj#,cap_height#,0);
  48. italcorr cap_height#*slant-beak_jut#-.25u#;
  49. adjust_fit(0,0);
  50. % c part
  51. h:=x_height; w:=6.5u;
  52. pickup fine.nib; pos2(vair',90); pos4(vair',270);
  53. x2=x4=.5(w+u); top y2r=vround h; bot y4r=0;
  54. pos3(curve,180); lft x3r=hround max(.6u,1.35u-.5curve); y3=.5h;
  55. if serifs: pos1(hair,0); pos0(flare,0);
  56.  y1=min(bar_height+.5flare+2vair'+2,.9[bar_height,h]-.5flare);
  57.  rt x1r=hround(w-.7u); bulb(2,1,0);  % bulb
  58.  pos5(hair,0); lft x5l=w+1.5u; %rt x5r=hround(w+1.5u);
  59. % y5=max(good.y(.5bar_height-.9),y4l+vair');
  60. y5=.875y3;
  61.  (x,y4l)=whatever[z4r,z5l]; x4l:=min(x,x4l+.5u);
  62.  filldraw stroke pulled_super_arc.e(2,3)(.7superpull)
  63.   & pulled_super_arc.e(3,4)(.5superpull)
  64.   & pulled_super_arc.e(4,5)(.5superpull);
  65. %  ..tension .9 and 1..{x5-x4,5(y5-y4)}z5e;  % arc and lower terminal
  66. else: pos1(4/7[vair',flare],80);
  67.  rt x1r=hround(w-.6u); top y1r=vround .82[bar_height,top y2r];
  68.  filldraw stroke term.e(2,1,right,.8,4);  % upper terminal
  69.  %pos5(.6[vair',flare],275); 
  70.  pos5(.6[vair',flare],360); 
  71.   lft x5l=w+1.5u; %rt x5r=hround(w-.5u);
  72. % y5r=good.y(y5r+1/3bar_height-y5); y5l:=good.y y5l; x5l:=good.x x5l;
  73.  y5=.625y3;
  74. % forsuffixes e=l,r: path p.e; p.e=z4e{right}..tension .9 and 1..z5e;
  75. %  if angle direction 1 of p.e>75:
  76. %   p.e:=z4e{right}..tension atleast.9 and 1..{dir 75}z5e; fi endfor
  77.  filldraw stroke pulled_super_arc.e(2,3)(.7superpull)
  78.   & pulled_super_arc.e(3,4)(.5superpull)
  79.   & pulled_super_arc.e(4,5)(.5superpull); fi
  80.   %& p.e; fi  % arc and lower terminal
  81. x99=.5w; y99=.5h; flip(99);
  82. currentpicture:=nullpicture; clearxy;
  83. % T part
  84. h:=vround(cap_height-2stem_corr); w:=13u;
  85. pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
  86. lft x1l=lft x2l=hround(.5w-.5cap_stem); top y1=h; bot y2=0;
  87. filldraw stroke z1e--z2e; % stem
  88. pickup crisp.nib; pos3(slab,90); pos4(hair,0);
  89. top y3r=h; x3=x1; rt x4r=hround(w-.65u); y4=good.y(y3l-.5beak)-eps;
  90. arm(3,4,e,beak_darkness,.7beak_jut);  % right arm and beak
  91. pos5(hair,180); x5=w-x4; y5=y4;
  92. arm(3,5,f,beak_darkness,-.7beak_jut);  % left arm and beak
  93. if serifs: dish_serif(2,1,c,1/3,1.414cap_jut,d,1/3,cap_jut);  % lower serif
  94.  nodish_serif(1,2,a,1/3,.5cap_jut,b,1/3,.325cap_jut); fi  % upper bracketing
  95. addto currentpicture also V shifted(x2r+1.5u,0);
  96. math_fit(-.75cap_height#*slant,ic#-2.5u#); penlabels(1,2,3,4,5,6); endchar;
  97.  
  98. cmchar "The Serbian letter Soft T";
  99. beginchar(oct"007",13u#,cap_height#,0);
  100. italcorr cap_height#*slant-beak_jut#-.25u#;
  101. adjust_fit(0,.75u#); 
  102. h:=vround(h-2stem_corr);
  103. pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
  104. lft x1l=lft x2l=hround(.5w-.5cap_stem-u); top y1=h; bot y2=0;
  105. filldraw stroke z1e--z2e; % stem
  106. pickup crisp.nib; pos3(slab,90); pos4(hair,0);
  107. top y3r=h; x3=x1; rt x4r=hround(w-1.65u); y4=good.y(y3l-.5beak)-eps;
  108. arm(3,4,e,beak_darkness,.7beak_jut);  % right arm and beak
  109. pos5(hair,180); x5=w-x4-u; y5=y4;
  110. arm(3,5,f,beak_darkness,-.7beak_jut);  % left arm and beak
  111. if serifs: dish_serif(2,1,c,1/3,cap_jut,d,1/3,.75cap_jut);  % lower serif
  112.  nodish_serif(1,2,a,1/3,.5cap_jut,b,1/3,.5cap_jut); fi  % upper bracketing
  113. pickup tiny.nib;
  114. pos33(stem,0); x33=hround(w-2.5u+.5stem);
  115. h_stroke(2,q,33,34);
  116. dish_serif(34,33,g,1/3,.75cap_jut,h,1/3,.75cap_jut);
  117. math_fit(-.75cap_height#*slant,ic#-2.5u#); 
  118. penlabels(1,2,3,4,5,6,33,34); endchar;
  119.  
  120. cmchar "The Russian letter YO (looks like E umlaut)";
  121. beginchar(oct"023",12u#-width_adj#,cap_height#,0);
  122. %  note height not adjusted for umlaut
  123. italcorr cap_height#*slant-beak_jut#-.5u#;
  124. adjust_fit(cap_serif_fit#,0);
  125. h:=vround(h-stem_corr);
  126. pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
  127. lft x1l=lft x2l=hround max(2u,3u-.5cap_stem); top y1=h; bot y2=0;
  128. filldraw stroke z1e--z2e; % stem
  129. pickup crisp.nib; pos3(slab,90); pos4(hair,0);
  130. top y3r=h; x3=x1; rt x4r=hround(w-u); y4=good.y(y3l-beak)-eps;
  131. arm(3,4,e,beak_darkness,beak_jut);  % upper arm and beak
  132. pos5(cap_bar,-90); pos6(hair,0);
  133. top y5l=vround(.52[y2,y1]+.5cap_bar); x5=x1;
  134. pos0(cap_bar,90); pos7(hair,0);
  135. z0=z5; x6=x7; y6-y5l=y0l-y7;
  136. if serifs: rt x6r=hround(w-4.4u+.5hair); y6=good.y(y5l+.6beak)+eps;
  137.  rt x9r=hround(w-.5u);
  138. else: rt x6r=hround(w-1.5u); y6=y5l+eps; rt x9r=hround(w-.75u); fi
  139. arm(5,6,f,beak_darkness,0); arm(0,7,g,beak_darkness,0);  % middle arm and serif
  140. pos8(slab if not serifs:+2stem_corr fi,-90); pos9(hair,0);
  141. bot y8r=0; x8=x2; y9=good.y(y8l+7/6beak)+eps;
  142. arm(8,9,h,beak_darkness,1.5beak_jut);  % lower arm and beak
  143. if serifs: nodish_serif(1,2,a,1/3,cap_jut,b,1/3,.5cap_jut);  % upper serif
  144.  nodish_serif(2,1,c,1/3,cap_jut,d,1/3,.5cap_jut); fi  % lower serif
  145. x51=.5w; y51=h; umlaut(51,q);
  146. math_fit(0,.5ic#); penlabels(0,1,2,3,4,5,6,7,8,9); endchar;
  147.  
  148. cmchar "The Old Russian letter YATZ";
  149. beginchar(oct"043",12.5u#,body_height#,0);
  150. italcorr .75cap_height#*slant-.5u#;
  151. adjust_fit(2u#+cap_serif_fit#,0);
  152. numeric left_stem,right_curve,middle_weight;
  153. left_stem=cap_stem-hround 2stem_corr; middle_weight=.6vair+.5;
  154. pickup tiny.nib; pos1(left_stem,0); pos2(left_stem,0);
  155. lft x1l=lft x2l=hround max(2u,3u-.5left_stem); top y1=h; bot y2=0;
  156. filldraw stroke z1e--z2e; % stem
  157. penpos3(cap_band,90); penpos4(cap_band,90);
  158. penpos6(middle_weight,-90); penpos7(middle_weight,-90);
  159. penpos8(middle_weight,90); penpos9(middle_weight,90);
  160. penpos5(right_curve-stem_corr,0); penpos10(right_curve,0);
  161. penpos11(cap_band,-90); penpos12(cap_band,-90);
  162. z3r=top z1; y4=y3; y5=.5[y4,y6]; y6=y7; y7l-y8l=vair;
  163. z12r=bot z2; y11=y12; y10=.5[y11,y9]; y8=y9; .5[y7l,y8l]=.52h;
  164. x4=x6; x9=x11=x4+.5u; x7=x8=x1; x9l:=x4+.25u;
  165. x5r=hround(w-1.5u); x10r=hround(w-u);
  166. if serifs: right_curve=cap_curve-stem_corr; x4=.5[x1,w-1.5u];
  167. else: right_curve=cap_curve-3stem_corr; x4=.5[x1,w-2.5u];
  168.  x4l:=x4l-.5u; x9l:=x9l-.5u; fi
  169. x6l:=x6l-.5u; x11l:=x11l-.5u;
  170. fill stroke z8e..super_arc.e(9,10) & super_arc.e(10,11)..z12e;  % lower lobe
  171. if serifs: dish_serif(1,2,a,1/3,cap_jut,b,1/3,cap_jut);  % upper serif
  172.  nodish_serif(2,1,c,1/3,cap_jut,d,1/3,.5cap_jut); fi  % lower serif
  173. pos53(slab,90); pos54(hair,0);
  174. top y53r=.85h; x53=x1; rt x54r=hround(w-2.65u); y54=good.y(y53l-.5beak)-eps;
  175. arm(53,54,m,beak_darkness,.7beak_jut);  % right arm and beak
  176. pos55(hair,180); x55=w-x54-4u; y55=y54;
  177. arm(53,55,p,beak_darkness,-.7beak_jut);  % left arm and beak
  178. math_fit(0,.5ic#); penlabels(1,2,3,4,5,6,7,8,9,10,11,12); endchar;
  179.