home *** CD-ROM | disk | FTP | other *** search
/ Geek Gadgets 1 / ADE-1.bin / ade-dist / unixtex-6.1b-bin4.lha / lib / texmf / fonts / ams / symbols / src / xbcaps.mf < prev   
Text File  |  1996-10-12  |  27KB  |  828 lines

  1. %% @metafontfile{
  2. %%     filename="xbcaps.mf",
  3. %%     version="2.1",
  4. %%     date="30-MAY-1991",
  5. %%     filetype="Metafont: driver",
  6. %%     copyright="Copyright (C) American Mathematical Society,
  7. %%            all rights reserved.  Copying of this file is
  8. %%            authorized only if either:
  9. %%            (1) you make absolutely no changes to your copy
  10. %%                including name; OR
  11. %%            (2) if you do make changes, you first rename it to some
  12. %%                other name.",
  13. %%     author="American Mathematical Society",
  14. %%     address="American Mathematical Society,
  15. %%            Technical Support Department,
  16. %%            P. O. Box 6248,
  17. %%            Providence, RI 02940,
  18. %%            USA",
  19. %%     telephone="401-455-4080 or (in the USA) 800-321-4AMS",
  20. %%     email="Internet: Tech-Support@Math.AMS.org",
  21. %%     codetable="ISO/ASCII",
  22. %%     checksumtype="line count",
  23. %%     checksum="828",
  24. %%     keywords="amsfonts, tex, metafont , AMSSymbols ",
  25. %%     abstract="This is the driver file for use with 
  26. %%            the Blackboard Bold characters in AMSFonts 2.1."
  27. %%     }
  28. %
  29. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  30.  
  31.  
  32. % Changes made by Stefan Lindner for version 2.1 to fix some 
  33. % rounding problems at low resolutions 03-Mar-1991
  34. % ru defined and substituted for u in drawings of characters.
  35.  
  36. def ru(expr A)=
  37.   begingroup
  38.   save rounded_u; rounded_u#:=A*u#;
  39.   define_whole_vertical_pixels(rounded_u);
  40.   rounded_u
  41.   endgroup
  42. enddef;
  43.  
  44. iff OK "A":  "The letter A";  beginchar("A",13unit#,cap#,0);
  45.  
  46.   top z20=(.48w,h+Aapex); pos20(Atip,0);
  47.   bot y3=0; z3l=whatever[z20l,(1.5unit,0)];
  48.   bot y6=0; z6r=whatever[z20r,(w-round(unit+u),0)];
  49.   z20l=z1l; z20r=z4r;
  50.   mpos(1,3)(Athin,constant_angle(z20l,(1.5unit,0),0));
  51.   mpos(4,6)(stem,constant_angle(z20r,(w-round(unit+u),0),0));
  52.   onaline(1l,3l)(2l);  y2l=c_round_bracket;
  53.   onaline(1r,3r)(2r);  y2r=c_inner_bracket;
  54.   onaline(4l,6l)(5l);  y5l=c_inner_bracket;
  55.   onaline(4r,6r)(5r);  y5r=c_thick_stem_bracket;
  56.   z40=whatever[.8[z1l,z1r],z2r]; z40=whatever[.8[z4r,z4l],z5l];
  57.   y41=round(.4[serif_thickness,y40]-Abar);        % bar bottom
  58.   y42=y41+Abar;
  59.    ref1=rightserif(z3,z1,z2l,z40,ru(7),bracket0)--z40;
  60.    ref2=z40--leftserif(z6,z4,z40,z5r,ru(7),bracket32);
  61.    ref3=(0,y41)--(w,y41);
  62.    ref4=(0,y42)--(w,y42);
  63.   x11=xpart (ref1 intersectionpoint ref3);
  64.   x12=xpart (ref2 intersectionpoint ref3);
  65.   x13=xpart (ref2 intersectionpoint ref4);
  66.   x14=xpart (ref1 intersectionpoint ref4);
  67.   y11=y12=y41; y13=y14=y42;
  68.  
  69.   p1=z20l--leftserif(z3,z1,z2l,z1r,ru(3),bracket0)--ref1--ref2--
  70.      rightserif(z6,z4,z5l,z5r,ru(2.5),bracket0)--z20r--cycle;
  71.   p2=z11--z12--z13--z14--cycle;
  72.  
  73.   showpoints(1,2,3,4,5,6,11,12,13,14,20,40,41,42);
  74.   draw_outlines;
  75.   endchar;
  76.  
  77.  
  78. iff OK "B":  "The letter B";  beginchar("B",12unit#,cap#,0); 
  79.   
  80.   top lft z1l=(round(ru(5)+2smallu),h); 
  81.   z2l=(x1l,h-c_thick_stem_bracket); 
  82.   z2r=(x1r,h-c_round_bracket); 
  83.   z3l=(x1l,c_thick_stem_bracket); 
  84.   z3r=(x1r,c_round_bracket);  
  85.   bot z4l=(x1l,0); 
  86.   mpos(1,4)(Bstem,0); 
  87.   z5l=(rt x1r+ru(4),y1); 
  88.   z5r=(rt x1r+ru(3),y1-Btopthin); 
  89.   onaline(1r,4r)(8l);  
  90.   bot y8l=.5h-smallu; pos8(Bmidthin,90); 
  91.   rt z6l=(w-round(1.5unit),.5[y5l,y8l]); pos6(Btopcurve,180); 
  92.   rt z9l=(w-round(ru(2.5)),.5[y10l,y8r]); pos9(Bbotcurve,180); 
  93.   z10l=(rt x1r+ru(4),y4); 
  94.   z10r=(rt x1r+ru(3),y4+Bbotthin);   
  95.   z7l=(rt x1r+ru(3),y8l); 
  96.   rt z7=(lft x9r-ru(3),.5[top y8l,y8r]); 
  97.   
  98.   p1=leftserif(z1,z4,z2l,z2r,ru(5.2),bracket4)-- 
  99.      leftserif(z4,z1,z3l,z3r,ru(5.2),bracket4)-- 
  100.      curve.br(z10l,.5,z9l,.7)--curve.tr(z9l,.7,z7,.5)-- 
  101.      curve.br(z7,.5,z6l,.5)--curve.tr(z6l,.8,z5l,.6)--cycle; 
  102.   p1'=z8l--z8r; 
  103.   p1''=curve.br(z8r,.6,z6r,.85)--curve.tr(z6r,.7,z5r,.5)... 
  104.        {left}z5r...{down}z2r--cycle; 
  105.   p2''=z8l--z3r{down}...{right}z10r-- 
  106.        curve.br(z10r,.6,z9r,.7)--curve.tr(z9r,.8,z7l,.6)--cycle; 
  107.   
  108.   showpoints(1,2,3,4,5,6,7,8,9,10); 
  109.   draw_outlines; 
  110.   endchar; 
  111.  
  112.  
  113. iff OK "C":  "The letter C";  beginchar("C",(1+12)*unit#,cap#,0);
  114.  
  115.   bot z2l=(max(7unit,.5w),-Cover);
  116.   y2r=y2l+Cbotthin;
  117.   x2r=x2l+(min(Cbotthin,abs(y2r-y2l)));
  118.   bot rt z1l=(w-ru(2),2unit);
  119.   ref1=z2l{right}...z1l; 
  120.   pos1(Ctip,angle(z1l-precontrol 1 of ref1)+ 90);
  121.   lft z3l=(round ru(2),.5h); pos3(Ccurve,0);
  122.   top z4l=(x2l,h+Cover);
  123.   y4r=y4l-Ctopthin;
  124.   x4r=x4l+(min(ru(.5),abs(y4r-y4l)));
  125.   bot rt z5=(w-round(unit+ru(.5)),h-3unit-ru(2.5));
  126.   z6=(x5,y4l);
  127.   z7=z6-(ru(2.5),ru(2.5));
  128.   p1=curve.tl(z4l,.5,z3l,.7)--curve.bl(z3l,.7,z2l,.5)...z1l--
  129.      z1r...reversecurve.bl(z3r,.7,z2r,.6)--reversecurve.tl(z4r,.6,z3r,.6)--
  130.      beak(z4r,z5,z6,z7,z4l,1.2)--cycle;
  131.  
  132.   showpoints(1,2,3,4,5,6,7);
  133.   draw_outlines;
  134.   endchar;
  135.  
  136.  
  137. iff OK "D":  "The letter D";  beginchar("D",13unit#,cap#,0); 
  138.     
  139.   top lft z1l=(round(ru(u)+smallu),h); 
  140.   z2l=(x1l,h-c_thick_stem_bracket); 
  141.   z2r=(x1r,h-c_round_bracket); 
  142.   z3l=(x1l,c_thick_stem_bracket); 
  143.   z3r=(x1r,c_round_bracket); 
  144.   bot z4l=(x1l,0); 
  145.   mpos(1,4)(stem,0); 
  146.   z5l=(rt x1r+ru(4),y4); 
  147.   z5r=(rt x1r+ru(3),y5l+Dbotthin); 
  148.   rt z6l=(w-u-2smallu,.52h); pos6(Dcurve,180); 
  149.   z7l=(rt x1r+ru(4),y1);    
  150.   z7r=(rt x1r+ru(3.5),y7l-Dtopthin); 
  151.   
  152.   p1=leftserif(z1,z4,z2l,z2r,ru(4.5),bracket4)-- 
  153.      leftserif(z4,z1,z3l,z3r,ru(4.5),bracket4)-- 
  154.      curve.br(z5l,.5,z6l,.7)--curve.tr(z6l,.7,z7l,.5)--cycle; 
  155.   p1''=curve.br(z5r,.5,z6r,.8)--curve.tr(z6r,.7,z7r,.5)... 
  156.       {down}z2r...z3r{down}...{right}z5r--cycle; 
  157.   
  158.   showpoints(1,2,3,4,5,6,7); 
  159.   draw_outlines; 
  160.   endchar; 
  161.   
  162.  
  163. iff OK "E":  "The letter E";  beginchar("E",(1+11)*unit#,cap#,0);
  164.  
  165.   top lft z1l=(round(ru(5.5)),h);                                    
  166.   z2l=(x1l,h-c_thick_stem_bracket);
  167.   z2r=(x1r,h-c_inner_bracket);
  168.   z3l=(x1l,c_thick_stem_bracket);
  169.   z3r=(x1r,c_inner_bracket);
  170.   bot z4l=(x1l,0);
  171.   mpos(1,4)(Estem,0);
  172.   bot rt z11=(w-unit,0);
  173.   top rt z12=(w-.5unit,3unit+ru(u));
  174.   z13=(.5w+.5unit,y4+Ebotarm);
  175.   z14=(min(x13,rt x4r+.5unit),y13);  
  176.   rt z21=(w-ru(4),y1);
  177.   bot z22=(x21,top y1-3.5unit);
  178.   z23=(ru(19),y1-Etoparm);
  179.   z24=(rt x1r+.5unit,y23);
  180.   onaline(1r,4r)(31,35);
  181.   bot y31=.5h-smallu;
  182.   y35=y31+Emidarm;
  183.   rt z33=(w-(3.8unit),.5[y31,y35]);
  184.   x32=x34=x33;
  185.   bot y32=bot y31-2.5unit;
  186.   top y34=bot y32+6unit;
  187.  
  188.   p1=leftserif(z4,z1,z3l,z3r,ru(4.75),.4)--
  189.      straightarm.br(z13,z12,z11,Ebot_tip,pullout)--z14{left}...{up}z3r--
  190.      z2r{up}...{right}z24--straightarm.tr(z23,z22,z21,Emid_tip,pulleven)--
  191.      leftserif(z1,z4,z2l,z2r,ru(4.75),.4)--cycle;
  192.   p1'=straightarm.br(z31,z32,z33,Emid_tip,pullin)--
  193.      straightarm.tr(z35,z34,z33,Emid_tip,pullin);
  194.  
  195.   showpoints(1,2,3,4,11,12,13,14,21,22,23,24,31,32,33,34,35);
  196.   draw_outlines;
  197.   endchar;
  198.  
  199.  
  200. iff OK "F":  "The letter F";  beginchar("F",(1+10)*unit#,cap#,0); 
  201.   
  202.   top lft z1l=(round(ru(5.5)),h); 
  203.   z2l=(x1l,h-c_thick_stem_bracket); 
  204.   z2r=(x1r,h-c_inner_bracket);    
  205.   z3l=(x1l,c_thick_stem_bracket); 
  206.   z3r=(x1r,c_inner_bracket);    
  207.   bot z4l=(x1l,0); 
  208.   mpos(1,4)(Fstem,0);
  209.   rt z21=(w-.5unit,y1); 
  210.   bot z22=(x21,top y1-3.5unit); 
  211.   z23=(ru(19),y1-Etoparm); 
  212.   z24=(rt x1r+.5unit,y23);
  213.   onaline(1r,4r)(31,35); 
  214.   bot y31=.5h-smallu; 
  215.   y35=y31+Emidarm; 
  216.   rt z33=(w-3unit,.5[y31,y35]); 
  217.   x32=x34=x33;   
  218.   bot y32=bot y31-2.5unit; 
  219.   top y34=bot y32+6unit;
  220.   
  221.   p1=fullserif(z4,z1,z3l,z3r,ru(4.75),ru(6),bracket4)--z2r{up}...{right}z24--
  222.      straightarm.tr(z23,z22,z21,Emid_tip,pulleven)--
  223.      leftserif(z1,z4,z2l,z2r,ru(4.75),bracket4)--cycle; 
  224.   p1'=straightarm.br(z31,z32,z33,Emid_tip,pullin)-- 
  225.      straightarm.tr(z35,z34,z33,Emid_tip,pullin); 
  226.   
  227.   showpoints(1,2,3,4,21,22,23,24,31,32,33,34,35); 
  228.   draw_outlines; 
  229.   endchar; 
  230.  
  231.  
  232. iff OK "G":  "The letter G";  beginchar("G",(1+13)*unit#,cap#,0);
  233.  
  234.   bot z2l=(max(7unit,.5w),-Gover);
  235.   y2r=y2l+Gbotthin;
  236.   x2r=x2l+(min(Gbotthin,abs(y2r-y2l)));
  237.   lft z3l=(round ru(2),.5h); pos3(Gcurve,0);
  238.   top z4l=(x2l,h+Gover);
  239.   y4r=y4l-Gtopthin;
  240.   x4r=x4l+(min(.5u,abs(y4r-y4l)));
  241.   bot rt z5=(w-round(2unit+.5u),h-3unit-ru(2.5));
  242.   z6=(x5,y4l);
  243.   z7=z6-(ru(2.5),ru(2.5));
  244.   top rt z11r=(rt x5+.5u,5unit+.5u);
  245.   bot z13r=(x11r,unit-2smallu);
  246.   mpos(11,13)(Gstem,0);
  247.   onaline(11r,13r)(12r); y12r=max(y11r-c_thick_stem_bracket,y13r);
  248.   onaline(11l,13l)(12l); y12l=max(y11l-c_thick_stem_bracket,y13r+unit);
  249.  
  250.   p1=curve.tl(z4l,.5,z3l,.7)--curve.bl(z3l,.7,z2l,.5)--z2l{right}...z13r--
  251.      fullserif(z11,z13,z12l,z12r,ru(5.5),ru(4.5),bracket0)...{down}z13l...{left}z2r--
  252.      reversecurve.bl(z3r,.7,z2r,.6)--reversecurve.tl(z4r,.6,z3r,.6)--
  253.      beak(z4r,z5,z6,z7,z4l,1.2)--cycle;
  254.  
  255.   showpoints(2,3,4,5,6,7,11,12,13);
  256.   draw_outlines;
  257.   endchar;
  258.  
  259.  
  260. iff OK "H":  "The letter H";  beginchar("H",(1+13)*unit#,cap#,0);
  261.  
  262.   numeric H_inner_serif_amt;
  263.   top lft z1l=(round(3.75unit/2),h);
  264.   z2l=(x1l,h-c_thick_stem_bracket);
  265.   z3l=(x1l,c_thick_stem_bracket);
  266.   bot z4l=(x1l,0);
  267.   top rt z11r=(w-round(3.75unit/2),h);
  268.   z12r=(x11r,h-c_thick_stem_bracket);
  269.   z13r=(x11r,c_thick_stem_bracket);
  270.   bot z14r=(x11r,0);
  271.   mpos(1,2,3,4,11,12,13,14)(stem,0);
  272.   onaline(1r,4r)(5l,5r); bot y5l=bot y15l=.5cap-u;
  273.   onaline(11l,14l)(15l,15r); y5r=y15r=y5l+Hbar;
  274.   H_inner_serif_amt=ru(4.75);
  275.    if (x1r+H_inner_serif_amt+.5linethickness)>.5w:    % keeps inner serifs
  276.       H_inner_serif_amt:=.5w-x1r-.5linethickness-1;   % from merging
  277.    fi 
  278.  
  279.   p1=fullserif(z1,z4,z2l,z2r,ru(4.75),H_inner_serif_amt,bracket4)--
  280.      fullserif(z4,z1,z3l,z3r,ru(4.75),H_inner_serif_amt,bracket4)--cycle;
  281.   p2=fullserif(z11,z14,z12l,z12r,H_inner_serif_amt,ru(4.75),bracket4)--
  282.      fullserif(z14,z11,z13l,z13r,H_inner_serif_amt,ru(4.75),bracket4)--cycle;
  283.   p1'=z5r--z15r--z15l--z5l;
  284.  
  285.   showpoints(1,2,3,4,5,11,12,13,14,15);
  286.   draw_outlines;
  287.   endchar;
  288.  
  289.  
  290. iff OK "I":  "The letter I";  beginchar("I",(1+6)*unit#,cap#,0);
  291.  
  292.   top lft z1l=(round((w-stem-linethickness)/2),h);
  293.   z2l=(x1l,h-c_thick_stem_bracket);
  294.   z3l=(x1l,c_thick_stem_bracket);
  295.   bot z4l=(x1l,0);
  296.   mpos(1,2,3,4)(stem,0);
  297.  
  298.   p1=fullserif(z1,z4,z2l,z2r,ru(5),ru(5),bracket4)--
  299.      fullserif(z4,z1,z3l,z3r,ru(5),ru(5),bracket4)--cycle;
  300.  
  301.   showpoints(1,2,3,4);
  302.   draw_outlines;
  303.   endchar;
  304.  
  305.  
  306. iff OK "J":  "The letter J";  beginchar("J",(2+7)*unit#,cap#,descender#);
  307.  
  308.   top rt z1r=(round(w-2unit),h);
  309.   z2r=(x1r,h-c_thick_stem_bracket);
  310.   z3r=(x1r,2unit);
  311.   z3l=(x1l,u);
  312.    mpos(1,2)(stem,0);
  313.   bot z10r=(w/3,-.45d);
  314.   z10l=z10r+(-smallu,Jbotthin);
  315.   lft z12l=(smallu,ru(2)); pos12(Jbulb,0);
  316.   top z13=(x12,2unit-smallu); 
  317.    ref1=z12r...z12l...cycle;
  318.   z14= point 1.75 of ref1; z15=direction 1.75 of ref1;
  319.   z11=(x12r-.5unit,.5[y10l,y14]);
  320.  
  321.   p1=fullserif(z1,z2,z2l,z2r,ru(5.5),ru(4.75),bracket4)--z3l{down}...z10l{left}...
  322.      z11{up}...z14{z15}...z12r{up}...z13{left}...z12l{down}...  % bulb
  323.      curve.br(z10r,.65,z3r,.65)--cycle;
  324.  
  325.   showpoints(1,2,3,10,11,12,13,14,15);
  326.   draw_outlines;
  327.   endchar;
  328.  
  329.  
  330. iff OK "K":  "The letter K";  beginchar("K",(1+13)*unit#,cap#,0);
  331.  
  332.   numeric K_inner_serif_amt;
  333.   top lft z11l=(2unit,h);
  334.   z12l=(x11l,h-c_thick_stem_bracket);
  335.   z13l=(x11l,c_thick_stem_bracket); 
  336.   bot z14l=(x11l,0);
  337.   mpos(11,12,13,14)(stem,0);
  338.   onaline(11r,14r)(3r,4);  
  339.   bot y3r=.4cap; 
  340.   top rt z1r=(w-2unit,cap);
  341.   mpos(1,3)(Kthin,angle(z1r-z3r)-90);
  342.   y2l=y2r=cap-Kthin_diag_bracket;   
  343.   onaline(1l,3l)(2l,4);
  344.   onaline(1r,3r)(2r,21l);
  345.   onaline(1,3)(0); top y0=cap;   
  346.   bot y21l=y3r+.5unit;
  347.   bot rt z23r=(w-ru(2),0);  
  348.   mpos(21,23)(Kdiag,angle(z1r-z3r));
  349.   y22l=y22r=c_thick_stem_bracket; 
  350.   onaline(21l,23l)(22l);
  351.   onaline(21r,23r)(22r);
  352.   onaline(21,23)(20); bot y20=0; 
  353.  
  354.   K_inner_serif_amt=ru(4.75); 
  355.    if (x11r+K_inner_serif_amt+.5linethickness)>.5w:
  356.       K_inner_serif_amt:=.5w-x11r-.5linethickness-1;
  357.    fi
  358.  
  359.   p1=fullserif(z11,z14,z12l,z12r,ru(4.75),K_inner_serif_amt,bracket4)-- 
  360.      fullserif(z14,z11,z13l,z13r,ru(4.75),K_inner_serif_amt,bracket4)--cycle; 
  361.   p2=z3r--fullserif(z0,z3,z2l,z2r,ru(9),ru(3.5),bracket01)--z4--cycle; 
  362.   p3=z21l--fullserif(z20,z21,z22l,z22r,ru(4),.5unit,bracket32)--z21r--cycle;
  363.  
  364.   showpoints(0,1,2,3,4,11,12,13,14,20,21,22,23);
  365.   draw_outlines;    
  366.   endchar;  
  367.  
  368.  
  369. iff OK "L":  "The letter L";  beginchar("L",(1+11)*unit#,cap#,0); 
  370.  
  371.   top lft z1l=(round(ru(5.5)),h); 
  372.   z2l=(x1l,h-c_thick_stem_bracket); 
  373.   z3l=(x1l,c_thick_stem_bracket); 
  374.   z3r=(x1r,c_inner_bracket); 
  375.   bot z4l=(x1l,0); 
  376.   mpos(1,2,4)(Lstem,0); 
  377.   bot rt z11=(w-unit,0); 
  378.   top rt z12=(w-.5unit,4unit); 
  379.   z13=(.5w+.5unit,y4+Lthin);
  380.   z14=(min(x13,rt x4r+.5unit),y13); 
  381.  
  382.   p1=fullserif(z1,z4,z2l,z2r,ru(4.75),ru(4.5),bracket4)-- 
  383.      leftserif(z4,z1,z3l,z3r,ru(4.75),bracket4)-- 
  384.      straightarm.br(z13,z12,z11,Ltip,pullout)--z14{left}...{up}z3r--cycle; 
  385.  
  386.   showpoints(1,2,3,4,11,12,13,14); 
  387.   draw_outlines; 
  388.   endchar; 
  389.  
  390.  
  391. iff OK "M":  "The letter M";  beginchar("M",(1+16)*unit#,cap#,0);
  392.  
  393.   lft x4l=ru(5.6); bot y4=0;
  394.   rt x14r=w-2unit; bot y14=0;
  395.   top z1l=(x4l,h);
  396.   top z11r=(x14r,h);
  397.   mpos(1,3,4)(Mthin_vert,0);
  398.   mpos(11,12,13,14)(Mstem,0);
  399.   onaline(1,4)(3); y12l=h-c_thick_stem_bracket;
  400.   onaline(11,14)(12,13); y3l=y13l=c_thick_stem_bracket;
  401.   bot z22=(x1r+.5(x11l-x1r-Mapex),0); pos22(Mapex,0);
  402.   top z24=(x11l-u,h);
  403.   top z26=(rt x1r+Mdiag,h);
  404.   top z25=(.5[x24,x26],3unit+ru(2)); pos25(u,0);
  405.   bot y23=h-ru(4);
  406.   (z23-z22r)=whatever*(z24-z25r);
  407.   bot y21=h-ru(5);
  408.   (z21-z22l)=whatever*(z26-z25l);
  409.   onaline(26,25l)(30r,31r); onaline(21,22l)(30l,31l);
  410.   y30=y30l=y30r=h-.5linethickness; x30=.5[x30l,x30r];
  411.   y31=y31l=y31r=0; x31=.5[x31l,x31r];
  412.   ref1=leftserif(z30,z31,z21,z25r,ru(5.5),bracket0)--z22l;
  413.   z2l=ref1 intersectionpoint ((x3l,0)--(x3l,h));
  414.   z2r=ref1 intersectionpoint ((x3r,0)--(x3r,h));
  415.  
  416.   p1=fullserif(z4,z3,z3l,z3r,ru(4.7),ru(5),bracket0)--z2r--z2l--cycle;
  417.   p2=z22r--z23--(x11l,y24)--z24--z25r--z25l--z26--ref1--cycle;
  418.   p3=fullserif(z14,z13,z13l,z13r,ru(4.7),ru(5),bracket0)--
  419.      rightserif(z11,z12,z12l,z12r,ru(4.7),bracket0)--(x11l,y24)--cycle;
  420.    
  421.   showpoints(1,2,3,4,11,12,13,14,21,22,23,24,25,26,30,31);
  422.   draw_outlines;
  423.   endchar;
  424.  
  425.  
  426. iff OK "N":  "The letter N";  beginchar("N",13unit#,cap#,0);
  427.  
  428.   bot lft z1l=(round 2unit,0); mpos(1,2,11,12)(Nthin,0);
  429.   z2=(x1,c_thin_stem_bracket);
  430.   z3=(x1l,h-ru(4));
  431.   top rt z11r=(round (w-ru(5.3)),h);
  432.   z12=(x11,h-c_thin_stem_bracket);
  433.   bot z22=(x11r,-Napex);
  434.   z23l=z22-(Ntip,0); mpos(4,23)(Ndiag,angle(z3-z23l)-90);
  435.   onaline(1r,2r)(4l); bot z4l=whatever[z3,z23l];
  436.   onaline(11l,12l)(14); onaline(4r,23r)(13,14);
  437.   top y21=h; z21=whatever[z14,1.05[z4l,z4r]];
  438.   onaline(4,23)(20); y20=y21;
  439.   onaline(11r,12r)(13);
  440.  
  441.   p1=leftserif(z20,z4,z4l,z4r,ru(2.5),bracket0)--z23l--z22--z13--z21--cycle;
  442.   p1'=z3--fullserif(z1,z2,z2l,z2r,ru(4.7),ru(5),bracket3)--z4l;
  443.   p2'=z13--fullserif(z11,z12,z12l,z12r,ru(5),ru(4.2),bracket3)--z14;
  444.  
  445.  showpoints(1,2,3,4,11,12,13,14,20,21,22,23);
  446.  draw_outlines;
  447.  endchar;
  448.  
  449.  
  450. iff OK "O":  "The letter O";  beginchar("O",(1+13)*unit#,cap#,descender#);
  451.  
  452.   top z1l=(.5w,h+Oover); pos1(Othin,-90);
  453.   lft z2l=(round(ru(1.8)),.5h); pos2(Ocurve,0);
  454.   bot z3l=(.5w,-Oover); pos3(Othin,90);
  455.   rt z4l=(round(w-ru(1.8)),.5h); pos4(Ocurve,180);
  456.  
  457.   p1=curve.tl(z1l,.5,z2l,.7)--curve.bl(z2l,.7,z3l,.5)--
  458.      curve.br(z3l,.5,z4l,.7)--curve.tr(z4l,.7,z1l,.5)--cycle;
  459.   p1''=curve.tl(z1r,.6,z2r,.7)--curve.bl(z2r,.7,z3r,.6)--
  460.      curve.br(z3r,.6,z4r,.7)--curve.tr(z4r,.7,z1r,.6)--cycle;
  461.  
  462.   showpoints(1,2,3,4);
  463.   draw_outlines;
  464.   endchar;
  465.  
  466.  
  467. iff OK "P":  "The letter P";  beginchar("P",(1+10)*unit#,cap#,0);
  468.  
  469.   top lft z1l=(round(ru(5)+smallu),h);
  470.   z2l=(x1l,h-c_thick_stem_bracket);
  471.   z2r=(x1r,h-c_round_bracket);
  472.   z3l=(x1l,c_thick_stem_bracket);
  473.   z3r=(x1r,c_inner_bracket);
  474.   bot z4l=(x1l,0);
  475.   mpos(1,4)(stem,0);
  476.   z5l=(rt x1r+ru(4),y1);
  477.   z5r=(rt x1r+ru(3),y1-Pthin);
  478.   rt z6l=(w-2smallu,.5[y5l,y7l]); pos6(Pcurve,180);
  479.   onaline(1r,4r)(8l,8r); bot y8l=5.5unit; y8r=y8l+Pmidarm;
  480.   z7l=(rt x1r+ru(4),y8l-round(.2smallu));
  481.   z7r=(rt x1r+ru(3),y8l+Pthin);
  482.  
  483.   p1=leftserif(z1,z4,z2l,z2r,ru(4.5),bracket4)--
  484.      fullserif(z4,z1,z3l,z3r,ru(4.5),ru(4.8),bracket4)--z8l{right}...
  485.      curve.br(z7l,.5,z6l,.7)--curve.tr(z6l,.7,z5l,.6)--cycle;
  486.   p1'=z8l--z8r;
  487.   p1''=z8r--curve.br(z7r,.6,z6r,.8)--curve.tr(z6r,.8,z5r,.7)...
  488.       {down}z2r--cycle;
  489.  
  490.   showpoints(1,2,3,4,5,6,7,8);
  491.   draw_outlines;
  492.   endchar;
  493.  
  494.  
  495. iff OK "Q":  "The letter Q";  beginchar("Q",(1+13)*unit#,cap#,descender#);
  496.  
  497.   top z1l=(.5w,h+Oover); pos1(Othin,-90);
  498.   lft z2l=(round(ru(1.8)),.5h); pos2(Ocurve,0);
  499.   bot z3l=(.5w,-Oover); pos3(Othin,90);
  500.   rt z4l=(round(w-ru(1.8)),.5h); pos4(Ocurve,180);
  501.   ref1=curve.bl(z2l,.7,z3l,.5)--curve.br(z3l,.5,z4l,.7);
  502.   ref2=(.35w,-d)--(.35w,h);
  503.   ref3=(.35w+stem+2linethickness,-d)--(.35w+stem+2linethickness,h);
  504.   lft z11=ref1 intersectionpoint ref2;
  505.   bot rt z13r=(round(w-ru(2.5)),-d+4smallu);
  506.   bot z12=(.6[x11,x13r],-d-round(2smallu));
  507.   ref4=z12{right}...z13r;
  508.   pos13(serif_thickness,angle(z13r-precontrol 1 of ref4)-90);
  509.   z14=z13l-(ru(3.5),.5u);
  510.   rt z15=ref1 intersectionpoint ref3;
  511.  
  512.   p1=curve.tl(z1l,.5,z2l,.7)--ref1--curve.tr(z4l,.7,z1l,.5)--cycle;
  513.   p1'=z11...z12{right}...z13r--z13l...z14{left}...z15;
  514.   p1''=curve.tl(z1r,.6,z2r,.7)--curve.bl(z2r,.7,z3r,.6)--
  515.      curve.br(z3r,.6,z4r,.7)--curve.tr(z4r,.7,z1r,.6)--cycle;
  516.  
  517.   showpoints(1,2,3,4,11,12,13,14,15);
  518.   draw_outlines;
  519.   endchar;
  520.  
  521.  
  522. iff OK "R":  "The letter R";  beginchar("R",(1+12)*unit#,cap#,0);
  523.  
  524.   top lft z1l=(round(ru(5)+2smallu),h);
  525.   z2l=(x1l,h-c_thick_stem_bracket);
  526.   z2r=(x1r,h-c_round_bracket);
  527.   z3l=(x1l,c_thick_stem_bracket);
  528.   z3r=(x1r,c_inner_bracket);
  529.   bot z4l=(x1l,0);
  530.   mpos(1,4)(stem,0);
  531.   z5l=(rt x1r+ru(5),y1);
  532.   z5r=(rt x1r+ru(3),y1-Rthin);
  533.   rt z6r=(w-(ru(5.0)),.5[y5l,y8l]); pos6(Rcurve,0);
  534.   onaline(1r,4r)(8l,8r); bot y8l=5.6unit; y8r=y8l+Rthin;
  535.   ref1=curve.br(z8l,.5,z6r,.9);
  536.   ref2=(rt x4r+.5unit,0)--(rt x4r+.5unit,h);
  537.   ref3=(x4r+stem+2linethickness,0)--(x4r+stem+2linethickness,h);
  538.   lft z11l=ref1 intersectionpoint ref2;
  539.   rt z13l=(w-u,y4); pos13(serif_thickness,90);
  540.   lft z12l=(w-4unit,y13l);
  541.   z14=z13r-(ru(3),0);
  542.   top rt z15=ref1 intersectionpoint ref3;
  543.  
  544.   p1=leftserif(z1,z4,z2l,z2r,ru(4.8),bracket4)--
  545.      fullserif(z4,z1,z3l,z3r,ru(4.8),ru(4.8),bracket4)--
  546.      curve.br(z8l,.6,z6r,.9)--curve.tr(z6r,.7,z5l,.5)--cycle;
  547.   p1'=z8l--z8r;
  548.   p2'=z11l--z12l--z13l--z13r{left}
  549.       if lowres:..tension 10.. else:... fi{z15-z14}z15;
  550.   p1''=z8r--curve.br(z8r,.8,z6l,.9)--curve.tr(z6l,.9,z5r,.5)...
  551.       {down}z2r--cycle;
  552.  
  553.   showpoints(1,2,3,4,5,6,8,11,12,13,14,15);
  554.   draw_outlines;
  555.   endchar;
  556.  
  557.  
  558. iff OK "S":  "The letter S";  beginchar("S",10unit#,cap#,0);
  559.  
  560.   top z1r=(.5w-u,h+Sover_top); pos1(Stopthin,90);
  561.   rt z3=(w-ru(4),y1r);
  562.   x4=.3[x3,x1r]; y4=y3-ru(1.5); 
  563.   bot z2=top z3-(0,4unit-smallu);
  564.   bot z11l=(.5w-u,-Sover_bot); pos11(Sbotthin,90);
  565.   lft z13=(ru(2),y11l); 
  566.   x14=.3[x13,x11l]; y14=y13+ru(1.5);  
  567.   top z12=bot z13+(0,4.5unit); 
  568.   z21l=(ru(2.5),.73h);
  569.   y21r=.35[y21l,y1r]; rt x21r=.48[x21l,x1r]; 
  570.   z22=(.5w,.52h); pos22(stem,37);
  571.   z23r=(w-ru(2)-smallu,.28h);    
  572.   y23l=.7[y11l,y23r]; lft x23l=.53[x11l,x23r]; 
  573.  
  574.   p1=beak(z1l,z2,z3,z4,z1r,1.2)--curve.tl(z1r,.65,z21l,.65)...
  575.      z22l...
  576.      reversecurve.br(z11r,.7,z23l,.7)--
  577.      beak(z11r,z12,z13,z14,z11l,1.2)--
  578.      curve.br(z11l,.6,z23r,.6)...1.1[z22l,z22r]...
  579.      reversecurve.tl(z1l,.6,z21r,.6)--cycle;
  580.  
  581.   showpoints(1,2,3,4,11,12,13,14,21,22,23); 
  582.   draw_outlines;
  583.   endchar;
  584.  
  585.  
  586. iff OK "T":  "The letter T";  beginchar("T",(1+11)*unit#,cap#,0);
  587.  
  588.   mpos(1,2,3)(stem,0);
  589.   bot lft z1l=(round((w-stem-linethickness)/2),0);
  590.   z2l=(x1l,c_thick_stem_bracket);
  591.   top z4=(x1,h); 
  592.   bot y5l=top y4-(3unit+ru(2)); onaline(1,4)(5);
  593.   mpos(4,5)(round(w-ru(3.5)-linethickness),0);
  594.   z3l=(x1l,y4-Tthin);
  595.  
  596.   p1=straightarm.br(z3r,z5r,z4r,Ttip,pulleven)--
  597.      straightarm.bl(z3l,z5l,z4l,Ttip,pulleven)--cycle;
  598.   p1'=z3l--fullserif(z1,z4,z2l,z2r,ru(5.25),ru(5.25),bracket4)--z3r;
  599.  
  600.   showpoints(1,2,3,4,5);
  601.   draw_outlines;
  602.   endchar;
  603.  
  604.  
  605. iff OK "U":  "The letter U";  beginchar("U",13unit#,cap#,0);
  606.  
  607.   top lft z1l=(round(ru(5)+smallu),h);
  608.   z2l=(x1l,h-c_thick_stem_bracket);
  609.   z3l=(x1l,4unit);
  610.   top rt z11r=(w-round(ru(5.5)),h);
  611.   z12r=(x11r,h-Uthin_bracket);
  612.   z13r=(x11r,4.5unit);
  613.   mpos(1,2,3)(Ustem,0);
  614.   mpos(11,12,13)(Uthin,0);
  615.   bot z10r=(.5w,-Uover); 
  616.   z10l=z10r+(.5unit,Uthin);
  617.  
  618.   p1=fullserif(z1,z2,z2l,z2r,ru(4.5),ru(5),bracket4)--
  619.      curve.bl(z3l,.65,z10r,.65)--curve.br(z10r,.65,z13r,.65)--
  620.      fullserif(z11,z12,z12l,z12r,ru(4.75),ru(4.75),bracket01)--z13l{down}--
  621.      reversecurve.br(z10l,.65,z13l,.65)--
  622.      reversecurve.bl(z3r,.7,z10l,.7)--cycle; 
  623.  
  624.   showpoints(1,2,3,10,11,12,13); 
  625.   draw_outlines; 
  626.   endchar;
  627.          
  628.  
  629. iff OK "V":  "The letter V";  beginchar("V",13unit#,cap#,0);
  630.  
  631.   bot z20=(.51w,-Vapex); pos20(Vtip,0);
  632.   top y3=h; z3r=whatever[z20r,(w-round(unit+2smallu),h)];
  633.   top y6=h; z6l=whatever[z20l,(unit,h)];
  634.   z20r=z1r; z20l=z4l;
  635.   mpos(1,3)(Vthin,constant_angle((w-round(unit+2smallu),h),z20r,0));
  636.   mpos(4,6)(stem,constant_angle((unit,h),z20l,0));
  637.   onaline(1r,3r)(2r);  y2r=h-c_round_bracket;
  638.   onaline(1l,3l)(2l);  y2l=h-c_inner_bracket;
  639.   onaline(4r,6r)(5r);  y5r=h-c_inner_bracket;
  640.   onaline(4l,6l)(5l);  y5l=h-c_thick_stem_bracket;
  641.   z40=whatever[.8[z1r,z1l],z2l]; z40=whatever[.8[z4l,z4r],z5r];
  642.  
  643.   p1=z20l--z20r--rightserif(z3,z1,z2l,z2r,ru(3),bracket0)--        
  644.      leftserif(z3,z1,z40,z2r,ru(7),bracket0)--z40--
  645.      rightserif(z6,z4,z5l,z40,ru(7),bracket32)--
  646.      leftserif(z6,z4,z5l,z5r,ru(2.5),bracket0)--z20l--cycle;
  647.  
  648.   showpoints(1,2,3,4,5,6,20,40);
  649.   draw_outlines;
  650.   endchar;
  651.  
  652.  
  653. iff OK "W":  "The letter W";  beginchar("W",(1+17)*unit#,cap#,0);
  654.  
  655.   bot z20=(.3w,-Wapex); pos20(Wtip,0);
  656.   top y3=h; z3r=whatever[z20r,(.6w,h)];
  657.   top y6=h; z6l=whatever[z20l,(unit,h)];
  658.   z20r=z1r; z20l=z4l;
  659.   mpos(1,3)(Wleftthin,constant_angle((.6w,h),z20r,0));
  660.   mpos(4,6)(stem,constant_angle((unit,h),z20l,0));
  661.   onaline(1r,3r)(2r);  y2r=h-c_round_bracket;
  662.   onaline(1l,3l)(2l);  y2l=h-c_inner_bracket;
  663.   onaline(4r,6r)(5r);  y5r=h-c_inner_bracket;
  664.   onaline(4l,6l)(5l);  y5l=h-c_thick_stem_bracket;
  665.   z40=whatever[.8[z1r,z1l],z2l]; z40=whatever[.8[z4l,z4r],z5r];
  666.  
  667.   bot z21=(.7w,-Wapex); pos21(Wtip,0);
  668.   top y13=h; z13r=whatever[z21r,(w-unit,h)];
  669.   top y16=h; z16l=whatever[z21l,(.44w,h)];
  670.   z21r=z11r; z21l=z14l;
  671.   mpos(11,13)(Wrightthin,constant_angle((w-unit,h),z21r,0));
  672.   mpos(14,16)(stem,constant_angle((.44w,h),z21l,0));
  673.   onaline(11r,13r)(12r);  y12r=h-c_round_bracket;
  674.   onaline(11l,13l)(12l);  y12l=h-c_inner_bracket;
  675.   onaline(14r,16r)(15r);  y15r=h-c_inner_bracket;
  676.   onaline(14l,16l)(15l);  y15l=h-c_thick_stem_bracket;
  677.   z41=whatever[.8[z11r,z11l],z12l]; z41=whatever[.8[z14l,z14r],z15r];
  678.    
  679.   ref1=leftserif(z16,z14,z15l,z15r,ru(2.5),bracket0)--z21l; 
  680.   z30=ref1 intersectionpoint (z20r--z3r);
  681.   z31=ref1 intersectionpoint (z40--z3l);
  682.  
  683.   p1=z21l--z21r--rightserif(z13,z11,z12l,z12r,ru(2),bracket0)--
  684.      leftserif(z13,z11,z41,z12r,ru(7),bracket0)--z41--
  685.      rightserif(z16,z14,z15l,z41,ru(6),bracket32)--
  686.      ref1--cycle;
  687.   p2=z20l--z20r--z30--z31--z40-- 
  688.      rightserif(z6,z4,z5l,z40,ru(5),bracket32)-- 
  689.      leftserif(z6,z4,z5l,z5r,ru(2),bracket0)--z20l--cycle; 
  690.  
  691.   showpoints(1,2,3,4,5,6,11,12,13,14,15,16,20,21,30,31,40,41);
  692.   draw_outlines; 
  693.   endchar;
  694.  
  695.  
  696. iff OK "X":  "The letter X";  beginchar("X",13unit#,cap#,0);
  697.  
  698.   numeric botjoin,topjoin,joinwidths;
  699.   botjoin=.42h; topjoin=.62h;
  700.  
  701.   top z1=(.2w,h);
  702.   bot z3=(.8w,0);
  703.   z2r=.5[z1r,z3r];
  704.   mpos(1,3)(Xdiag,constant_angle(z1,z3,0));
  705.   pos2(.9Xdiag,constant_angle(z1,z3,0));
  706.   ref1=leftserif(z1,z3,z2l,z2r,ru(2.5),bracket4)...
  707.        leftserif(z3,z1,z2l,z2r,ru(7),bracket42);
  708.   ref2=rightserif(z3,z1,z2l,z2r,ru(2),bracket42)--
  709.        rightserif(z1,z3,z2l,z2r,ru(6),bracket4);
  710.   bot z4=ref1 intersectionpoint ((0,botjoin)--(w,botjoin));
  711.   top z9=ref2 intersectionpoint ((0,topjoin)--(w,topjoin));
  712.   bot z6=(.12w,0); top z7=(.8w,h);
  713.   mpos(4,6)(Xthin,constant_angle(z4,z6,0));
  714.   mpos(7,9)(Xthin,constant_angle(z7,z9,0));
  715.   onaline(4l,6l)(5l);  y5l=y5r=Xthin_diag_bracket;
  716.   onaline(4r,6r)(5r); 
  717.   onaline(7r,9r)(8r);  y8r=y8l=h-Xthin_diag_bracket;
  718.   onaline(7l,9l)(8l);            
  719.   ref3=fullserif(z6,z4,z5l,z5r,ru(2.5),ru(8),bracket01);
  720.   ref4=z5l--2[z5l,z4l];
  721.   ref5=fullserif(z7,z9,z8l,z8r,ru(7),ru(5),bracket01);
  722.   ref6=z8r--2[z8r,z9r];
  723.   z21=ref1 intersectionpoint (ref3--z4r);
  724.   z22=ref1 intersectionpoint ref4;
  725.   z23=ref2 intersectionpoint (ref5--z9l);
  726.   z24=ref2 intersectionpoint ref6;
  727.  
  728.   p1=ref1--ref2--cycle;  
  729.   p2=z22--ref3--z21--cycle;
  730.   p3=z24--ref5--z23--cycle;
  731.  
  732.   showpoints(1,2,3,4,5,6,7,8,9,21,22,23,24); 
  733.    draw_outlines;
  734.   endchar;
  735.  
  736.  
  737. iff OK "Y":  "The letter Y";  beginchar("Y",13unit#,cap#,0); 
  738.   
  739.   bot lft z3l=(5unit,0); 
  740.   z2l=z3l+(0,c_thick_stem_bracket); 
  741.   mpos(2,3)(stem,0); 
  742.   onaline(2l,3l)(1l); y1l=.39h; 
  743.   onaline(2r,3r)(1r); y1r=.45h; 
  744.   top lft z4l=(unit,h); 
  745.   z6l=z1l; 
  746.   mpos(4,6)(Ythick_diag, constant_angle(z4l,z6l,0));
  747.   onaline(4l,6l)(5l); y5l=y5r=h-c_thick_stem_bracket;
  748.   onaline(4r,6r)(5r);
  749.   onaline(4,6)(20); top y20=h;
  750.   top rt z7r=(w-unit,h); 
  751.   z9r=z1r;  
  752.  
  753.   mpos(7,9)(Ydiag, constant_angle(z7r,z9r,0)); 
  754.   onaline(7l,9l)(8l); y8l=y8r=h-Ythin_diag_bracket;
  755.   onaline(7r,9r)(8r);
  756.   onaline(7,9)(21); top y21=h; 
  757.  
  758.   ref1=z5r--1.5[z5r,z6r]; 
  759.   ref2=z8l--1.5[z8l,z9l];
  760.   z22=ref1 intersectionpoint ref2; 
  761.  
  762.   p1=fullserif(z20,z6,z5l,z5r,ru(2),ru(4),bracket4)--z1l--
  763.      fullserif(z3,z2,z2l,z2r,ru(5),ru(5),bracket4)--z1r--
  764.      fullserif(z21,z9,z8l,z8r,ru(8),ru(2),bracket01)--z22--cycle;
  765.   
  766.   showpoints(1,2,3,4,5,6,7,8,9,20,21,22);   
  767.    draw_outlines;  
  768.   endchar;  
  769.  
  770.  
  771. iff OK "Z":  "The letter Z";  beginchar("Z",(1+11)*unit#,cap#,0);
  772.  
  773.   top lft z1=(ru(4)+smallu,h);
  774.   bot lft z2=(ru(3)+smallu,top y1-3.5unit);
  775.   z3=(.5w,y1-Zthin);
  776.   bot lft z5l=(.5unit,0);
  777.   rt z15r=(w-ru(3)-smallu,y1);
  778.   mpos(5,15)(Zdiag,constant_angle(z15r,z5l,Zdiag));
  779.   rt z11=(w-ru(3.2),y5l);
  780.   top rt z12=(w-ru(1.7),4unit+u);
  781.   z13=(.55w,y11+Zthin);
  782.   onaline(5l,15l)(4); y4=y3;
  783.   onaline(5r,15r)(14); y14=y13;
  784.  
  785.   p1=straightarm.tl(z3,z2,z1,Ztip,pulleven)--z4--z5l--
  786.      straightarm.br(z13,z12,z11,Ztip,pulleven)--z14--z15r--cycle;
  787.  
  788.   showpoints(1,2,3,4,5,11,12,13,14,15);                               
  789.   draw_outlines;
  790.   endchar;
  791.  
  792.  
  793.  
  794. % ----- Phase 3 -----
  795.  
  796.  
  797. iff OK "k":  "The letter k";  beginchar(oct"174",(1+9)*unit#,ascender#,0);
  798.  
  799.   top lft z11l=(unit+.5u,h);
  800.   bot z14l=(x11l,0);
  801.   mpos(11,14)(kstem,0);
  802.   onaline(11r,14r)(3r,4,12r,13r); 
  803.     bot y3r=.4xheight; y12l=h-lc_thick_stem_bracket; top y12r=h;
  804.   onaline(11l,14l)(12l,13l); 
  805.     y13l=y13r=lc_thick_stem_bracket;
  806.   top rt z1r=(w-1.5unit,xheight); 
  807.   mpos(1,3)(kthin,angle(z1r-z3r)-90); 
  808.   y2l=y2r=xheight-k_thin_diag;
  809.   onaline(1l,3l)(2l,4);
  810.   onaline(1r,3r)(2r,21l);
  811.   onaline(1,3)(0); top y0=xheight; 
  812.   y21l=y3r+.5unit; 
  813.   bot rt z23r=(w-ru(2),0); 
  814.   mpos(21,23)(kdiag,angle(z1r-z3r));  
  815.   y22l=y22r=lc_thick_stem_bracket; 
  816.   onaline(21l,23l)(22l);
  817.   onaline(21r,23r)(22r);
  818.   onaline(21,23)(20); bot y20=0; 
  819.  
  820.   p1=fullserif(z14,z11,z13l,z13r,ru(2.5),ru(2.5),bracket0)--z12r--
  821.      leftserif(z11,z14,z12l,z12r,ru(2.5),bracket0)--cycle;
  822.   p2=z3r--fullserif(z0,z3,z2l,z2r,ru(7),ru(2.5),bracket01)--z4--cycle;
  823.   p3=z21l--fullserif(z20,z21,z22l,z22r,ru(4),u,bracket32)--z21r--cycle;
  824.      
  825.   showpoints(0,1,2,3,4,11,12,13,14,20,21,22,23);
  826.   draw_outlines;
  827.   endchar;
  828.