home *** CD-ROM | disk | FTP | other *** search
/ Fresh Fish 8 / FreshFishVol8-CD2.bin / bbs / text / pastex-1.3-7of9.lha / PasTeX / MF / inputs / dc / dxrleast.mf < prev    next >
Text File  |  1994-04-12  |  52KB  |  1,162 lines

  1. % This is DXRLEAST.MF in text format, as of March 24, 1992
  2. %
  3. % DC fonts Version 1.1 (prerelease of EC fonts)
  4. %
  5. %          [ heavily borrowed from the Computer Modern Roman family of
  6. %            fonts by D. E. Knuth ]
  7. %
  8. % Content:
  9. %
  10. %  accented lowercase letters ("easten part")
  11. %
  12. %   oct"236", oct"240" .. oct"274"
  13. %
  14. %       oct"236"    d  with bar
  15. %
  16. %       oct"240"    a  with breve
  17. %       oct"241"    a  with ogonek
  18. %       oct"242"    c  with acute
  19. %       oct"243"    c  with hacek
  20. %       oct"244"    d  with comma
  21. %       oct"245"    e  with hacek
  22. %       oct"246"    e  with ogonek
  23. %       oct"247"    g  with breve
  24. %
  25. %       oct"250"    l  with acute
  26. %       oct"251"    l  with komma
  27. %       oct"252"    l  with (polnisches L)
  28. %       oct"253"    n  with acute
  29. %       oct"254"    n  with hacek
  30. %       oct"255"    the letter eng
  31. %   x   oct"256"    o  with ungarian umlauts
  32. %       oct"257"    r  with acute
  33. %
  34. %       oct"260"    r  with hacek
  35. %       oct"261"    s  with acute
  36. %       oct"262"    s  with hacek
  37. %       oct"263"    s  with cedille
  38. %       oct"264"    t  with comma
  39. %       oct"265"    t  with cedille
  40. %   x   oct"266"    u  with hungarian umlauts
  41. %       oct"267"    u  with circ
  42. %
  43. %       oct"270"    y with  umlauts
  44. %       oct"271"    z with  acute
  45. %       oct"272"    z with  hacek
  46. %       oct"273"    z with  dot
  47. %       oct"274"    ij
  48. %
  49. %
  50.  
  51. dcchar "The letter bar d";
  52. beginchar(oct"236",10u#+serif_fit#,asc_height#,0);
  53. italcorr asc_height#*slant-serif_fit#+.5stem#-2u#;
  54. adjust_fit(0,serif_fit#);
  55. pickup tiny.nib; pos1(stem',0); pos2(stem,0);
  56. pos0'(stem',0); pos0(stem,0); z0r=z0'r; x0'=x1; x0=x2;
  57. rt x1r=hround(w-2.5u+.5stem'); top y1=h;
  58. numeric edge; edge=lft x2l;
  59. pickup fine.nib; pos3(if hefty:thin_join else: hair fi,0);
  60. pos4(vair,90); pos5(curve,180); pos6(vair,270); penpos7(x3r-x3l,360);
  61. lft x3l=min(lft x3l-(rt x3r-tiny.rt x2r),1/3[lft x2,edge]);
  62. y3=1/8[bar_height,x_height];
  63. x4l=.5(w-serif_fit)-.3u; top y4r=x_height+oo if monospace: -hair fi;
  64. lft x5r=hround max(1.35u-.5curve,.6u); y5=.5x_height if monospace: -.5hair fi ;
  65. x6l=x4l-.2u; bot y6r=-oo;
  66. x7=x3; y7=min(y3,y6+y4-y3+.6vair);
  67. (x,y4r)=whatever[z3l,z4l]; x4r:=max(x,.5[x5r,x4]);
  68. (x',y6r)=whatever[z7l,z6l]; x6r:=max(x',.5[x5r,x6]);
  69. filldraw stroke z3e{up}...pulled_arc.e(4,5)
  70.  & pulled_arc.e(5,6)...{up}z7e; % bowl
  71. y0=ypart(((edge,h)--(edge,0))intersectionpoint(z3l{up}...{left}z4l));
  72. pickup tiny.nib; bot y2=if serifs:-min(oo,serif_drop) else: 0 fi;
  73. filldraw stroke z1e--z0'e--z0e--z2e;  % stem
  74. if serifs: sloped_serif.l(1,0',a,1/3,jut,serif_drop);  % upper serif
  75.  sloped_serif.r(2,0,b,1/3,jut,min(oo,serif_drop)); fi  % lower serif
  76. %
  77.   pos8(bar,90); pos9(bar,90);
  78.   x8=.5[x4,x5];
  79.   if serifs: x9=x2r+jut; else: x9=w; fi
  80.   if serifs: y8=y9=.5[y.a2-.5slab,y4+.5vair];
  81.   else: y8=y9=.5[x_height,asc_height-serif_drop]; fi
  82.   filldraw stroke z8e--z9e;
  83. penlabels(0,1,2,3,4,5,6,7,8,9); endchar;
  84.  
  85.  
  86.  
  87. %%%%%%
  88.  
  89.  
  90. dcchar "The letter breve a";
  91. beginchar(oct"240",9u#,
  92.       max(x_height#+acc_height#,min(asc_height#,2x_height#)),0);
  93. bh#:=min(bar_height#,1.14x_height#-bar_height#); define_pixels(bh);
  94. italcorr 1/3[bh#,x_height#]*slant+.5stem#-serif_fit#-2u#;
  95. adjust_fit(0,serif_fit# if serifs: if hair#+.5stem#>1.5u#:-.25u# fi\\fi);
  96. pickup fine.nib; top y3r=x_height+vround 1.5oo;
  97. if serifs: pos1(flare,180); pos2(hair,180);
  98.  pos3(vair,90);  lft x1r=hround max(u,2.1u-.5flare); x3=.5w-.5u;
  99.  y1=min(bh+.5flare+2vair+2,.9[bh,x_height]-.5flare);
  100.  bulb(3,2,1);  % bulb
  101. else: pos1(5/7[vair,flare],95); x1l=good.x 1.5u; x1r:=good.x x1r;
  102.  pos3(1/8[vair,thin_join],90);
  103.  x3=.5w-.2u; top y1r=vround .82[bh,top y3r];
  104.  filldraw stroke term.e(3,1,left,.9,4); fi  % terminal
  105. pos4(stem,0); rt x4r=hround(w-2.5u+.5stem); y4=1/3[bh,x_height];
  106. pos5(stem,0); x5=x4; y5=max(.55bh,2vair);
  107. filldraw stroke super_arc.e(3,4)&z4e..z5e;  % arc and stem
  108. pos6(.3[thin_join,vair],90); x6=x4; bot y6=bh;
  109. pos7(hround(curve-2stem_corr),180);
  110. lft x7r=hround max(.5u,1.5u-.5curve); y7=1/3[top y8l,top y6r];
  111. pos8(vair,270); x8l=.5w-.75u; bot y8r=-oo;
  112. pos9(thin_join,360); z9l=z5l;
  113. (x,y8r)=whatever[z8l,z9l]; x8r:=max(x,x8-u);
  114. {{interim superness:=more_super;
  115.  filldraw stroke z9e{down}...z8e{left}...{up}z7e&super_arc.e(7,6)}}; % bowl
  116. if serifs: numeric shaved_stem; shaved_stem=hround(stem-3stem_corr);
  117.  if hair#+.5stem#>1.5u#: pickup tiny.nib;
  118.   pos5'(shaved_stem,0); rt x5'r=fine.rt x5r; y5'=y5;
  119.   pos10(shaved_stem,0); x10=x5'; y10=.2[.5tiny,bh];
  120.   pos11(shaved_stem,0); rt x11r=hround(w-.25u); bot y11=0;
  121.   pos12(shaved_stem,0); x11=x12; top y12=slab+eps;
  122.   filldraw z5'l---z10l...z11l{right}--z11r
  123.    --z12r{left}...z10r+.75(z12-z11)---z5'r--cycle;  % foot
  124.  else: pickup crisp.nib; pos5'(shaved_stem,0); rt x5'r=fine.rt x5r; y5'=y5;
  125.   pos10(shaved_stem,0); x10=x5'; y10=1/3bh;
  126.   pos11(.2[vair,stem],90); x11r=.5[x10r,x12r]; bot y11l=-vround .5oo;
  127.   pos12(hair,180); rt x12l=hround(w-.1u); y12=max(y10,y11+vair);
  128.   pos13(hair,180); x13=x12; top y13=max(vround .6bh,top y12);
  129.   (x',y11l)=whatever[z11r,z12r]; x11l:=max(x',x10);
  130.   filldraw stroke z5'e---z10e...z11e{right}...z12e---z13e; fi  % hook
  131. else: numeric shaved_stem; shaved_stem=hround(stem-stem_corr);
  132.  pickup tiny.nib; pos5'(shaved_stem,0); rt x5'r=fine.rt x5r; y5'=y5;
  133.  pos10(shaved_stem,0); x10=x5'; bot y10=0;
  134.  filldraw stroke z5'e--z10e; fi  % base of stem
  135. % the accent
  136. lowercase_breve(.5w,0,14,15,16);
  137. penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16); endchar;
  138.  
  139. dcchar "The letter ogonek a";
  140. beginchar(oct"241",9u#,x_height#,desc_depth#);
  141. bh#:=min(bar_height#,1.14x_height#-bar_height#); define_pixels(bh);
  142. italcorr 1/3[bh#,x_height#]*slant+.5stem#-serif_fit#-2u#;
  143. adjust_fit(0,serif_fit# if serifs: if hair#+.5stem#>1.5u#:-.25u# fi\\fi);
  144. pickup fine.nib; top y3r=x_height+vround 1.5oo;
  145. if serifs: pos1(flare,180); pos2(hair,180);
  146.  pos3(vair,90);  lft x1r=hround max(u,2.1u-.5flare); x3=.5w-.5u;
  147.  y1=min(bh+.5flare+2vair+2,.9[bh,x_height]-.5flare);
  148.  bulb(3,2,1);  % bulb
  149. else: pos1(5/7[vair,flare],95); x1l=good.x 1.5u; x1r:=good.x x1r;
  150.  pos3(1/8[vair,thin_join],90);
  151.  x3=.5w-.2u; top y1r=vround .82[bh,top y3r];
  152.  filldraw stroke term.e(3,1,left,.9,4); fi  % terminal
  153. pos4(stem,0); rt x4r=hround(w-2.5u+.5stem); y4=1/3[bh,x_height];
  154. pos5(stem,0); x5=x4; y5=max(.55bh,2vair);
  155. filldraw stroke super_arc.e(3,4)&z4e..z5e;  % arc and stem
  156. pos6(.3[thin_join,vair],90); x6=x4; bot y6=bh;
  157. pos7(hround(curve-2stem_corr),180);
  158. lft x7r=hround max(.5u,1.5u-.5curve); y7=1/3[top y8l,top y6r];
  159. pos8(vair,270); x8l=.5w-.75u; bot y8r=-oo;
  160. pos9(thin_join,360); z9l=z5l;
  161. (x,y8r)=whatever[z8l,z9l]; x8r:=max(x,x8-u);
  162. {{interim superness:=more_super;
  163.  filldraw stroke z9e{down}...z8e{left}...{up}z7e&super_arc.e(7,6)}}; % bowl
  164. if serifs: numeric shaved_stem; shaved_stem=hround(stem-3stem_corr);
  165.  if hair#+.5stem#>1.5u#: pickup tiny.nib;
  166.   pos5'(shaved_stem,0); rt x5'r=fine.rt x5r; y5'=y5;
  167.   pos10(shaved_stem,0); x10=x5'; y10=.2[.5tiny,bh];
  168.   pos11(shaved_stem,0); rt x11r=hround(w-.25u); bot y11=0;
  169.   pos12(shaved_stem,0); x11=x12; top y12=slab+eps;
  170.   filldraw z5'l---z10l...z11l{right}--z11r
  171.    --z12r{left}...z10r+.75(z12-z11)---z5'r--cycle;  % foot
  172.  else: pickup crisp.nib; pos5'(shaved_stem,0); rt x5'r=fine.rt x5r; y5'=y5;
  173.   pos10(shaved_stem,0); x10=x5'; y10=1/3bh;
  174.   pos11(.2[vair,stem],90); x11r=.5[x10r,x12r]; bot y11l=-vround .5oo;
  175.   pos12(hair,180); rt x12l=hround(w-.1u); y12=max(y10,y11+vair);
  176.   pos13(hair,180); x13=x12; top y13=max(vround .6bh,top y12);
  177.   (x',y11l)=whatever[z11r,z12r]; x11l:=max(x',x10);
  178.   filldraw stroke z5'e---z10e...z11e{right}...z12e---z13e; fi  % hook
  179. else: numeric shaved_stem; shaved_stem=hround(stem-stem_corr);
  180.  pickup tiny.nib; pos5'(shaved_stem,0); rt x5'r=fine.rt x5r; y5'=y5;
  181.  pos10(shaved_stem,0); x10=x5'; bot y10=0;
  182.  filldraw stroke z5'e--z10e; fi  % base of stem
  183. % the accent
  184. lowercase_ogonek(if serifs:x11 else: x10r fi,0,14,15,16);
  185. penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16); endchar;
  186.  
  187.  
  188. dcchar "The letter acute c";
  189. beginchar(oct"242",8u#,x_height#+acc_height#,0);
  190. italcorr x_height#*slant-.2u#;
  191. adjust_fit(if monospace: .5u#,.5u# else: 0,0 fi);
  192. pickup fine.nib; pos2(vair',90); pos4(vair',270);
  193. x2=x4=.5(w+u); top y2r=vround(x_height+1.5oo); bot y4r=-oo;
  194. pos3(curve,180); lft x3r=hround max(.6u,1.35u-.5curve); y3=.5x_height