% Blackboard bold lower case, Alan Jeffrey, 12--18 Dec 1989.

% -------------------------------------------------------------------

bbchar 
   ("a") 
   (smallgap#, medlower#, medgap#) 
   (aTop#, aBottom#);

   "The letter a";

   % The curve.
   var (path) apath;
   
   apath
      = (Top - cCurl)~Right
           .. oabove Top~Middle {left}
           .. Horizon~Left {down}
           .. obelow Bottom~Middle {right}
           .. (Bottom + cCurl)~Right;

   % The emphasis to the left, clipped by the curve.
   draw
      fatcliptwice
         (oabove rightof Top~Left -- obelow rightof Bottom~Left)
         (apath);

   % The curve.
   draw apath;
   
   % The line at the right.
   draw
      Top~Right
         -- Bottom~Right;

endchar;

% -------------------------------------------------------------------

bbchar 
   ("b") 
   (medgap#, medlower# + fatness#, smallgap#) 
   (bTop#, aBottom#);

   "The letter b";

   % The curve.
   draw
      farrightof (aTop - cCurl)~Left
         .. oabove rightof aTop~Middle {right}
         .. aMiddle~Right {down}
         .. obelow rightof Bottom~Middle {left}
         .. farrightof (Bottom + cCurl)~Left;

   % The vertical, fattened.
   draw
      fatten
         rightof Bottom~Left
            -- rightof Top~Left;

endchar;

% -------------------------------------------------------------------

bbchar 
   ("c") 
   (smallgap#, medlower#, smallgap#) 
   (aTop#, aBottom#);

   "The letter c";

   % The curve.
   var (path) cpath;
   
   cpath
      = (Top - cCurl)~Right
           .. oabove Top~Middle {left}
           .. Horizon~Left {down}
           .. obelow Bottom~Middle {right}
           .. (Bottom + cCurl)~Right;

   % The emphasis to the left, clipped by the curve.
   draw
      fatcliptwice
         (oabove rightof Top~Left -- obelow rightof Bottom~Left)
         (cpath);

   % The curve.
   draw cpath

endchar;
   
% -------------------------------------------------------------------

bbchar 
   ("d")  
   (smallgap#, medlower#, medgap#) 
   (bTop#, aBottom#);

   "The letter d";

   % The curve.
   var (path) dpath;
   
   dpath
      = (aTop - cCurl)~Right
           .. oabove aTop~Middle {left}
           .. aMiddle~Left {down}
           .. obelow Bottom~Middle {right}
           .. (Bottom + cCurl)~Right;

   % The emphasis to the left, clipped by the curve.
   draw
      fatcliptwice
         (oabove rightof aTop~Left -- obelow rightof Bottom~Left)
         (dpath);

   % The curve.
   draw dpath;
   
   % The line at the right.
   draw
      Bottom~Right
         -- Top~Right

endchar;

% -------------------------------------------------------------------

bbchar 
   ("e") 
   (smallgap#, medlower#, smallgap#) 
   (aTop#, aBottom#);

   "The letter e";

   % The curve.
   var (path) epath;
   
   epath
      = eBar~Right
           .. oabove Top~Middle {left}
           .. Horizon~Left {down}
           .. obelow Bottom~Middle {right}
           .. (Bottom + cCurl)~Right;

   % The bar.
   draw 
      farrightof eBar~Left
         -- eBar~Right;

   % The emphasis to the left, clipped by the curve.
   outline
      fatcliptwice
         (oabove rightof Top~Left -- obelow rightof Bottom~Left)
         (epath);

   % The curve.
   draw epath;
   
endchar;

% -------------------------------------------------------------------

bbchar 
   ("f") 
   (medgap#, smalllower#, 0pt#) 
   (bTop#, aBottom#);

   "The letter f";

   % The curve.
   var (path) fpath;
   
   fpath 
      = (Top - hCurl)~Left {up}
           .. oabove Top~Middle {right}
           .. (Top - cCurl)~Right;

   % The bar.
   draw
      aTop~Left
         -- farrightof aTop~(Left + jut);

   % The emphasis at the left of the curve.
   outline
      fatcliponce
         (rightof Bottom~Left -- oabove rightof Top~Left)
         (fpath);

   % The curve.
   draw fpath

endchar;

% -------------------------------------------------------------------

bbchar 
   ("g") 
   (smallgap#, medlower#, medgap#) 
   (aTop#, gBottom#);

   "The letter g";

   % The bowl path.
   var (path) gpath;
   
   gpath 
      = (Top - cCurl)~Right 
           .. oabove Top~Middle {left}
           .. aMiddle~Left {down}
           .. obelow aBottom~Middle {right}
           .. (aBottom + cCurl)~Right;

   % Emphasis of the bowl.
   draw
      fatcliptwice
         (obelow rightof aBottom~Left -- oabove rightof Top~Left)
         (gpath);

   % The bowl.
   draw gpath;
   
   % The tail.
   draw
      Top~Right
        --- aBottom~Right 
        .. obelow Bottom~Middle {left}
        .. (Bottom + gCurl)~Left

endchar;

% -------------------------------------------------------------------

bbchar 
   ("h") 
   (medgap#, smalllower# + fatness#, medgap#) 
   (bTop#, aBottom#);

   "The letter h";

   % The curve.
   draw
      farrightof (aTop - cCurl)~Left
         .. oabove rightof aTop~Middle {right}
         .. (aTop - hCurl)~Right 
         --- Bottom~Right;

   % The vertical, fattened.
   draw
      fatten
         rightof Bottom~Left
            -- rightof Top~Left

endchar;

% -------------------------------------------------------------------

bbchar 
   ("i") 
   (medgap#, tiny#, medgap#) 
   (iTop#, aBottom#);

   fatsymmetric;

   "The letter i";

   % The vertical, fattened.
   draw
      fatten
         Bottom~Middle 
            -- aTop~Middle;

   % The dot.
   draw
      splodge
         below Top~Middle

endchar;

% -------------------------------------------------------------------

bbchar 
   ("j") 
   (0pt#, smalllower#, medgap#) 
   (iTop#, gBottom#);

   "The letter j";

   % The curve.
   var (path) jpath;
   
   jpath
      = aTop~Right
          --- aBottom~Right 
          .. obelow Bottom~Middle {left}
          .. (Bottom + gCurl)~Left;

   % The emphasis.
   draw
      fatcliponce
         (leftof aTop~Right -- obelow leftof Bottom~Right)
         (jpath);

   % The curve.
   draw jpath;

   % The dot.
   draw
      splodge
         below leftof Top~Right

endchar;

% -------------------------------------------------------------------

bbchar 
   ("k") 
   (medgap#, smalllower# + fatness#, smallgap#) 
   (bTop#, aBottom#);

   "The letter k";

   % The point at which the top diagonal hits the left side of the character.
   % It is somewhere along the line from aTop~Right to eBar~Middle.

   z1 = whatever[aTop~Right, eBar~Middle];
   x1 = Left;

   % The top diagonal.
   draw
      z1 -- aTop~Right;
         
   % The bottom diagonal.
   draw
      eBar~Middle
         -- Bottom~Right;

   % The left edge, fattened.
   outline
      fatten
         rightof Top~Left
            -- rightof Bottom~Left

endchar;

% -------------------------------------------------------------------

bbchar 
   ("l") 
   (medgap#, tiny#, medgap#) 
   (bTop#, aBottom#);

   "The letter l";

   % The fattened vertical, clipped at the left by a curve.

   draw
      fatcliponce
         (Top~Middle -- Bottom~Middle)
         (leftof Horizon~Middle 
             --- leftof (Bottom + hCurl)~Middle
             .. rightof Bottom~Middle {right})

endchar;

% -------------------------------------------------------------------

bbchar 
   ("m") 
   (medgap#, biglower#, medgap#) 
   (aTop#, aBottom#);

   symmetric;

   "The letter m";

   % The vertical, fattened.
   draw
      fatten
         rightof Bottom~Left
            -- rightof Top~Left;

   % The first bump.
   draw
      farrightof (Top - cCurl)~Left
        .. oabove (farrightof Top~Left -+- rightof Top~Middle) {right}
        .. rightof (Top - hCurl)~Middle
        --- rightof Bottom~Middle;

   % The second bump.
   draw
      rightof (Top - hCurl)~Middle {up}
         .. oabove (rightof Top~Middle -+- Top~Right) {right}
         .. (Top - hCurl)~Right
         --- Bottom~Right

endchar;

% -------------------------------------------------------------------

bbchar 
   ("n") 
   (medgap#, smalllower# + fatness#, medgap#) 
   (aTop#, aBottom#);

   "The letter n";

   % The vertical, fattened.
   draw
      fatten
         rightof Bottom~Left
            -- rightof Top~Left;

   % The bump.
   draw
      farrightof (Top - cCurl)~Left
        .. oabove rightof Top~Middle {right}
        .. (Top - hCurl)~Right
        --- Bottom~Right;

endchar;

% -------------------------------------------------------------------

bbchar 
   ("o") 
   (smallgap#, medlower#, smallgap#) 
   (aTop#, aBottom#);

   "The letter o";

   % The circle;
   var (path) opath;
   
   opath 
      = oabove Top~Middle {right}
           .. Horizon~Right {down}
           .. obelow Bottom~Middle {left}
           .. Horizon~Left {up}
           .. cycle;

   % The emphasis.
   draw
      fatcliptwice
         (obelow rightof Bottom~Left -- oabove rightof Top~Left)
         (opath);

   % The o.
   draw opath

endchar;

% -------------------------------------------------------------------

bbchar 
   ("p") 
   (medgap#, medlower# + fatness#, smallgap#) 
   (aTop#, gBottom#);

   "The letter p";

   % The curve.
   draw
      farrightof (Top - cCurl)~Left
         .. oabove rightof Top~Middle {right}
         .. aMiddle~Right {down}
         .. obelow rightof aBottom~Middle {left}
         .. farrightof (aBottom + cCurl)~Left;

   % The vertical, fattened.
   draw
      fatten
         rightof Bottom~Left
            -- rightof Top~Left;

endchar;

% -------------------------------------------------------------------

bbchar 
   ("q")  
   (smallgap#, medlower#, medgap#) 
   (aTop#, gBottom#);

   "The letter q";

   % The curve.
   var (path) qpath;
   
   qpath
      = (Top - cCurl)~Right
           .. oabove Top~Middle {left}
           .. aMiddle~Left {down}
           .. obelow aBottom~Middle {right}
           .. (aBottom + cCurl)~Right;

   % The emphasis to the left, clipped by the curve.
   draw
      fatcliptwice
         (oabove rightof Top~Left -- obelow rightof Bottom~Left)
         (qpath);

   % The curve.
   draw qpath;
   
   % The line at the right.
   draw
      Bottom~Right
         -- Top~Right

endchar;

% -------------------------------------------------------------------

bbchar 
   ("r") 
   (medgap#, smalllower# + fatness#, smallgap#) 
   (aTop#, aBottom#);

   "The letter r";

   % The vertical, fattened.
   draw
      fatten
         rightof Bottom~Left
            -- rightof Top~Left;

   % The bump.
   draw
      farrightof (Top - cCurl)~Left
        .. oabove rightof Top~Middle {right}
        .. (Top - cCurl)~Right

endchar;

% -------------------------------------------------------------------

bbchar
   ("s") 
   (smallgap#, smalllower#, smallgap#) 
   (aTop#, aBottom#);

   "The letter s";

   % The path of the S.
   var (path) spath;
   
   spath 
      = (Top - cCurl)~Right
           .. oabove Top~Middle       {left}
           .. (Top -+- eBar)~Left     {down}
           .. eBar~Middle             {right}
           .. (eBar -+- Bottom)~Right {down}
           .. obelow Bottom~Middle    {left}
           .. (Bottom + cCurl)~Left;

   % The emphasis at the top left of the S.
   draw
      fatcliptwice
         (oabove rightof Top~Left -- obelow rightof Bottom~Left)
         (subpath (0, 4) of spath);

   % The path of the S.
   draw spath

endchar;

% -------------------------------------------------------------------

bbchar 
   ("t") 
   (medgap#, smalllower#, smallgap#) 
   (bTop#, aBottom#);

   "The letter t";

   % The curve.
   var (path) tpath;
   
   tpath
      = (Bottom + hCurl)~Left {down}
           .. obelow Bottom~Middle {right}
           .. (Bottom + cCurl)~Right;

   % The bar.
   draw
      aTop~Left 
         -- aTop~Right;

   % The emphasis.
   outline
      fatcliponce
         (rightof Top~Left -- obelow rightof Bottom~Left)
         (tpath);

   % The curve.
   draw tpath

endchar;

% -------------------------------------------------------------------

bbchar 
   ("u") 
   (medgap#, medlower#, medgap#) 
   (aTop#, aBottom#);

   "The letter u";

   % The curve of the u.
   var (path) upath;
   
   upath
      = Top~Left
           --- Horizon~Left
           .. obelow Bottom~Middle {right}
           .. {up} Horizon~Right;

   % The emphasis.
   draw
      fatcliponce
         (rightof Top~Left -- obelow rightof Bottom~Left)
         (upath);

   % The curve.
   draw upath;

   % The right line.
   draw
      Bottom~Right
         -- Top~Right

endchar;

% -------------------------------------------------------------------

bbchar 
   ("v") 
   (smallgap#, medlower#, smallgap#) 
   (aTop#, aBottom#);
   
   symmetric;

   "The letter v";

   % The left diagonal, clipped by the right.
   draw
      fatcliponce
         (rightof Top~Left -- rightof Bottom~Middle)
         (Bottom~Middle -- Top~Right);

   % The right diagonal.
   draw
      Bottom~Middle 
         -- Top~Right

endchar;

% -------------------------------------------------------------------

bbchar 
   ("w") 
   (smallgap#, biglower#, smallgap#) 
   (aTop#, aBottom#);

   symmetric;

   "The letter w";

   % The left diagonal, clipped by the rest.
   draw
      fatcliponce
         (rightof Top~Left -- rightof Bottom~(Left -+- Middle))
         (Bottom~(Left -+- Middle) -- eBar~Middle);

   % The rest of the letter.
   draw
      Bottom~(Left -+- Middle) 
         -- eBar~Middle
         -- Bottom~(Middle -+- Right)
         -- Top~Right

endchar;

% -------------------------------------------------------------------

bbchar 
   ("x") 
   (smallgap#, medlower#, smallgap#) 
   (aTop#, aBottom#);

   "The letter x";

   % The SE diagonal.
   draw
      Top~Left
         -- Bottom~Right;

   % The SW diagonal, fattened.
   outline
      fatten
         leftof Top~Right
            -- rightof Bottom~Left

endchar;

% -------------------------------------------------------------------

bbchar 
   ("y") 
   (smallgap#, medlower#, smallgap#) 
   (aTop#, gBottom#);

   symmetric;

   "The letter y";

   % The left diagonal, fattened, and clipped by the right.
   draw
      fatcliponce
         (rightof Top~Left -- rightof aBottom~Middle)
         (Top~Right -- aBottom~Middle);

   % The right diagonal and tail.
   draw
      Top~Right
         --- aBottom~Middle
         .. obelow Bottom~Left

endchar;

% -------------------------------------------------------------------

bbchar 
   ("z") 
   (smallgap#, medlower#, smallgap#) 
   (aTop#, aBottom#);

   "The letter z";

   % The top line.
   draw
      Top~Left
         -- Top~Right;

   % The diagonal, fattened.
   draw
      fatten
         leftof Top~Right
            -- rightof Bottom~Left;

   % The bottom line.
   draw
      Bottom~Left
         -- Bottom~Right

endchar;

% -------------------------------------------------------------------
