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

  1. % This file contains special letters and letter combinations,
  2. % compatible with the alphabet `{\tt romanu}'.
  3.  
  4. % Codes \0035--\0037 are generated.
  5.  
  6. cmchar "The ligature AE";
  7. beginchar(oct"035",16u#,cap_height#,0);
  8. italcorr cap_height#*slant-beak_jut#-.5u#;
  9. adjust_fit(cap_serif_fit#,0);
  10. numeric left_stem,mid_stem,outer_jut,alpha;
  11. mid_stem=max(tiny.breadth,hround .9[mfudged.hair,mfudged.cap_stem]);
  12. pickup tiny.nib; pos1(mid_stem,0); pos2(mid_stem,0);
  13. lft x1l=lft x2l=hround(if monospace or hefty:.55 else:.5 fi\\w-.75u);
  14. top y1=h; bot y2=0;
  15. filldraw stroke z1e--z2e; % stem
  16. pickup crisp.nib; pos3(slab,90); pos4(mfudged.hair,0);
  17. top y3r=h; x3=x1; rt x4r=hround(w-u); y4=good.y(y3l-beak)-eps;
  18. arm(3,4,e,beak_darkness,beak_jut);  % upper arm and beak
  19. pos5(cap_bar,-90); pos6(mfudged.hair,0); x5=x1;
  20. top y5l=vround(if hefty:.52 else:.48 fi\\[y2,y1]+.5cap_bar);
  21. pos0(cap_bar,90); pos7(mfudged.hair,0);
  22. z0=z5; x6=x7; y6-y5l=y0l-y7;
  23. if serifs and not(monospace and hefty): rt x6r=hround(w-3.65u+.5mfudged.hair);
  24.  y6=good.y(y5l+.6beak)+eps; rt x9r=hround(w-.5u);
  25. else: rt x6r=hround(w-1.5u); y6=y5l+eps; rt x9r=hround(w-.75u); fi
  26. arm(5,6,f,beak_darkness,0); arm(0,7,g,beak_darkness,0);  % middle arm and serif
  27. pos8(slab if not serifs:+2stem_corr fi,-90);
  28. pos9(mfudged.hair,0); bot y8r=0; x8=x2; y9=good.y(y8l+7/6beak)+eps;
  29. arm(8,9,h,beak_darkness,1.5beak_jut);  % lower arm and beak
  30. left_stem=if monospace:fudged.hair else: cap_hair fi if hefty: -3stem_corr fi;
  31. outer_jut=.8cap_jut; x11l=l+letter_fit+outer_jut+.5u; y11=0;
  32. x12=x1l-apex_corr-if monospace:2 fi\\u; y12=h;
  33. alpha=diag_ratio(1,.5left_stem,y12-y11,x12-x11l);
  34. penpos11(alpha*left_stem,0); penpos12(alpha*left_stem,0);
  35. fill diag_end(12l,11l,1,1,11r,12r)
  36.  --diag_end(11r,12r,1,1,12l,11l)--cycle; % diagonal
  37. y10=h-slab; z10=whatever[z11,z12];
  38. fill z10--(x1,y10)--(x1,h)--z12--cycle;  % link
  39. penpos13(whatever,angle(z2-z1)); z13=whatever[z11,z12];
  40. penpos14(cap_band,90); x14=x0; y13l=y14l; y13r=y14r;
  41. if hefty: y14r=.4h; else: y14=y0; fi
  42. penstroke z13e--z14e; % bar line
  43. if serifs: numeric inner_jut; pickup tiny.nib;
  44.  prime_points_inside(11,12);
  45.  if rt x11'r+cap_jut+.5u+1<=lft x2l-.75cap_jut: inner_jut=cap_jut;
  46.  else: rt x11'r+inner_jut+.5u+1=lft x2l-.75inner_jut; fi
  47.  dish_serif(11',12,i,1/2,outer_jut,j,.6,inner_jut)(dark);  % lower left serif
  48.  nodish_serif(1,2,a,1/3,cap_jut+x1l-x12,b,1/3,.5cap_jut);  % upper serif
  49.  nodish_serif(2,1,c,1/3,.75inner_jut,d,1/3,.5cap_jut); fi  % lower middle serif
  50. penlabels(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14); endchar;
  51.  
  52. cmchar "The ligature OE";
  53. beginchar(oct"036",18u#,cap_height#,0);
  54. italcorr cap_height#*slant-beak_jut#-.5u#;
  55. adjust_fit(cap_serif_fit#,0);
  56. numeric light_stem;
  57. light_stem=max(tiny.breadth,hround .8[mfudged.hair,mfudged.cap_stem]);
  58. pickup tiny.nib; pos1(light_stem,0); pos2(light_stem,0);
  59. lft x1l=lft x2l=hround .5w; top y1=h; bot y2=0;
  60. filldraw stroke z1e--z2e; % stem
  61. pickup crisp.nib; pos3(slab,90); pos4(mfudged.hair,0);
  62. top y3r=h; x3=x1; rt x4r=hround(w-u); y4=good.y(y3l-beak)-eps;
  63. arm(3,4,e,beak_darkness,beak_jut);  % upper arm and beak
  64. pos5(cap_bar,-90); pos6(mfudged.hair,0);
  65. top y5l=vround(.52[y2,y1]+.5cap_bar); x5=x1;
  66. pos0(cap_bar,90); pos7(mfudged.hair,0);
  67. z0=z5; x6=x7; y6-y5l=y0l-y7;
  68. if serifs and not(monospace and hefty): rt x6r=hround(w-3.4u+.5mfudged.hair);
  69.  y6=good.y(y5l+.6beak)+eps; rt x9r=hround(w-.5u);
  70. else: rt x6r=hround(w-1.5u); y6=y5l+eps; rt x9r=hround(w-.75u); fi
  71. arm(5,6,f,beak_darkness,0); arm(0,7,g,beak_darkness,0);  % middle arm and serif
  72. pos8(slab if not serifs:+2stem_corr fi,-90);
  73. pos9(mfudged.hair,0); bot y8r=0; x8=x2; y9=good.y(y8l+7/6beak)+eps;
  74. arm(8,9,h,beak_darkness,1.5beak_jut);  % lower arm and beak
  75. penpos11(vair,90); penpos13(vair,-90);
  76. if monospace: penpos12(fudged.cap_stem,180);
  77.  interim superness:=sqrt superness;  % make |"O"|, not |"0"|
  78. else: penpos12(hround(cap_curve-stem_corr),180); fi
  79. x11=x13=.5w-2u; y11r=h+o; y13r=-o; y12=.5h-vair_corr; x12r=hround u;
  80. x14=x15=.5w; y14=2/3h; y15=1/3h; y12l:=.52h;
  81. penstroke super_arc.e(11,12) & super_arc.e(12,13);  % left half of bowl
  82. fill z13r{right}..{right}(x2,0)--(x1,h){left}..{left}z11r
  83.  --z11l{right}...{z14-z11l}(.82[x11l,x14],.82[y14,y11l])
  84.  ...z14---z15...{z13l-z15}(.82[x13l,x15],.82[y15,y13l])
  85.  ...{left}z13l--cycle;  % right half of bowl
  86. if serifs: serif(1,2,a,1/3,.5cap_jut);  % upper serif
  87.  serif(2,1,b,1/3,.5cap_jut); fi  % lower serif
  88. penlabels(0,1,2,3,4,5,6,7,8,9,11,12,13,14,15); endchar;
  89.  
  90. cmchar "Scandinavian letter O/slash";
  91. beginchar(oct"037",14u#,cap_height#+.25desc_depth#,.25desc_depth#);
  92. italcorr .7cap_height#*slant-.5u#;
  93. adjust_fit(0,0);
  94. penpos1(vair,90); penpos3(vair,-90);
  95. penpos2(fudged.cap_stem,180); penpos4(fudged.cap_stem,0);
  96. if monospace: x2r=hround 1.5u;
  97.  interim superness:=sqrt superness;  % make |"O"| not |"0"|
  98. else: x2r=hround u; fi
  99. x4r=w-x2r; x1=x3=.5w;
  100. y1r=cap_height+o; y2=y4=.5cap_height-vair_corr; y3r=-o;
  101. penstroke pulled_arc.e(1,2) & pulled_arc.e(2,3)
  102.  & pulled_arc.e(3,4) & pulled_arc.e(4,1) & cycle;  % bowl
  103. x5=x4-vair; x6=x2+vair; y5=h; y6=-d;
  104. numeric theta; theta=angle(z5-z6)-90;
  105. pickup crisp.nib; pos5(vair',theta); pos6(vair',theta);
  106. filldraw stroke z5e--z6e;  % diagonal
  107. penlabels(1,2,3,4,5,6); endchar;
  108.