% Xucuri Font `xucl.mf' Lowercase
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Designed by Johannes Heinecke                                             %
%             <johannes.heinecke@wanadoo.fr>                                %
% This software is under the LaTeX Project Public License                   %
% Please send any improvements, corrections, suggestions, enhancements etc  %
% to the Author!                                                            %
%                                                                           %
% Version 0.3 as of 17th July 1998                                          %
%                                                                           %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%


% Serifen: Aufruf xuc_serif(Punktnr, 1|-1);  
% unten: -1 Serife f"ur oben, 1 f"ur unten
def xucmin_serif (suffix $)(expr theta, unten) =
   if unten = 1:
      z$a = (x$-(.8px2*(cosd 10)), y$-.8px2*(sind 10));
   else:
      z$a = (x$-(1px2*(cosd 10)), y$-1px2*(sind 10));
   fi;
   z$c = (x$-(.5px2*(cosd 10)), y$-.5px2*(sind 10));
   z$b = z$a + unten*.2px2*(dir theta);
   z$d = z$c + unten*.6px2*(dir theta);

   if unten = 1:
      z$e = (x$+(1px2*(cosd 10)), y$+1px2*(sind 10));
   else:
      z$e = (x$+(.8px2*(cosd 10)), y$+.8px2*(sind 10));
   fi;
   z$g = (x$+(.5px2*(cosd 10)), y$+.5px2*(sind 10));
   z$f = z$e + unten*.2px2*(dir theta);
   z$h = z$g + unten*.6px2*(dir theta);

   if unten = 1:
      fill z$--z$a--z$b{dir 10}..{dir theta}z$d--z$h{-dir (theta)}..{dir 10}z$f--z$e--cycle;
   else:
      fill z$--z$a--z$b{dir 10}..{-dir theta}z$d--z$h{dir (theta)}..{dir 10}z$f--z$e--cycle;
   fi;
   labels($a, $b, $c, $d, $e, $f, $g, $h); 
enddef;


def xucl_hakenlinks (suffix $) =
     pickup xuc_penl;
     z$m = (x$-7/6xuclone, y$-xucllittle/3);
     z$n = (x$-xuclone, y$);
     numeric th;
     th = angle(z$n-z$m);
     xucmin_serif($n, th, -1);
     draw z$--z$m;
     draw z$m--z$n;
     labels($m, $n);
enddef;

def xucl_hakenrechts (suffix $) =
     pickup xuc_penl;
     z$m = (x$+7/6xuclone, y$+xucllittle/3);
     z$n = (x$+xuclone, y$);
     numeric th;
     th = angle(z$m-z$n);
     xucmin_serif($n, th, 1);
     draw z$--z$m;
     draw z$m--z$n;
     labels($m, $n);
enddef;


def xucl_fussrechts (suffix $) =
    z$e = (x$+5/6xuclone, y$+2/12xucllittle);
    z$f = (x$e+1/6xuclone, y$);
    z$g = (x$f, y$-1/6xucllittle);
    draw z$--z$e{z$e-z$}..z$f..z$g;
    labels($e, $f, $g);
enddef;


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%% Character Definitions: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%% a %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
xucchar "an";
beginchar("a", xuclzw#+2xuclone#, xucllittle#, .3xucllow#);
   pickup xuc_penl;
   z1 = (7/6xuclone, xucllittle);
   z2 = (x1-(1/3xuclone), 0);
   z3 = (2/3[z2, z1]);
   draw z1--z2;
   xucl_hakenlinks(1);
   xucl_hakenrechts(3);

   pickup xuc_penlx;
   xucl_fussrechts(2);
   penlabels(1, 2, 3);
endchar;

%% e %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
xucchar "en";
beginchar("e", xuclzw#+2xuclone#, xucllittle#, xucllow#);
   pickup xuc_penl;
   numeric theta[];

   z1 = (7/6xuclone, xucllittle);
   z2 = (x1-(1/3xuclone), 0);
   z3 = (2/3[z2, z1]);
   theta1 = angle(z1-z2);
   xucmin_serif(2, theta1, 1);

   z4 = (x1+xuclone, y1);
   z5 = (x4-(1/3xuclone), 0);
   z6 = (5/3[z4, z5]);
   theta4 = angle(z4-z6);
   xucmin_serif(6, theta4, 1);

   draw z1--z2;
   draw z3--z4--z6;

   xucl_hakenlinks(1);

   penlabels(range 1 thru 9);
endchar;

%% v %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
xucchar "vin";
beginchar("v", xuclzw#+3xuclone#, xucllittle#, xucllow#);
   pickup xuc_penl;
   numeric theta[];

   z1 = (7/6xuclone, xucllittle);
   z2 = (x1-(1/3xuclone), 0);
   z3 = (2/3[z2, z1]);
   theta1 = angle(z1-z2);
   xucmin_serif(2, theta1, 1);

   z4 = (x1+xuclone, y1);
   z5 = (x4-(1/3xuclone), 0);
   z6 = (5/3[z4, z5]);
   z7 = (2/3[z5, z4]);
   theta4 = angle(z4-z6);
   xucmin_serif(6, theta4, 1);

   z8 = (x4+xuclone, y1);
   z9 = (x8-(1/3xuclone), 0);
   theta8 = angle(z8-z9);
   xucmin_serif(9, theta8, 1);

   draw z1--z2;
   draw z3--z4--z6;
   draw z7--z8--z9;

   xucl_hakenlinks(1);

   penlabels(range 1 thru 9);
endchar;


%% t %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
xucchar "tan";
beginchar("t", xuclzw#+2.5xuclone#, xucllittle#, 0);
   pickup xuc_penl;
   numeric theta[]; % Winkel der Strichs

   z2 = (0, 0);
   z1 = (x2+1/3xuclone, xucllittle);
   z3 = (2/3[z2, z1]);
   theta1 = angle(z1-z2);
   xucmin_serif(1, theta1, -1);

   z4 = (x1+xuclone, y1);
   z5 = (x2+xuclone, 0);
   z6 = (2/3[z5, z4]);
   z7 = (1/3[z5, z4]);
   theta4 = angle(z4-z5);
   xucmin_serif(5, theta4, 1);


   z8 = (x4+xuclone, y1);
   z9 = (x5+xuclone, 0);
   theta8 = angle(z8-z9);
   xucmin_serif(9, theta8, 1);

   draw z1--z2;
   draw z2--z7;
   draw z3--z4--z5;
   draw z6--z8--z9;

   penlabels(1, 2, 3, 4, 5, 6, 7, 8, 9);
endchar;


%% l %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
xucchar "las";
beginchar("l", xuclzw#+3xuclone#, xucllittle#, 0);
   pickup xuc_penl;
   numeric theta[]; % Winkel der Strichs

   z1 = (xuclone, xucllittle);
   z2 = (x1-1/3xuclone, 0);
   z3 = (1/3[z1, z2]);
   xucl_hakenlinks(1);
   theta1 = angle(z1-z2);
   xucmin_serif(2, theta1, 1);
   draw z1--z2;
   
   z4 = (x1+xuclone, y1);
   z5 = (x2+xuclone, y2);
   z6 = (1/3[z4, z5]);
   theta4 = angle(z4-z5);
%   xucmin_serif(5, theta4, 1);
   draw z3--z4--z5;

   z7 = (x4+xuclone, y4);
   z8 = (x5+xuclone, y5);
   z9 = (2/3[z7, z8]);
   theta7 = angle(z7-z8);
   xucmin_serif(8, theta7, 1);
   draw z6--z7--z8;
   draw z5--z9;

   penlabels(range 1 thru 9);
endchar;



%% o %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
xucchar "on";
beginchar("o", xuclzw#+2.5xuclone#, xucllittle#, 0);
   pickup xuc_penl;
   numeric theta[]; % Winkel der Strichs

   z2 = (0, 0);
   z1 = (1/3xuclone, xucllittle);
   theta1 = angle(z1-z2);
   xucmin_serif(1, theta1, -1);
   draw z1--z2;
   
   z4 = (x1+xuclone, y1);
   z5 = (x2+xuclone, y2);
   z3 = (2/3[z4, z5]);
   theta4 = angle(z4-z5);
   xucmin_serif(4, theta4, -1);
   draw z2--z3;
   draw z4--z5;

   z7 = (x4+xuclone, y4);
   z8 = (x5+xuclone, y5);
   z6 = (2/3[z7, z8]);
   theta7 = angle(z7-z8);
   xucmin_serif(7, theta7, -1);
   xucmin_serif(8, theta7, 1);
   draw z7--z8;
   draw z5--z6;

   penlabels(range 1 thru 8);
endchar;


%% u %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
xucchar "un";
beginchar("u", xuclzw#+3.5xuclone#, xucllittle#, xucllow#);
   pickup xuc_penl;
   numeric theta[]; % Winkel der Strichs

   z2 = (0, 0);
   z1 = (1/3xuclone, xucllittle);
   theta1 = angle(z1-z2);
   xucmin_serif(1, theta1, -1);
   draw z1--z2;
   
   z4 = (x1+xuclone, y1);
   z5 = (x2+xuclone, y2);
   z3 = (2/3[z4, z5]);
   theta4 = angle(z4-z5);
   xucmin_serif(4, theta4, -1);
   draw z2--z3;
   draw z4--z5;

   z7 = (x4+xuclone, y4);
   z8 = (x5+xuclone, y5);
   z6 = (2/3[z7, z8]);
   theta7 = angle(z7-z8);
   xucmin_serif(7, theta7, -1);
   draw z7--z8;
   draw z5--z6;

   z10 = (x7+xuclone, y7);
   z11 = (x8+xuclone, y8);
   z12 = (5/3[z10, z11]);
   z9 = (2/3[z10, z11]);
   theta10 = angle(z10-z11);
   xucmin_serif(10, theta10, -1);
   xucmin_serif(12, theta10, 1);
   draw z10--z12;
   draw z8--z9;

   penlabels(range 1 thru 11);
endchar;


%% p %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
xucchar "par";
beginchar("p", xuclzw#+2.5xuclone#, xucllittle#, xucllow#);
   pickup xuc_penl;
   numeric theta[]; % Winkel der Strichs

   z2 = (0, 0);
   z1 = (1/3xuclone, xucllittle);
   z10 = (1/3[z1, z2]);
   theta1 = angle(z1-z2);
   xucmin_serif(1, theta1, -1);
   draw z1--z2;
   
   z4 = (x1+xuclone, y1);
   z5 = (x2+xuclone, y2);
   z3 = (2/3[z4, z5]);
   z9 = (5/3[z4, z5]);
   z11 = (1/3[z4, z5]);
   theta4 = angle(z4-z5);
   xucmin_serif(9, theta4, 1);
   draw z10--z4;
   draw z2--z3;
   draw z4--z9;

   z7 = (x4+xuclone, y4);
   z8 = (x5+xuclone, y5);
   z6 = (2/3[z7, z8]);
   theta7 = angle(z7-z8);
%   xucmin_serif(7, theta7, -1);
   xucmin_serif(8, theta7, 1);
   draw z11--z7;
   draw z7--z8;
   draw z5--z6;

   penlabels(range 1 thru 11);
endchar;



%% .g %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
xucchar ".ghan (oct022)";
beginchar(oct"022", xuclzw#+2xuclone#, xucllittle#, 0);
   pickup xuc_penl;
   numeric theta[]; % Winkel der Strichs

   z1 = (xuclone, xucllittle);
   z2 = (x1-1/3xuclone, 0);
   z3 = (1/3[z1, z2]);
   xucl_hakenlinks(1);
   theta1 = angle(z1-z2);
   xucmin_serif(2, theta1, 1);
   draw z1--z2;
   
   z4 = (x1+xuclone, y1);
   z5 = (x2+xuclone, y2);
   theta4 = angle(z4-z5);
   xucmin_serif(5, theta4, 1);
   draw z3--z4--z5;

   penlabels(range 1 thru 9);
endchar;




%% q %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
xucchar ".qar";
beginchar("q", xuclzw#+1.5xuclone#, xucllittle#, xucllow#);
   pickup xuc_penl;
   numeric theta[]; % Winkel der Strichs

   z2 = (0, 0);
   z1 = (1/3xuclone, xucllittle);
   theta1 = angle(z1-z2);
   xucmin_serif(1, theta1, -1);
   draw z1--z2;
   
   z4 = (x1+xuclone, y1);
   z5 = (x2+xuclone, y2);
   z3 = (2/3[z4, z5]);
   z6 = (5/3[z4, z5]);
   theta4 = angle(z4-z5);
   xucmin_serif(4, theta4, -1);
   xucmin_serif(6, theta4, 1);
   draw z2--z3;
   draw z4--z6;

   penlabels(range 1 thru 8);
endchar;



%% dz %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
xucchar "dz (j) - dzil";
beginchar("j", xuclzw#+2.5xuclone#, xuclheight#, 0);
   pickup xuc_penl;
   numeric theta[]; % Winkel der Strichs

   z2 = (0, 0);
   z1 = (1/3xuclone, xucllittle);
   z10 = (1/3[z1, z2]);
   theta1 = angle(z1-z2);
   xucmin_serif(1, theta1, -1);
   draw z1--z2;
   
   z4 = (x1+xuclone, y1);
   z5 = (x2+xuclone, y2);
   z3 = (2/3[z4, z5]);
   z6 = (1/3[z4, z5]);
   z9 = (7/4[z5, z4]);
   theta4 = angle(z4-z5);
   xucmin_serif(5, theta4, 1);
   xucmin_serif(9, theta4, -1);
   draw z10--z4;
   draw z2--z3;
   draw z9--z5;

   z7 = (x4+xuclone, y4);
   z8 = (x5+xuclone, y5);
   theta7 = angle(z7-z8);
   xucmin_serif(8, theta7, 1);
   draw z7--z8;
   draw z7--z6;

   penlabels(range 1 thru 10);
endchar;


%% c %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
xucchar ".can (oct020)";
beginchar(oct"020", xuclzw#+3xuclone#, xucllittle#, xucllow#);
   pickup xuc_penl;
   numeric theta[]; % Winkel der Strichs

   z2 = (xuclhalf, 0);
   z1 = (x2+1/3xuclone, xucllittle);
   z10 = (1/3[z1, z2]);
   z9 = (5/3[z1, z2]);
   theta1 = angle(z1-z2);
   xucmin_serif(1, theta1, -1);
   xucmin_serif(9, theta1, 1);
   draw z1--z9;
   
   z4 = (x1+xuclone, y1);
   z5 = (x2+xuclone, y2);
   z6 = (1/3[z4, z5]);
   theta4 = angle(z4-z5);
   xucmin_serif(5, theta4, 1);
   draw z5--z4--z10;

   z7 = (x4+xuclone, y4);
   z8 = (x5+xuclone, y5);

   theta7 = angle(z7-z8);
   xucmin_serif(8, theta7, 1);
   draw z6--z7--z8;

   penlabels(range 1 thru 10);
endchar;


%% h %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
xucchar "ha";
beginchar("h", xuclzw#+3xuclone#, xucllittle#, 0);
   pickup xuc_penl;
   numeric theta[]; % Winkel der Strichs

   z1 = (xuclone, xucllittle);
   z2 = (x1-1/3xuclone, 0);
   z3 = (1/3[z1, z2]);
   xucl_hakenlinks(1);
   theta1 = angle(z1-z2);
   xucmin_serif(2, theta1, 1);
   draw z1--z2;
   
   z4 = (x1+xuclone, y1);
   z5 = (x2+xuclone, y2);
   draw z3--z4--z5;

   z7 = (x4+xuclone, y4);
   z8 = (x5+xuclone, y5);
   z9 = (2/3[z7, z8]);
   theta7 = angle(z7-z8);
   xucmin_serif(7, theta7, -1);
   xucmin_serif(8, theta7, 1);
   draw z7--z8;
   draw z5--z9;

   penlabels(range 1 thru 9);
endchar;


%% i %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
xucchar "in";
beginchar("i", xuclzw#+xuclone#, xucllittle#, 0);
   pickup xuc_penl;
   numeric theta[]; % Winkel der Strichs

   z1 = (xuclone, xucllittle);
   z2 = (x1-1/3xuclone, 0);
   xucl_hakenlinks(1);
   theta1 = angle(z1-z2);
   xucmin_serif(2, theta1, 1);
   draw z1--z2;
   
   penlabels(range 1 thru 2);
endchar;


%% .p %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
xucchar ".p - .par (oct024)";
beginchar(oct"024", xuclzw#+2xuclone#, xucllittle#, 0);
   pickup xuc_penl;
   numeric theta[]; % Winkel der Strichs

   z1 = (xuclone, xucllittle);
   z2 = (x1-1/3xuclone, 0);
   xucl_hakenlinks(1);
   
   z4 = (x1+xuclone, y1);
   z5 = (x2+xuclone, y2);
   z3 = (2/3[z4, z5]);
   draw z4--z5;
   draw z1--z2--z3;
   theta4 = angle(z4-z5);
   xucmin_serif(4, theta4, -1);
   xucmin_serif(5, theta4, 1);

   penlabels(range 1 thru 5);
endchar;


%% ^z %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
xucchar  "^z - ^zan (+z, oct027)";
beginchar(oct"027", xuclzw#+2xuclone#, xucllittle#, xucllow#);
   pickup xuc_penl;
   numeric theta[]; % Winkel der Strichs

   z1 = (xuclone, xucllittle);
   z2 = (x1-1/3xuclone, 0);
   xucl_hakenlinks(1);
   
   z4 = (x1+xuclone, y1);
   z5 = (x2+xuclone, y2);
   z3 = (2/3[z4, z5]);
   z6 = (5/3[z4, z5]);
   draw z4--z6;
   draw z1--z2--z3;
   theta4 = angle(z4-z5);
   xucmin_serif(4, theta4, -1);
   xucmin_serif(6, theta4, 1);

   penlabels(range 1 thru 6);
endchar;


%% r %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
xucchar "ran";
beginchar("r", xuclzw#+2.5xuclone#, xuclheight#, 0);
   pickup xuc_penl;
   numeric theta[]; % Winkel der Strichs

   z2 = (0, 0);
   z1 = (1/3xuclone, xucllittle);
   theta1 = angle(z1-z2);
   xucmin_serif(1, theta1, -1);
   draw z1--z2;
   
   z4 = (x1+xuclone, y1);
   z5 = (x2+xuclone, y2);
   z3 = (2/3[z4, z5]);
   z6 = (1/3[z4, z5]);
   z9 = (7/4[z5, z4]);
   theta4 = angle(z4-z5);
   xucmin_serif(5, theta4, 1);
   xucmin_serif(9, theta4, -1);
   draw z2--z3;
   draw z9--z5;

   z7 = (x4+xuclone, y4);
   z8 = (x5+xuclone, y5);
   theta7 = angle(z7-z8);
   xucmin_serif(8, theta7, 1);
   draw z7--z8;
   draw z7--z6;

   penlabels(range 1 thru 9);
endchar;


%% s %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
xucchar "san";
beginchar("s", xuclzw#+1.5xuclone#, xuclheight#, 0);
   pickup xuc_penl;
   numeric theta[]; % Winkel der Strichs

   z2 = (0, 0);
   z1 = (1/3xuclone, xucllittle);
   z6 = (7/4[z2, z1]);
   theta1 = angle(z1-z2);
   xucmin_serif(6, theta1, -1);
   draw z6--z2;
   
   z4 = (x1+xuclone, y1);
   z5 = (x2+xuclone, y2);
   z3 = (2/3[z4, z5]);
   theta4 = angle(z4-z5);
   xucmin_serif(4, theta4, -1);
   xucmin_serif(5, theta4, 1);
   draw z2--z3;
   draw z4--z5;

   penlabels(range 1 thru 6);
endchar;


%% w %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
xucchar "we";
beginchar("w", xuclzw#+1.5xuclone#, xuclheight#, xucllow#);
   pickup xuc_penl;
   numeric theta[]; % Winkel der Strichs

   z2 = (0, 0);
   z1 = (1/3xuclone, xucllittle);
   theta1 = angle(z1-z2);
   xucmin_serif(1, theta1, -1);
   draw z1--z2;
   
   z4 = (x1+xuclone, y1);
   z5 = (x2+xuclone, y2);
   z3 = (2/3[z4, z5]);
   z7 = (5/3[z4, z5]);
   z6 = (7/4[z5, z4]);
   theta4 = angle(z4-z5);
   xucmin_serif(6, theta4, -1);
   xucmin_serif(7, theta4, 1);
   draw z2--z3;
   draw z6--z7;

   penlabels(range 1 thru 7);
endchar;


%% k %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
xucchar "kan";
beginchar("k", xuclzw#+2.5xuclone#, xuclheight#, xucllow#);
   pickup xuc_penl;
   numeric theta[]; % Winkel der Strichs

   z2 = (0, 0);
   z1 = (1/3xuclone, xucllittle);
   theta1 = angle(z1-z2);
   xucmin_serif(1, theta1, -1);
   draw z1--z2;
   
   z4 = (x1+xuclone, y1);
   z5 = (x2+xuclone, y2);
   z3 = (2/3[z4, z5]);
   z9 = (1/3[z4, z5]);
   z10 = (5/3[z4, z5]);
   z6 = (7/4[z5, z4]);
   theta4 = angle(z4-z5);
   xucmin_serif(6, theta4, -1);
   xucmin_serif(10, theta4, 1);
   draw z2--z3;
   draw z6--z10;

   z7 = (x4+xuclone, y4);
   z8 = (x5+xuclone, y5);
   theta7 = angle(z7-z8);
   xucmin_serif(8, theta7, 1);
   draw z9--z7--z8;

   penlabels(range 1 thru 10);
endchar;

%% q %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% To be improved
xucchar "q - qhar (oct035, TO BE IMPROVED)";
beginchar(oct"035", xuclzw#+2.5xuclone#, xucllittle#, xucllow#);
   pickup xuc_penl;
   numeric theta[]; % Winkel der Strichs

   z2 = (0, 0);
   z1 = (1/3xuclone, xucllittle);
   theta1 = angle(z1-z2);
   xucmin_serif(1, theta1, -1);
   draw z1--z2;
   
   z4 = (x1+xuclone, y1);
   z5 = (x2+xuclone, y2);
   z3 = (2/3[z4, z5]);
   z10 = (5/3[z4, z5]);
   theta4 = angle(z4-z5);
   xucmin_serif(3, theta4, -1);
   xucmin_serif(10, theta4, 1);
   draw z3--z10;

   z7 = (x4+xuclone, y4);
   z8 = (x5+xuclone, y5);
   z12 = (3/6[z7, z8]);
   theta7 = angle(z7-z8);
   xucmin_serif(7, theta7, -1);
   xucmin_serif(8, theta7, 1);
   draw z7--z8;

%   pickup xuc_penlx;
   draw z2--z12;

   penlabels(range 1 thru 12);
endchar;


%% b %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
xucchar "ban";
beginchar("b", xuclzw#+2xuclone#, xucllittle#, xucllow#);
   pickup xuc_penl;
   numeric theta[]; % Winkel der Strichs

   z2 = (0, 0);
   z1 = (1/3xuclone, xucllittle);
   theta1 = angle(z1-z2);
   xucmin_serif(1, theta1, -1);
   draw z1--z2;
   
   z4 = (x1+1.5xuclone, y1);
   z5 = (x2+1.5xuclone, y2);
   z3 = (2/3[z4, z5]);
   theta4 = angle(z4-z5);
   xucmin_serif(4, theta4, -1);

   x6 = .5[x2, x5]; y6 = -1xucllow;
   z7 = (x2, -.5xucllow);
   z8 = (.5[x3,x4], y7);

   draw z4--z5;

   pickup xuc_penlx;
   draw z2--z3;

   pickup xuc_penb;
   draw z5{-dir theta4}..{down}z8..{left}z6..{up}z7;

   penlabels(range 1 thru 8);
endchar;


%% g %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
xucchar "gan";
beginchar("g", xuclzw#+2xuclone#, xucllittle#, xucllow#);
   pickup xuc_penl;
   numeric theta[]; % Winkel der Strichs

   z1 = (xuclone, xucllittle);
   z2 = (x1-1/3xuclone, 0);
   z3 = (1/3[z1, z2]);
   xucl_hakenlinks(1);
   theta1 = angle(z1-z2);
   xucmin_serif(2, theta1, 1);
   draw z1--z2;
   
   z4 = (x1+xuclone, y1);
   z5 = (x2+xuclone, y2);
   theta4 = angle(z4-z5);
   draw z3--z4--z5;

   x6 = .5[x2, x5]; y6 = -1xucllow;
   z7 = (.5x2, -.5xucllow);
   z8 = (x4, y7);
   z9 = (x3, -.2xucllow);

   pickup xuc_penb;
   draw z5{-dir theta4}..{down}z8..{left}z6..{up}z7..{right}z9;

   penlabels(range 1 thru 9);
endchar;

%% d %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
xucchar "don";
beginchar("d", xuclzw#+2xuclone#, xuclheight#, 0);
   pickup xuc_penl;
   numeric theta[]; % Winkel der Strichs

   z1 = (xuclone, 7/4xucllittle);
   z2 = (x1, 4/5xucllittle);
   z3 = (1/3[z1, z2]);
   xucl_hakenlinks(1);
   xucl_hakenrechts(3);
   
   z4 = (2x1, .5y2);
   z6 = (0, y4);
   z5 = (x2, 0);
   draw z1--z2;
   
   pickup xuc_penb;
   draw z2..tension 2..z4..tension 2..z5..tension 2..z6..tension 2..cycle;
   penlabels(range 1 thru 6);
endchar;


%% z %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
xucchar "zen";
beginchar("z", xuclzw#+1.5xuclone#, xuclheight#, 0);
   pickup xuc_penl;
   numeric theta[]; % Winkel der Strichs

   z2 = (.5xuclhalf, 0);
   z1 = (x2+1/3xuclone, xucllittle);
   z6 = (7/4[z2, z1]);
   z7 = (2/3[z2, z1]);

   draw z6--z2;
   xucl_hakenlinks(6);

   z4 = (x1+xuclone, y1);
   z5 = (x2+xuclone, y2);
   z3 = (2/3[z4, z5]);
   theta4 = angle(z4-z5);
   xucmin_serif(5, theta4, 1);
   draw z2--z3;
   draw z4--z5;
   draw z4--z7;

   penlabels(range 1 thru 7);
endchar;


%% he %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
xucchar "he (long e, oct036)";
beginchar(oct"036", xuclzw#+1.8xuclone#, xuclheight#, xucllow#);
   pickup xuc_penl;
   numeric theta[]; % Winkel der Strichs

   z2 = (.5xuclhalf, 0);
   z1 = (x2+1/3xuclone, xucllittle);
   z6 = (7/4[z2, z1]);
   z3 = (2/3[z2, z1]);
   z7 = (5/3[z1, z2]);
   theta1 = angle(z1-z2);
   xucmin_serif(6, theta1, -1);
   xucmin_serif(7, theta1, 1);

   draw z6--z7;

   z4 = (x1+xuclone, y1);
   z5 = (x2+xuclone, y2);
   theta4 = angle(z4-z5);
   xucmin_serif(5, theta4, 1);
   draw z3--z4--z5;

   z9 = (7/4[z5, z4]);
   z8 = (5/4[z5, z4]);
   draw z8--z9;

   penlabels(range 1 thru 9);
endchar;


%% .k %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
xucchar ".k - .kan (oct003)";
beginchar(oct"023", xuclzw#+1.5xuclone#, xuclheight#, xucllow#);
   pickup xuc_penl;
   numeric theta[]; % Winkel der Strichs

   z2 = (0, 0);
   z1 = (1/3xuclone, xucllittle);
   z6 = (7/4[z2, z1]);
   z3 = (1/3[z1, z2]);
   theta1 = angle(z1-z2);
   xucmin_serif(6, theta1, -1);
   draw z6--z2;
   
   z4 = (x1+xuclone, y1);
   z5 = (x2+xuclone, y2);
   z7 = (2/3[z4, z5]);
   z8 = (5/3[z4, z5]);
   theta4 = angle(z4-z5);
   xucmin_serif(8, theta4, 1);
   draw z3--z4--z8;
   draw z2--z7;

   penlabels(range 1 thru 8);
endchar;


%% m %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
xucchar "man";
beginchar("m", xuclzw#+1.5xuclone#, xuclheight#, 0);
   pickup xuc_penl;

   z1 = (1.5xuclone, 7/4xucllittle);
   z2 = (x1, 4/5xucllittle);
   z3 = (2/3[z1, z2]);
   xucl_hakenlinks(1);
  
   z4 = (0, .5y2);
   z5 = (.5[x4, x1], 0);

   draw z1--z2;

   pickup xuc_penb;
   draw z2{down}..{left}z5..{up}z4..{z3-z4}z3;

   penlabels(range 1 thru 5);
endchar;

%% n %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% not yet very nice
xucchar "nar (TO BE IMPROVED)";
beginchar("n", xuclzw#+1.5xuclone#, xuclheight#, 0);
   pickup xuc_penl;
   numeric theta[]; % Winkel der Strichs

   z2 = (0, 0);
   z1 = (1/3xuclone, xucllittle);
   z6 = (12/8[z2, z1]);
   z3 = (1/3[z1, z2]);

   theta1 = angle(z1-z2);
   xucmin_serif(2, theta1, 1);
  
   z4 = (x1+xuclone, y1);
   z5 = (x2+xuclone, y2);
   z7 = (7/4[z5, z4]);
   z8 = (5/4[z5, z4]);
   draw z2--z6--z7--z8;

   theta4 = angle(z4-z5);
   xucmin_serif(5, theta4, 1);
   xucmin_serif(8, theta4, 1);
   draw z3--z4--z5;

   penlabels(range 1 thru 8);
endchar;


%% i1 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
xucchar "i1 - short i, (Old Georgian), oct032";
beginchar(oct"032", xuclzw#+1.5xuclone#, xucllittle#, 0);
   pickup xuc_penb;
   numeric theta[]; % Winkel der Strichs
 
   z1 = (1.5xuclone, xucllittle);
   z3 = (xuclhalf, 2/3y1); 
   z2 = (.5[x1, x3], 0);
   z4 = (x1, y1+.5py2);
   draw z1{down}..{left}z2..{dir 30}z3;
   xucmin_serif(4, 90, -1);

   penlabels(range 1 thru 3);
endchar;


%% ^s %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
xucchar "^sin";
beginchar(oct"025", xuclzw#+1.5xuclone#, xucllittle#, xucllow#);
   pickup xuc_penl;
   numeric theta[]; % Winkel der Strichs

   z2 = (0, 0);
   z1 = (1/3xuclone, xucllittle);
   theta1 = angle(z1-z2);
   xucmin_serif(1, theta1, -1);
   draw z1--z2;
   
   z4 = (x1+1xuclone, y1);
   z5 = (x2+1xuclone, y2);
   z3 = (2/3[z4, z5]);
   theta4 = angle(z4-z5);
   xucmin_serif(4, theta4, -1);

   x6 = .5[x2, x5]; y6 = -1xucllow;
   z7 = (x2, -.5xucllow);
   z8 = (x5, y7);

   draw z2--z3;
   draw z4--z5;

   pickup xuc_penb;
   draw z5{-dir theta4}..{down}z8..{left}z6..{up}z7;

   penlabels(range 1 thru 8);
endchar;


%% ^c %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
xucchar "^cin";
beginchar(oct"021", xuclzw#+1.5xuclone#, xuclheight#, xucllow#);
   pickup xuc_penl;
   numeric theta[]; % Winkel der Strichs

   z2 = (.5xuclhalf, 0);
   z1 = (x2+1/3xuclone, xucllittle);
   z6 = (7/4[z2, z1]);
   z3 = (2/3[z2, z1]);
   z7 = (5/3[z1, z2]);
   theta1 = angle(z1-z2);
   xucmin_serif(6, theta1, -1);
   xucmin_serif(7, theta1, 1);

   draw z6--z7;

   z4 = (x1+xuclone, y1);
   z5 = (x2+xuclone, y2);
   theta4 = angle(z4-z5);
   xucmin_serif(5, theta4, 1);
   draw z3--z4--z5;

   penlabels(range 1 thru 7);
endchar;

%% c %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
xucchar "cin";
beginchar("c", xuclzw#+1.5xuclone#, xucllittle#, xucllow#);
   pickup xuc_penl;
   numeric theta[]; % Winkel der Strichs

   z2 = (.5xuclhalf, 0);
   z1 = (x2+1/3xuclone, xucllittle);
   z3 = (2/3[z2, z1]);
   z7 = (4/3[z1, z2]);
   theta1 = angle(z1-z2);
   xucmin_serif(1, theta1, -1);

   z4 = (x1+xuclone, y1);
   z5 = (x2+xuclone, y2);
   z6 = (x5, 5/3[y4, y5]);

   theta4 = angle(z4-z5);
   xucmin_serif(5, theta4, 1);

   draw z1--z7;
   draw z3--z4--z5;

   pickup xuc_penb;
   draw z7{down}..{right}z6;

   penlabels(range 1 thru 7);
endchar;


%% x %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
xucchar "xan";
beginchar("x", xuclzw#+1.5xuclone#, xucllittle#, xucllow#);
   pickup xuc_penl;
   numeric theta[]; % Winkel der Strichs

   z2 = (.5xuclhalf, 0);
   z1 = (x2+1/3xuclone, xucllittle);
   z7 = (4/3[z1, z2]);
   theta1 = angle(z1-z2);
   xucmin_serif(1, theta1, -1);

   z4 = (x1+xuclone, y1);
   z5 = (x2+xuclone, y2);
   z6 = (x4, 5/3[y4, y5]);
   z3 = (2/3[z4, z5]);

   theta4 = angle(z4-z5);
   xucmin_serif(4, theta4, -1);
   xucmin_serif(5, theta4, 1);

   draw z1--z7;
   draw z3--z2;
   draw z4--z5;

   pickup xuc_penb;
   draw z7{down}..{right}z6;

   penlabels(range 1 thru 7);
endchar;

%% .t %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
xucchar ".t - .tar (.t oct026)";
beginchar(oct"026", xuclzw#+1.5xuclone#, xucllittle#, xucllow#);
   pickup xuc_penl;
   numeric theta[]; % Winkel der Strichs

   z2 = (.5xuclhalf, 0);
   z1 = (x2+1/3xuclone, xucllittle);
   z7 = (2/3[z2, z1]);
   z8 = (4/3[z1, z2]);
   theta1 = angle(z1-z2);
   xucmin_serif(1, theta1, -1);

   z4 = (x1+xuclone, y1);
   z5 = (x2+xuclone, y2);
   z6 = (x5, 5/3[y4, y5]);
   z3 = (2/3[z4, z5]);

   theta4 = angle(z4-z5);
   xucmin_serif(5, theta4, 1);

   draw z1--z8;
   draw z3--z2;
   draw z4--z5;
   draw z4--z7;

   pickup xuc_penb;
   draw z8{down}..{right}z6;

   penlabels(range 1 thru 8);
endchar;


%% .^c %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
xucchar "^.c - ^.car (,c .+c oct034)";
beginchar(oct"034", xuclzw#+1.5xuclone#, xucllittle#, xucllow#);
   pickup xuc_penl;
   numeric theta[]; % Winkel der Strichs
   z2 = (.5xuclhalf, 0);
   z1 = (x2+1/3xuclone, xucllittle);
   z3 = (2/3[z2, z1]);
   z8 = (7/6[z1, z2]);
   theta1 = angle(z1-z2);
   xucmin_serif(1, theta1, -1);

   z4 = (x1+xuclone, y1);
   z5 = (x2+xuclone, y2);
   z6 = (x5, 4/3[y4, y5]);
   z7 = (x2, 5/3[y4, y5]);

   theta4 = angle(z4-z5);
   xucmin_serif(5, theta4, 1);

   draw z1--z8;
   draw z3--z4--z5;

   pickup xuc_penb;
   draw z8{right}..{down}z6..{left}z7;

   penlabels(range 1 thru 8);
endchar;


%% d^z %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
xucchar "d^zan (+j oct030)";
beginchar(oct"030", xuclzw#+2xuclone#, xucllittle#, xucllow#);
   pickup xuc_penl;
   z1 = (xuclone, xucllittle);
   xucl_hakenlinks(1);
   
   z2 = (2xuclone, -1/3xucllittle);
   z3 = (x1, 2/3xucllittle);

   z4 = (.75[x1,x2], y1);
   z5 = (x2, y3);
   z6 = (x1, -2/3xucllittle);

   pickup xuc_penb;
   draw z1..z3..z2;
   draw z3..{right}z4..{down}z5..{right}z6;

   penlabels(range 1 thru 7);
endchar;