home *** CD-ROM | disk | FTP | other *** search
/ The World of Computer Software / World_Of_Computer_Software-02-385-Vol-1of3.iso / c / cmsrc392.zip / ITALSP.MF < prev    next >
Text File  |  1992-03-30  |  6KB  |  126 lines

  1. % This file contains special letters and letter combinations,
  2. % compatible with the alphabet `{\tt itall}'.
  3.  
  4. % Codes \0020--\0021 and \0031--\0034 are generated.
  5.  
  6. cmchar "Dotless italic letter i";
  7. beginchar(oct"020",5u#,x_height#,0);
  8. italcorr 1/3x_height#*slant+.5hair#+.5u#;
  9. adjust_fit(if monospace:u#,u# else: 0,0 fi); pickup fine.nib;
  10. x0=0; x5=w; x2=.5w+.25u; x3=.5w-.25u;
  11. hook_in(0,1,2)(skewed); hook_out(3,4,5)(skewed);  % hooks
  12. filldraw stroke z2e--z3e;  % stem
  13. penlabels(0,1,2,3,4,5); endchar;
  14.  
  15. cmchar "Dotless italic letter j";
  16. beginchar(oct"021",5.5u#,x_height#,desc_depth#);
  17. italcorr x_height#*slant+.5stem#-2u#;
  18. adjust_fit(if monospace:2u# else: 0 fi, 0); pickup fine.nib;
  19. x0=0; x2=x3; pos3(stem,0); lft x3l=hround(w-2u-.5stem);
  20. hook_in(0,1,2);  % opening hook
  21. pos4(vair,-90); pos5(hair,-180); pos6(flare,-180);
  22. bot y3=-1/3d; bot y4r=-d-oo; y6-.5flare=-vround.9d;
  23. x4=1/3(w-u); lft x5r=min(hround-.5u,lft x5r+x4-x5l-eps);
  24. filldraw stroke z2e---z3e...{left}z4e;  % stem and arc
  25. bulb(4,5,6);  % bulb
  26. penlabels(0,1,2,3,4,5,6); endchar;
  27.  
  28. cmchar "Italic German letter es-zet (sharp s)";
  29. beginchar(oct"031",4.5u#+max(1.5u#,stem#)+max(3.5u#,2flare#),
  30.  asc_height#,desc_depth#);
  31. italcorr .9asc_height#*slant-u#;
  32. adjust_fit(if monospace: u# else: 0 fi,0); pickup fine.nib;
  33. z88=(.5w-2.75u,h); z89=(.5w-1.75u,-d);
  34. numeric theta; theta=angle(z88-z89);
  35. pos1(stem,0); pos2(vair,90); pos3(.5[hair,stem],180);
  36. pos4(stem,theta+90); pos5(stem,theta-90); pos6(.5[hair,stem],0);
  37. pos7(vair,-90); pos8(hair,-180); pos9(flare,-180);
  38. rt x1r=hround(w-1.5u); lft x8r=hround-.25u; x2=.5[x1,x4]; x7=.5[x8,x5];
  39. y9-.5flare=vround -.85d; bot y7r=-d-oo; y1=.5[x_height,h]; top y2r=h+oo;
  40. y4=.25[x_height,h]; y5=.5[-d,y4];
  41. z4=whatever[z88,z89]; z5=whatever[z88,z89];
  42. x3=.8[x2+x4-x88,x88]; x6=.8[x7+x5-x89,x89]; y3=.8[y4,y2]; y6=.8[y5,y7];
  43. bulb(7,8,9);  % left bulb
  44. filldraw stroke z1e{up}...z2e{left}...z3e...{z89-z88}z4e;  % upper arc
  45. filldraw z4r--z5l--z5r--z4l--cycle;  % stem
  46. filldraw stroke z5e{z89-z88}...z6e...{left}z7e;  % lower arc
  47. pos11(.1[hair,curve],-30); x11l=2/3[x12l,x1l]; y11=2/3[y1,y12];
  48. pos12(.3[hair,curve],0); rt x12r=hround(w-3u); y12=.5h;
  49. pos13(.8[hair,curve],30); x13=.5[x12,x14]; y13=.5[y12,y14];
  50. pos14(curve,0); rt x14r=hround(w-.5u); y14=.2h;
  51. pos15(vair,-90); x15=.5[x14,x16]; bot y15r=-oo;
  52. pos16(hair,-180); pos17(.6[hair,flare],-180);
  53. lft x16r=hround(rt x5r+.75u); y17-.5(.6[hair,flare])=.07h;
  54. filldraw stroke z1e{down}...z11e{1.5(x12e-x11e),y12e-y11e}
  55.  ...{down}z12e...{2(x13-x12),y13-y12}z13e
  56.  ...{down}z14e...{left}z15e;  % stroke
  57. bulb(15,16,17);  % inner bulb
  58. pickup crisp.nib; pos20(bar,90); pos21(bar,90);
  59. top y20r=top y21r=x_height;
  60. lft x20=lft x4r-.5stem-u; z21=whatever[z4,z5];
  61. filldraw stroke z20e--z21e;  %  bar
  62. penlabels(1,2,3,4,5,6,7,8,9,11,12,13,14,15,16,17,20,21,88,89); endchar;
  63.  
  64. cmchar "Italic ligature ae";
  65. beginchar(oct"032",13u#,x_height#,0);
  66. italcorr max(1/3x_height#*slant,x_height#*slant+.5(.2[hair#,stem#])-u#);
  67. adjust_fit(if monospace:-u#,-u# else: 0,0 fi); pickup fine.nib;
  68. forsuffixes $=hair,stem: shaved$:=mfudged$; save $; $=shaved$; endfor
  69. numeric heavy_hair; heavy_hair=hround .2[hair,stem];
  70. numeric light_stem; light_stem=hround .75[hair,stem];
  71. pos0(vair,-90); pos1(heavy_hair,0); pos2(vair,90);
  72. pos3(light_stem,180); pos4(vair,270); pos5(hair,320);
  73. x0=rt x3l; rt x1r=hround(w-1.5u+.5heavy_hair); x2=x4=.5(w+6u);
  74. lft x3r=hround(.5w-.5light_stem); x5r=good.x(w-.5u); x6=x5;
  75. y0=y3=y6=bar_height; y1=.5[y0,y2]; top y2r=h+oo; bot y4r=-oo;
  76. top y5l=vround(.5bar_height+.5); path p; p=z4{right}..z5..z6;
  77. filldraw stroke z0e{right}...z1e{up}...pulled_arc.e(2,3)
  78.  & pulled_arc.e(3,4)...{direction 1 of p}z5e;  % arc of e
  79. pos7(light_stem,0); pos8(light_stem,0);
  80. x7=x8=x3; y7+.5light_stem=h+oo; y8-.5light_stem=-oo;
  81. pos7'(vair,-225); pos11(curve,-180); z7'=z7;
  82. pos12(vair,-90); pos3'(hair,0); z3'=z3;
  83. lft x11r=hround(1.5u-.5curve); x12=.5[x11,x3];
  84. y11=.3[y12,y7]; bot y12r=-oo;
  85. filldraw stroke z7'e{3(x11-x7),y11-y7}...pulled_arc.e(11,12)
  86.  & pulled_arc.e(12,3');  %  bowl of a
  87. filldraw z7l---z8l..z8r---z7r..cycle;  % stem
  88. penlabels(0,1,2,3,4,5,6,7,8,11,12); endchar;
  89.  
  90. cmchar "Italic ligature oe";
  91. beginchar(oct"033",13u#,x_height#,0);
  92. italcorr max(1/3x_height#*slant,x_height#*slant+.5(.2[hair#,stem#])-u#);
  93. adjust_fit(if monospace:-u#,-u# else: 0,0 fi); pickup fine.nib;
  94. forsuffixes $=hair,stem: shaved$:=mfudged$; save $; $=shaved$; endfor
  95. numeric heavy_hair; heavy_hair=hround .2[hair,stem];
  96. pos0(vair,-90); pos1(heavy_hair,0); pos2(vair,90);
  97. pos3(stem,180); pos4(vair,270); pos5(hair,320);
  98. x0=rt x3l; rt x1r=hround(w-1.5u+.5heavy_hair); x2=x4=.5(w+6u);
  99. lft x3r=hround(.5w-.5stem); x5r=good.x(w-.5u); x6=x5;
  100. y0=y3=y6=bar_height; y1=.5[y0,y2]; top y2r=h+oo; bot y4r=-oo;
  101. top y5l=vround(.5bar_height+.5); path p; p=z4{right}..z5..z6;
  102. filldraw stroke z0e{right}...z1e{up}...pulled_arc.e(2,3)
  103.  & pulled_arc.e(3,4)...{direction 1 of p}z5e;  % arc of e
  104. pos11(vair,90); pos12(curve,180); pos13(vair,270); pos14(stem,360);
  105. x11=x13=.5[x12,x14]; lft x12r=hround(1.5u-.5curve); x14=x3;
  106. top y11=h+oo; y12=y14=.5[y11,y13]; bot y13=-oo;
  107. filldraw stroke pulled_arc.e(11,12) & pulled_arc.e(12,13)
  108.  & pulled_arc.e(13,14) & pulled_arc.e(14,11); % bowl
  109. penlabels(0,1,2,3,4,5,6); endchar;
  110.  
  111. cmchar "Italic Scandinavian letter o/slash";
  112. beginchar(oct"034",9u#,x_height#+.5desc_depth#,.5desc_depth#);
  113. italcorr h#*slant-u#+.5vair#;
  114. adjust_fit(0,0); pickup fine.nib;
  115. pos1(vair,90); pos2(fudged.stem,180);
  116. pos3(vair,270); pos4(fudged.stem,360);
  117. x1=x3=.5w; lft x2r=hround(1.5u-.5fudged.stem); x4=w-x2;
  118. top y1=x_height+oo; y2=y4=.5[y1,y3]; bot y3=-oo;
  119. filldraw stroke pulled_arc.e(1,2) & pulled_arc.e(2,3)
  120.  & pulled_arc.e(3,4) & pulled_arc.e(4,1); % bowl
  121. x5=x4; x6=x2; y5=h; y6=-d;
  122. numeric theta; theta=angle(z5-z6)-90;
  123. pickup crisp.nib; pos5(vair,theta); pos6(vair,theta);
  124. filldraw stroke z5e--z6e;  % diagonal
  125. penlabels(1,2,3,4,5,6); endchar;
  126.