% Date: 2010/08/10 beginchar(",",incrwidth(0,0),ht#,dp#); "No stitch"; purlbox; endchar; beginchar(".",incrwidth(0,0),ht#,dp#); "No stitch"; endchar; path purlbar; beginchar("-",wd#,ht#,dp#); "A knit stitch"; pickup symbol_pen; draw bot (w/2,h-topgap+o) -- top (w/2, -d+bottomgap-o); charbox; endchar; beginchar("=",wd#,ht#,dp#); "A purl stitch"; pickup symbol_pen; lft x1-rt x2 = 0.7standardheight; x1+x2=w; y1=y2=0.5[h,-d]; purlbar = z1--z2; draw purlbar; purlbox; endchar; code := 127; %Cables kright := incr code; Kright := incr code; pright := incr code; Pright := incr code; nright := incr code; eright := incr code; Nright := incr code; dright := incr code; oright := incr code; Dright := incr code; midhoriz := 20; righthoriz := 21; specialhoriz := ASCII"/"; cabletopleft := 5; cablebotleft := 6; cabletopright:= 7; cablebotright:= 8; cableleftslash := 9; cableleftbackslash := 10; cablerightslash := 11; cablerightbackslash := 12; leftslash := 13; rightslash := 14; beginchar("+",wd#,ht#,dp#); "Horizontal cable"; pickup symbol_pen; HCtop = (h-d)/2 + 0.2standardheight; HCbot = (h-d)/2 - 0.2standardheight; HCttop = bot (h-d)/2 + 0.5standardheight + o; HCbbot = top (h-d)/2 - 0.5standardheight - o; y.ul = y.ur = HCtop; y.ll = y.lr = HCbot; x.ul = x.ll = w-x.ur = w-x.lr; x.ur-x.ul = (ht+dp)-2smallgap; symbolpath0 := z.ul--z.ur; symbolpath1 := z.ll--z.lr; draw symbolpath0; draw symbolpath1; symbolpic0 := currentpicture; charbox; endchar; %beginchar(midhoriz,wd#,ht#,dp#); "Middle of a horizontal cable"; % currentpicture := symbolpic0; % charbox; endchar; %beginchar(righthoriz,wd#,ht#,dp#); "Right end of a horizontal cable"; % currentpicture := symbolpic0; % charbox; endchar; % %ligtable "+": specialhoriz: % "+" |=: righthoriz; %ligtable righthoriz: % "+" |=: righthoriz, % specialhoriz =:| midhoriz, % righthoriz =:| midhoriz; beginchar(specialhoriz,wd#,ht#,dp#); "Special horizontal cable"; pickup symbol_pen; specialspread = 1.5symbolwidth; y.ul = y.ur = HCtop; y.ll = y.lr = HCbot; x.ul = x.ll = w-x.ur = w-x.lr; x.ur-x.ul = (ht+dp)-2smallgap; draw rt (w/2+specialspread,y.ur)--z.ur; draw rt (w/2+specialspread,y.lr)--z.lr; draw lft (w/2-specialspread,y.ur)--z.ul; draw lft (w/2-specialspread,y.lr)--z.ll; draw (w/2+specialspread,HCttop)--(w/2+specialspread,HCbbot); draw (w/2-specialspread,HCttop)--(w/2-specialspread,HCbbot); charbox; endchar; beginchar("k",wd#,ht#,dp#); "Knit cable background"; pickup symbol_pen; draw top (w/2, botcableheight+cablevertgap)--bot(w/2,h-topgap); charbox; symbolpic0 := currentpicture; endchar; beginchar("c",wd#,ht#,dp#); "Knit cable background"; currentpicture := symbolpic0; endchar; beginchar(kright,wd#,ht#,dp#); "Knit cable background"; currentpicture := symbolpic0; endchar; beginchar("p",wd#,ht#,dp#); "Purl cable background"; pickup symbol_pen; draw purlbar; purlbox; symbolpic0 := currentpicture; endchar; beginchar("g",wd#,ht#,dp#); "Purl cable background"; currentpicture := symbolpic0; purlbox; endchar; beginchar(pright,wd#,ht#,dp#); "Purl cable background"; currentpicture := symbolpic0; purlbox; endchar; beginchar("n",incrwidth(0,1),ht#,dp#); "Back make one"; pickup symbol_pen; drawM(h-topgap, botcableheight+cablevertgap, 0.5wd,symbolwidth); charbox; symbolpic0:=currentpicture; endchar; beginchar(nright,incrwidth(0,1),ht#,dp#); "Back make one"; currentpicture := symbolpic0; endchar; beginchar("e",incrwidth(0,1),ht#,dp#); "Back purlwise make one"; pickup purl_symbol_pen; drawM(h-topgap, botcableheight+cablevertgap, 0.5wd,purl_symbolwidth); symbolpic0:=currentpicture; purlbox; endchar; beginchar(eright,incrwidth(0,1),ht#,dp#); "Back purlwise make one"; currentpicture := symbolpic0; purlbox; endchar; beginchar("N",incrwidth(0,1),ht#,dp#); "Front make one"; pickup symbol_pen; drawM(topcableheight-cablevertgap, -d+bottomgap, 0.5wd,symbolwidth); symbolpic0 := currentpicture; charbox; endchar; beginchar(Nright,incrwidth(0,1),ht#,dp#); "Front make one"; currentpicture := symbolpic0; charbox; endchar; beginchar("d",decrwidth(2,1),ht#,dp#); "Back decrease"; pickup symbol_pen; drawSSK(h-topgap, botcableheight+cablevertgap); charbox; symbolpic0:=currentpicture; endchar; beginchar(dright,decrwidth(2,1),ht#,dp#); "Back decrease"; fliphoriz(symbolpic0)(currentpicture); endchar; beginchar("o",decrwidth(2,1),ht#,dp#); "Back purl decrease"; pickup purl_symbol_pen; drawSSK(h-topgap, botcableheight+cablevertgap); symbolpic0:=currentpicture; purlbox; endchar; beginchar(oright,decrwidth(2,1),ht#,dp#); "Back purl decrease"; fliphoriz(symbolpic0)(currentpicture); purlbox; endchar; beginchar("D",decrwidth(2,1),ht#,dp#); "Front decrease"; pickup symbol_pen; drawSSK(topcableheight-cablevertgap,-d+bottomgap); charbox; symbolpic0:=currentpicture; endchar; beginchar(Dright,decrwidth(2,1),ht#,dp#); "Front decrease"; fliphoriz(symbolpic0)(currentpicture); endchar; beginchar("K",wd#,ht#,dp#); "Knit cable foreground"; pickup symbol_pen; draw top (w/2, -d+bottomgap)--bot(w/2,topcableheight-cablevertgap); charbox; symbolpic0 := currentpicture; endchar; beginchar("C",wd#,ht#,dp#); "Knit cable foreground"; currentpicture := symbolpic0; endchar; beginchar(Kright,wd#,ht#,dp#); "Knit cable foreground"; currentpicture := symbolpic0; endchar; beginchar("P",wd#,ht#,dp#); "Purl cable foreground"; pickup symbol_pen; draw purlbar; purlbox; symbolpic0 := currentpicture; endchar; beginchar("G",wd#,ht#,dp#); "Purl cable foreground"; currentpicture := symbolpic0; endchar; beginchar(Pright,wd#,ht#,dp#); "Purl cable foreground"; currentpicture := symbolpic0; purlbox; endchar; beginchar("_",0,ht#,dp#); "Cable bottom connector"; pickup symbol_pen; x2 - x1 = 2wd - cablebargap; 0.5[x1,x2]=0; y1=y2=botcableheight; draw z1--z2; endchar; beginchar("^",0,ht#,dp#); "Cable top connector"; pickup symbol_pen; x2 - x1 = 2wd - cablebargap; 0.5[x1,x2]=0; y1=y2=topcableheight; draw z1--z2; % pickup pensquare scaled symbolwidth; % draw rt (-wd/2,topcableheight) -- lft (wd/2,topcableheight); endchar; beginchar(rightslash,0,ht#,dp#); "Cable right slant connector"; pickup symbol_pen; x4 - x3 = cableslant; 0.5[x3,x4]=0; y3=botcableheight; y4=topcableheight; draw z3--z4; symbolpic0 := currentpicture; endchar; beginchar(leftslash,0,ht#,dp#); "Cable left slant connector"; pickup symbol_pen; x3 - x4 = cableslant; 0.5[x3,x4]=0; y3=botcableheight; y4=topcableheight; draw z3--z4; symbolpic0 := currentpicture; endchar; beginchar(cabletopleft,0,ht#,dp#); "Cable top left connector"; pickup pensquare scaled symbolwidth; rt x2 - lft x1 = wd+2cableextend; lft x1 = -wd + cablebargap/2; y1=y2=topcableheight; symbolpath0 := z1--z2; draw symbolpath0; symbolpic0 := currentpicture; endchar; beginchar(cabletopright,0,ht#,dp#); "Cable top right connector"; currentpicture := symbolpic0 reflectedabout ((0,0),(0,h)); endchar; beginchar(cablebotleft,0,ht#,dp#); "Cable bot left connector"; pickup pensquare scaled symbolwidth; y1=y2=botcableheight; x1 = xpart (point 0 of symbolpath0); x2 = xpart (point 1 of symbolpath0); draw z1--z2; symbolpic0 := currentpicture; endchar; beginchar(cablebotright,0,ht#,dp#); "Cable bot right connector"; currentpicture := symbolpic0 reflectedabout ((0,0),(0,h)); endchar; beginchar(cableleftslash,0,ht#,dp#); "Cable slash connector"; pickup pensquare scaled symbolwidth; y1 = y2 = botcableheight; rt x1 = - cableslant/2; lft x2 = -wd + cablebargap/2; draw z1--z2; symbolpic0 := currentpicture; endchar; beginchar(cablerightbackslash,0,ht#,dp#); "Cable slash connector"; currentpicture := symbolpic0 reflectedabout ((0,0),(0,h)); endchar; beginchar(cableleftbackslash,0,ht#,dp#); "Cable slash connector"; pickup pensquare scaled symbolwidth; y1 = y2 = topcableheight; rt x1 = - cableslant/2; lft x2 = -wd + cablebargap/2; draw z1--z2; symbolpic0 := currentpicture; endchar; beginchar(cablerightslash,0,ht#,dp#); "Cable slash connector"; currentpicture := symbolpic0 reflectedabout ((0,0),(0,h)); endchar; if fonttype = foretype: ligtable "k": "p": "c": "g": "o": "e": "n": "d": "k" |=:| cablebotleft, "c" |=:| cablebotleft, "n" |=:| cablebotleft, "d" |=:| cablebotleft, "p" |=:| cablebotleft, "g" |=:| cablebotleft, "e" |=:| cablebotleft, "o" |=:| cablebotleft, "K" |=:| rightslash, "P" |=:| rightslash, "N" |=:| rightslash, "D" |=:| rightslash, rightslash |=:| cableleftslash; ligtable "K": "P": "C": "G": "N": "D": "K" |=:| cabletopleft, "P" |=:| cabletopleft, "G" |=:| cabletopleft, "C" |=:| cabletopleft, "N" |=:| cabletopleft, "D" |=:| cabletopleft, "k" |=:| leftslash, "p" |=:| leftslash, "o" |=:| leftslash, "e" |=:| leftslash, "n" |=:| leftslash, "d" |=:| leftslash, leftslash |=:| cableleftbackslash; ligtable Kright: Pright: Nright: Dright: "K" |=: Kright, Kright |=:| cabletopright, "P" |=: Pright, Pright |=:| cabletopright, "N" |=: Nright, Nright |=:| cabletopright, "D" |=: Dright, Dright |=:| cabletopright; ligtable kright: pright: oright: eright: nright: dright: "k" |=: kright, kright |=:| cablebotright, "p" |=: pright, pright |=:| cablebotright, "o" |=: oright, oright |=:| cablebotright, "e" |=: eright, eright |=:| cablebotright, "n" |=: nright, nright |=:| cablebotright, "d" |=: dright, dright |=:| cablebotright; ligtable rightslash: "K" |=: Kright, Kright |=:| cablerightslash, "P" |=: Pright, Pright |=:| cablerightslash, "N" |=: Nright, Nright |=:| cablerightslash, "D" |=: Dright, Dright |=:| cablerightslash; ligtable leftslash: "k" |=: kright, "p" |=: pright, "o" |=: oright, "e" |=: eright, "n" |=: nright, "d" |=: dright, kright |=:| cablerightbackslash, nright |=:| cablerightbackslash, dright |=:| cablerightbackslash, pright |=:| cablerightbackslash, eright |=:| cablerightbackslash, oright |=:| cablerightbackslash; fi