summaryrefslogtreecommitdiff
path: root/language/tamil/wntamil/tamilmax.mf
diff options
context:
space:
mode:
Diffstat (limited to 'language/tamil/wntamil/tamilmax.mf')
-rw-r--r--language/tamil/wntamil/tamilmax.mf446
1 files changed, 446 insertions, 0 deletions
diff --git a/language/tamil/wntamil/tamilmax.mf b/language/tamil/wntamil/tamilmax.mf
new file mode 100644
index 0000000000..bfa7b49106
--- /dev/null
+++ b/language/tamil/wntamil/tamilmax.mf
@@ -0,0 +1,446 @@
+def tspecs =
+if callchar = "k":
+% cmchar "Tamil k";
+charspec("k",1.5x_height#,x_height#,0);
+top y2r=top y3r=top y4r=h;
+bot y7=bot y11=0;
+y1=y9=y5=.6x_height;
+y8=.5y1; y10=.5y1;
+y6=.3x_height;
+y22=h;
+x10=w-u; x8=w-x10;
+x3=x5=.6[x8,x10];
+x1=x2-.5hair=x22=.2[x8,x10]; x7=.25[x8,x10];
+x6=x5;
+x4=.9[x8,x10]; x11=.75[x8,x10]; x9=.65[x8,x10];
+z21=z1; x101=x10+.6u; y101=y10;
+%pickup crisp.nib;
+pos1(tthinner,30); pos22(tthinner,30); pos2(.8tmed,90); pos4(.8tmed,90);
+pos3(tthick,0); pos5(tthick,0); pos6(tthick,-10);
+pos7(tthin,-60); pos8(tthinner,-180);pos21(tmed,-210);
+pos9(tmed,-210); pos10(tthick,-340); pos11(tthin,-450);
+pos101(tthickest,-340);
+% show z1,z1r,z1l,z22,z22r,z22l;
+filldraw stroke z1e--z22e;
+filldraw stroke z2e--z4e;
+x65=x11-.075w; y65=y11+.075h; pos65(tthinnest,-540);
+filldraw stroke z3e...z5e...z6e{down}...{left}z7e...{up}z8e...{right}z21e
+ ...z9e{right}...z10e{down}...{left}z11e...z65e;
+penlabels(1,2,3,4,5,6,7,8,9,10,11,21);
+% endchar;
+
+elseif callchar = "c":
+charspec("c",1.5x_height#,x_height#,0);
+top y2r=top y3r=top y4r=h;
+bot y7=bot y11=0;
+y1=y9=y5=.6x_height;
+y8=.5y1; y10=.5y1;
+y6=.3x_height;
+y22=h;
+x10=w-u; x8=w-x10;
+x3=x5=.6[x8,x10];
+x1=x2-.5hair=x22=.2[x8,x10]; x7=.25[x8,x10];
+x6=x5;
+x4=.9[x8,x10]; x11=.75[x8,x10]; x9=.65[x8,x10];
+z21=z1; x101=x10+.6u; y101=y10;
+%pickup crisp.nib;
+pos1(tthinner,30); pos22(tthinner,30); pos2(.8tmed,90); pos4(.8tmed,90);
+pos3(tthick,0); pos5(tthick,0); pos6(tthick,-10);
+pos7(tthin,-60); pos8(tthinner,-180);pos21(tmed,-210);
+pos9(tmed,-210); pos10(tthick,-340); pos11(tthin,-450);
+pos101(tthickest,-340);
+% show z1,z1r,z1l,z22,z22r,z22l;
+filldraw stroke z1e--z22e;
+filldraw stroke z2e--z4e;
+x25=x25r=x25l=x5; y25=y21; y25r=y21r; y25l=y21l;
+filldraw stroke z3e...z5e...z6e{down}...{left}z7e...{up}z8e...{right}z21e---z25e;
+penlabels(1,2,3,4,5,6,7,8,21,25);
+% endchar;
+
+elseif callchar = "1":
+
+%cmchar "Tamil n dot";
+charspec("1",3x_height#,x_height#,0);
+%adjust_fit(0,0);
+x1=x81=u; x6=.6x10; x8=.6[x1,x6]; x7=.5[x8,x6];
+x5=.5[x1,x6]; x3=.5[x1,x8]; x4=x2=.5[x1,x3];
+x9=.5[x8,x10]; x10=.7w; x12=.6[x8,x10]; x11=.5[x12,x10];
+x13=rt x10r; x14=w-u; x15=x16=.5[x13,x14];
+top y5r=top y9r=top y13r=y16=top y14r=h;
+bot y4r=bot y7r=bot y11r=y15=0;
+y2=y8=y6=y12=y10=.5h;
+y81=y1=y3=.5y2;
+pos1(tthinner,180); pos2(tthin,90); pos3(tthick,0); pos4(tthin,-90);
+pos81(tthinner,-180); pos5(tmed,-270); pos6(tthicker,-360);
+pos7(tmed,-450); pos8(tthin,-540); pos9(tmed,-630); pos10(tthicker,-720);
+pos11(tmed,-810); pos12(tthin,-900); pos13(tthin,-990);
+pos14(tthin,-990); pos15(tthicker,0); pos16(tthicker,0);
+if dodraw:
+filldraw stroke z1e...{right}z2e...{down}z3e...{left}z4e..z81e...{right}z5e
+ ...{down}z6e...{left}z7e...{up}z8e...{right}z9e...{down}z10e
+ ...{left}z11e...{up}z12e...{right}z13e; %---z14e;
+fi
+%filldraw stroke z15e---z16e;
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16);
+
+elseif callchar = "p":
+
+charspec("p",1.4x_height#,x_height#,0);
+y1=y6=h; y2=y5=bot y3l=bot y4l=0;
+lft x1l=lft x2l=x3=u;
+rt x5r=rt x6r=x4=w-u;
+pos1(tthick,0); pos2(tthick,0); pos3(tthin,90); pos4(tthin,90);
+pos5(tthick,0); pos6(tthick,0);
+filldraw stroke z1e---z2e;
+filldraw stroke z3e---z4e;
+filldraw stroke z5e---z6e;
+penlabels(1,2,4,6);
+
+elseif callchar = "n":
+
+charspec("n",1.5x_height#,x_height#,.5x_height#);
+x12=u; x11=x1=x2=x3=3u; x4=rt x9r=w-u;
+x7=x5=x6=.4[x1,x9]; x8=.6[x7,x9]; x13=.6[x12,x11]; x10=.5[x7,x8];
+y1=y6=y7=0; top y3r=top y4r=y2=y5=h;
+y8=.55h; y9=.5y8; bot y13l=-d; y10=y11=-.3d; y12=.4[y10,y13];
+pos1(tthinner,0); pos2(tthinner,0); pos3(tmed,90); pos4(tmed,90);
+pos5(tthick,0); pos6(tthick,0); pos7(tthin,180); pos8(tthin,90);
+pos9(tthick,0); pos10(tthin,-90); pos11(tthin,-90); pos12(tthinner,0);
+pos13(tthick,45);
+filldraw stroke z1e--z2e; filldraw stroke z3e--z4e; filldraw stroke z5e--z6e;
+%filldraw stroke z7e{up}...{right}z8e...{down}z9e...{left}z10e...{left}z11e...{down}z12e..z13e;
+penlabels(1,2,4,5,6,8,9,10,11,12,13);
+%endchar;
+
+elseif callchar = "r":
+
+charspec("?",1.125x_height#+2u#,x_height#,0);
+lft x1l=lft x2l=x3=u; x4=w-u; x5=x6=.6w;
+y1=y6=0; y2=y3=y4=y5=h;
+pos1(tthinnest,0); pos2(tthinnest,0); pos3(tthin,90); pos4(tthin,90);
+pos5(tthick,0); pos6(tthick,0);
+filldraw stroke z1e---z2e; filldraw stroke z3e---z4e; filldraw stroke z5e---z6e;
+penlabels(1,2,3,4,5,6);
+
+elseif callchar = "r2":
+
+charspec("?",.9x_height#+2u#,x_height#,0);
+lft x1l=lft x2l=x3=u; x4=w-u; x5=x6=.6w;
+y1=y6=0; y2=y3=y4=y5=h;
+pos1(tthinnest,0); pos2(tthinnest,0); pos3(tthin,90); pos4(tthin,90);
+pos5(tthick,0); pos6(tthick,0);
+filldraw stroke z1e---z2e; filldraw stroke z3e---z4e; filldraw stroke z5e---z6e;
+penlabels(1,2,3,4,5,6);
+
+elseif callchar="y":
+
+charspec("y",1.5x_height#,x_height#,0);
+x1=x2=u; x8=x9=x10=w-u; x7=x4=x5=x6=.35[x1,x9]; x3=.35[x1,x5];
+y9=y5=y1=h; y2=.3h; y4=.5h; bot y7l=bot y8l=bot y3l=y6=y10=0;
+pos1(.8tmed,0); pos2(.8tmed,0); pos3(tthin,90); pos4(tthinner,180);
+pos5(tthick,0); pos6(tthick,0); pos7(tthin,90); pos8(tthin,90);
+pos9(tthick,0); pos10(tthick,0);
+filldraw stroke z1e--z2e{down}...{right}z3e...{up}z4e;
+filldraw stroke z5e--z6e; filldraw stroke z7e--z8e; filldraw stroke z9e--z10e;
+penlabels(1,2,3,4,5,6,7,8,9,10);
+%endchar;
+
+elseif callchar="a":
+
+charspec("a",2x_height#,x_height#,desc_depth#);
+%adjust_fit(0,0);
+x3=.5[x9,x11]; y1=.8h; y5=y12=h; y2=y4=y6=.6h; y3=.2h; x1=.45[x9,x11];
+x4=x8=.4[x9,x11]; x2=.6[x9,x11]; x5=.6[x9,x11]; x6=.7[x9,x11]; x7=.8[x9,x11]; x11=x12=x13=w-u;
+x9=u; x10=.15[x9,x11]; y8=y13=-d; y7=y3; y9=-.1d; y10=y11=0;
+z20=z1;
+pos1(hair,70); pos2(.8curve,0); pos3(hair,-90); pos4(hair,190);
+pos5(hair,90); pos6(curve,0); pos7(tthickest,-20); pos8(tmed,-90);
+pos9(hair,-180); pos10(hair,90); pos11(hair,90); pos12(.8curve,20);
+pos13(.8curve,20);pos20(hair,135);
+filldraw stroke z1e...z2e...z3e...z4e...z20e...z5e...{down}z7e...{left}z8e...{up}z9e...z10e---z11e;
+filldraw stroke z12e---z13e;
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13);
+
+elseif callchar="v":
+
+charspec("v",1.5x_height#,x_height#,0);
+x1=x81=u; x6=.6[x1,x9]; x8=x9=x10=w-u; x7=.4[x5,x6];
+x5=.5[x1,x6]; x3=.4[x1,x6]; x2=x4=.5[x1,x3];
+y2=.5h; y1=y3=y81=.5y2; bot y4r=bot y7r=bot y8r=0;
+top y5r=y10=h; y9=0; y6=.5h;
+pos1(tthinner,180); pos2(tthin,90); pos3(tthick,0); pos4(tthin,-90);
+pos81(tthin,-180); pos5(tmed,-270); pos6(tthick,-360); pos7(tthick,-450);
+pos8(tthick,-450); pos9(tthick,0); pos10(tthick,0);
+filldraw stroke z1e..z2e..z3e..z4e..z81e..z5e...{down}z6e...{left}z7e;
+filldraw stroke z7e--z8e; filldraw stroke z9e--z10e;
+penlabels(1,2,3,4,5,6,7,8,9,10);
+
+
+elseif callchar="l":
+
+charspec("l",1.5x_height#,x_height#,0);
+x81=u; x9=w-u; x6=x7=.55[x81,x9]; x8=x10=.5[x6,x9]; x1=.1[x81,x6];
+x5=.5[x81,x6]; x3=.4[x1,x6]; x2=x4=.5[x1,x3];
+y81=y2=.5h; y1=y3=.5y2; bot y4r=bot y8l=0;
+top y5r=h; top y10l=h; y9=.5h; y6=.6h; y7=.4h;
+pos1(tthinner,180); pos2(tthin,90); pos3(tmed,0); pos4(tthin,-90);
+pos81(tthin,-180); pos5(tmed,-270); pos6(tthick,-360); pos7(tthick,-360);
+pos8(tmed,-270); pos9(tthin,-180); pos10(tmed,-120);
+%filldraw stroke z4e...z1e..z2e..z3e..z4e...{up}z81e..z5e...{down}z6e--z7e{down}...{right}z8e...{up}z9e..z10e;
+penlabels(1,2,3,4,5,6,7,8,9,10);
+
+elseif callchar="m":
+
+charspec("m",1.6x_height#,x_height#,0);
+lft x1l=lft x2l=x3=u;
+rt x5r=w-u; x8=x7=.5w;
+x6=.3[x8,x5]; x4=.8[x8,x5];
+y1=top y6r=h;
+y2=bot y3r=bot y4r=y8=0;
+y5=.5h; y7=.8h;
+pos1(tthick,0); pos2(tthick,0);
+pos3(tthin,-90); pos4(tthin,-90);
+pos5(tthinner,0); pos6(tmed,90);
+pos7(tthick,180); pos8(tthick,180);
+filldraw stroke z1e---z2e;
+filldraw stroke z3e---z4e...{up}z5e...{left}z6e...{down}z7e---z8e;
+penlabels(1,2,4,5,6,7,8);
+
+elseif callchar="T":
+
+charspec("7",1.75x_height#,x_height#,0);
+lft x1l=lft x2l=x3=u; x4=w-u;
+y1=h; y2=bot y3l=bot y4l=0;
+pos1(tthick,0); pos2(tthick,0);
+pos3(tthin,90); pos4(tthin,90);
+filldraw stroke z1e---z2e;
+filldraw stroke z3e---z4e;
+penlabels(1,2,4);
+
+elseif callchar="L":
+
+charspec("9",1.75x_height#,x_height#,0);
+x81=x1=u; x6=x7=x8=x9=.55w; x11=x12=.8w; x10=w-u;
+x3=x5=.5[x1,x6]; x2=x4=.5[x1,x3];
+bot y4r=y6=y7=y11=0; top y5r=y8=top y9r=top y10r=y12=h;
+y1=y81=y3=.5y2; y2=.6h;
+pos1(tthinner,180); pos2(tthin,90); pos3(tmed,0);
+pos4(tthin,-90); pos81(tthinner,-180); pos5(tthick,-270);
+pos6(tthin,-360); pos7(tthin,0); pos8(tthin,0);
+pos9(tthin,90); pos10(tthin,90); pos11(tthick,0); pos12(tthick,0);
+if dodraw:
+filldraw stroke z1e...{right}z2e...{down}z3e...{left}z4e..z81e...{right}z5e...{down}z6e;
+filldraw stroke z7e---z8e; filldraw stroke z9e---z10e;
+filldraw stroke z11e---z12e;
+fi
+penlabels(1,2,3,4,5,6,8,10,11,12);
+
+elseif callchar="N":
+
+charspec("N",2x_height#,x_height#,0);
+x81=u; x1=.05[x81,x6]; x6=.6w; x8=.6[x81,x6]; x7=.5[x8,x6];
+x5=.5[x81,x6]; x3=.5[x1,x8]; x4=x2=.5[x1,x3];
+x13=rt x6r; x14=w-u; x15=x16=.5[x13,x14];
+top y5r=top y13r=y16=top y14r=h;
+bot y4r=bot y7r=y15=0;
+y8=y6=.5h; y2=bar_height; y81=y2;
+y1=y3=.5y2;
+pos1(tthinner,180); pos2(tthin,90); pos3(tmed,0); pos4(tthin,-90);
+pos81(tthinner,-180); pos5(tmed,-270); pos6(tthicker,-360);
+pos7(tmed,-450); pos8(tthin,-540);
+pos13(tthin,-630);
+pos14(tthin,-630); pos15(tthicker,0); pos16(tthicker,0);
+if dodraw:
+filldraw stroke z4e...{up}z1e...{right}z2e...{down}z3e...{left}z4e...{up}z81e...{right}z5e
+ ...{down}z6e...{left}z7e...{up}z8e...{right}z13e; %---z14e;
+%filldraw stroke z15e---z16e;
+fi
+penlabels(1,2,3,4,5,6,7,8,13,14,15,16);
+
+elseif callchar="R":
+
+charspec("R",1.3x_height#,x_height#,desc_depth#);
+x1=x11=u; x7=w-u; x3=x5=.4[x1,x7]; x2=.5[x1,x3]; x6=.5[x4,x7]; x8=.9[x1,x7];
+rt x12r=.5u; x9=x10=.05[x1,x7]; x4r=x3l;
+top y2l=top y6l=h; y8=y1=y5=.05h; y9=-.4d; y10=-.8d; y12=-.6d;
+y11=y3=y4=.7h; y7=.4h;
+pos1(tthin,0); pos11(tthin,0); pos2(tmed,-90); pos3(tthick,-180);
+pos4(tthinnest,0); pos5(tthick,-180); pos6(tthin,-90); pos7(tthick,-180);
+pos8(tthin,-245); pos9(tthin,-245); pos12(tthin,-180); pos10(tthin,-135);
+filldraw stroke z1e--z11e{up}...{right}z2e...{down}z3e--z5e;
+%filldraw stroke z4e{up}...{right}z6e...{down}z7e..z8e..z9e...{down}z12e..z10e;
+penlabels(1,2,3,5,6,7,8,9,10,11,12);
+
+elseif callchar="g":
+
+charspec("2",1.5x_height#,x_height#,0);
+lft x1l=lft x2l=x3=u; x11=x12=x13=w-u;
+x8=.7[x1,x12]; x5=x6=x7=x10=.4[x1,x8]; x9=.5[x1,x12]; % x7=x6r; will line up
+x4=.8[x1,x13]; x77=.6[x7,x8];
+y1=bot y10l=y9=bot y11l=y12=0;
+y2=top y3r=top y4r=y5=y13=h;
+y6=.35h; y8=.4h; y77=.65h;
+pos1(tthinnest,0); pos2(tthinnest,0);
+pos3(tthin,90); pos4(tthin,90);
+pos5(tthick,0);
+% pos6(tthick,45);
+x6l+.5tthick=x6=x6r-.5tthick; y6l+.5tthick=y6=y6r-.5tthick;
+y7l=y6r;
+pos77(tthin,90);
+pos7(tthinner,90); pos8(tthicker,45); pos9(tthick,0);
+pos10(tthin,90); pos11(tthin,90);
+pos12(tthick,0); pos13(tthick,0);
+filldraw stroke z1e---z2e;
+filldraw stroke z3e---z4e;
+filldraw stroke z5e---z6e;
+filldraw stroke z7e..z77e{right}...z8e{down}...z9e;
+filldraw stroke z10e---z11e;
+filldraw stroke z12e---z13e;
+penlabels(1,2,4,5,6,8,9,10,11,13);
+
+
+elseif callchar = "e":
+
+charspec(6,1.6x_height#,x_height#,0);
+y6=y7=y8=h; y9=bot y4r=0; y2=.6h; y1=.3h; y3=.3h; y5=y2; %y5=.85h;
+x5=u; x7=w-u; x8=x9=x7-2u; x6=x3=x1+3u; x1=x5+hair; x2=x4=x1+1.5u;
+z20=z1;
+pos1(tthinnest,180); pos2(tmed,90); pos3(tthick,0); pos4(tmed,-90); pos20(tthin,-160);
+pos5(tthinner,-180); pos6(tthin,-270); pos7(tthin,-270);
+pos8(tthick,0); pos9(tthick,0);
+filldraw stroke z1e..z2e..z3e..z4e..z20e...{right}z6e---z7e;
+filldraw stroke z8e---z9e;
+penlabels(1,2,3,4,5,6,7,8,9);
+
+elseif callchar = "u":
+
+charspec(4,2x_height#,x_height#,0);
+x6=.55w; x4=x9=.1w; x1=x8=x10=.15w; x3=.2w; x2=.3w; x5=x7=.4w; x11=.9w;
+y10=y11=0; y5=h; y1=.85h; y2=y4=y6=.65h; y3=.45h;
+y7=y8=.25h; y9=.125h;
+z20=z1;
+pos1(tmed,45); pos2(tmed,0); pos3(tthinner,-90); pos4(tthinnest,-180);
+pos20(tthinnest,-225); pos5(tthinner,-270); pos6(tthick,-360); pos7(tmed,-430);
+pos8(tthin,-450); pos9(tthinnest,-360); pos10(tthin,-290);
+pos11(tthin,-290);
+filldraw stroke z1e..z2e..z3e..z4e..z20e...{right}z5e;
+filldraw stroke z5e{right}...{down}z6e...{left}z7e;
+filldraw stroke z7e{left}...{left}z8e...{down}z9e;
+filldraw stroke z9e{down}...{right}z10e---z11e;
+penlabels(1,2,3,4,5,6,7,8,9,10,11);
+
+elseif callchar = "S":
+
+charspec("S",2.2x_height#,asc_height#,desc_depth#);
+x1=x81=u; x6=.45[x1,x9]; x8=x9=x10=w-u; x7=.4[x5,x6];
+x5=.5[x1,x6]; x3=.4[x1,x6]; x2=x4=.5[x1,x3];
+y2=.5x_height; y1=y3=y81=.5y2; bot y4r=bot y7r=bot y8r=0;
+top y5r=y10=x_height; y9=0; y6=y2;
+pos1(tthinner,180); pos2(tthin,90); pos3(tthick,0); pos4(tthin,-90);
+pos81(tthin,-180); pos5(tmed,-270); pos6(tthick,-360); pos7(tmed,-450);
+pos8(tthick,-450); pos9(tthick,0); pos10(tthick,0);
+filldraw stroke z1e..z2e..z3e..z4e..z81e..z5e...{down}z6e...{left}z7e;
+x40=w-3.5u; y40=y7; pos40(tmed,-450); y41=.5bar_height; x41=w-u;
+pos41(tthick,-360); x43=.5[x7,x40]; y43=h-y41; z42=.5[z41,z43];
+pos42(.5(tthick+tthin),-315); pos43(tthin,-360);
+x44=.5[x43,x45]; top y44l=h; pos44(tmed,-450); x45=x43+4u; y45=y43;
+pos45(tthin,-540); x46=.5[x7,x43]; bot y46l=-d; pos46(tthinner,-585);
+filldraw stroke z7e--z40e{right}...{up}z41e...{z43-z41}z42e...{up}z43e
+ ...{right}z44e...z45e--z46e;
+penlabels(1,2,3,4,5,6,7,40,41,42,43,45,46);
+
+elseif callchar = "s":
+
+charspec("s",2.4x_height#,x_height#,0);
+x6=u; y6=.5h; x8=x9=.43w; x12=x13=.7w; x15=w-u;
+x7=x3=x1=.5[x6,x9]; x2=x1-1.5u; x4=x1+1.5u; y2=y4=.5[y1,y3];
+top y3l=bar_height; bot y1l=0; z5=z1; top y7l=top y11l=top y16r=h;
+y8=.65h; y9=0; bot y14r=0; x11=.5[x9,x14]; x14=.4[x13,x15]; x16=.65[x13,x15];
+y15=y6; y12=y8; y13=1.5u; z10=z8;
+pos1(tthin,90); pos2(tthin,0); pos3(tthin,-90); pos4(tmed,-180);
+pos5(tthin,-270); pos6(tthin,-360); pos7(1.2tthin,-450); pos8(tmed,-540);
+pos9(tmed,-540); pos10(tthin,0); pos11(tthin,-90); pos12(tmed,-180);
+pos13(tmed,-180); pos14(.8tmed,-90); pos15(tthin,0); pos16(tthinner,45);
+filldraw stroke z1e...{up}z2e...{right}z3e...{down}z4e...{left}z5e
+ ...{up}z6e...{right}z7e...{down}z8e--z9e;
+filldraw stroke z10e{up}...{right}z11e...{down}z12e--z13e...{right}z14e
+ ...{up}z15e...{left}z16e;
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16);
+
+elseif callchar = "j":
+%cmchar "grantha j";
+charspec("j",1.75x_height#,x_height#,.8x_height#);
+top y7r=y10l=h; y4=y8=y9=.2h; bot y15r=bot y19l=-d; y12=.9bar_height;
+y21=.25h; y13=-.2d; y14=-.6d; y16=-.8d; y17=y18=-.3d; y20=-.2d;
+y1=y3=.4h; y2=.7h; y11=.75h; y85=0;
+x14r=x1r=u; x11=x12l=w-u; x8=x9=x17=x18=.55[x1,x11]; x85=x8;
+x7=.6[x1,x8]; x10=.5[x9,x11]; x3=.6[x1,x8]; x2=x4=.5[x1,x3];
+x13=x2; x15=x7-.7u; x16=x17; x19=.5[x18,x11]; x20=.95x11; x21=.9x11;
+x77=x8; y77=.6h; z99=z77;
+pos77(tthick,-360); pos99(tthick,0);
+pos1(tthinner,180); pos2(tthin,90); pos3(tmed,0); pos4(tthin,-90);
+z55=z1; pos55(tthinner,-180);
+pos7(tthick,-270); pos8(tmed,-405);
+pos9(tmed,-45); pos10(tthin,-90); pos11(tthick,-180); pos12(tthick,-200);
+pos21(tthin,-240); pos13(tthinner,-240); pos14(tthin,-180);
+pos15(tthick,-90); pos16(tthick,-45); pos17(tthick,-45);
+pos18(tthick,-45); pos19(tthin,-270); pos20(tmed,225);
+pos85(tthin,-270);
+x65=x19; y65=y17; pos65(tthin,-90); x66=x12; y66=.5[y65,y19]; pos66(tmed,-180);
+z67=.5[z15,z65]; pos67(tthin,-315);
+filldraw stroke z1e..z2e{right}..z3e{down}..z4e{left}..z55e...{right}z7e...{down}z77e---z8e;
+filldraw stroke z9e---z99e{up}...z10e{right}...{down}z12e...{left}z85e{left}..z14e{down}...z15e{right}
+ ...{right}z65e...{down}z66e...{left}z19e...z67e;
+penlabels(1,2,3,4,55,7,8,9,10,11,12,21,13,14,15,65,66,19,67);
+
+elseif callchar="h":
+
+charspec("h",3x_height#,x_height#,desc_depth#);
+x1=x81=u; x6=.6[x1,x8]; x8=1.5x_height-u; x7=.4[x5,x6];
+x5=.5[x1,x6]; x3=.4[x1,x6]; x2=x4=.5[x1,x3];
+y2=.5h; y1=y3=y81=.5y2; bot y4r=bot y7r=bot y8r=0;
+top y5r=h; y6=.5h;
+pos1(tthinner,180); pos2(tthin,90); pos3(tthick,0); pos4(tthin,-90);
+pos81(tthin,-180); pos5(tmed,-270); pos6(tthick,-360); pos7(tthick,-450);
+pos8(tthick,-450);
+filldraw stroke z1e..z2e..z3e..z4e..z81e..z5e...{down}z6e...{left}z7e;
+filldraw stroke z7e--z8e;
+
+x101=x111=x8; x107=w-2u; x103=x105=.4[x101,x107]; x102=.5[x101,x103];
+x106=.5[x104,x107]; x108=.9[x101,x107];
+rt x112r=u; x109=x110=x112+.75u; x104r=x103l;
+top y102l=top y106l=h; y108=y101=y105=0; y109=-.4d; y110=-.8d; y112=-.6d;
+y111=y103=y104=.7h; y107=.4h; y131=y109+.2u; x131=.3[x108,x109]; pos131(tthinner,-270);
+pos101(tthin,0); pos111(tthin,0); pos102(tmed,-90); pos103(tthick,-180);
+pos104(tthinnest,0); pos105(tthick,-180); pos106(tthin,-90); pos107(tthick,-180);
+pos108(tthin,-245); pos109(tthin,-245); pos112(tthin,-180); pos110(tthin,-135);
+filldraw stroke z101e--z111e{up}...{right}z102e...{down}z103e--z105e;
+filldraw stroke z104e{up}...{right}z106e...{down}z107e..z108e...{left}z131e...z109e...{down}z112e..z110e;
+penlabels(101,102,103,104,105,106,107,108,109,110);
+
+
+
+
+fi
+
+enddef;
+
+def aipoints =
+x209=x204=-x_height+u; x201=x203=x205=x204+1.5u; x202=x201+1.5u; x207=0;
+y209=.9bar_height; y207=asc_height-y209;
+y208=.5[y209,y207]; x206=x208=x210=-.5x_height+.5u;
+y201=y205=y206-.5u; y204=y202=y201-1.5u; y203=y202-1.5u;
+if goleft:
+top y206l=asc_height; bot y210r=0;
+pos201(tthin,-90); pos202(tmed,-180); pos203(tthin,-270);
+pos204(tthin,-360); pos205(tthin,-450); pos206(tthin,-450);
+pos207(tthick,-540); pos208(tthin,-585); pos209(tthin,-540);
+pos210(tthin,-450);
+else:
+top y206r=asc_height; bot y210l=0;
+pos201(tthin,90); pos202(tmed,0); pos203(tthin,-90);
+pos204(tthin,-180); pos205(tthin,-270); pos206(tthin,-270);
+pos207(tthick,-360); pos208(tthin,-405); pos209(tthin,-360);
+pos210(tthin,-270);
+fi
+enddef;