diff options
author | Karl Berry <karl@freefriends.org> | 2009-08-23 23:43:42 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2009-08-23 23:43:42 +0000 |
commit | 9c8a12c7a481e50886b68b686e6a7e1ae0d9e358 (patch) | |
tree | 8a9e7ad0eab763406a723a4464fee78e031a0079 /Master/texmf-dist/fonts/source/public/boisik/bskletters-i.mf | |
parent | 5233802c550f0cc1a8fb76ed9399eb1ce51e9600 (diff) |
boisik 0.5 (21aug09)
git-svn-id: svn://tug.org/texlive/trunk@14833 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/fonts/source/public/boisik/bskletters-i.mf')
-rw-r--r-- | Master/texmf-dist/fonts/source/public/boisik/bskletters-i.mf | 274 |
1 files changed, 255 insertions, 19 deletions
diff --git a/Master/texmf-dist/fonts/source/public/boisik/bskletters-i.mf b/Master/texmf-dist/fonts/source/public/boisik/bskletters-i.mf index 9e6b56d6e10..feefcf51b1c 100644 --- a/Master/texmf-dist/fonts/source/public/boisik/bskletters-i.mf +++ b/Master/texmf-dist/fonts/source/public/boisik/bskletters-i.mf @@ -1,5 +1,7 @@ %Boisik Latin letters in italic form +def mft = -.5bar_height#*slant enddef; + charscription(10.5u,x_height,0)( path p[]; numeric tim[]; oblu:=2oblu; pos1(stem,0); pos2(stem,0); @@ -27,6 +29,7 @@ italcorr x_height#*slant-1.25u#; adjust_fit(0,0); pickup tiny.nib; usechar; +math_fit(mft+.5u#,ic#+.5u#); endchar; iff known chars.latin_aacute: @@ -220,12 +223,13 @@ p1=z2l..z3l..z4l..{left}z5l..{down}z6l; (tim0,tim1)=p0 intersectiontimes p1; filldraw subpath(rundy(p0,tim0),infinity) of p0.._is---subpath(0,rundy(p1,tim1).zpet) of p1..cycle; infill z6r{down}..z3r..z4r..{left}z5r..cycle; +math_fit(-x_height#*slant,ic#); penlabels(1,2,3,4,5,6); endchar; iff known chars.sign_blank_b: bskchar "Blank italic b sign"; -beginchar(chars.sign_blank_b,11.25u#,asc_height#,0); uni "non"; +beginchar(chars.sign_blank_b,11.25u#,asc_height#,0); uni "0x2422"; italcorr bar_height#*slant; adjust_fit(serif_fit#,0); pickup tiny.nib; @@ -276,6 +280,7 @@ italcorr .5[bar_height#,x_height#]*slant; adjust_fit(0,0); pickup tiny.nib; usechar; +math_fit(mft,ic#); endchar; iff known chars.latin_ccaron: @@ -468,6 +473,7 @@ italcorr asc_height#*slant-.5u#; adjust_fit(0,0); pickup tiny.nib; usechar; +math_fit(mft+.5u#,ic#); endchar; iff known chars.latin_dcaron: @@ -622,6 +628,7 @@ italcorr .5[bar_height#,x_height#]*slant; adjust_fit(0,0); pickup tiny.nib; usechar; +math_fit(mft,ic#); endchar; iff known chars.latin_eacute: @@ -924,6 +931,7 @@ filldraw z4r{right}..z2r---obl(9l,2r,10l) ..z1l---obl(8r,1l,7r)---z7r..z7l ---obl(8l,7l,2l)---z2l..{left}z4l..z5l{up} ..z5'..z5r..cycle; +math_fit(desc_depth#*slant+2u#,x_height#*slant-1.5u#); penlabels(1,2,3,4,5,6,7,8,9,10); labels(5',6'); endchar; @@ -1145,7 +1153,7 @@ else: fi (tim0,tim1)=p0 intersectiontimes p1; (tim2,tim3)=p2 intersectiontimes p3; -{{ if dpi<=300: save rundy; def rundy(expr p,t)suffix modifier:= if pair t: xpart(t) else: t fi enddef; fi +{{ if testdpi: save rundy; def rundy(expr p,t)suffix modifier:= if pair t: xpart(t) else: t fi enddef; fi filldraw subpath(0,rundy(p0,tim0).zpet) of p0 ..subpath(rundy(p1,tim1),infinity) of p1..cycle; infill subpath(0,rundy(p2,(tim2,f_obl)).zpet) of p2 @@ -1248,6 +1256,7 @@ italcorr x_height#*slant; adjust_fit(0,0); pickup tiny.nib; usechar; +math_fit(.5u#,ic#-1.5u#); endchar; iff known chars.latin_gacute: @@ -1316,6 +1325,34 @@ x101=x4r; x102-x100=5u; breve(100,101,102); endchar; +iff known chars.latin_g_alt: +bskchar "The variant italic letter g"; +beginchar(chars.latin_g_alt,9u#,x_height#,desc_depth#); uni "non"; +italcorr x_height#*slant; +adjust_fit(0,0); +pickup tiny.nib; +path p[]; numeric tim[]; oblu:=2oblu; +pos1(stem,0); pos2(stem,0); +x1=x2; rt x2r=w-u; +top y1=bot y4l-hair; y2=-1/2d; +pos3(hair,-90); pos3'(stem,-150); pos4(hair,90); +pos5(curve,180); pos6(.5[hair,stem],-90); pos7(stem,0); +x7=x1; y7=.5bar_height; +top y4r=h+o; rt x4=lft x1l-hair; y5=bar_height; lft x5r=u; +bot y6r=-o; x6=x4-u; +x3=.5[x3',x1]; lft x3'r=u; bot y3r=-d-o; y3'l=.75[y3l,y2]; +z3''=z3'l+.5stem*unitvector(z3'-z3); +p0=z4r{left}..z5r..z6r..{up}z7r; +p1=z3r{right}..z2r---z1r..z1l---z2l..{left}z3l..z3'l{up}..z3''..z3'r..{right}z3r; +p2=z4l{left}..z5l..z6l..{up}z7l---z1l; +(tim0,tim1)=p0 intersectiontimes p1; +filldraw subpath(0,2) of p1..subpath(0,rundy(p0,tim0).zpet) of p0 + ..subpath(rundy(p1,tim1),infinity) of p1&cycle; +infill p2..cycle; +math_fit(mft+u#,ic#-u#); +penlabels(0,1,2,3,3',4,5,6,7); labels(3''); +endchar; + charscription(12u,asc_height,0)( numeric tim[]; oblu:=3oblu; path p[]; @@ -1342,6 +1379,7 @@ italcorr .5[bar_height#,x_height#]*slant-.75u#; adjust_fit(serif_fit#,0); pickup tiny.nib; usechar; +math_fit(-u#,ic#); endchar; iff known chars.latin_hcaron: @@ -1392,6 +1430,7 @@ p1=z2r---obl(8'l,2r,8l)---z8ll..z8r---obl(8'r,8r,1r)---z1r.._is oblu:=3oblu; filldraw z2r{up}..z3l..z4l---_ih---subpath(0,rundy(p0,tim0).zpet) of p0 ..subpath(rundy(p1,tim1),infinity) of p1..{up}cycle; +math_fit(-u#,ic#); penlabels(1,2,2',3,4,5,7,7',8,8'); labels(7',8'); endchar; @@ -1424,6 +1463,7 @@ p1=z2r---obl(8'l,2r,8l)---z8ll..z8r---obl(8'r,8r,1r).more---z1r.._is oblu:=3f_obl; filldraw z2r{up}..z3l..z4l---_ih---subpath(0,rundy(p0,tim0).zpet) of p0 ..subpath(rundy(p1,tim1),infinity) of p1..{up}cycle; +math_fit(-u#,ic#); penlabels(1,2,2',3,4,5,7,7',8,8'); labels(7',8'); endchar; @@ -1432,7 +1472,7 @@ numeric H; H=x_height; pos1(stem,0); pos2(stem,0); .5[x1,x2]=.5w; x1-x2=0; y1=H-.3bar_height; y2=.35bar_height; -ital_kooh(1,4); ital_hook(2,3); +ital_kooh(1,4).alt; ital_hook(2,3); filldraw _ih---_ik---cycle; penlabels(0,1,2); ); @@ -1444,6 +1484,7 @@ italcorr x_height#*slant-2u#; adjust_fit(0,0); pickup tiny.nib; usechar; +math_fit(-.7x_height#*slant+u#,ic#+.75u#); endchar; iff known chars.latin_i: @@ -1454,6 +1495,7 @@ adjust_fit(0,0); pickup tiny.nib; usechar; top z0=(x1l,h-.5dot_size); dot(0); +math_fit(-.7x_height#*slant+u#,ic#); endchar; iff known chars.latin_iacute: @@ -1597,7 +1639,7 @@ x1=x2; rt x1r=w-u; y1=H-.3bar_height; y2=-1/2d; if monospace: x5r=0; x4=.5[x5,x2]; x3r=u; else: x4=u; lft x5r=x4-x1; fi -ital_kooh(1,3); +ital_kooh(1,3).alt; bot y4r=-d-o; y5l=.75[y4l,y2]; z5'=z5l+.5stem*unitvector(z5-z4); @@ -1612,6 +1654,7 @@ italcorr x_height#*slant-.25u#; adjust_fit(0,0); pickup tiny.nib; usechar; +math_fit(desc_depth#*slant+u#,ic#-u#); endchar; iff known chars.latin_j: @@ -1622,6 +1665,7 @@ adjust_fit(0,0); pickup tiny.nib; usechar; top z0=(x1l,h-.5dot_size); dot(0); +math_fit(desc_depth#*slant+u#,ic#-1.5u#); endchar; iff known chars.latin_jcircumflex: @@ -1701,6 +1745,7 @@ italcorr x_height#*slant; adjust_fit(serif_fit#,0); pickup tiny.nib; usechar; +math_fit(-u#,ic#-.5u#); endchar; iff known chars.latin_kcaron: @@ -1768,10 +1813,11 @@ penlabels(1,2); iff known chars.latin_l: bskchar "The italic letter l"; beginchar(chars.latin_l,6.5u#, asc_height#, 0); uni "0x006C"; -italcorr asc_height#*slant-1.25u#; +italcorr asc_height#*slant-1.5u#; adjust_fit(serif_fit#,0); pickup tiny.nib; usechar; +math_fit(-1.5u#,ic#); endchar; iff known chars.latin_lacute: @@ -1856,7 +1902,7 @@ endchar; iff known chars.latin_m: bskchar "The italic letter m"; beginchar(chars.latin_m,16u#,x_height#,0); uni "0x006D"; -italcorr x_height#*slant-2u#; +italcorr 1/3x_height#*slant; adjust_fit(0,0); pickup tiny.nib; numeric tim[]; oblu:=3oblu; @@ -1872,7 +1918,7 @@ x4=x5=x5'=.5w; y4=.5[bar_height,x_height]; rt x9r=w-2.5u; x10=x9; y10=.35bar_height; y9=y4; y5=u; bot y5'=0; y8=y3; x8=.5[x4,x9]+.5u; top y3r=x_height+o; x3=.5[x2,x4]+.5u; -ital_kooh(1,7); ital_hook(10,11); +ital_kooh(1,7).alt; ital_hook(10,11); p0=z4r..z3r..{down}z2l; p1=z2r---z1r.._ik---z2l..z2'l..z2'r; p2=z9r..z8r..{down}z5l; @@ -1889,6 +1935,7 @@ filldraw z2r if monospace:---z1r else:{up}fi..z3l..z4l---z5l..z5'l..z5'r..z5r ..subpath(rundy(p1,tim1),infinity) of p1 ..{up}cycle; penlabels(1,2,2',3,4,5,5',8,9,10); +math_fit(0,ic#); endchar; charscription(11.5u,x_height,0)( @@ -1901,7 +1948,7 @@ x1=x2=x2'; x1l=2.5u; y1=H-.3bar_height; y2=u; bot y2'=0; x4=x5; rt x4r=w-2.5u; y4=.5[bar_height,x_height]; y5=.35bar_height; top y3r=x_height+o; x3=.5[x2,x4]+.5u; -ital_kooh(1,7); ital_hook(5,6); +ital_kooh(1,7).alt; ital_hook(5,6); p0=z4r..z3r..{down}z2l; p0:=z4r{up}..{direction 1 of p0}z3r..{down}z2l; p1=z2r---z1r.._ik---z2l..z2'l..z2'r; @@ -1914,10 +1961,11 @@ penlabels(1,2,2',3,4,5); iff known chars.latin_n: bskchar "The italic letter n"; beginchar(chars.latin_n,11.5u#, x_height#, 0); uni "0x006E"; -italcorr x_height#*slant-2u#; +italcorr 1/3x_height#*slant; adjust_fit(0,0); pickup tiny.nib; usechar; +math_fit(0,ic#); endchar; iff known chars.latin_ncaron: @@ -2030,6 +2078,7 @@ italcorr .5x_height#*slant; adjust_fit(0,0); pickup tiny.nib; usechar; +math_fit(mft,ic#); endchar; iff known chars.latin_oacute: @@ -2171,7 +2220,7 @@ italcorr (asc_height#-.75x_height#)*slant; adjust_fit(0,0); pickup tiny.nib; multiply(.85)(curve,hair,vair); -usechar shifted (-x1l,-y4l) scaled .5 shifted (HH*slant,HH); +usechar shifted (-x1l,-y2l) scaled .5 shifted (u+HH*slant,HH); endchar; charscription(10u,x_height,.85desc_depth)( @@ -2302,11 +2351,12 @@ filldraw subpath(rundy(p0,(tim0,2curve)),infinity) of p0 ..subpath(rundy(p2,tim3),rundy(p1,(tim1,1.5curve)).zpet) of p1..cycle; infill z6r{down}..z3r..z4r..{left}z5r..cycle; penlabels(1,1',2,3,4,5,6,7,8,11); +math_fit(0,ic#); endchar; iff known chars.latin_thorn: bskchar "The italic letter thorn"; -beginchar(chars.latin_p,12u#,asc_height#,desc_depth#); uni "0x0070"; +beginchar(chars.latin_p,12u#,asc_height#,desc_depth#); uni "0x00FE"; italcorr bar_height#*slant; adjust_fit(0,0); pickup tiny.nib; @@ -2370,6 +2420,7 @@ filldraw subpath(rundy(p0,tim0),rundy(p0,tim2).zpet) of p0 ..cycle; infill z7l{down}..z4l..z5l..{right}z6l..cycle; penlabels(1,2,4,5,6,7); labels(1'); +math_fit(mft,ic#-.5u#); endchar; charscription(9u if bold_face:+u fi,x_height, 0)( @@ -2401,6 +2452,7 @@ italcorr x_height#*slant-.25u#; adjust_fit(0,0); pickup tiny.nib; usechar; +math_fit(0,ic#-2u#); endchar; iff known chars.latin_racute: @@ -2484,6 +2536,7 @@ italcorr x_height#*slant-.25u#; adjust_fit(0,0); pickup tiny.nib; usechar; +math_fit(-.5u#,ic#-.5u#); endchar; iff known chars.latin_scaron: @@ -2652,6 +2705,7 @@ italcorr x_height#*slant; adjust_fit(0,0); pickup tiny.nib; usechar; +math_fit(-x_height#*slant,ic#-.5u#); endchar; iff known chars.latin_tcommabelow: @@ -2740,7 +2794,7 @@ x1=x2; lft x1l=2u; x3=x3'=x4; rt x3r=w-2u; y1=H-.3bar_height; y2=y4=.35bar_height; y3=h-u; top y3'=h; bot y6l=-o; x6=1/3[x2,x4]; x7r=x3l; y7=bar_height; -ital_kooh(1,0); ital_hook(4,5).alt; +ital_kooh(1,0).alt; ital_hook(4,5).alt; p0=reverse _ik---z2r..z6r..z7r---z3l..z3'l..z3'r..z3r---reverse _ih..{up}z7r; p1=z7l{down}..z6l..z2l---z1l; dl:=length p0; @@ -2759,6 +2813,7 @@ italcorr x_height#*slant-.75u#; adjust_fit(0,0); pickup tiny.nib; usechar; +math_fit(0,ic#); endchar; iff known chars.latin_uacute: @@ -2950,6 +3005,7 @@ filldraw subpath(rundy(p0,0),infinity) of p0 ..{z7r-z6}z7r..z7'..{right}z7l..{down}z6l ..subpath(0,rundy(p1,length p1).zpet) of p1..cycle; penlabels(1,1',2,3,4,5,6,7); labels(9'); +math_fit(-.25u#,ic#-.5u#); endchar; charscription(15u,x_height,0)( @@ -2996,6 +3052,7 @@ italcorr bar_height#*slant; adjust_fit(0,0); pickup tiny.nib; usechar; +math_fit(-.25u#,ic#-.5u#); endchar; iff known chars.latin_wcircumflex: @@ -3061,12 +3118,14 @@ rt x3r=w-3.5u; y3=y13=.3bar_height; x13r=w-x3r; rt x4l=w-.5u; top y4=y14=.4bar_height; bot y3'l=bot y13'l=-o; x3'=.45[x3,x4]; x13'=.45[x13,x14]; lft x14r=0; z4'=z4r+hair*up; z14'=z14r+hair*up; -p0=z2'..z2l{dir60}..z1'l..z1l---z3l..z3'l..z4l if dpi>300:..z4'&z4'.. else:&z4l{up}..{down}z4r& fi z4r..z3'r..z3r---z1r..z1'r..z2r+left{dir-100}..z2'+left; -p1=if dpi>300:z12'.. fi z12l..z11'l..z11l---z13l..z13'l..z14l if dpi>300:..z14'&z14'..else:&z14l{up}..{down}z14r& fi z14r..z13'r..z13r---z11r..z11'r..z12r if dpi>300:..z12'fi; +p0=z2'..z2l{dir60}..z1'l..z1l---z3l..z3'l..z4l if not testdpi:..z4'&z4'.. else:&z4l{up}..{down}z4r&fi z4r..z3'r..z3r---z1r..z1'r..z2r+left{dir-100}..z2'+left; +p1=if not testdpi:z12'{z12l-z12'}.. fi z12l..z11'l..z11l---z13l..z13'l..z14l %if not testdpi:..z14'&z14'..else: +&z14l{up}..{down}z14r&% fi +z14r..z13'r..z13r---z11r..z11'r..z12r if not testdpi:..z12' fi; (tim0,tim1-4)=p0 intersectiontimes subpath (4,infinity) of p1; (tim2,tim3)=subpath (0,4) of p1 intersectiontimes p0; (tim4-4,tim5)=subpath(4,infinity) of p0 intersectiontimes p1; -numeric node; node:=if dpi>300:9 else: 8 fi; +numeric node; node:=if not testdpi:9 else: 8 fi; (tim6-node,tim7-node)=subpath (node,infinity) of p1 intersectiontimes subpath(node,infinity) of p0; filldraw subpath(0,rundy(p0,tim0).zpet) of p0 ..reverse subpath(rundy(p1,tim2),rundy(p1,tim1).zpet) of p1 @@ -3076,6 +3135,7 @@ filldraw subpath(0,rundy(p0,tim0).zpet) of p0 ..subpath(rundy(p0,tim7),infinity) of p0 ..cycle; penlabels(1,1',2,3,3',4,11,11',12,13,13',14); labels(2',4',12',14'); +math_fit(.5u#,ic#-.5u#); endchar; charscription(10.5u,x_height,desc_depth)( @@ -3110,6 +3170,7 @@ italcorr bar_height#*slant; adjust_fit(0,0); pickup tiny.nib; usechar; +math_fit(desc_depth#*slant,ic#-.5u#); endchar; iff known chars.latin_ygrave: @@ -3202,6 +3263,7 @@ italcorr x_height#*slant; adjust_fit(0,0); pickup tiny.nib; usechar; +math_fit(0,ic#-.25u#); endchar; iff known chars.latin_zcaron: @@ -3746,16 +3808,16 @@ endchar; iff known chars.sign_query: bskchar "Italic question mark"; -beginchar(chars.sign_query, 9u#+punct_fit#, asc_height#, 0); uni "0x003F"; +beginchar(chars.sign_query, 9u#, asc_height#, 0); uni "0x003F"; italcorr .5[asc_height#,x_height#]*slant; -adjust_fit(0,0); +adjust_fit(punct_fit#,0); pickup tiny.nib; pos0(vair,-60); pos1(.45[hair,stem],180); pos2(hair,90); pos3(curve,0); pos4(curve,0); pos5(hair,90); pos6(vair,120); -lft x1r=u+punct_fit; y1=.5[h,x_height]+hair; top y2r=h+o; x2=.5(w-punct_fit)+punct_fit-hair; +lft x1r=u; y1=.5[h,x_height]+hair; top y2r=h+o; x2=.5w-hair; y0l=y1-2hair; x0=.35[x2,x1]; rt x3r=w-u; y3=.5[h,x_height]-hair; x4=x0; y4=bar_height; -x5=.5(w-punct_fit)+punct_fit; bot y5l=2dot_size; x6-x5=x0-x1; y6-y5=y1-y0; +x5=.5w; bot y5l=2dot_size; x6-x5=x0-x1; y6-y5=y1-y0; filldraw z6l{dir240}..z5l..z4l..z3l{up}..z2l{left}..z1l..{dir60}z0l ..{dir-120}z0r..z1r..{right}z2r..{down}z3r..z4r..z5r..{dir60}z6r ..cycle; @@ -3763,6 +3825,128 @@ bot z100=(x5,.5dot_size); dot(100); penlabels(0,1,2,3,4,5,6); endchar; +iff known chars.sign_query_query: +bskchar "Italic double question mark"; +beginchar(chars.sign_query_query, 15u#, asc_height#, 0); uni "0x2047"; +italcorr .5[asc_height#,x_height#]*slant; +adjust_fit(0,0); +pickup tiny.nib; +pos0(vair,-60); pos1(.45[hair,stem],180); pos2(hair,90); pos3(curve,0); +pos4(curve,0); pos5(hair,90); pos6(vair,120); +lft x1r=u; y1=.5[h,x_height]+hair; top y2r=h+o; x2=.5(w-7u)-hair; +y0l=y1-2hair; x0=.35[x2,x1]; +rt x3r=w-8u; y3=.5[h,x_height]-hair; x4=x0; y4=bar_height; +x5=.5(w-7u); bot y5l=2dot_size; x6-x5=x0-x1; y6-y5=y1-y0; +filldraw z6l{dir240}..z5l..z4l..z3l{up}..z2l{left}..z1l..{dir60}z0l + ..{dir-120}z0r..z1r..{right}z2r..{down}z3r..z4r..z5r..{dir60}z6r + ..cycle; +filldraw (z6l{dir240}..z5l..z4l..z3l{up}..z2l{left}..z1l..{dir60}z0l + ..{dir-120}z0r..z1r..{right}z2r..{down}z3r..z4r..z5r..{dir60}z6r + ..cycle) shifted (w-u-x3r,0); +bot z100=(x5,.5dot_size); z101=z100 shifted (w-u-x3r,0); +dot(100); dot(101); +penlabels(0,1,2,3,4,5,6); +endchar; + +iff known chars.sign_query_exclam: +bskchar "Italic question and exclamation mark"; +beginchar(chars.sign_query_exclam, 13u#, asc_height#, 0); uni "0x2048"; +italcorr .5[asc_height#,x_height#]*slant; +adjust_fit(0,0); +pickup tiny.nib; +pos0(vair,-60); pos1(.45[hair,stem],180); pos2(hair,90); pos3(curve,0); +pos4(curve,0); pos5(hair,90); pos6(vair,120); +lft x1r=u; y1=.5[h,x_height]+hair; top y2r=h+o; x2=.5(w-4u)-hair; +y0l=y1-2hair; x0=.35[x2,x1]; +rt x3r=w-5u; y3=.5[h,x_height]-hair; x4=x0; y4=bar_height; +x5=.5(w-4u); bot y5l=2dot_size; x6-x5=x0-x1; y6-y5=y1-y0; +filldraw z6l{dir240}..z5l..z4l..z3l{up}..z2l{left}..z1l..{dir60}z0l + ..{dir-120}z0r..z1r..{right}z2r..{down}z3r..z4r..z5r..{dir60}z6r + ..cycle; +bot z100=(x5,.5dot_size); dot(100); +bot z7=(w-2.5u,.5dot_size); dot(7); +penpos8(dot_size,0); pos9(hair,0); x8=x9=x7; +y8=h-.5stem; bot y9=dot_size+stem; y9r:=y9r+.5hair; +filldraw z8l---z9l..{.5[z8,z8r]-z9r}z9r..{z8r-z9r}z8r..cycle; +penlabels(0,1,2,3,4,5,6,8,9); +endchar; + +iff known chars.sign_exclam_query: +bskchar "Exclamation and italic question mark"; +beginchar(chars.sign_exclam_query, 13u#, asc_height#, 0); uni "0x2049"; +italcorr .5[asc_height#,x_height#]*slant; +adjust_fit(0,0); +pickup tiny.nib; +pos0(vair,-60); pos1(.45[hair,stem],180); pos2(hair,90); pos3(curve,0); +pos4(curve,0); pos5(hair,90); pos6(vair,120); +lft x1r=5u; y1=.5[h,x_height]+hair; top y2r=h+o; x2=4u+.5(w-4u)-hair; +y0l=y1-2hair; x0=.35[x2,x1]; +rt x3r=w-u; y3=.5[h,x_height]-hair; x4=x0; y4=bar_height; +x5=.5(w-4u)+4u; bot y5l=2dot_size; x6-x5=x0-x1; y6-y5=y1-y0; +filldraw z6l{dir240}..z5l..z4l..z3l{up}..z2l{left}..z1l..{dir60}z0l + ..{dir-120}z0r..z1r..{right}z2r..{down}z3r..z4r..z5r..{dir60}z6r + ..cycle; +bot z100=(x5,.5dot_size); dot(100); +bot z7=(2.5u,.5dot_size); dot(7); +penpos8(dot_size,0); pos9(hair,0); x8=x9=x7; +y8=h-.5stem; bot y9=dot_size+stem; y9r:=y9r+.5hair; +filldraw z8l---z9l..{.5[z8,z8r]-z9r}z9r..{z8r-z9r}z8r..cycle; +penlabels(0,1,2,3,4,5,6,8,9); +endchar; + +iff known chars.sign_interrobang: +bskchar "Italic interrobang mark"; +beginchar(chars.sign_interrobang, 9u#, asc_height#, 0); uni "0x203D"; +italcorr .5[asc_height#,x_height#]*slant; +adjust_fit(punct_fit#,0); +pickup tiny.nib; +path p[]; numeric tim[]; +pos0(vair,-60); pos1(.45[hair,stem],180); pos2(hair,90); pos3(curve,0); +pos4(curve,0); pos5(hair,90); pos6(vair,120); +penpos7(dot_size,0); pos8(hair,0); x7=x8=x5; +lft x1r=u; y1=.5[h,x_height]+hair; top y2r=h+o; x2=.5w-hair; +y0l=y1-2hair; x0=.35[x2,x1]; +rt x3r=w-u; y3=.5[h,x_height]-hair; x4=x0; y4=bar_height; +x5=.5w; bot y5l=2dot_size; x6-x5=x0-x1; y6-y5=y1-y0; +y7=y2+o; bot y8=dot_size+stem; y8r:=y8r+.5hair; y7l:=y2l-o; +p0:=z6l{dir240}..z5l..z4l..z3l{up}..z2l{left}..z1l..{dir60}z0l; +p1:=z0r{dir-120}..z1r..{right}z2r..{down}z3r..z4r..z5r..{dir60}z6r; +p2:=reverse (z7l---z8l..{.5[z7,z7r]-z8r}z8r..{z7r-z8r}z7r..cycle); +p3:=subpath(-1,length p2-1) of p2; +y7'=y2r+o; z7'=whatever[z8r,z7r]; +p4:=z8r--z7'; +p5:=z8l--z7l; +(tim0,tim1)=p0 intersectiontimes subpath(0,3) of p2; +(tim2,tim3-2)=p0 intersectiontimes subpath(2,4) of p2; +(tim4-2,tim5)=subpath(2,infinity) of p0 intersectiontimes subpath(0,2) of p3; +(tim6-3,tim7)=subpath(3,infinity) of p0 intersectiontimes subpath(0,1.75) of p3; +(tim8,tim9)=subpath(0,3) of p1 intersectiontimes p2; +(tim10-2,tim11)=subpath(2,3) of p1 intersectiontimes p2; +(tim12-3,tim13)=subpath(3,4) of p1 intersectiontimes p2; +(tim14-4,tim15)=subpath(4,6) of p1 intersectiontimes subpath(0,3) of p2; +(tim16-2,tim17)=subpath(2,infinity) of p0 intersectiontimes p4; +(tim18-3,tim19)=subpath(3,infinity) of p0 intersectiontimes p4; +(tim20-3,tim21)=subpath(3,4) of p1 intersectiontimes p5; +(tim22-4,tim23)=subpath(4,6) of p1 intersectiontimes p5; +filldraw subpath(0,rundy(p0,tim0).zpet) of p0 + ..{z8r-.5[z7,z7r]}z8r..z8l + ..subpath(rundy(p0,tim2),rundy(p0,tim4).zpet) of p0 + ..subpath(rundy(p3,tim5),rundy(p3,tim7).zpet) of p3 + ..subpath(rundy(p0,tim6),infinity) of p0 + ..subpath(0,rundy(p1,tim8).zpet) of p1 + ..subpath(rundy(p2,tim9),rundy(p2,tim11).zpet) of p2 + ..subpath(rundy(p1,tim10),rundy(p1,tim12).zpet) of p1 + ..subpath(rundy(p2,tim13),rundy(p2,tim15).zpet) of p2 + ..subpath(rundy(p1,tim14),infinity) of p1..cycle; +oblu:=1.5oblu; +infill subpath(rundy(p0,tim16),rundy(p0,tim18).zpet) of p0 + ..subpath(rundy(p4,tim19).zpet,rundy(p4,tim17)) of p4..cycle; +infill subpath(rundy(p1,tim20),rundy(p1,tim22).zpet) of p1 + ..subpath(rundy(p5,tim23),rundy(p5,tim21).zpet) of p5..cycle; +bot z100=(x5,.5dot_size); dot(100); +penlabels(0,1,2,3,4,5,6,7,8); +endchar; + iff known chars.sign_turned_query: bskchar "Turned italic question mark"; beginchar(chars.sign_turned_query, 9u#, asc_height#-desc_depth#, desc_depth#); uni "non"; @@ -3799,6 +3983,58 @@ top z100=(x5,h-.5dot_size); dot(100); penlabels(0,1,2,3,4,5,6); endchar; +iff known chars.sign_gnaborretni: +bskchar "Reversed italic interrobang mark"; +beginchar(chars.sign_gnaborretni, 9u#, asc_height#-desc_depth#, desc_depth#); uni "non"; +adjust_fit(0,0); +pickup tiny.nib; +path p[]; numeric tim[]; +pos0(vair,120); pos1(.45[hair,stem],0); pos2(hair,-90); pos3(curve,180); +pos4(curve,180); pos5(hair,-90); pos6(vair,-60); +penpos7(dot_size,180); pos8(hair,180); x7=x8=x5; +rt x1r=w-u; y1=-d+(asc_height-.5[asc_height,x_height])-hair; bot y2r=-d-o; x2=.5w+hair; +y0l=y1+2hair; x0=.35[x2,x1]; +lft x3r=u; y3=y1+2hair; x4=x0; y4=-d+(asc_height-bar_height); +x5=.5w; top y5l=h-2dot_size; x6-x5=x0-x1; y6-y5=y1-y0; +top z100=(x5,h-.5dot_size); dot(100); +y7=y2r-o; top y8=h-dot_size-stem; y8r:=y8r-.5hair; y7l:=y2l+o; +p0:=z6l{dir60}..z5l..z4l..z3l{down}..z2l{right}..z1l..{dir240}z0l; +p1:=z0r{dir60}..z1r..{left}z2r..{up}z3r..z4r..z5r..{dir240}z6r; +p2:=reverse (z7l---z8l..{.5[z7,z7r]-z8r}z8r..{z7r-z8r}z7r..cycle); +p3:=subpath(-1,length p2-1) of p2; +y7'=y2r-o; z7'=whatever[z8r,z7r]; +p4:=z8r--z7'; +p5:=z8l--z7l; +(tim0,tim1)=p0 intersectiontimes subpath(0,3) of p2; +(tim2,tim3-2)=p0 intersectiontimes subpath(2,4) of p2; +(tim4-2,tim5)=subpath(2,infinity) of p0 intersectiontimes subpath(0,2) of p3; +(tim6-3,tim7)=subpath(3,infinity) of p0 intersectiontimes subpath(0,1.75) of p3; +(tim8,tim9)=subpath(0,3) of p1 intersectiontimes p2; +(tim10-2,tim11)=subpath(2,3) of p1 intersectiontimes p2; +(tim12-3,tim13)=subpath(3,4) of p1 intersectiontimes p2; +(tim14-4,tim15)=subpath(4,6) of p1 intersectiontimes subpath(0,3) of p2; +(tim16-2,tim17)=subpath(2,infinity) of p0 intersectiontimes p4; +(tim18-3,tim19)=subpath(3,infinity) of p0 intersectiontimes p4; +(tim20-3,tim21)=subpath(3,4) of p1 intersectiontimes p5; +(tim22-4,tim23)=subpath(4,6) of p1 intersectiontimes p5; +filldraw subpath(0,rundy(p0,tim0).zpet) of p0 + ..{z8r-.5[z7,z7r]}z8r..z8l + ..subpath(rundy(p0,tim2),rundy(p0,tim4).zpet) of p0 + ..subpath(rundy(p3,tim5),rundy(p3,tim7).zpet) of p3 + ..subpath(rundy(p0,tim6),infinity) of p0 + ..subpath(0,rundy(p1,tim8).zpet) of p1 + ..subpath(rundy(p2,tim9),rundy(p2,tim11).zpet) of p2 + ..subpath(rundy(p1,tim10),rundy(p1,tim12).zpet) of p1 + ..subpath(rundy(p2,tim13),rundy(p2,tim15).zpet) of p2 + ..subpath(rundy(p1,tim14),infinity) of p1..cycle; +oblu:=1.5oblu; +infill subpath(rundy(p0,tim16),rundy(p0,tim18).zpet) of p0 + ..subpath(rundy(p4,tim19).zpet,rundy(p4,tim17)) of p4..cycle; +infill subpath(rundy(p1,tim20),rundy(p1,tim22).zpet) of p1 + ..subpath(rundy(p5,tim23),rundy(p5,tim21).zpet) of p5..cycle; +penlabels(0,1,2,3,4,5,6,7,8); +endchar; + iff known chars.sign_at: bskchar "Italic at sign"; beginchar(chars.sign_at, 16u#, asc_height#-.3desc_depth#, .6desc_depth#); uni "0x0040"; |