%% %% This is file `imajl.mf', %% generated with the docstrip utility. %% %% The original source files were: %% %% inslrmaj.dtx (with options: `min') %% %% Copyright 1999 Peter R. Wilson %% %% This program is provided under the terms of the %% LaTeX Project Public License distributed from CTAN %% archives in directory macros/latex/base/lppl.txt. %% %% Author: Peter Wilson (CUA) %% now at: peter.r.wilson@boeing.com %% cmchar "IMAJ letter a"; beginchar("a", 2sb#+hstretch*(5/3x_height#), x_height#, 0); adjust_fit(0,0); pcshiftx := sb; numeric n[]; path pth[]; pickup quill; %% left bowl n1 := w-2pcshiftx; % actual letter width n2 := 7/10n1; % width of left bowl z1=(pcshiftx,0); obowl(1, n2, h); pth1:=obouter; pth2:=obinner; pth10:=obfirst; pth20:=obsecond; %% right bowl n3:=x1+n2-16/12thick; % leftmost point of "stem" n4:=2(n1-n3); % total width of right stem bowl z2=(n3,0); offsetbowl(2, n4, h, 6/12, 1/2); pth3:=obouter; pth4:=obinner; pth30:=obfirst; pth40:=obsecond; %% intersect left bowl with outer of right bowl z1tout = (subpath (0,1) of pth1) intersectionpoint (subpath (4,2) of pth3); z1tinn = (subpath (0,1) of pth2) intersectionpoint (subpath (4,2) of pth3); z1lout = (subpath (1,2) of pth1) intersectionpoint (subpath (4,2) of pth3); z1linn = (subpath (1,2) of pth2) intersectionpoint (subpath (4,2) of pth3); %%ductus:=true; if ductus: pickup stylus; % draw the control paths draw pth10; draw pth20; draw pth30; draw pth40; else: %% draw left bowl fill z1lout..z1minro{-pdir}..z1maxlo{ppdir}..z1minlo{pdir}..z1tout-- z1tinn..z1minli{-pdir}..z1maxli{-ppdir}..z1minri{pdir}..z1linn-- cycle; %% draw right stem/bowl fill z2minro{-pdir}..z2maxlo{ppdir}..{pdir}z2minlo-- z2minli{-pdir}..z2maxli{-ppdir}..{pdir}z2minri--cycle; fi ductus:=false; penlabels(1,2,3,4,5,6,7,8,100); endchar; % end "a" cmchar "IMAJ letter b"; beginchar("b", 2sb#+hstretch*(7/6x_height#), asc_height#, 0); adjust_fit(0,0); numeric n[]; pcshiftx := sb; pickup quill; n1:=w-2pcshiftx; % actual letter width n2:=h/ascratio; % top of bowl z1=(pcshiftx, -o); obowl(1, n1, n2+o); %% draw bowl fill obouter; unfill obinner; %% top of stem x2=x1wt+1/3n1; top y2=h; tangentpoint(2, subpath (3,4) of obsecond); %%ductus:=true; if ductus: pickup stylus; fi draw z2tan--z2; draw_triserif(2,trijut); ductus:=false; penlabels(1,2,3,4,5,6,7,8,9,100); endchar; % end "b" cmchar "IMAJ letter c"; beginchar("c", 2sb#+hstretch*(5/6x_height#), x_height#, 0); adjust_fit(0,0); numeric n[]; pcshiftx := sb; pickup quill; n1:=w-2pcshiftx; % actual letter width n2:=6/5w-2pcshiftx; % width of full bowl z1=(pcshiftx,0); obowl(1, n2, h); z3=(x1+n1, h); % top RH corner z4=(x1obc,1/6h); z5=(3/2w,y4); % for horizontal line %% top intersection points z10i = (z1obc--z3) intersectionpoint obinner; z10o = (z1obc--z3) intersectionpoint obouter; %% bottom intersection points z20i = (z4--z5) intersectionpoint obinner; z20o = (z4--z5) intersectionpoint obouter; %%ductus:=true; if ductus: pickup stylus; fi fill z20o..z1minro{-pdir}..z1maxlo{ppdir}..z1minlo{pdir}..z10o-- z10i..z1minli{-pdir}..z1maxli{-ppdir}..z1minri{pdir}..z20i-- cycle; ductus:=false; penlabels(1,2,3,4,5,6,16,17,18,100); endchar; % end "c" cmchar "IMAJ letter d"; beginchar("d", 2sb#+hstretch*(x_height#+1/2thick#), x_height#, 0); adjust_fit(0,0); numeric n[]; pcshiftx := sb; pickup quill; %% bowl n1 := w-2pcshiftx; % actual letter width n2 := n1-1/2thick; % width of bowl n3 := h; % top of bowl z1=(w-pcshiftx-n2, 0); obowl(1, n2, n3); %% top bar lft x3=pcshiftx; y3=h; z3i=(pcshiftx, y3-1/2thin); z3o=(x3i,y3i+thin); z2i=(x1nh,y3i); z2o=(x2i,y3o); %%ductus:=true; if ductus: pickup stylus; fi fill z1minlo{-pdir}..z1maxlo{-ppdir}..z1minro{pdir}..z1maxro{ppdir}..{left}z2o-- z3o--z3i-- z2i{right}..z1maxri{-ppdir}..z1minri{-pdir}..z1maxli{ppdir}..{pdir}z1minli-- cycle; draw_utriangle(3, thick); ductus:=false; penlabels(0,1,2,3,4,5,6,7,8,100); endchar; % end "d" cmchar "IMAJ letter e"; beginchar("e", sb#+hstretch*(x_height#+3/2thick#), x_height#, 0); adjust_fit(0,0); pcshiftx := sb; numeric n[]; pickup quill; n1 := w-pcshiftx; % actual letter width n2 := n1-3/2thick; % width of bowl z1=(pcshiftx,0); obowl(1, n2, h); %% for crossbar z2=(0,2/3h); rt x3=w; y3=y2; z3'=(x1obc,y2); z4 = (z2--z3') intersectionpoint subpath (3,4) of obsecond; z10tout = (z3'--z3) intersectionpoint subpath (0,3) of obouter; z10tinn = (z3'--z3) intersectionpoint subpath (0,3) of obinner; %% bottom cutoff z5=(x1obc,1/6h); z6=(w,y5); z20bout = (z5--z6) intersectionpoint subpath (0,3) of obouter; z20binn = (z5--z6) intersectionpoint subpath (0,3) of obinner; %%ductus:=true; if ductus: pickup stylus; fi fill z20bout..z1minro{-pdir}..z1maxlo{ppdir}..z1minlo{pdir}..z10tout-- z10tinn..z1minli{-pdir}..z1maxli{-ppdir}..z1minri{pdir}..z20binn-- cycle; draw z4--z3; % crossbar & decoration draw_triangle(3,thick); ductus:=false; penlabels(1,2,3,4,5,6,7,8,9,100); endchar; % end "e" cmchar "IMAJ letter f"; beginchar("f", 2sb#+hstretch*(x_height#+trijut#), (x_height#), desc_depth#); adjust_fit(0,0); pcshiftx := sb; pickup quill; %% stem lft x1=lft x2=pcshiftx+trijut; top y1=h; bot y2=-d; %% bottom bar z4=(rt x1,-thin); rt x6=w-pcshiftx; y6=y4+2thin; z5=1/2[z4,z6]; %% top bar z7=(rt x1, bot y1); %%ductus:=true; if ductus: pickup stylus; fi draw_tstem(1,2,srad); % stem draw_triserif(1,trijut); draw_clubbase(1, 2, 1/3, clubjut, clubjut); draw z4{dir(45)}..z5{right}..z6{dir(45)}; % bottom bar draw_flick(7, 2thin, thin, (w-pcshiftx-x7+1/2thick)); % top bar ductus:=false; penlabels(1,2,3,4,5,6,7,100); endchar; % end "f" cmchar "IMAJ letter g"; beginchar("g", 2sb#+hstretch*(5/3x_height#), x_height#, desc_depth#); adjust_fit(0,0); path pth[]; pair vec[]; pcshiftx := sb; pickup quill; %% top bar lft x1=pcshiftx; y1=h; rt x2=w-pcshiftx; y2=h; %% curves z3=2/5[z1,z2]; x5=4/5[x1,x2]; y5=-1/2d; x4=(x3-thick); y4=1/2[y5,y3]; x7=1/2[x1,x4]; y7=y5; x6=2/3[x7,x5]; bot y6=-d; pth1 := z3..z4{down}..z5; pth2 := z5--z6{left}..z7; %% diagonal to close bottom bowl vec1 := direction 2 of pth2; vec2 := (z5-z6); z7'=(lft x7, bot y7); z7''=(rt x7, y7); pickup thickstylus; lft x8 = x7'; bot y8 = y7'; z9' = z8 shifted 2vec2; z9 = (z8--z9') intersectionpoint pth1; z7''' = z7'' shifted 2vec1; z8' = whatever[z7'',z7'''] = whatever[z8,z9']; %%ductus:=true; if ductus: pickup stylus; draw z1--z2; % top bar draw pth1; draw pth2; % curves draw rt z8--z9; % diagonal else: pickup quill; draw z1--z2; % top bar draw_triangle(2,thick); draw_utriangle(1,thick); draw pth1; draw pth2; % curves pickup thickstylus; draw rt z8--z9; % diagonal fill z7''--z8'--z8--cycle; fi ductus:=false; penlabels(1,2,3,4,5,6,7,8,9,100); endchar; % end "g" cmchar "IMAJ letter h"; beginchar("h", 2sb#+hstretch*(x_height#+trijut#), asc_height#, 0); adjust_fit(0,0); pcshiftx := sb; pickup quill; numeric n[]; %% stem lft x1=lft x2=pcshiftx+trijut; top y1=h; bot y2=0; %% bowl rt x3 = lft x1; y3=0; n1 := w-pcshiftx-x3; % bowl width n2 := h/ascratio; % bowl height obowl(3, n1, n2); z1'=(rt x1, y1); z2'=(x1',y2); %% right hand side of stem z10tout = (z1'--z2') intersectionpoint subpath (3,4) of obouter; z10tinn = (z1'--z2') intersectionpoint subpath (3,4) of obinner; z10toth = (x1, y10tinn); % avoids 180 turn in path z6 = directionpoint down of obsecond; % top of right leg z6i=(lft x6, bot y6); z6o=(rt x6, bot y6); z8=(x6,0); %%ductus:=true; if ductus: pickup stylus; fi draw_tstem(1,2,srad); % stem draw_triserif(1,trijut); draw_clubbase(1, 2, 1/3, clubjut, clubjut); draw_tstem(6,8,srad); % right leg draw_clubbase(6, 8, 1/3, 0, 1/2clubjut); fill z6i{up}..z3minli{-pdir}..z10tinn--z10toth-- % top of bowl z10tout..z3minlo{pdir}..{down}z6o--cycle; ductus:=false; penlabels(1,2,3,4,5,6,100); endchar; % end "h" cmchar "IMAJ letter i"; beginchar("i", 2sb#+hstretch*(thick#+trijut#+jut#), x_height#, 0); adjust_fit(0,0); pcshiftx := sb; pickup quill; lft x1=lft x2=pcshiftx+trijut; top y1=h; bot y2=0; %%ductus:=true; draw_tstem(1,2,srad); draw_triserif(1,trijut); draw_clubbase(1, 2, 1/3, clubjut, clubjut); ductus:=false; penlabels(1,2,100); endchar; % end "i" cmchar "IMAJ letter j"; beginchar("j", sb#+hstretch*(2/3x_height#), x_height#, desc_depth#); adjust_fit(0,0); pcshiftx := sb; numeric n[]; pickup quill; %% stem rt x1 = w-pcshiftx; top y1 = h; x2=x1; y2=-1/2d; %% bottom hook lft x3 = 0; bot y3 = -d; %% triangle n1 := thick; % side length z6=(lft x3, bot y3); x7=x6+n1; z7=whatever[z6,z2]; z8=1/2[z6,z7]; z9=(x8, y8+0.9n1); %%ductus:=true; if ductus: pickup stylus; fi draw z1--z2; % stem draw_triserif(1,trijut); draw z2--z3; % hook fill z6--z7--z9--cycle; % triangle ductus:=false; penlabels(1,2,3,100); endchar; % end "j" cmchar "IMAJ letter k"; beginchar("k", 2sb#+hstretch*(x_height#+trijut#), x_height#, desc_depth#); adjust_fit(0,0); pcshiftx := sb; pickup quill; %% stem lft x1=lft x2=pcshiftx+trijut; top y1=h; bot y2=-d; %% top arm z3=(x1,5/6h); rt x5=w-pcshiftx; y5=2/3h; x4=1/2[x3,x5]; top y4=h; %% lower arm x7=x5; bot y7=0; %%ductus:=true; if ductus: pickup stylus; fi draw_tstem(1,2,srad); % stem draw_triserif(1,trijut); draw_clubbase(1,2,1/3, clubjut, clubjut); draw z3..z4{right}..z5; % upper arm draw z3..{right}z7; % lower arm ductus:=false; penlabels(1,2,3,4,5,100); endchar; % end "k" cmchar "IMAJ letter l"; beginchar("l", 2sb#+hstretch*(7/6x_height#), asc_height#, 0); adjust_fit(0,0); pcshiftx := sb; pickup quill; lft x2=pcshiftx; y2=1/5h; x1=x2+trijut; top y1=h; rt x4=w-pcshiftx; y4=1/5h; x3=1/2[x2,x4]; bot y3=0; %%ductus:=true; if ductus: pickup stylus; fi draw z1{down}..z2..z3{right}..z4; draw_triserif(1,trijut); ductus:=false; penlabels(1,2,3,4,100); endchar; % end "l" cmchar "IMAJ letter m"; beginchar("m", 2sb#+hstretch*(5/3x_height#+trijut#), x_height#, 0); adjust_fit(0,0); pcshiftx := sb; numeric n[]; path pth[]; pickup quill; %% left stem lft x1=pcshiftx+trijut; top y1=h; x2=x1; bot y2=0; z1'=(rt x1, y1+h); z2'=(rt x2, y2-h); %% right stem rt x5=w-pcshiftx; y5=y1; z6=(x5,0); %% middle stem z3=1/2[z1,z5]; z4=1/2[z2,z6]; z3'=(rt x3, y3); z4'=(rt x4, y4); n1 := x4-x2+3/2thick; % width of bowl n2 := 2/3h; % height of bowl %% left bowl z7=(rt x4 - n1, h-n2); obowl(7, n1, n2); pth1 := obouter; pth2 := obinner; pth3 := obsecond; z17tout = (z1'--z2') intersectionpoint subpath (3,4) of obouter; z17tinn = (z1'--z2') intersectionpoint subpath (3,4) of obinner; z17toth = (x2, y17tinn); %% right bowl z8=(rt x6 - n1, y7); obowl(8, n1, n2); pth5 := obouter; pth6 := obinner; pth7 := obsecond; z18tout = pth5 intersectionpoint subpath (0,1) of pth1; z18tinn = pth6 intersectionpoint subpath (0,1) of pth1; z13 = directionpoint down of pth3; z15 = directionpoint down of pth7; %%ductus:=true; if ductus: pickup stylus; fi draw_tstem(1,2,srad); % left half draw_triserif(1,trijut); draw_clubbase(1, 2, 1/3, clubjut, clubjut); fill z17tout..z7minlo{pdir}..{down}(rt x13, y13)-- (lft x13, y13){up}..z7minli{-pdir}..z17tinn--z17toth--cycle; draw_tstem(13,4,srad); % right half fill z18tout..z8minlo{pdir}..{down}(rt x15, y15)-- (lft x15, y15){up}..z8minli{-pdir}..z18tinn--cycle; draw_tstem(15,6,srad); ductus:=false; penlabels(1,2,3,4,5,6,7,8,9,14,100); endchar; % end "m" cmchar "IMAJ letter n"; beginchar("n", 2sb#+hstretch*(7/6x_height#+trijut#), x_height#, 1/2desc_depth#); adjust_fit(0,0); pcshiftx := sb; pickup quill; %% left stem lft x1=pcshiftx+trijut; top y1=h; x2=x1; bot y2=-d; %% right stem rt x3=w-pcshiftx; y3=y1; z4=(x3,0); %% bar z5=(x1,1/3h); z6=(x4,1/6h); %%ductus:=true; if ductus: pickup stylus; fi draw_tstem(1,2,srad); % left stem draw_triserif(1,trijut); draw_clubbase(1, 2, 1/3, clubjut, clubjut); draw_tstem(3,4,srad); % right stem draw_clubbase(3, 4, 1/3, clubjut, clubjut); draw z5--z6; % bar ductus:=false; penlabels(1,2,3,4,5,6,100); endchar; % end "n" cmchar "IMAJ letter o"; beginchar("o", 2sb#+hstretch*(7/6x_height#), x_height#, 0); adjust_fit(0,0); pcshiftx := sb; pickup quill; lft x1=pcshiftx; rt x3=w-pcshiftx; y1=y3=h/2; x2=x4=w/2; top y2=h+o; bot y4=-o; %%ductus:=true; if ductus: pickup stylus; fi %%%draw z1..z2..z3..z4..cycle; z5=(pcshiftx,-o); obowl(5, w-2pcshiftx, h+2o); fill obouter; unfill obinner; ductus:=false; penlabels(1,2,3,4,5,100); endchar; % end "o" cmchar "IMAJ letter p"; beginchar("p", 2sb#+hstretch*(8/6x_height#+trijut#), x_height#, desc_depth#); adjust_fit(0,0); pcshiftx := sb; numeric n[]; pickup quill; %% stem lft x1=lft x2=pcshiftx+trijut; top y1=1/3h; bot y2=-d; n1 := w - pcshiftx - lft x1; % width of bowl n2 := h+1/4d; % height of bowl z3=(lft x1, -1/4d); obowl(3, n1, n2); %%ductus:=true; if ductus: pickup stylus; fi draw_tstem(1,2,srad); % stem draw_triserif(1,trijut); draw_clubbase(1, 2, 1/3, clubjut, 0); fill lft z1{up}..z3minlo{pdir}..z3maxro{-ppdir}..{-pdir}z3minro-- z3minri{pdir}..z3maxri{ppdir}..z3minli{-pdir}..{down}rt z1-- cycle; ductus:=false; penlabels(1,2,3,4,5,6,7,8,100); endchar; % end "p" cmchar "IMAJ letter q"; beginchar("q", 2sb#+hstretch*(x_height#+1/2trijut#), x_height#, 1/2desc_depth#); adjust_fit(0,0); pcshiftx := sb; numeric n[]; pickup quill; %% right stem rt x1=w-pcshiftx-1/2trijut; top y1=h; x2=x1; bot y2=-d; z3=(pcshiftx,0); n1 := w; % width of bowl n2 := h; % height of bowl obowl(3, n1, n2); z10o = (rt z1--rt z2) intersectionpoint subpath (0,1) of obouter; z10i = (lft z1--lft z2) intersectionpoint subpath (0,1) of obinner; z20o = (rt z1--rt z2) intersectionpoint subpath (1,2) of obouter; z20i = (lft z1--lft z2) intersectionpoint subpath (1,2) of obinner; %%ductus:=true; if ductus: pickup stylus; fi draw_tstem(1,2,srad); % stem draw_triserif(1,trijut); draw_clubbase(1, 2, 1/3, 0, clubjut); fill z10o..z3minlo{-pdir}..z3maxlo{-ppdir}..z3minro{right}..z20o-- z20i..z3minri{-pdir}..z3maxli{ppdir}..z3minli{pdir}..z10i-- cycle; ductus:=false; penlabels(0,1,2,3,4,5,6,7,8,100); endchar; % end "q" cmchar "IMAJ letter r"; beginchar("r", sb#+hstretch*(11/6x_height#+trijut#), x_height#, 1/2desc_depth#); adjust_fit(0,0); pcshiftx := sb; numeric n[]; pickup quill; %% stem lft x1=lft x2=pcshiftx+trijut; top y1=h; bot y2=-d; n1 := w-pcshiftx; % width of bowl n2 := 5/6h; % height of bowl z3=(x1-1/2n1, h-n2); obowl(3, n1, n2); z10o=(x1,h); z10i=(x1, y10o-thin); z20o=(x1,y3); z20i=(x20o, y20o+thin); %% arm x4=x1; bot y4=y3; x5=x3maxro; top y5=0; %%rt x6=w; y6=y4; rt x6=w; y6=y2; %%ductus:=true; if ductus: pickup stylus; fi draw_tstem(1,2,srad); % stem draw_triserif(1,trijut); draw_clubbase(1, 2, 1/3, clubjut, 0); fill z10o{right}..z3maxro{-ppdir}..{left}z20o-- z20i{right}..z3maxri{ppdir}..{left}z10i--cycle; %%draw z4{right}..z5{right}..{right}z6; % arm draw z4{right}..{right}z6; ductus:=false; penlabels(1,2,3,4,5,6,7,8,9,100); endchar; % end "r" cmchar "IMAJ letter s"; beginchar("s", 2sb#+hstretch*(x_height#+trijut#), asc_height#, 0); adjust_fit(0,0); numeric n[]; pcshiftx := sb; pickup quill; %% stem lft x1=lft x2=pcshiftx+trijut; top y1=h/ascratio; bot y2=0; n1 := w; % width of bowl n2 := 2(h-y1); % height of bowl z3=(lft x1, y1-1/2n2); obowl(3, n1, n2); z4=(2w,2h); z10o = (z3--z4) intersectionpoint subpath (0,1) of obouter; z10i = (z3--z4) intersectionpoint subpath (0,1) of obinner; %%ductus:=true; if ductus: pickup stylus; fi draw_tstem(1,2,srad); % stem draw_triserif(1,trijut); draw_clubbase(1, 2, 1/3, clubjut, clubjut); fill rt z1{up}..z3minli{pdir}..z10i-- z10o..z3minlo{-pdir}..{down}lft z1--cycle; ductus:=false; penlabels(1,2,3,4,5,6,7,11,17,26,27,28,100); endchar; % end "s" cmchar "IMAJ letter t"; beginchar("t", 2sb#+hstretch*(4/3x_height#), x_height#, 0); adjust_fit(0,0); pcshiftx := sb; numeric n[]; pickup quill; %% bar lft x1 = pcshiftx; y1=h; rt x2=w-pcshiftx; y2=y1; n1 := w; % width of bowl n2 := h; % height of bowl z3=(pcshiftx+thick,0); obowl(3, n1, n2); z5=(x1+w, 0); z20o = (z1--z5) intersectionpoint subpath (1,2) of obouter; z20i = (z1--z5) intersectionpoint subpath (1,2) of obinner; z10o = (x3minlo, top y1); z10i = (x3minlo, bot y1); %%ductus:=true; if ductus: pickup stylus; fi draw z1--z2; % bar draw_utriangle(1, thick); draw_triangle(2, thick); fill z10o{left}..z3maxlo{-ppdir}..z3minro{pdir}..z20o-- z20i..z3minri{-pdir}..z3maxli{ppdir}..z10i{right}--cycle; ductus:=false; penlabels(1,2,3,4,5,6,11,12,100); endchar; % end "t" cmchar "IMAJ letter u"; beginchar("u", 2sb#+hstretch*(7/6x_height#+1/2trijut#), x_height#, 0); adjust_fit(0,0); pcshiftx := sb; numeric n[]; pickup quill; %% right stem rt x1 = rt x2 = w-pcshiftx-1/2trijut; y1=h; y2=0; z1'=(x1-1/2thick,2h); z2'=(x1',-h); %% bowl n1 := w; % width of bowl n2 := 4/3h; % height of bowl z3=(pcshiftx,0); obowl(3, n1, n2); z4=(pcshiftx,h); z5=(w,y4); z10o = (z4--z5) intersectionpoint subpath (3,4) of obouter; z10i = (z4--z5) intersectionpoint subpath (3,4) of obinner; z10'=1/2[z10o,z10i]; z10=(x10i,y1); z20o = (z1'--z2') intersectionpoint subpath (1,3) of obouter; z20i = (z1'--z2') intersectionpoint subpath (1,3) of obinner; %%ductus:=true; if ductus: pickup stylus; fi draw_tstem(1,2,srad); % stem draw_triserif(1,trijut); draw_clubbase(1, 2, 1/3, 0, clubjut); fill z10o..z3maxlo{-ppdir}..z3minro{pdir}..z20o-- z20i..z3minri{-pdir}..z3maxli{ppdir}..z10i--cycle; draw_triserif(10,trijut); % serif on bowl ductus:=false; penlabels(1,2,3,4,5,6,7,8,9,11,16,100); endchar; % end "u" cmchar "IMAJ letter v"; beginchar("v", 2sb#+hstretch*(x_height#+trijut#), x_height#, 0); adjust_fit(0,0); pcshiftx := sb; pickup quill; numeric midx; midx:= pcshiftx; lft x1=midx+trijut; top y1=h; x2=x1; y2=h/2; rt x4=w-pcshiftx; y4=y2; x3=0.5[x2,x4]; bot y3=0; x5=x4-trijut; y5=y1; %%ductus:=true; if ductus: pickup stylus; fi draw_triserif(1,trijut); %%draw_triserif(5,trijut); draw z1--z2{down}..z3{right}..z4{up}..z5; ductus:=false; penlabels(1,2,3,4,5,11,100); endchar; % end "v" cmchar "IMAJ letter w"; beginchar("w", 2sb#+hstretch*(5/3x_height#+trijut#), x_height#, 0); adjust_fit(0,0); pcshiftx := sb; pickup quill; numeric midx; midx:= w/2-trijut; lft x1=midx+trijut; top y1=h; x2=x1; y2=h/2; rt x4=w-pcshiftx; y4=y2; x3=0.5[x2,x4]; bot y3=0; x5=x4-trijut; y5=y1; lft x6=pcshiftx+trijut; top y6=h; %%lft x7=pcshiftx; y7=y2; x7=x6; y7=y2; x8=0.5[x7,x1]; y8=y3; x15=0.5[x8,x1]; y15=y8; z15'=z15 shifted (w*pdir); x2'=x2; y2'=y15; path p[]; p1=z1--z2'; p2=z15--z15'; z9= p2 intersectionpoint p1; pair vec[]; p3=z6..z7{down}..{right}z8; vec3 = direction 0 of p3; z16=z6 shifted vec3; %%ductus:=true; if ductus: pickup stylus; fi draw_triserif(1,trijut); % right half draw z1--z2{down}..z3{right}..z4{up}..z5; draw_triserif(6,trijut); % left half draw z6--z7{down}..z8{right}..z9; ductus:=false; penlabels(1,2,3,4,5,6,7,8,9,11,16,100); endchar; % end "w" cmchar "IMAJ letter x"; beginchar("x", 2sb#+hstretch*(16/6x_height#), x_height#, desc_depth#); adjust_fit(0,0); numeric n[]; pcshiftx := sb; pickup quill; n1 := w-2pcshiftx; % total width n2 := thick; % triangle side %% diag top left to bottom right lft x1=pcshiftx; bot y1=2/3h; x2=pcshiftx+1/7n1; top y2=h; x5=pcshiftx+11/14n1; bot y5=-1/4d; rt x6=pcshiftx+n1; top y6=1/6h; %% diag bottom left to top right x10=x1; bot y10=-d; x50=pcshiftx+9/14n1; top y50=h; rt x60=x5; bot y60=2/3h; x40=pcshiftx+8/14n1; y40=h; %% triangle z100=(lft x10, bot y10); x101=x100+n2; z101=whatever[z100,z40]; x102=x100; y102=1/2[y100,y101]+n2; %%ductus:=true; if ductus: pickup stylus; fi draw z1..z2{right}..z5{right}..z6; % top left to bottom right draw z10{z40-z10}..z50{right}..z60; % bottom left to top right fill z100--z101--z102--cycle; % triangle ductus:=false; penlabels(1,2,3,4,5,6,7,8,100); endchar; % end "x" cmchar "IMAJ letter y"; beginchar("y", 2sb#+hstretch*(x_height#), x_height#, desc_depth#); adjust_fit(0,0); pcshiftx := u; pickup quill; %% main stroke rt x1=w-pcshiftx; top y1=h; lft x3=pcshiftx; y3=1/2h; x4=x1; y4=0; x2=2/3[x3,x1]; bot y2=h; lft x5=1/2[x3,x4]; bot y5=-d; %% arm z101=1/2[z3,z4]; z103=(x1,y3); %%ductus:=true; if ductus: pickup stylus; fi draw z1..z2{left}..z3{down}..z4{down}..z5; % main stroke draw z101..z103{right}; % arm ductus:=false; penlabels(1,2,3,4,5,6,7,8,9,10,100); endchar; % end "y" cmchar "IMAJ letter z"; beginchar("z", 2sb#+hstretch*(9/6x_height#), x_height#, 0); adjust_fit(0,0); numeric n[]; pcshiftx := sb; pickup quill; %% top bar n10 := w-2pcshiftx; % letter width lft x1=pcshiftx; y1=h; rt x2=pcshiftx+2/3n10; y2=y1; %% diagonal x3=x1; bot y3=0; %% bowl n1 := 2/3n10; % width of bowl n2 := 5/6h; % height of bowl z4=(w-pcshiftx-n1, 0); obowl(4, n1, n2); z5'=(0,1/4n2); z6'=(x4obc,y5'); z20o = (z5'--z6') intersectionpoint obouter; z20i = (z5'--z6') intersectionpoint obinner; z7'=(0,2/3n2); z8'=(x6',y7'); z10o = whatever[lft z3, lft z2] = whatever[z7',z8']; z10i = whatever[rt z3, rt z2] = whatever[z7',z8']; %%ductus:=true; if ductus: pickup stylus; fi draw z1--z2; % top bar draw_utriangle(1,thick); draw z2--z3; % diagonal fill z20o..z4minro{pdir}..z4maxro{ppdir}..z4minlo{-pdir}..{z3-z2}z10o-- z10i{z2-z3}..z4minli{pdir}..z4maxri{-ppdir}..z4minri{-pdir}..z20i-- cycle; ductus:=false; penlabels(1,2,3,4,5,6,10o,10i,20o,20i,100); endchar; % end "z"