home *** CD-ROM | disk | FTP | other *** search
/ Mega Top 1 / os2_top1.zip / os2_top1 / APPS / TEKST / TEXDISK / EMSY.ZIP / EMTEX / MFINPUT / EMSY.MF next >
Text File  |  1990-09-18  |  4KB  |  131 lines

  1. % This is EMSY.MF
  2. font_coding_scheme:="em symbols";
  3. mode_setup; font_setup;
  4.  
  5. % proofing:=2;
  6.  
  7. % Define
  8. %   boolean test;
  9. % to omit tested characters
  10.  
  11. def tested = iff (not boolean test) : enddef;
  12.  
  13. % This character is stolen from italms.mf (oct"176")
  14.      
  15. tested cmchar "Leftward arrow (vector) accent";
  16. beginchar(hex"00",9u#,asc_height#+.5rule_thickness#,0);
  17. italcorr .7[x_height#,asc_height#]*slant;
  18. adjust_fit(0,0); pickup rule.nib;
  19. lft x1=hround .5u; x2=w-x1; y1=y2=good.y .7[x_height,asc_height];
  20. draw z1--z2;  % bar
  21. lft x3=lft x4=hround(x1+u);
  22. y3=y2+.3(asc_height-x_height); y4=y2-.3(asc_height-x_height);
  23. draw z3{x1-x3,2(y1-y3)}...{2(x1-x3),y1-y3}z1;  % upper point
  24. draw z4{x1-x4,2(y1-y4)}...{2(x1-x4),y1-y4}z1;  % lower point
  25. labels(1,2,3,4); endchar;
  26.  
  27.  
  28. % The remaining characters will not be slanted
  29.  
  30.  
  31.  
  32. % TFM data
  33.  
  34. font_slant slant;  font_x_height x_height#;
  35. font_quad 18u#+4letter_fit#;
  36.      
  37. slant:=mono_charic#:=0;
  38. currenttransform:=identity yscaled aspect_ratio scaled granularity;
  39.  
  40.  
  41. % This is a fat upward arrow used for printing the shift key
  42.  
  43. tested cmchar "Fat upward arrow (shift key)";
  44. beginchar(hex"10",20u#,cap_height#,0);  % use capitals height
  45. italcorr .4cap_height#*slant;           % .4: see below
  46. adjust_fit(0,0); pickup rule.nib;
  47. lft x7=w-rt x2=hround .5u;
  48. x6=hround(x7+.25[x7,x2]);    % the stem width is half the arrow head width
  49. x6-x7=x2-x3;
  50. x5=x6; x4=x3;
  51. x1=.5w; top y1=h;
  52. y7=y6=y3=y2=vround(.4h);     % arrow head height / stem height = 3/2
  53. bot y5=bot y4=0;
  54. draw z1--z2--z3--z4--z5--z6--z7--cycle;
  55. labels(range 1 thru 7); endchar;
  56.  
  57.  
  58. % This is a fat downward arrow used for printing lock keys
  59.  
  60. tested cmchar "Fat downward arrow (lock key)";
  61. beginchar(hex"11",20u#,cap_height#,0);  % use capitals height
  62. italcorr .6cap_height#*slant;           % .6: see below
  63. adjust_fit(0,0); pickup rule.nib;
  64. lft x7=w-rt x2=hround .5u;
  65. x6=hround(x7+.25[x7,x2]);    % the stem width is half the arrow head width
  66. x6-x7=x2-x3;
  67. x5=x6; x4=x3;
  68. x1=.5w; bot y1=0;
  69. y7=y6=y3=y2=vround(.6h);     % arrow head height / stem height = 3/2
  70. top y5=top y4=h;
  71. draw z1--z2--z3--z4--z5--z6--z7--cycle;
  72. labels(range 1 thru 7); endchar;
  73.  
  74.  
  75. % This is a equiliteral triangle pointing to the left
  76. % used for printing the backspace and return keys
  77.  
  78. tested cmchar "Leftward triangle";
  79. beginchar(hex"12",10u#,cap_height#,0);  % use capitals height
  80. adjust_fit(0,0);    % no pickup
  81. w-x1=w-x2=x3=0;     % no space at either side
  82. y3=.5h;
  83. z1-z2=(z3-z2) rotated 60;
  84. fill z1--z2--z3--cycle;
  85. italcorr y1*slant;
  86. labels(1,2,3); endchar;
  87.  
  88.  
  89. % This is a padlock for printing lock keys
  90.  
  91. cmchar "Padlock";
  92. beginchar(hex"13",10u#,asc_height#,0);   % use lower case ascenders height
  93. adjust_fit(0,0);
  94. pickup light_rule.nib;
  95. if .5w<>good.x .5w: change_width; fi
  96. top y8=0;   % overshoot
  97. y6=y10=good.y(.6[0,h]);
  98. y7=y9=good.y(.6[0,y10]);
  99. lft x6=w-rt x10=hround .5u;
  100. x7=x6; x9=x10;
  101. x8=hround .5w;
  102. draw z6--z7{down}..z8{right}..{up}z9--z10--cycle;
  103.  
  104. pickup fine.nib;
  105. bot y3r=h;  % overshoot
  106. y2r=vround(.3[y10,h]);
  107. y5r=y5l=y1l=y1r=y10;
  108. y4l=y4r=y2l=y2r;
  109. x3l=x3r=x8;
  110. x5r=good.x(1/16[x6,x10]);
  111. x1r=good.x(1/16[x10,x6]);
  112. x1r-x1l=x2r-x2l=x4l-x4r=x5l-x5r=hround(h/15);
  113. y3r-y3l=vround(h/15);
  114. x1r=x2r; x4r=x5r;
  115. forsuffixes $=l,r:
  116.   draw z1$--z2${up}..z3${left}..{down}z4$--z5$;
  117. endfor
  118.  
  119. z11=(hround .5w,vround(.7[0,y10]));
  120. fill fullcircle xscaled hround(h/8) yscaled vround(h/8) shifted z11;
  121. y12=y13=vround(.35[0,y10]);
  122. x12=hround(x11-.5h/8+eps);
  123. x13=hround(x11+.5h/8-eps);
  124. % show z11; show z12; show z13;
  125. fill z11--z12--z13--cycle;
  126.  
  127. italcorr y10*slant;
  128. penlabels(range 1 thru 13); endchar;
  129.  
  130. bye
  131.