1%%%%%%%%%%%%%%%%%%%%%% xnshbase.mf %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2% base file for extended NASH
3% 13.07.98
4%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5% (c) Klaus Lagally
6%     Institut fuer Informatik
7%     Universitaet Stuttgart
8%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
9
10if unknown cmbase: else:
11errhelp "you are using 'cmbase'; rerun with base=&plain";
12errmessage "this font needs the 'plain' METAFONT base; run aborted";
13endinput
14fi;
15
16if unknown nashcode: input xarbsymb fi;
17
18xnshbase := 1;
19
20def font_setup =
21 define_pixels(dx, dy, dp, em, ex);
22 define_blacker_pixels(px, py, spx);
23 pa := pen_angle; pl := px++py; da := pa - angle(px,py);
24 pickup pensquare xscaled px yscaled py rotated pa;
25% pickup pencircle xscaled px yscaled py rotated pa;
26 nash_pen := savepen;
27 pickup pencircle scaled spx;
28 dia_pen := savepen;
29enddef;
30
31def makegrid(text r) =
32 for x=0 step dx until w+.5dx:
33  for y=0 step dy until h+.5dy:
34   fill unitsquare shifted (x,y);
35  endfor;
36  for y=dy step dy until d+.5dy:
37   fill unitsquare shifted (x,-y);
38  endfor;
39 endfor
40% for y=0,h,-d: r((0,y), (w,y)); endfor
41% for x=0,w: r((x,-d), (x,h)); endfor
42 maketicks(r);
43enddef;
44
45%%%%%%%%%%%%%% char-macros %%%%%%%%%%%%%%%%%
46
47def arabchar(expr code, form, uw, uh, ud) =
48  beginchar(if string code: code else: (code + form) fi,
49            uw*dx#, uh*dy#, (ud + dia_d)*dy#);
50  pickup nash_pen;
51  if .5w <> good.x .5w: change_width; fi
52  x.l = x.ll = 0; x.r = x.rr = w; x.m = 0.5w;
53  bot y.l = bot y.r = y.m = bot y.ll - .5ex = 0; y.rr = y.ll;
54enddef;
55
56def diachar(expr code, uw, uh) =
57  beginchar(code, uw*dx#, (uh+0.5)*dy#, 0.5*dy#);
58%  beginchar(code, uw*dx#, uh*dy#, 0);
59  pickup dia_pen;
60  if .5w <> good.x .5w: change_width; fi
61  lft x.l = 0; rt x.r = w;
62  y.l = 0.5dy; y.r = h - dy;
63%  bot y.l = 0; top y.r = h;
64enddef;
65
66def numchar(expr code) =
67  beginchar(code, 10*dx#, 10*dy#, 5*dy#);
68  pickup nash_pen;
69  if .5w <> good.x .5w: change_width; fi
70  lft x.l = 0; rt x.r = w;
71  bot y.l = -d; top y.r = h;
72%  bot y.l = 0; top y.r = h;
73enddef;
74
75extra_endchar :=
76extra_endchar & "penlabels(l,m,r,ll,rr,range 1 thru 20);";
77
78%%%%%%%%%%%%%% dot-macros %%%%%%%%%%%%%%%%%
79
80def put_dot (suffix $) =
81 z.$1 - z.$2 = (0, px - py) rotated pa;
82 z.$ = .5[z.$1, z.$2];
83 draw z.$1--z.$2;
84 labels($1,$2);
85enddef;
86
87def one_dot (expr n) =
88 x.dd := x.m; y.dd := y.m + round(n*dy);
89 put_dot(dd);
90enddef;
91
92def two_dots (expr n) =
93 x.dr - x.m = x.m - x.dl = round(dpx*dx);
94 y.dl = y.dr = y.m + round(n*dy);
95 put_dot(dl); put_dot(dr);
96enddef;
97
98def three_dots (expr n) =
99 two_dots(n); one_dot(n+dpy);
100enddef;
101
102def three_dots_low (expr n) =
103 two_dots(n); one_dot(n-dpy);
104enddef;
105
106%%%%%%%%%%%%%% stroke-macros %%%%%%%%%%%%%%%%%
107
108def bow (expr u, v, w) =
109 draw u..controls v and v..w;
110enddef;
111
112def l_att (suffix $) =
113 x.$l = x.$ - dx; y.$l = y.l;
114 bow(z.$, z.$l, z.l);
115enddef;
116
117def r_att (suffix $) =
118 x.$r = x.$ + dx; y.$r = y.r;
119 bow(z.$, z.$r, z.r);
120enddef;
121
122def r_att (suffix $) =
123 x.$r = x.$ + dx; y.$r = y.r;
124% bow(z.$, z.$r, z.r);
125draw z.${z.$r-z.$}..z.r{right};
126enddef;
127
128def serif (suffix $) =
129 z.$ = 0.2[z.$2,z.$1];
130% z.$2 - z.$1 = 3dy * (-4dx,11dy); % 110
131 y.$2 - y.$1 = 3dy;
132 z.$2 - z.$1 = whatever * (-4dx,11dy);
133 draw z.$1--z.$2;
134enddef;
135
136def s_bow (suffix $) =
137 x.$1 - .5dx = x.$;
138 x.$2 - 4dx = lft x.$3 = lft x.$4 + 1.5dx - pl = x.l;
139 y.$1 - dy = y.$3 = y.$4 - 2dy = y.$2 + 2dy = - 2dy;
140 draw z.$..z.$1{down}..z.$3{up}..z.$4;
141enddef;
142
143def p_loop (suffix $) =
144pickup dia_pen;
145x.$1 = x.$2 = x.$; y.$1 + spx + dy = y.$2; top y.$2 = y.$;
146draw z.$1..z.$2..cycle;
147pickup nash_pen;
148enddef;
149
150def r_con (suffix $) =
151 charic := (y.$-y.r)/vppp;
152enddef;
153
154%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
155
156%%%%%%%%%%%%%% bah-macros %%%%%%%%%%%%%%%%%
157
158def bah_bow =
159x1 = x4 + dx = x2 + 13.8dx; x2 = x3 = x.l + 0.6dx;
160%x1 = x4 = x2 + 13.8dx; x2 = x3 = x.l + 0.6dx;
161y4 - 5dy = y1 - 3dy = y2 - 2dy = y.m = y3 - 4dy;
162x5 = x.m; y5 = y.m - 0.5dy;
163enddef;
164
165def bah_end =
166bah_bow; draw z1..z5{left}..z2..z3; r_att(1);
167enddef;
168
169def bah_iso =
170bah_bow; draw z4..z1..z5{left}..z2..z3;
171enddef;
172
173def bah_mid =
174x6 = x.m; y6 = good.y (y.r + 2dy);
175l_att(6); r_att(6);
176enddef;
177
178def bah_beg =
179x.m := x.m + 0.5dx;
180x1 - dx = x2 = x.m; y1 = y.l; y2 = y.m + 4dy;
181bow(z2, z1, z.l);
182enddef;
183
184%%%%%%%%%%%%%% hhah-macros %%%%%%%%%%%%%%%%%
185
186def hhah_iso_bar =
187x1 - 2dx = x2 - 11dx = x.l; y1 - 4dy = y2 - 4dy = y.r;
188x3 = x2 - 2dx; y3 = y2; draw z1{(8dx,3dy)}..z2{right};
189enddef;
190
191def hhah_mid_bar =
192x1 - 2dx = x2 - 11dx = x.l; y1 - 4dy = y2 - 3dy = y.r;
193x3 = x2 - 2dx; y3 = y2;	draw z1{(8dx,3dy)}..z2{right};
194enddef;
195
196def hhah_beg_bar =
197x1 - 2dx = x2 - 11dx = x.l; y1 - 4dy = y2 - 2dy = y.r;
198x3 = x2 - 2dx; y3 = y2;	draw z1{(8dx,3dy)}..z2{right};
199enddef;
200
201def hhah_bow =
202lft x4 = x1 - 2dx = x5 - 8dx; rt x6 - 6dx = x5;
203y5 = y6 - dy = -10dy; y4 = 0.6[y2,y5];
204penpos4(pl,da); penpos5(pl,90); penpos6(0.3dy,90);
205draw z2{left}..z4{down};
206fill z4r{down}..z5r{right}..z6r--z6l--z5l{left}..z4l{up}--cycle;
207enddef;
208
209def hhah_iso =
210hhah_iso_bar; hhah_bow;
211enddef;
212
213def hhah_end =
214hhah_mid_bar; hhah_bow;
215draw z3{down}..z.r{right};
216enddef;
217
218def hhah_mid =
219hhah_mid_bar; draw z2{left}..z.l{left};
220draw z3{down}..z.r{right};
221enddef;
222
223def hhah_beg =
224hhah_beg_bar; draw z2{left}..z.l{left};
225enddef;
226
227%%%%%%%%%%%%%% dal-macros %%%%%%%%%%%%%%%%%
228
229def dal_iso =
230x1 = x2 + 2dx = x3 - 3dx = x.r - 4dx; x.m := x1;
231y1 - 6dy = y2 = y3 - dy = y.r;
232draw z1{(7dx,-4dy)}..z3..z2{left};
233enddef;
234
235def dal_end =
236x1 + dx = x3 - dx = x4 + 4dx = x.r - 3dx; lft x2 = x.r - 9dx;
237y1 = 8dy; y2 - dy = y3 = y4 = y.l; z5 = .3[z1,z3];
238draw z1--z5{z3-z1}..z.r{right};
239draw z5{z3 - z1}..z4{left}..z2;
240enddef;
241
242%%%%%%%%%%%%%% rah-macros %%%%%%%%%%%%%%%%%
243
244def rah_bow =
245x5 + dx = x2 + dx = x4 + 9dx = x3 - px + 6dx = x.r;
246y5 + 3dy = y2 - 0.5dy = y4 + 6dy = y3 + 6dy = y.r;
247penpos2(pl,da); penpos3(pl,90);
248penpos4(0.3dy,90); penpos5(0.4[py,px],0);
249enddef;
250
251def rah_iso =
252rah_bow;
253y1 - 2dy = y.r; x1 + 0.5dx = x2;
254penpos1(pl,da);
255fill z1l..z2l..z5l..z3r..z4r{left}--z4l--z3l..z5r..z2r..z1r--cycle;
256enddef;
257
258def rah_end =
259rah_bow;
260y1 - .5dy = y.r; x1 = x2; % = x.r - dx;
261fill z2l..z5l..z3r..z4r{left}--z4l--z3l..z5r..z2r--cycle;
262draw z1..z.r{right};
263enddef;
264
265%%%%%%%%%%%%%% sin-macros %%%%%%%%%%%%%%%%%
266
267def s_wave =
268z2 - z1 = z5 - z4 = 2(z3 - z2);
269x3 - x1 = 6(x3 - x5) = 6dx; x.m := x2;
270y4 = y5 - 0.5dy = y2 - 2.5dy = y.r;
271draw z3..z5..z2; draw z2..z4{left};
272enddef;
273
274def mid_wave =
275x3 = x.r - 3dx; s_wave;
276draw z4{left}..z1;
277enddef;
278
279def beg_wave =
280rt x3 = x.r; s_wave;
281draw z4{left}..z1;
282enddef;
283
284def sin_iso =
285beg_wave; s_bow(1);
286enddef;
287
288def sin_end =
289mid_wave;
290draw z3{down}..z.r{right}; s_bow(1); enddef;
291
292def sin_mid =
293mid_wave; draw z3{down}..z.r{right}; l_att(1);
294enddef;
295
296def sin_beg =
297beg_wave; l_att(1);
298enddef;
299
300%%%%%%%%%%%%%% sad-macros %%%%%%%%%%%%%%%%%
301
302def sad_bow =
303x2 - dx = x3 - 9dx; x2 + 3dx = x.m; x4 = x2 - 2dx;
304y2 = y3 - 3dy = y4 - 2dy = y.r;
305x8 = x2 + 3.5dx; y8 = y2 + 0.5dy;
306draw z2{(5dx,6dy)}..z3{(4dx,-7dy)}..tension 2..z2{left};
307enddef;
308
309def sad_iso =
310x.m := x.m + 4dx;
311sad_bow; draw z2{left}..z4; s_bow(4);
312enddef;
313
314def sad_beg =
315x.m := x.m + dx;
316sad_bow; draw z2{left}..z4; l_att(4);
317enddef;
318
319%%%%%%%%%%%%%% ttah-macros %%%%%%%%%%%%%%%%%
320
321def ttah_stroke =
322x5 = x7 - dx = x2; y5 = 12dy; y7 = y2 + dy;
323draw z5{down}..z7{down};
324serif(5);
325enddef;
326
327def ttah_tail =
328x2 - x6 = 5dx; y6 = top y2;
329penpos2(pl,da);
330fill z6--z2r--z2l{left}..z6..cycle;
331enddef;
332
333def ttah_iso =
334x.m := x.m + dx;
335sad_bow; ttah_stroke; ttah_tail;
336x.m := x.m + dx;
337enddef;
338
339def ttah_beg =
340sad_bow; ttah_stroke;
341x.m := x.m + dx;
342enddef;
343
344%%%%%%%%%%%%%% ain-macros %%%%%%%%%%%%%%%%%
345
346def ain_head =
347x.m := x.m - 2dx;
348lda := 0.5pa + angle(dx,dy);
349penpos7(pl,pa); penpos3(0.3dy,90);
350penpos2(px,lda); penpos8(px,lda);
351x7 + 2dx = x3 + dx = x2 + 6dx; x8 = x2 + 0.3dx;
352y7 = y2 - 3dy = y3 - 4dy; y8 = y2; z7 = 0.25[z1, z.l];
353fill z7l{z.l-z1}..z2l{up}--z2r--z8r{down}..z7r{z1-z.l}--cycle;
354fill z2r{(7dx,10dy)}..z3r--z3l..z8l{(-7dx,-10dy)}--z2l--cycle;
355enddef;
356
357def ain_bow =
358lft x4 = x.l = x5 - 8dx; rt x6 = x5 + 6dx;
359y5 = y6 - dy = -10dy; y4 = 0.6[y1,y5];
360penpos4(pl,da); penpos5(pl,90); penpos6(0.3dy,90);
361draw z1{z.l - z1}..z4{down};
362fill z4r{down}..z5r{right}..z6r--z6l--z5l{left}..z4l{up}--cycle;
363enddef;
364
365def ain_top =
366x2 = x1 = x.r - 3.5dx; y2 - 2dy = y1 = 2dy;
367%x2 = x1 = x.m + 0.5dx; y2 - 2dy = y1 = 2dy;
368x7 - x2 = x2 - x3 = 2dx; y7 = y3 = y2 - 0.5dy;
369x8 = x3 - dx; y8 = y3;
370draw z.r{left}..z1..z3; draw z8..z2..z7;
371enddef;
372
373def ain_iso =
374x1 = x.r - 3dx; y1 = 5dy;
375ain_head; ain_bow;
376enddef;
377
378def ain_end =
379ain_top; draw z7..z1{z.l - z1}; ain_bow;
380enddef;
381
382def ain_mid =
383ain_top; draw z7..z1..z.l{left};
384enddef;
385
386def ain_beg =
387rt x1 = x.r; y1 = 3dy;
388ain_head; draw z1..z7..z.l{left};
389enddef;
390
391%%%%%%%%%%%%%% fah-macros %%%%%%%%%%%%%%%%%
392
393def fah_iso =
394x.m := x.m + 4dx;
395x1 = x2  - 2dx = x3 + dx = x4 - 2.5dx; rt x4 = x.r;
396y1 = y4 = 6dy; y2 = y3 = 8dy;
397lft x5 = x.l; lft x6 = lft x5 - 1.5dx + pl; x7 = 6dx;
398y5 = 3dy; y6 = y5 + 3dy; bot y7 = -0.5dy;
399draw z2..z1..z3..z4{down}..z7..z5{up}..z6;
400enddef;
401
402def fah_end =
403x.m := x.m + 4dx;
404x1 = x2 + dx = x.r - 2dx; lft x3 = lft x4 + 1.5dx - pl = x5 - 5dx = x.l;
405y5 = dy; y1 = 6.5dy; y2 = 2dy; y3 = 4dy; y4 = 6dy;
406x2a + 3dx = x2b = x1; y2a = y2b = y.r + 2dy;
407draw z.r{left}..z2a..z1;
408draw z1..z2b..tension 1.5..z5..z3{up}..z4;
409enddef;
410
411def fah_mid =
412x1 = x2 + dx = x.r - 2dx; y1 - 5dy = y2 - 0.5dy = y.r;
413x2a + 3dx = x2b = x1; y2a = y2b = y.r + 2dy;
414draw z.r{left}..z2a..z1; draw z1..z2b..z.l{left};
415enddef;
416
417def fah_beg =
418x1 = x2  - 2dx = x3 + dx = x4 - 2.5dx; rt x4 = x.r;
419y1 = y4 = 4dy; y2 = y3 = 6dy;
420draw z2..z1..z3..z4{down}..z.l{left};
421enddef;
422
423%%%%%%%%%%%%%% qaf-macros %%%%%%%%%%%%%%%%%
424
425def qaf_iso =
426x.m := x.m + 2dx;
427x1 = x2  - 2dx = x3 + dx = x4 - 2.5dx; rt x4 = x.r;
428y1 = y4 = 4dy; y2 = y3 = 6dy;
429lft x5 = x.l; lft x6 = lft x5 - 1.5dx + pl; x7 = 5dx;
430y5 = dy; y6 = y5 + 3dy; y7 = -2dy;
431draw z2..z1..z3..z4{down}..z7..z5{up}..z6;
432enddef;
433
434def qaf_end =
435x.m := x.m + 2dx;
436x1 + 3dx = x2 + dx = x.r;
437lft x3 = lft x4 + 1.5dx - pl = x5 - 5dx = x.l;
438y1 - 4dy = y2 = y.r = y3 + 2dy = y4 = y5 + 5dy;
439draw z.r{left}..z2..z1{right}..z2..z5..z3{up}..z4;
440enddef;
441
442%%%%%%%%%%%%%% kaf-macros %%%%%%%%%%%%%%%%%
443
444def kaf_mark (suffix $) =
445x.$6 + dx = x.$7 + 2dx = x.$8 = x.$9 + 3dx = x.$;
446y.$6 - 3dy = y.$7 - dy = y.$8 = y.$9 + dy = y.$;
447pickup dia_pen;
448draw z.$6{(-6dx,-5dy)}..z.$7..z.$8..z.$9{left};
449pickup nash_pen;
450labels($6,$7,$9);
451enddef;
452
453def kaf_beg =
454x1 - 11dx = x2 = x4 - 10dx = x.l;
455%x1 = x.r - dx; x2 = x.l; x4 = x.r - 2dx;
456%y4 = y.r; y1 = 14dy; y2 = 9dy; z3 = .4[z2, z4];
457y4 = y.l = y1 - 13dy = y2 - 8dy; z3 = .4[z2, z4];
458bow (z1, z2, z3);
459draw z3{z3 - z2}..z.l{left};
460enddef;
461
462%%%%%%%%%%%%%% gaf-macros %%%%%%%%%%%%%%%%%
463
464def gaf_iso =
465x1 - 15dx = x2 - 6dx = x4 - 8dx = x6 - dx = x.l;
466y1 - 13dy = y2 - 9dy = y4 = y6 - dy = y.l;
467z3 = .7[z2, z4]; z5 = .5[z4, z.l];
468bow(z1, z2, z3); bow(z3, z4, z5); bow(z5, z.l, z6);
469enddef;
470
471def gaf_iso =
472x1 - 2dx = x2 + 7dx = x4 +5dx = x.r;
473y1 - 13dy = y2 - 9dy = y4 = y.r;
474z3 = .7[z2, z4]; bow(z1, z2, z3);
475x6 = x7 = x.l + 0.6dx; y6 = y7 - 2dy = y.l + dx;
476x5 = .5[x6, x4]; y5 = y.m; z13 = .5[z4, z3];
477draw z7 .. z6 .. z5{right} .. z13{z3-z13}--z3;
478enddef;
479
480def gaf_serif =
481x10 = x1; y10 = y1 + 2.5dy; x11 = x2 + 2dx; y11 = y2 + 3dy;
482pickup dia_pen;
483z12 = 0.1[z10,z11]; draw z12--z11;
484pickup nash_pen;
485enddef;
486
487%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
488
489def serpent =
490x1 = x3 = x.r - 3dx;
491x2 = x4 = x5 - dx = x.l + 4dx;
492y1 = y2 = y4 - 4dy = y5 - 8dy = y.l; y3 = y4;
493draw z5 .. z4{right} .. z3{right} .. z1{left} .. z2;
494enddef;
495
496%%%%%%%%%%%%%% nun-macros %%%%%%%%%%%%%%%%%
497
498def nun_iso =
499x1 + 2dx = rt x2 = x.r; x3 = x.m; lft x4 = lft x5 + 1.5dx - pl = x.l;
500y1 - 8dy = y2 - 3dy = y4 - 3dy = y5 - 5dy = y3 + dy = y.r - 3dy;
501draw z1..z2{down}..z3..z4{up}..z5;
502enddef;
503
504def nun_end =
505x1 = x.r - 2dx; y1 = y.r + dy;
506x2 - .5dx = x1; lft x3 = lft x4 + 1.5dx - pl = x.l;
507y2 - dy = y3 = y4 - 2dy = y.r - 3dy;
508x5 = x.m; y5 = y3 - 4dy;
509draw z1..z2{down}..z5..z3{up}..z4; r_att(1);
510enddef;
511
512%%%%%%%%%%%%%% waw-macros %%%%%%%%%%%%%%%%%
513
514def waw_bow =
515rah_bow;
516x1 + 2.5dx = x2; y1 - 3dy = y2;
517x6 = x1; y6 = y2;
518fill z2l..z5l..z3r..z4r{left}--z4l--z3l..z5r..z2r--cycle;
519enddef;
520
521def waw_bar =
522pickup dia_pen;
523x7 = .3[x4,x5]; y7 = y5; draw z7--z5;
524pickup nash_pen;
525enddef;
526
527%%%%%%%%%%%%%% hah-macros %%%%%%%%%%%%%%%%%
528
529def hah_iso =
530x1 = x.m - .5dx; rt x2 = x.r; lft x3 = x.l;
531y1 = 7dy; y2 = y3 = 3dy;
532%y1 = 6dy; y2 = y3 = 3dy;
533%y1 = 6dy; y2 = y3 = 2dy;
534draw z1..z2{down}..z3{up}..z1;
535enddef;
536
537def hah_end =
538x1 = x2 - dx = x4 + 2.5dx = x.m;
539y1 = 7dy; y2 = y.r; y4 = 4dy;
540z3 = .15[z1, z2]; z5 = .6[z1, z2];
541draw z1--z5{z5-z1}..z.r{right};
542draw z3{(-7dx,-4dy)}..z4{down}..z5{(7dx,4dy)};
543enddef;
544
545%%%%%%%%%%%%%% yah-macros %%%%%%%%%%%%%%%%%
546
547def yah_iso =
548x6 = x1 + 5dx = x2 + dx = x.r = x3 + 6dx;
549lft x4 = lft x5 + 1.5dx - pl = x.r - 13dx;
550%x6 = x1 + 5dx = x2 + dx = x.r = x3 + 6dx; lft x4 = x5 - dx = x.r - 13dx;
551y6 - 7dy = y1 - 3dy = y5 - 3dy = y2 - dy = y4 = y3 + 3dy = y.r - 2dy;
552draw z6{up}..tension 1.5..z1{down}..tension 1.5
553..z2{down}..tension 1.5..z3..z4{up}..z5;
554enddef;
555
556def yah_end =
557x1 + 4dx = rt x2 = x.r = x3 + 5dx;
558lft x4 = lft x5 + 1.5dx - pl = x.r - 11dx;
559y1 + 2dy = y2 + 4dy = y4 + 4dy = y3 + 7dy = y5 + dy = y.r;
560draw z.r{left}..z1{down}..tension 1.5
561..z2{down}..tension 1.5..z3..z4{up}..z5;
562enddef;
563
564def yah_p_iso =
565x10 = x4 - dx = x5; x3 = x6 = x7 + 2dx = x4 - 8dx; x8 = x4 + 4dx = x.r;
566y10 = y6 = y4 - 3dy = y5 - 5dy = y.r; y3 = y.rr; y7 = y8 = y.r - 3dy;
567z9 = 0.2[z10,z5]; z1 = 0.9[z6,z9]; z2 = 0.8[z3,z5];
568draw z8--z7{left}..z6..controls z1 and z2..z5..z4{(dx,-6dy)};
569enddef;
570
571def yah_p_end =
572x8 - 7dx = x7 + 3dx = x.r; y7 = y8 = y.r - 3dy;
573draw z8--z7{left}..z.r{(4dx,dy)};
574enddef;
575
576%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%%
577
578
579