diff options
Diffstat (limited to 'Master/texmf-dist/fonts/source/public/tapir/tap.mf')
-rw-r--r-- | Master/texmf-dist/fonts/source/public/tapir/tap.mf | 3866 |
1 files changed, 3866 insertions, 0 deletions
diff --git a/Master/texmf-dist/fonts/source/public/tapir/tap.mf b/Master/texmf-dist/fonts/source/public/tapir/tap.mf new file mode 100644 index 00000000000..1b3ef587045 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/tapir/tap.mf @@ -0,0 +1,3866 @@ +font_identifier:="Tapir"; +u#:=20/36pt#; +asc_height#:=12u#; +cap_height#:=14.5u#; +Asc_height#:=19u#; +desc_depth#:=4.5u#; +par_height#:=15.5u#; +par_depth#:=u#; +x_height#:=8u#; +stem#:=1.1u#; +cap_stem#:=1.1u#; +fig_width#:=.5cap_height#+2u#+.5stem#; +can:=15; +dot_height#:=1.5cap_stem#; +math_axis#:=5u#; +font_size 10pt#; +font_x_height 8u#; +font_normal_space 4u#; +font_normal_shrink 2u#; +font_normal_stretch 3u#; + +mode_setup; +define_pixels(u, cap_height, asc_height, Asc_height, x_height, desc_depth, stem, cap_stem, dot_height, math_axis, par_height, par_depth, fig_width); + +if unknown tapir_extended_charset: input tap-enc fi; + +let semi_ =;; let colon_ = :; let endchar_ = endchar; +def iff expr b = if b:let next_=use_it else:let next_=lose_it fi; next_ enddef; +def use_it = let : = restore_colon; enddef; +def restore_colon = let : = colon_; enddef; +def lose_it = let endchar=fi; inner cmchar; let ;=fix_ semi_ if false enddef; +def fix_=let ;=semi_; let endchar=endchar_; outer cmchar; enddef; +def always_iff = let : = endgroup; killboolean enddef; +def killboolean text t = use_it enddef; + +%%Taken from cmbase +vardef diag_ratio(expr a,b,y,c) = % assuming that $a>\vert b/y\vert$, +% compute the value $\alpha=(x\6{++}y)/y$ such that $ax+b\alpha=c$ + numeric aa_,bb_,cc_; bb_=b/y; cc_=c/y; aa_=a*a-bb_*bb_; + (a*(cc_++sqrt aa_)-bb_*cc_)/aa_ enddef; + + +def t_:=slanted slant enddef; +if unknown serifs: boolean serifs; serifs:=false; fi +if unknown italic: boolean italic; italic:=false; fi +if unknown slant: numeric slant ; slant:=0; fi +numeric c_height; +picture used_p; +boolean low, low.low, upper, upper.upper; +low=upper=false; low.low=upper.upper=true; +extra_beginchar:="pickup pencircle scaled .005pt;"; + +def savep:= used_p:=currentpicture; enddef; +def usep:= addto currentpicture also used_p; enddef; +def v_center(expr t):= .5t+math_axis#, .5t-math_axis# enddef; +def serif(suffix $)(expr tha, thb):= +if serifs: + penpos$sa(.45stem,thb); penpos$sb(.45stem,90+tha); + z$sa.l=z$; z$sb=z$sa+(1.5stem,0) rotated tha; + z$sc=z$+(.5stem,0) rotated tha; + filldraw z$sa.l---z$sb.l..z$sb.r---z$sa.r--cycle; + penlabels($sa,$sb); +fi +enddef; + +def hpos(suffix $)(expr wid, ang):= + x$r-x$l=wid; .5[x$r,x$l]=x$; y$=y$l=y$r-wid*sind(ang)*aspect_ratio; +enddef; + +def vpos(suffix $)(expr wid, ang):= + y$r-y$l=wid; .5[y$r,y$l]=y$; x$=x$l=x$r-wid*sind(ang)*aspect_ratio; +enddef; + +def kruh(suffix $)(expr rad):= +.5[z$a,z$c]=.5[z$b,z$d]=z$; x$a-x$c=y$b-y$d=rad; x$b=x$d; y$a=y$c; +penpos$a(stem,0); penpos$b(stem,90); penpos$c(stem,180); penpos$d(stem,270); +filldraw z$a.r{up}..{left}z$b.r..{down}z$c.r..{right}z$d.r..{up}z$a.r--z$a.l{down}..{left}z$d.l..{up}z$c.l..{right}z$b.l..{down}z$a.l--cycle; +penlabels($,$a,$b,$c,$d); +enddef; + +def italic_a(suffix $)(expr rad):= +penpos10(stem,0); penpos11(stem,90); penpos12(stem,180); penpos13(stem,-90); +penpos14(stem,0); +.5[z10,z12]=.5[z11,z13]; .5[y13,y11]=y$; y10=y12; x11=x13; y11-y13=x10-x12; x10-x12=rad; +x11=x$; %.5[x12,x14]=x$; +y14=y10; x14=x11+2stem; z15r=(x14r,y11r); z15l=(x14l,y11l); +filldraw z14r--z15r---z11r..{down}z12r..{right}z13r..{up}z14r--z14l{down}..{left}z13l..{up}z12l..{right}z11l +---z15l--z14l--cycle; +enddef; + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Accent macros +def acute(suffix $)suffix modifier:= +numeric acutewid; +y$'=y$=y$''+3u; .5[x$',x$'']=x$; x$'-x$''=2.5u; +acutewid:=(if low.modifier: cap_stem else: stem fi)/cosd(90+angle(z$''-z$')); +penpos$'(acutewid,0); penpos$''(.75acutewid,0); +filldraw (z$'l--z$'r--z$''r--z$''l--cycle) if low.modifier: shifted -z$ yscaled .75 shifted z$ fi; +enddef; + +def grave(suffix $)suffix modifier:= +numeric acutewid; +y$'=y$=y$''+3u; .5[x$',x$'']=x$; x$'-x$''=-2.5u; +acutewid:=(if low.modifier: cap_stem else: stem fi)/cosd(90+angle(z$''-z$')); +penpos$'(acutewid,0); penpos$''(.75acutewid,0); +filldraw (z$'l--z$'r--z$''r--z$''l--cycle) if low.modifier: shifted -z$ yscaled .75 shifted z$ fi; +enddef; + +def dot(suffix $):= +.5[y$c,y$d]=y$b=y$a=y$; .5[x$a,x$b]=x$c=x$d=x$; x$a-x$b=dot_height=.8(y$c-y$d); +filldraw z$a--z$c--z$b--z$d--cycle; +enddef; + +def acc_dot(suffix $):= +.5[y$c,y$d]=y$b=y$a=y$; .5[x$a,x$b]=x$c=x$d=x$; x$a-x$b=1.2stem=.75(y$c-y$d); +filldraw z$a--z$c--z$b--z$d--cycle; +enddef; + +def caron(suffix $)suffix modifier:= +numeric carontheta, caron_stem; +caron_stem:=if low.modifier: cap_stem else: stem fi; +hpos($a)(caron_stem,can); hpos($b)(caron_stem,-can); +y$a.r=y$=y$b.l; +x$c.r=.5[x$a.r,x$b.l]=x$; y$-y$c.r=3u; x$b.l-x$a.r=2.5u; +carontheta:=90+angle(z$a.l-z$c.r); +penpos$c(if low.modifier: 0.8\\fi caron_stem/sind(carontheta),90); +filldraw (z$a.l--z$c.r--z$b.r--z$b.l--z$c.l--z$a.r--cycle);% if low.modifier: shifted -z$ scaled .8 shifted z$ fi; +penlabels($c); +enddef; + +def ring(suffix $)suffix modifier:= +numeric ring_stem; +ring_stem:=.7* if low.modifier: cap_stem else: stem fi; +.5[z$a,z$c]=.5[z$d,z$b]; .5[x$a,x$c]=x$; x$a-x$c=y$b-y$d=2.5u; y$b=y$-.5ring_stem; y$a=y$c; x$b=x$d; +penpos$a(ring_stem,0);penpos$b(ring_stem,90);penpos$c(ring_stem,180);penpos$d(ring_stem,270); +filldraw z$a.r{up}..z$b.r{left}..z$c.r{down}..{right}z$d.r..{up}z$a.r--z$a.l{down}..z$d.l{left}..{up}z$c.l..{right}z$b.l..{down}z$a.l--cycle; +penlabels($a,$b,$c,$d); +enddef; + +def ac_caron(suffix $)suffix modifier:= +numeric ac_carwid; +y$'=y$=y$''+2u; .5[x$',x$'']=x$; x$'-x$''=.8u; +ac_carwid:=(if low.modifier: cap_stem else: stem fi)/cosd(90+angle(z$''-z$')); +penpos$'(ac_carwid,0); penpos$''(.75ac_carwid,0); +filldraw (z$'l--z$'r--z$''r--z$''l--cycle) if low.modifier: shifted -z$ yscaled .75 shifted z$ fi; +enddef; + +def umlaut(suffix $):= +.5[x$a,x$b]=x$; y$a=y$b=y$; x$b-x$a=2.5u; +acc_dot($a); acc_dot($b); +enddef; + +def H_acute(suffix $)suffix modifier:= +numeric H_acutewid; +y$'=y$=y$''+3u; .5[x$',x$'']=x$; x$'-x$''=1.4u; +H_acutewid:=(if low.modifier: cap_stem else: stem fi)/cosd(90+angle(z$''-z$')); +penpos$'(H_acutewid,0); penpos$''(.75H_acutewid,0); +filldraw (z$'l--z$'r--z$''r--z$''l--cycle) if low.modifier: shifted -z$ yscaled .75 shifted z$ fi; +enddef; + +def H_umlaut(suffix $)suffix modifier:= +.5[x$a,x$b]=x$; y$a=y$b=y$; x$b-x$a=2u; +H_acute($a).modifier; H_acute($b).modifier; +enddef; + +def quota(suffix $)suffix modifier:= +y$'=y$=y$''+3.5u; .5[x$',x$'']=x$; x$'=x$''; +hpos($')(if not upper.modifier: 1.5\\fi stem,if not upper.modifier: 0\\fi can); hpos($'')(if upper.modifier: 1.5\\fi stem, if upper.modifier:0\\fi can); +filldraw z$'l--z$'r--z$''r--z$''l--cycle; +enddef; + +def circumflex(suffix $)suffix modifier:= +numeric circtheta, circ_stem; +circ_stem:=if low.modifier: cap_stem else: stem fi; +hpos($a)(circ_stem,-can); hpos($b)(circ_stem,can); +y$a.r=y$b.l; y$c.r=y$; +x$c.r=.5[x$a.r,x$b.l]=x$; y$-y$a.r=3u; x$b.l-x$a.r=2.5u; +circtheta:=180+angle(z$c.r-z$a.r); +penpos$c(1.5*if low.modifier: 0.8\\fi circ_stem/sind(circtheta),270); +filldraw (z$a.l--z$c.r--z$b.r--z$b.l--z$c.l--z$a.r--cycle); +penlabels($c); +enddef; + +def cedilla(suffix $):= +vpos($')(.75stem,can); vpos($'')(.75stem,can); vpos($'''')(.5stem,can); penpos$'''(.5stem,90); +.5[x$',x$'']=x$; x$''-x$'=3u; y$'r=y$''r=y$; y$'''l=y$''''l=-d; x$'''=x$; x$''''=x$'; +filldraw z$'l+u*right--z$''l{down}..{left}z$'''r..z$''''r--z$''''l..z$'''l{right}..z$''r---z$'r+u*right--cycle; +penlabels($',$'',$''',$''''); +enddef; + +def breve(suffix $)suffix modifier:= +hpos($')(stem,can); hpos($''')(stem,can); penpos$''(stem,90); +.5[x$'l,x$'''r]=x$; x$'''r-x$'l=5u; x$''=x$; y$'r=y$'''r=y$; y$''=y$-if low.modifier: .35 else: .5fi\\(x$'''-x$'); +filldraw z$'l{down}..{right}z$''l..{up}z$'''r--z$'''l{down}..{left}z$''r..{up}z$'r--cycle; +penlabels($',$'',$''',$); +enddef; + +def macron(suffix $):= +vpos($')(stem,can); penpos$''(stem,90); +y$'r=y$''r=y$; x$''-x$'l=4u; .5[x$'l,x$'']=x$; +filldraw z$'l--z$''l--z$''r--z$'r--cycle; +enddef; + +def tilde(suffix $):= +hpos($')(stem,-can); hpos($'''')(stem,-can); penpos$''(stem,90); penpos$'''(stem,90); +x$'l-x$''''r=-7u; .5[x$'l,x$''''r]=x$; x$''=.5[x$',x$]; x$'''=.5[x$'''',x$]; +y$''r=y$; y$''-y$'=1.5u; y$''-y$'=y$''''-y$'''=.75(y$''-y$'''); +penpos$''a(stem, angle(z$''-z$''')-90); z$''a=.5[z$'',z$''']; +filldraw z$'r{up}..z$''l..z$''a.l..z$'''l ..{up}z$''''r--z$''''l{down}..z$'''r..z$''a.r..z$''r..{down}z$'l--cycle; +penlabels($',$'',$''a,$''',$'''',$); +enddef; + +def acc_tilde(suffix $)suffix modifier:= +hpos($')(.9stem,-can); hpos($'''')(.9stem,-can); penpos$''(.9stem,90); penpos$'''(.9stem,90); +x$'l-x$''''r=-7u; .5[x$'l,x$''''r]=x$; x$''=.5[x$',x$]; x$'''=.5[x$'''',x$]; +y$''r=y$; y$''-y$'=if not low.modifier: 1.5fi\\u; y$''-y$'=y$''''-y$'''=.75(y$''-y$'''); +penpos$''a(stem, angle(z$''-z$''')-90); z$''a=.5[z$'',z$''']; +filldraw z$'r{up}..z$''l..z$''a.l..z$'''l ..{up}z$''''r--z$''''l{down}..z$'''r..z$''a.r..z$''r..{down}z$'l--cycle; +penlabels($',$'',$''a,$''',$'''',$); +enddef; + +def ogonek(suffix $):= +.5[z$',z$''']=.5[z$'',z$'''']; y$''''=y$-desc_depth+.5stem; .5[x$',x$''']=x$; x$'''-x$'=-3.5u; +y$'=y$'''; x$''=x$''''; y$''=y$-.5stem; +penpos$'(stem,0); penpos$''(stem,90); penpos$'''(stem,180); penpos$''''(stem,-90); +p:= z$'{up}..{left}z$''..{down}z$'''..{right}z$''''..cycle; +vpos($''''')(stem,-can); z$'''''=point 3.5 of p; penpos$''''''(stem,135); +filldraw z$'''l{down}..z$''''l..{direction 3.5 of p}z$'''''r--z$'''''l{dir (angle(direction 3.5 of p)-180)}..z$''''r..{up}z$'''r..z$''r+stem*up--z$''l+stem*up..cycle; +penlabels($',$'',$''',$''''); +enddef; + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Lowercase +if italic: +beginchar("a", x_height#+stem#, x_height#,0); +z0=(.5w+.5stem,.5h); vpos(1)(stem,can); +x1r=w-.5u; y1l=0; +italic_a(0)(w-2u); +filldraw z14l{down}..{right}z1l--z1r{left}..{up}z14r--cycle; +penlabels(1,10,11,12,13,14); +savep; +endchar; + +iff known latin_aacute: +beginchar(latin_aacute,x_height#+stem#,asc_height#,0); +usep; +z0=(5.3u,h); +acute(0); +endchar; + +iff known latin_aumlaut: +beginchar(latin_aumlaut,x_height#+stem#,.15[asc_height#,x_height#],0); +usep; +z0=(.5w+u,h-.6stem); +umlaut(0); +endchar; + +iff known latin_agrave: +beginchar(latin_agrave,x_height#+stem#,asc_height#,0); +usep; +z0=(.5w+1.5u,h); +grave(0); +endchar; + +iff known latin_acircumflex: +beginchar(latin_acircumflex,7.6u#,asc_height#,0); +usep; +z0=(.5w+1.8u,h); +circumflex(0); +endchar; + +iff known latin_atilde: +beginchar(latin_atilde,8.6u#,asc_height#,0); +addto currentpicture also used_p shifted (.2u,0); +z0=(.5w+u,h); +acc_tilde(0); +endchar; + +iff known latin_aring: +beginchar(latin_aring,7.6u#,asc_height#,0); +usep; +z0=(.5w+1.7u,h); +ring(0); +endchar; + +iff known latin_amacron: +beginchar(latin_amacron,7.6u#,asc_height#,0); +usep; +z0=(.5w+u,h); +macron(0); +endchar; + +iff known latin_abreve: +beginchar(latin_abreve,7.6u#,asc_height#,0); +usep; +z0=(.5w+1.5u,h); +breve(0); +endchar; + +iff known latin_aogonek: +beginchar(latin_aogonek, x_height#+stem#, x_height#,desc_depth#); +z0=(.5w+.5stem,.5h); vpos(1)(stem,can); +x1r=w-.5u; y1l=0; +italic_a(0)(w-2u); +penlabels(1,10,11,12,13,14); +.5[z20,z22]=.5[z21,z23]; y23=-d+.5stem; x20+.5stem=(w+u)-u; y20=y22; x21=x23; y21-y23=x20-x22; y21=-.5stem; +penpos20(stem,0); penpos21(stem,90); penpos22(stem,180); penpos23(stem,-90); +path p; +p:= z20{up}..{left}z21..{down}z22..{right}z23..cycle; +vpos(24)(stem,-can); z24=point 3.5 of p; penpos25(stem,135); +path p[]; numeric t[]; +p1:=z22r{up}..{z1l-z22r}z1r; +p2:=z1l{left}..{up}z14l--z14r{down}..{right}z1r; +(t1,t2)=p1 intersectiontimes p2; +t3-2=xpart(subpath (2,infinity) of p2 intersectiontimes (z21--z10r)); +filldraw z22l{down}..z23l..{direction 3.5 of p}z24r--z24l{dir (angle(direction 3.5 of p)-180)}..z23r..subpath (0,t1) of p1-- +subpath (t2,t3) of p2..z1l{z22r-z1l}..cycle; +penlabels(20,21,22,23,24,25,100); +endchar; + +else: +beginchar("a", 7.6u#, x_height#,0); +hpos(1)(stem,can); penpos2(stem,0); penpos3(stem,90); vpos(4)(stem,-can); +lft x1r=w-u; y1=0; x2=x1; y2=.72h; x3=.5w; top y3r=h; y4=.9h; x4l=2u; +filldraw z1l--z1r--z2r{up}..{left}z3r..z4r--z4l..z3l{right}..{down}z2l--cycle; +serif(4r,angle(z4l-z4r),180+angle(direction 1 of (z3r{left}..z4r))); +.5[z10,z12]=.5[z11,z13]; y13=.5stem; x10+.5stem=w-u; y10=y12; x11=x13; y11-y13=x10-x12; x12-.5stem=u; +penpos10(stem,0); penpos11(stem,90); penpos12(stem,180); penpos13(stem,-90); +filldraw z10r{up}..{left}z11r..{down}z12r..{right}z13r..{up}z10r--z10l{down}..{left}z13l..{up}z12l..{right}z11l..{down}z10l--cycle; +labels(4l); +savep; +endchar; + +iff known latin_aacute: +beginchar(latin_aacute,7.6u#,asc_height#,0); +usep; +z0=(5.3u,h); +acute(0); +endchar; + +iff known latin_aumlaut: +beginchar(latin_aumlaut,7.6u#,.15[asc_height#,x_height#],0); +usep; +z0=(.5w,h-.6stem); +umlaut(0); +endchar; + +iff known latin_agrave: +beginchar(latin_agrave,7.6u#,asc_height#,0); +usep; +z0=(.5w,h); +grave(0); +endchar; + +iff known latin_acircumflex: +beginchar(latin_acircumflex,7.6u#,asc_height#,0); +usep; +z0=(.5w+.25u,h); +circumflex(0); +endchar; + +iff known latin_atilde: +beginchar(latin_atilde,8.6u#,asc_height#,0); +addto currentpicture also used_p shifted (.2u,0); +z0=(.5w,h); +acc_tilde(0); +endchar; + +iff known latin_aring: +beginchar(latin_aring,7.6u#,asc_height#,0); +usep; +z0=(.5w+.25u,h); +ring(0); +endchar; + +iff known latin_amacron: +beginchar(latin_amacron,7.6u#,asc_height#,0); +usep; +z0=(.5w+.5u,h); +macron(0); +endchar; + +iff known latin_abreve: +beginchar(latin_abreve,7.6u#,asc_height#,0); +usep; +z0=(.5w+.5u,h); +breve(0); +endchar; + +iff known latin_aogonek: +beginchar(latin_aogonek,7.6u#,x_height#,desc_depth#); +path p; +hpos(1)(stem,can); penpos2(stem,0); penpos3(stem,90); vpos(4)(stem,-can); +lft x1r=w-u; y1=0; x2=x1; y2=.72h; x3=.5w; top y3r=h; y4=.9h; x4l=2u; +filldraw z1l--z1r--z2r{up}..{left}z3r..z4r--z4l..z3l{right}..{down}z2l--cycle; +serif(4r,angle(z4l-z4r),180+angle(direction 1 of (z3r{left}..z4r))); +.5[z10,z12]=.5[z11,z13]; y13=.5stem; x10+.5stem=w-u; y10=y12; x11=x13; y11-y13=x10-x12; x12-.5stem=u; +penpos10(stem,0); penpos11(stem,90); penpos12(stem,180); penpos13(stem,-90); +filldraw z10r{up}..{left}z11r..{down}z12r..{right}z13r..{up}z10r--z10l{down}..{left}z13l..{up}z12l..{right}z11l..{down}z10l--cycle; +penlabels(1,2,3,4); +.5[z20,z22]=.5[z21,z23]; y23=-d+.5stem; x20+.5stem=(w+u)-u; y20=y22; x21=x23; y21-y23=x20-x22; y21=-.5stem; +penpos20(stem,0); penpos21(stem,90); penpos22(stem,180); penpos23(stem,-90); +p:= z20{up}..{left}z21..{down}z22..{right}z23..cycle; +vpos(24)(stem,-can); z24=point 3.5 of p; penpos25(stem,135); +filldraw z22l{down}..z23l..{direction 3.5 of p}z24r--z24l{dir (angle(direction 3.5 of p)-180)}..z23r..{up}z22r..{z1l-z22r}z1l--z1r{down}..z21l..cycle; +penlabels(20,21,22,23,24,25); +endchar; +fi + +beginchar("b", 10u#,cap_height#,0); +penpos1(stem,0); hpos(2)(stem,can); +x1l=u=x2l; y1=y10; y2r=h; +.5[z10,z12]=.5[z11,z13]; y13=.5stem; x10+.5stem=w-u; y10=y12; x11=x13; y11-y13=x10-x12; x12-.5stem=u; +filldraw z1l--z1r--z2r--z2l--cycle; +serif(2r)(angle(z2l-z2r),270); +penpos10(stem,0); penpos11(stem,90); penpos12(stem,180); penpos13(stem,-90); +filldraw z10r{up}..{left}z11r..{down}z12r..{right}z13r..{up}z10r--z10l{down}..{left}z13l..{up}z12l..{right}z11l..{down}z10l--cycle; +endchar; + +beginchar("c", 9u#,x_height#,0); +path p; +penpos11(stem,90); penpos12(stem,0); penpos13(stem,90); +.5[z10,z12]=.5[z11,z13]; y13=.5stem; x10+.5stem=(w+u)-u; y10=y12; x11=x13; y11-y13=x10-x12; x12-.5stem=u; +p:= z10{up}..{left}z11..{down}z12..{right}z13..cycle; +z1=point .5 of p; +z2=point 3.5 of p; +penpos1(stem,(170-angle(direction.5 of p))); penpos2(stem,(100+angle(direction 3.5 of p))); +filldraw z1r..{left}z11r..{down}z12l..{right}z13l..z2l--z2r..z13r{left}..z12r{up}..z11l{right}..z1l--cycle; +c_height:=y2l; +penlabels(1,2); +serif(1r,angle(z1l-z1r),180+angle(direction.5 of p)); +savep; +endchar; + +iff known latin_ccaron: +beginchar(latin_ccaron,9u#,asc_height#,0); +usep; +z0=(.5w+.7u,h); +caron(0); +endchar; + +iff known latin_cacute: +beginchar(latin_cacute,9u#,asc_height#,0); +usep; +z0=(.5w+1.9u,h); +acute(0); +endchar; + +iff known latin_ccircumflex: +beginchar(latin_ccircumflex,9u#,asc_height#,0); +usep; +z0=(.5w+.75u,h); +circumflex(0); +endchar; + +iff known latin_cdotabove: +beginchar(latin_cdotabove,9u#,.15[asc_height#,x_height#],0); +usep; +z0=(.5w+.5u,h-.6stem); +acc_dot(0); +endchar; + + +iff known latin_ccedilla: +beginchar(latin_ccedilla,9u#,x_height#,.75desc_depth#-.5stem#); +usep; +z0=(.5w,.5stem); +cedilla(0); +endchar; + +beginchar("d", 10u#,cap_height#,0); +hpos(1)(stem,can); hpos(2)(stem,can); +x1r=w-u=x2r; y1=0; y2r=h; +filldraw z1l--z1r--z2r--z2l--cycle; +serif(2r)(angle(z2l-z2r),270); +.5[z10,z12]=.5[z11,z13]; y13=.5stem; x10+.5stem=w-u; y10=y12; x11=x13; y11-y13=x10-x12; x12-.5stem=u; +penpos10(stem,0); penpos11(stem,90); penpos12(stem,180); penpos13(stem,-90); +filldraw z10r{up}..{left}z11r..{down}z12r..{right}z13r..{up}z10r--z10l{down}..{left}z13l..{up}z12l..{right}z11l..{down}z10l--cycle; +savep; +endchar; + +iff known latin_dcaron: +beginchar(latin_dcaron,12u#,cap_height#,0); +usep; +z0=(w-1.8u,h); +ac_caron(0); +endchar; + +iff known latin_dslash: +beginchar(latin_dslash,10.5u#,cap_height#,0); +usep; +y0=.75h; rt x0''=w-.75u; +macron(0); +endchar; + +iff known latin_eth: +beginchar(latin_eth, 10u#,cap_height#,0); +.5[z10,z12]=.5[z11,z13]; y13=.5stem; x10+.5stem=w-u; y10=y12; x11=x13; y11-y13=x10-x12; x12-.5stem=u; +penpos10(stem,0); penpos11(stem,90); penpos12(stem,180); penpos13(stem,-90); +filldraw z10r{up}..{left}z11r..{down}z12r..{right}z13r..{up}z10r--z10l{down}..{left}z13l..{up}z12l..{right}z11l..{down}z10l--cycle; +hpos(1)(stem,can); vpos(2)(stem,-can); +x1r=w-u; x2=.3w; y1=y10; y2r=.9h; +filldraw z1l--z1r{up}..z2r--z2l..{down}cycle; +z0=((.5w,0)--(.5w,h)) intersectionpoint (z1{up}..z2); +.5[z3,z4]=z0; z3-z4=(4u,0) rotated 30; +penpos3(.9stem,120); penpos4(.9stem,120-can); +filldraw z3r--z3l--z4l--z4r--cycle; +penlabels(3,4); +endchar; + +beginchar("e", 9u#,x_height#,0); +path p; +penpos11(stem,90); penpos12(stem,0); penpos13(stem,90); +.5[z10,z12]=.5[z11,z13]; y13=.5stem; x10+.5stem=(w+u)-u; y10=y12; x11=x13; y11-y13=x10-x12; x12-.5stem=u; +p:= z10{up}..{left}z11..{down}z12..{right}z13..cycle; +z1=point .5 of p; +z2=point 3.5 of p; +z3=((0,.25h)--(.5w,.25h)) intersectionpoint p; +penpos1(stem,(170-angle(direction.5 of p))); penpos2(stem,(100+angle(direction 3.5 of p))); +penpos3(stem,(90+angle(z3-z1))); z1''=(subpath (0,.5) of (z1r--z3r)) intersectionpoint p; z1'''=z1''+stem*dir(270+angle(z3-z1)); +z1'=(z1'''--z3l) intersectionpoint (z11l{right}..z1l); +filldraw z3r--z1r..{left}z11r..{down}z12l..{right}z13l..z2l--z2r..z13r{left}..z12r{up}..z11l{right}..z1'--z3l--cycle; +penlabels(3); labels(1'', 1'); +savep; +endchar; + +iff known latin_eacute: +beginchar(latin_eacute,9u#,asc_height#,0); +usep; +z0=(6.5u,h); +acute(0); +endchar; + +iff known latin_ecaron: +beginchar(latin_ecaron,9u#,asc_height#,0); +usep; +z0=(.5w+.56u,h); +caron(0); +endchar; + +iff known latin_egrave: +beginchar(latin_egrave,9u#,asc_height#,0); +usep; +z0=(.5w-.56u,h); +grave(0); +endchar; + +iff known latin_eumlaut: +beginchar(latin_eumlaut,9u#,.15[asc_height#,x_height#],0); +usep; +z0=(.5w+.5u,h-.6stem); +umlaut(0); +endchar; + +iff known latin_ecircumflex: +beginchar(latin_ecircumflex,9u#,asc_height#,0); +usep; +z0=(.5w+.56u,h); +circumflex(0); +endchar; + +iff known latin_emacron: +beginchar(latin_emacron,9u#,asc_height#,0); +usep; +z0=(.5w+.4u,h); +macron(0); +endchar; + +iff known latin_ebreve: +beginchar(latin_ebreve,9u#,asc_height#,0); +usep; +z0=(.5w+.56u,h); +breve(0); +endchar; + +iff known latin_edotabove: +beginchar(latin_edotabove,9u#,.15[asc_height#,x_height#],0); +usep; +z0=(.5w+.75u,h-.6stem); +acc_dot(0); +endchar; + +iff known latin_eogonek: +beginchar(latin_eogonek,9u#,x_height#,desc_depth#); +path p; +penpos11(stem,90); penpos12(stem,0); penpos13(stem,90); +.5[z10,z12]=.5[z11,z13]; y13=.5stem; x10+.5stem=(w+u)-u; y10=y12; x11=x13; y11-y13=x10-x12; x12-.5stem=u; +p:= z10{up}..{left}z11..{down}z12..{right}z13..cycle; +z1=point .5 of p; +z2=point 3.5 of p; +z3=((0,.25h)--(.5w,.25h)) intersectionpoint p; +penpos1(stem,(170-angle(direction.5 of p))); penpos2(stem,(100+angle(direction 3.5 of p))); +penpos3(stem,(90+angle(z3-z1))); z1''=(subpath (0,.5) of (z1r--z3r)) intersectionpoint p; z1'''=z1''+stem*dir(270+angle(z3-z1)); +z1'=(z1'''--z3l) intersectionpoint (z11l{right}..z1l); +filldraw z3r--z1r..{left}z11r..{down}z12l..{right}z13l..z2l--z2r..z13r{left}..z12r{up}..z11l{right}..z1'--z3l--cycle; +penlabels(1,2,3,4,12); labels(1'', 1'); +vpos(5)(stem,-can); x5=x2; y5=-.8d; penpos6(stem,0); y6=-.5d; (x5-x6)/(y6-y5)=(x2-x12)/(y12-y2); +filldraw z2l{dir (angle(direction 3.5 of p)-180)}..{down}z6r..z5r--z5l..z6l{up}..{dir angle(direction 3.5 of p)}z2r--cycle; +penlabels(5,6); +endchar; + +beginchar("f", 6u#,cap_height#,0); +hpos(1)(stem,can); penpos2(stem,0); vpos(3)(stem,can); +x1l=2u=x2l; y1=0; y2=.8h; +path p; +penpos11(stem,90); penpos12(stem,0); penpos13(stem,90); +.5[z10,z12]=.5[z11,z13]; y11=h-.5stem; x10+.5stem=(w+4u)-u; y10=y12; x11=x13; y11-y13=x10-x12; x12-.5stem=2u; +p:= z10{up}..{left}z11..{down}z12..{right}z13..cycle; +z3l=z11l; +filldraw z3r..z11r{left}..{down}z2l--z1l--z1r--z2r{up}..{right}z11l--cycle; +vpos(4)(stem,can); penpos5(stem,90); +y4=y5=x_height; x4l=u; x5=w-u; +filldraw z4r--z5r--z5l--z4l--cycle; +penlabels(3); +serif(3r)(angle(z3l-z3r),180-angle(direction 0 of (z3r..{left}z11r))); +endchar; + +iff known latin_long_s: +beginchar(latin_long_s, 6u#,cap_height#,0); +hpos(1)(stem,can); penpos2(stem,0); vpos(3)(stem,can); +x1l=2u=x2l; y1=0; y2=.8h; +path p; +penpos11(stem,90); penpos12(stem,0); penpos13(stem,90); +.5[z10,z12]=.5[z11,z13]; y11=h-.5stem; x10+.5stem=(w+4u)-u; y10=y12; x11=x13; y11-y13=x10-x12; x12-.5stem=2u; +p:= z10{up}..{left}z11..{down}z12..{right}z13..cycle; +z3l=z11l; +filldraw z3r..z11r{left}..{down}z2l--z1l--z1r--z2r{up}..{right}z11l--cycle; +penlabels(3); +serif(3r)(angle(z3l-z3r),180-angle(direction 0 of (z3r..{left}z11r))); +endchar; + +if italic: +beginchar("g", x_height#+stem#, x_height#,desc_depth#); +z0=(.5w+.5stem,.5h); vpos(1)(stem,can); penpos2(stem,0); +x1r=x12l; y1l=-.95d; y2=0; x2=x14; +italic_a(0)(w-2u); +filldraw z14l---z2l..z1r--z1l..z2r---z14r--cycle; +savep; +penlabels(1,2,10,11,12,13,14); +endchar; +else: +beginchar("g", 9.5u#,x_height#,desc_depth#); +.5[z10,z12]=.5[z11,z13]; +x10+.5stem=w-1.5u; y10=y12; x11=x13; y11=h-.5stem; x12-.5stem=2u; +penpos20(stem,180); penpos21(stem,270); penpos23(stem,90); +.5[z20,z22]=.5[z21,z23]; y23=-d+.5stem; x20+.5stem=w-u; y20=y22; x21=x23; +y21=y13; y21-y23=x20-x22; +x22-.5stem=u; +penpos10(stem,0); penpos11(stem,90); penpos12(stem,180); penpos13(stem,-90); +filldraw z10r{up}..{left}z11r..{down}z12r..{right}z13r..{up}z10r--z10l{down}..{left}z13l..{up}z12l..{right}z11l..{down}z10l--cycle; +path p; +p:=subpath(2.2,5.4) of (z20{up}..{left}z21..{down}z22..{right}z23..cycle); +z1=point 0 of p; z2=point 4 of p; +penpos1(stem,90+angle(direction 0 of p)+can); penpos2(stem,90+angle(direction 4 of p)-can); +filldraw (z1l..{right}z23l..{up}z20l..{left}z21l..z2l--z2r..{right}z21r..{down}z20r..{left}z23r..z1r--cycle); +vpos(3)(stem,can); penpos4(stem,90); +z4=z11; x3r=w-u; y3r=h; +filldraw z4r--z3r--z3l--z4l--cycle; +serif(2l)(angle(z2r-z2l),0); +savep; +penlabels(1,2,3,4); +endchar; +fi + +iff known latin_gcircumflex: +beginchar(latin_gcircumflex,9.5u#,asc_height#,desc_depth#); +usep; +z0=(.5w+.5u,h); +circumflex(0); +endchar; + +iff known latin_gbreve: +beginchar(latin_gbreve,9.5u#,asc_height#,desc_depth#); +usep; +z0=(.5w+.5u,h); +breve(0); +endchar; + +iff known latin_gdotabove: +beginchar(latin_gdotabove,9.5u#,.15[asc_height#,x_height#],desc_depth#); +usep; +z0=(.5w+.5u,h-.6stem); +acc_dot(0); +endchar; + +iff known latin_gcedilla: +beginchar(latin_gcedilla,9.5u#,x_height#,1.75desc_depth#-.5stem#); +usep; +z0=(.5w-u,-desc_depth+.5stem); +cedilla(0); +endchar; + +beginchar("h", 9u#,cap_height#,0); +hpos(1)(stem,can); hpos(2)(stem,can); vpos(3)(stem,can); penpos4(stem,0); hpos(5)(stem,can); +x1l=u=x2l; y1=y5=0; y2r=h; y4=.7x_height; x5r=x4r=w-u; +filldraw z1l--z1r--z2r--z2l--cycle; +serif(2r)(angle(z2l-z2r),270); +path p; +penpos11(stem,90); penpos12(stem,0); penpos13(stem,90); +.5[z10,z12]=.5[z11,z13]; y13=.5stem; x10+.5stem=(w+1u)-u; y10=y12; x11=x13; y11-y13=x10-x12; x12-.5stem=u; +p:= z10{up}..{left}z11..{down}z12..{right}z13..cycle; +z3l=z11l; +filldraw z4r{up}..z11r{left}..{down}z12l--z12r{up}..{right}z11l..{down}z4l--z5l--z5r--cycle; +penlabels(3); +savep; +endchar; + +iff known latin_hcircumflex: +beginchar(latin_hcircumflex,9u#,Asc_height#,0); +usep; +z0=(.5w+.5u,h); +circumflex(0); +endchar; + +iff known latin_hbar: +beginchar(latin_hbar,10u#,cap_height#,0); +addto currentpicture also used_p shifted (u,0);; +vpos(1)(.75stem,can); vpos(2)(.75stem,0); +lft x1l=u; rt x2=.75w; y1=y2=.75h; +filldraw z1r--z2r--z2l--z1l--cycle; +penlabels(1,2); +endchar; + +beginchar(16, 3u#,x_height#,0); %dotless i +hpos(1)(stem,can); hpos(2)(stem,can); +x1=.5w=x2; y1=0; y2r=h; +filldraw z1l--z1r--z2r--z2l--cycle; +serif(2r)(angle(z2l-z2r),270); +savep; +endchar; + +beginchar("i", 3u#,.15[asc_height#,x_height#],0); +usep; +z0=(.5w,h-.6stem); +acc_dot(0); +endchar; + +iff known latin_iacute: +beginchar(latin_iacute, 3u#,asc_height#,0); +usep; +z0=(2.75u,h); +acute(0); +endchar; + +iff known latin_igrave: +beginchar(latin_igrave, 3u#,asc_height#,0); +usep; +z0=(.45u,h); +grave(0); +endchar; + +iff known latin_icircumflex: +beginchar(latin_icircumflex, 5u#,asc_height#,0); +addto currentpicture also used_p shifted (u,0); +z0=(.5w,h); +circumflex(0); +endchar; + +iff known latin_iumlaut: +beginchar(latin_iumlaut, 5u#,.15[asc_height#,x_height#],0); +addto currentpicture also used_p shifted (u,0); +z0=(.5w,h-.6stem); +umlaut(0); +endchar; + +iff known latin_itilde: +beginchar(latin_itilde, 8u#,asc_height#,0); +addto currentpicture also used_p shifted (2.5u,0); +z0=(.5w,h); +acc_tilde(0); +endchar; + +iff known latin_imacron: +beginchar(latin_imacron, 5.5u#,asc_height#,0); +addto currentpicture also used_p shifted (1.25u,0); +z0=(.5w,h); +macron(0); +endchar; + +iff known latin_ibreve: +beginchar(latin_ibreve, 6.5u#,asc_height#,0); +addto currentpicture also used_p shifted (1.75u,0); +z0=(.5w,h); +breve(0); +endchar; + +iff known latin_iogonek: +beginchar(latin_iogonek, 3u#,.15[asc_height#,x_height#],desc_depth#); +usep; +z0=(.5w,h-.6stem); z1=(.5w+.5stem,0); +acc_dot(0); +ogonek(1); +endchar; + +beginchar(17, 3u#,x_height#,4u#-.5stem#); %dotless j +hpos(1)(stem,0); hpos(2)(stem,can); vpos(3)(stem,can); +x1=.5w=x2; y1=-u; y2r=h; +filldraw z1l--z1r--z2r--z2l--cycle; +serif(2r)(angle(z2l-z2r),270); +path p; +penpos10(stem,0); penpos11(stem,90); penpos12(stem,0); penpos13(stem,90); +.5[z10,z12]=.5[z11,z13]; y10=0; x10+.5stem=w-u; y10=y12; +x11=x13; y11-y13=x10-x12; x12-.5stem=2u-(w+4u); +p:= z10{down}..{left}z13..{up}z12..{right}z11..cycle; +z3l=z13l; +filldraw z3l{right}..{up}z1r--z2r--z2l--z1l{down}..{left}z3r--cycle; +serif(3l)(angle(z3r-z3l),angle(direction 0 of (z3l..{right}z13r))); +savep; +penlabels(3,10,11,12,13); +endchar; + +beginchar("j", 3u#,.15[asc_height#,x_height#],4u#-.5stem#); +usep; +z0=(.5w,h-.6stem); +acc_dot(0); +endchar; + +iff known latin_jcircumflex: +beginchar(latin_jcircumflex, 5u#,asc_height#,4u#-.5stem#); +addto currentpicture also used_p shifted (u,0); +z0=(.5w,h); +circumflex(0); +endchar; + +beginchar("k", 8u#, cap_height#,0); +hpos(1)(stem,can); hpos(2)(stem,can); hpos(4)(stem,-can); hpos(6)(stem,can); +x1l=u=x2l; y1=0; y2r=h; x4r=x6r=w-u; y4r=x_height; y6=0; x5l=.25[x2r,x2l]; y5l=.6y4; +penpos5(stem/cosd(angle(z4l-z5l)),0); +filldraw z1l--z1r--z2r--z2l--cycle; +filldraw z4l--z5l--z6l--z6r--z5r--z4r--cycle; +serif(2r)(angle(z2l-z2r),270); serif(4r)(angle(z4l-z4r),180+ angle(z4r-z5r)); +penlabels(1,2,3,4,5,6); +savep; +endchar; + +iff known latin_kcedilla: +beginchar(latin_kcedilla, 8u#,cap_height#,.75desc_depth#-.5stem#); +usep; +z0=(.5w-u,0); +cedilla(0); +endchar; + +iff known latin_kra: +"Greenlandic kra"; +beginchar(latin_kra, 8u#, x_height#,0); +hpos(1)(stem,can); hpos(2)(stem,can); hpos(4)(stem,-can); hpos(6)(stem,can); +x1l=u=x2l; y1=0; y2r=h; x4r=x6r=w-u; y4r=x_height; y6=0; x5l=.25[x2r,x2l]; y5l=.6y4; +penpos7(stem,-90); y7l=h; x7=.78w; +x8l=w-u; z8r=z7r; y8l=y8r+stem+-+(x8l-x8r); +penpos5(stem/cosd(angle(z4l-z5l)),0); +filldraw z1l--z1r--z2r--z2l--cycle; +filldraw z8l..z7l{left}..z5l--z6l--z6r--z5r..{right}z7r--cycle; +serif(2r)(angle(z2l-z2r),270); +penlabels(1,2,3,5,6,7,8); +endchar; + +beginchar("l", 3u#,cap_height#,0); +hpos(1)(stem,can); hpos(2)(stem,can); +x1=.5w=x2; y1=0; y2r=h; +filldraw z1l--z1r--z2r--z2l--cycle; +serif(2r)(angle(z2l-z2r),270); +savep; +endchar; + +iff known latin_lacute: +beginchar(latin_lacute, 3u#, Asc_height#,0); +usep; +z0=(2.75u,h); +acute(0); +endchar; + +iff known latin_lcaron: +beginchar(latin_lcaron, 5u#, cap_height#,0); +usep; +z0=(w-1.5u,h); +ac_caron(0); +endchar; + +iff known latin_lstroke: +beginchar(latin_lstroke, 5u#, cap_height#,0); +addto currentpicture also (used_p shifted (u,0)); +vpos(1)(stem,can); penpos2(stem,90); +y1=.65h; y2=.8h; x1l=.5u; x2=w-.5u; +filldraw z1l--z2l--z2r--z1r--cycle; +penlabels(1,2); +endchar; + +iff known latin_lcedilla: +beginchar(latin_lcedilla, 5u#, cap_height#,.75desc_depth#-.5stem#); +addto currentpicture also used_p shifted (u,0); +z0=(.3w,.5stem); +cedilla(0); +endchar; + +iff known latin_ldot: +beginchar(latin_ldot, 5u#, cap_height#,0); +usep; +z0=(3.5u,.6h); +dot(0); +endchar; + +beginchar("m", 12u#,x_height#,0); +hpos(1)(stem,can); hpos(2)(stem,can); vpos(3)(stem,can); penpos4(stem,0); hpos(5)(stem,can); +penpos6(stem,0); hpos(7)(stem,can); +x1l=u=x2l; y1=y5=y7=0; y2r=h; y4=y6=.7h; x5=x4; x6r=x7r=w-u; x6r-x4r=x4r-x1r; +filldraw z1l--z1r--z2r--z2l--cycle; +serif(2r)(angle(z2l-z2r),270); +path p; +penpos11(stem,90); penpos12(stem,0); penpos13(stem,90); +.5[z10,z12]=.5[z11,z13]; y13=.5stem; x10+.5stem=(w-3u)-u; y10=y12; x11=x13; y11-y13-u=x10-x12; x12-.5stem=u; +p:= z10{up}..{left}z11..{down}z12..{right}z13..cycle; +z3l=z11l; +filldraw z4r{up}..z11r{left}..{down}z12l--z12r{up}..{right}z11l..{down}z4l--z5l--z5r--cycle; +filldraw z6r{up}..((z11r{left}..{down}z12l--z12r{up}..{right}z11l) shifted (z6r-z4r))..{down}z6l--z7l--z7r--cycle; +penlabels(3); +endchar; + +beginchar("n", 9u#,x_height#,0); +hpos(1)(stem,can); hpos(2)(stem,can); vpos(3)(stem,can); penpos4(stem,0); hpos(5)(stem,can); +x1l=u=x2l; y1=y5=0; y2r=h; y4=.7h; x5r=x4r=w-u; +filldraw z1l--z1r--z2r--z2l--cycle; +serif(2r)(angle(z2l-z2r),270); +path p; +penpos11(stem,90); penpos12(stem,0); penpos13(stem,90); +.5[z10,z12]=.5[z11,z13]; y13=.5stem; x10+.5stem=(w+1u)-u; y10=y12; x11=x13; y11-y13=x10-x12; x12-.5stem=u; +p:= z10{up}..{left}z11..{down}z12..{right}z13..cycle; +z3l=z11l; +filldraw z4r{up}..z11r{left}..{down}z12l--z12r{up}..{right}z11l..{down}z4l--z5l--z5r--cycle; +penlabels(3); +savep; +endchar; + +iff known latin_ncaron: +beginchar(latin_ncaron,9u#,asc_height#,0); +usep; +z0=(.5w+.5u,h); +caron(0); +endchar; + +iff known latin_nacute: +beginchar(latin_nacute,9u#,asc_height#,0); +usep; +z0=(.5w+1.5u,h); +acute(0); +endchar; + +iff known latin_ntilde: +beginchar(latin_ntilde,9u#,asc_height#,0); +usep; +z0=(.5w,h); +acc_tilde(0); +endchar; + +iff known latin_ncedilla: +beginchar(latin_ncedilla,9u#,x_height#,.75desc_depth#-.5stem#); +usep; +z0=(.5w-.75u,0); +cedilla(0); +endchar; + +iff known latin_napostrophe: +beginchar(latin_napostrophe,10.5u#,asc_height#,0); +addto currentpicture also used_p shifted (1.5u,0); +z0=(2u,h); +quota(0); +endchar; + +iff known latin_eng: +beginchar(latin_eng, 9u#,x_height#,desc_depth#); +hpos(1)(stem,can); hpos(2)(stem,can); vpos(3)(stem,can); penpos4(stem,0); hpos(5)(stem,can); +x1l=u=x2l; y1=0; y5=-d; y2r=h; y4=.7h; x5r=x4r=w-u; +filldraw z1l--z1r--z2r--z2l--cycle; +serif(2r)(angle(z2l-z2r),270); +path p; +penpos11(stem,90); penpos12(stem,0); penpos13(stem,90); +.5[z10,z12]=.5[z11,z13]; y13=.5stem; x10+.5stem=(w+1u)-u; y10=y12; x11=x13; y11-y13=x10-x12; x12-.5stem=u; +p:= z10{up}..{left}z11..{down}z12..{right}z13..cycle; +z3l=z11l; +filldraw z4r{up}..z11r{left}..{down}z12l--z12r{up}..{right}z11l..{down}z4l--z5l--z5r--cycle; +penlabels(1,2,3,4,5); +endchar; + +beginchar("o", 10u#,x_height#,0); +.5[z10,z12]=.5[z11,z13]; y13=.5stem; x10+.5stem=w-u; y10=y12; x11=x13; y11-y13=x10-x12; x12-.5stem=u; +penpos10(stem,0); penpos11(stem,90); penpos12(stem,180); penpos13(stem,-90); +filldraw z10r{up}..{left}z11r..{down}z12r..{right}z13r..{up}z10r--z10l{down}..{left}z13l..{up}z12l..{right}z11l..{down}z10l--cycle; +savep; +endchar; + +iff known latin_oacute: +beginchar(latin_oacute,10u#,asc_height#,0); +usep; +z0=(6.5u,h); +acute(0); +endchar; + +iff known latin_oacute: +beginchar(latin_ograve,10u#,asc_height#,0); +usep; +z0=(4u,h); +grave(0); +endchar; + +iff known latin_ocircumflex: +beginchar(latin_ocircumflex,10u#,asc_height#,0); +usep; +z0=(.5w,h); +circumflex(0); +endchar; + +iff known latin_oumlaut: +beginchar(latin_oumlaut,10u#,.15[asc_height#,x_height#],0); +usep; +z0=(.5w,h-.6stem); +umlaut(0); +endchar; + +iff known latin_otilde: +beginchar(latin_otilde,10u#,asc_height#,0); +usep; +z0=(.5w+.5u,h); +acc_tilde(0); +endchar; + +iff known latin_omacron: +beginchar(latin_omacron,10u#,asc_height#,0); +usep; +z0=(.5w,h); +macron(0); +endchar; + +iff known latin_obreve: +beginchar(latin_obreve,10u#,asc_height#,0); +usep; +z0=(.5w+.25u,h); +breve(0); +endchar; + +iff known latin_ohungarumlaut: +beginchar(latin_ohungarumlaut,10u#,asc_height#,0); +usep; +z0=(.5w+u,h); +H_umlaut(0); +endchar; + +beginchar("p", 10u#,x_height#,desc_depth#); +hpos(1)(stem,can); hpos(2)(stem,can); +x1l=u=x2l; y1=-d; y2r=h; +filldraw z1l--z1r--z2r--z2l--cycle; +serif(2r)(angle(z2l-z2r),270); +.5[z10,z12]=.5[z11,z13]; y13=.5stem; x10+.5stem=w-u; y10=y12; x11=x13; y11-y13=x10-x12; x12-.5stem=u; +penpos10(stem,0); penpos11(stem,90); penpos12(stem,180); penpos13(stem,-90); +filldraw z10r{up}..{left}z11r..{down}z12r..{right}z13r..{up}z10r--z10l{down}..{left}z13l..{up}z12l..{right}z11l..{down}z10l--cycle; +endchar; + +iff known latin_thorn: +beginchar(latin_thorn, 10u#,cap_height#,desc_depth#); +hpos(1)(stem,can); hpos(2)(stem,can); +x1l=u=x2l; y1=-d; y2r=h; +filldraw z1l--z1r--z2r--z2l--cycle; +serif(2r)(angle(z2l-z2r),270); +.5[z10,z12]=.5[z11,z13]; y13=.5stem; x10+.5stem=w-u; y10=y12; x11=x13; y11-y13=x10-x12; x12-.5stem=u; +penpos10(stem,0); penpos11(stem,90); penpos12(stem,180); penpos13(stem,-90); +filldraw z10r{up}..{left}z11r..{down}z12r..{right}z13r..{up}z10r--z10l{down}..{left}z13l..{up}z12l..{right}z11l..{down}z10l--cycle; +endchar; + +beginchar("q", 10u#,x_height#,desc_depth#); +hpos(1)(stem,can); hpos(2)(stem,-can); +x1r=w-u=x2r; y1=-d; y2l=h; +filldraw z1l--z1r--z2r--z2l--cycle; +z2l'=z2l+.45stem*down; +serif(2l')(angle(z2r-z2l),90); +.5[z10,z12]=.5[z11,z13]; y13=.5stem; x10+.5stem=w-u; y10=y12; x11=x13; y11-y13=x10-x12; x12-.5stem=u; +penpos10(stem,0); penpos11(stem,90); penpos12(stem,180); penpos13(stem,-90); +filldraw z10r{up}..{left}z11r..{down}z12r..{right}z13r..{up}z10r--z10l{down}..{left}z13l..{up}z12l..{right}z11l..{down}z10l--cycle; +endchar; + +beginchar("r", 6u#,x_height#,0); +hpos(1)(stem,can); hpos(2)(stem,can); vpos(3)(stem,can); +x1l=u=x2l; y1=0; y2r=h; +filldraw z1l--z1r--z2r--z2l--cycle; +path p; +penpos11(stem,90); penpos12(stem,0); penpos13(stem,90); +.5[z10,z12]=.5[z11,z13]; y13=.5stem; x10+.5stem=(w+4u)-u; y10=y12; x11=x13; y11-y13=x10-x12; x12-.5stem=u; +p:= z10{up}..{left}z11..{down}z12..{right}z13..cycle; +z3l=z11l; +filldraw z3r..z11r{left}..{down}z12l--z12r{up}..{right}z11l--cycle; +serif(2r)(angle(z2l-z2r),270); serif(3r)(angle(z3l-z3r),180+angle(direction 0 of (z3r..{left}z11r))); +penlabels(3); +savep; +endchar; + +iff known latin_rcaron: +beginchar(latin_rcaron,6u#,asc_height#,0); +usep; +z0=(.5w+.2u,h); +caron(0); +endchar; + +iff known latin_racute: +beginchar(latin_racute,6u#,asc_height#,0); +usep; +z0=(.5w-.2u,h); +acute(0); +endchar; + +iff known latin_rcedilla: +beginchar(latin_rcedilla,6u#,x_height#,.75desc_depth#-stem#); +usep; +z0=(1.5u,stem); +cedilla(0); +endchar; + +beginchar("s",8u#,x_height#,0); +numeric theta; +path p; +penpos10(stem,0); penpos11(stem,90); penpos12(stem,0); penpos13(stem,90); +.5[z10,z12]=.5[z11,z13]; y13=.5stem; x10+.5stem=(w); y10=y12; x11=x13; y11-y13=x10-x12; x12-.5stem=0; +p:= z10{up}..{left}z11..{down}z12..{right}z13..cycle; +z1=point .5 of p; +z2=point 1.5 of p; +z3=point 2.5 of p; +z4=point 3.5 of p; +theta:=280+angle(z4-z2); +penpos1(stem,(170-angle(direction .5 of p))); penpos2(stem,theta); +penpos3(stem,(-10-angle(direction 2.5 of p))); penpos4(stem,theta); +penpos5(stem,theta); z5=(.5w,.5h); +%z2l'=z2l+(.8stem,0) rotated (90+theta); +z2l'=z2r+1.1stem*dir10; +z4r'=z4r+(.8stem,0) rotated (theta-90); +filldraw z1r..{left}z11r..z2r..z5r..z4r'..{left}z13r..z3r--z3l..{right}z13l..z4l..z5l..z2l'..{right}z11l..z1l--cycle; +penlabels(1,2,3,4,5,11); +labels(2l',4r'); +serif(1r)(angle(z1l-z1r),90-angle(direction 0 of (z1r..{left}z11r))); +savep; +endchar; + +iff known latin_scaron: +beginchar(latin_scaron,8u#,asc_height#,0); +usep; +z0=(.5w+.3u,h); +caron(0); +endchar; + +iff known latin_sacute: +beginchar(latin_sacute,8u#,asc_height#,0); +usep; +z0=(.5w+u,h); +acute(0); +endchar; + +iff known latin_scircumflex: +beginchar(latin_scircumflex,8u#,asc_height#,0); +usep; +z0=(.5w+.25u,h); +circumflex(0); +endchar; + +iff known latin_scedilla: +beginchar(latin_scedilla,8u#,x_height#,.75desc_depth#-.5stem#); +usep; +z0=(.5w-u,.5stem); +cedilla(0); +endchar; + +beginchar("t", 7u#,.5[x_height#,cap_height#],0); +hpos(1)(stem,0); hpos(2)(stem,can); vpos(3)(stem,-can); +vpos(4)(stem,can); penpos5(stem,90); +y4=y5=x_height; x4l=u; x5=w-u; +x1l=2u=x2l; y2r=h; +path p; +penpos11(stem,90); penpos12(stem,0); penpos13(stem,90); +.5[z10,z12]=.5[z11,z13]; y13=.5stem; x10+.5stem=(w+4u)-u; y10=y12; x11=x13; y11-y13=x10-x12; x12-.5stem=2u; +p:= z10{up}..{left}z11..{down}z12..{right}z13..cycle; +z3l=z13l; y1=y12-2u; +filldraw z1l--z1r--z2r--z2l--cycle; +filldraw z12r+2u*down{down}..{right}z3r--z3l{left}..{up}z12l+2u*down--cycle; +filldraw z4l--z5l--z5r--z4r--cycle; +serif(3l)(angle(z3r-z3l),+angle(direction 0 of (z3r..{left}z13r))); +penlabels(1,2,3,4,5); +savep; +endchar; + +iff known latin_tcaron: +beginchar(latin_tcaron,7u#,.4[cap_height#,x_height#],0); +usep; +z0=(2u+2stem+.5u,h); +ac_caron(0); +endchar; + +iff known latin_tcommaaccent: +beginchar(latin_tcommaaccent,7u#,.5[cap_height#,x_height#],2.5u#); +usep; +y1r=-.5u; y2l=-d; x1r-x2l=2u; .5[x1r,x2l]=.5w; +hpos(2)(stem,-can); hpos(1)(cap_stem,-can); +filldraw (z1l--z1r--z2r--z2l--cycle); +endchar; + +iff known latin_tbar: +beginchar(latin_tbar,7u#,.4[cap_height#,x_height#],0); +usep; +vpos(1)(.75stem,can); vpos(2)(.75stem,0); +lft x1l=u; rt x2=w-2u; y1=y2=.7x_height; +filldraw z1r--z2r--z2l--z1l--cycle; +penlabels(1,2); +endchar; + +beginchar("u", 9u#,x_height#,0); +hpos(1)(stem,can); hpos(2)(stem,-can); vpos(3)(stem,can); penpos4(stem,0); hpos(5)(stem,can); +x1r=w-u=x2r; y1=0; y2l=y5r=h; y4=.3h; x5l=u; x4r=w-u; +filldraw z1l--z1r--z2r--z2l--cycle; +serif(2r)(angle(z2l-z2r),270); +path p; +penpos10(stem,180);penpos11(stem,90); penpos12(stem,0); penpos13(stem,90); +.5[z10,z12]=.5[z11,z13]; y13=.5stem; x10+.5stem=(w+0u)-u; y10=y12; x11=x13; y11-y13=x10-x12; x12-.5stem=u; +p:= z10{up}..{left}z11..{down}z12..{right}z13..cycle; +filldraw z10l{down}..z13l{left}..{up}z12l--z5l--z5r--z12r{down}..{right}z13r..{up}z10r--cycle; +serif(5r)(angle(z5l-z5r),270); +penlabels(1,2,3,4,5,6); +savep; +endchar; + +iff known latin_uacute: +beginchar(latin_uacute,9u#,asc_height#,0); +usep; +z0=(5u,h); +acute(0); +endchar; + +iff known latin_ugrave: +beginchar(latin_ugrave,9u#,asc_height#,0); +usep; +z0=(3.5u,h); +grave(0); +endchar; + +iff known latin_ucircumflex: +beginchar(latin_ucircumflex,9u#,asc_height#,0); +usep; +z0=(.5w,h); +circumflex(0); +endchar; + +iff known latin_uring: +beginchar(latin_uring,9u#, asc_height#,0); +usep; +z0=(.5w,h); +ring(0); +endchar; + +iff known latin_utilde: +beginchar(latin_utilde,9u#, asc_height#,0); +usep; +z0=(.5w,h); +acc_tilde(0); +endchar; + +iff known latin_uumlaut: +beginchar(latin_uumlaut,9u#, .15[asc_height#,x_height#],0); +usep; +z0=(.5w,h-.6stem); +umlaut(0); +endchar; + +iff known latin_umacron: +beginchar(latin_umacron,9u#, asc_height#,0); +usep; +z0=(.5w,h); +macron(0); +endchar; + +iff known latin_ubreve: +beginchar(latin_ubreve,9u#, asc_height#,0); +usep; +z0=(.5w,h); +breve(0); +endchar; + +iff known latin_uhungarumlaut: +beginchar(latin_uhungarumlaut,9u#, asc_height#,0); +usep; +z0=(.5w+.75u,h); +H_umlaut(0); +endchar; + +iff known latin_uogonek: +beginchar(latin_uogonek,9u#, x_height#,desc_depth#); +usep; +z0=(.5w+.75u,0); +ogonek(0); +endchar; + +beginchar("v", 10u#,x_height#,0); +numeric theta; +hpos(1)(stem,-can); hpos(2)(stem,can); +x1r=w-u; y1l=h=y2r; x2l=u; z3l=(.5w,0); +theta:=90+angle(z1r-z3l); +penpos3(stem/sind(theta),90); +filldraw z1l--z3r--z2r--z2l--z3l--z1r--cycle; +penlabels(1,2,3,4); +serif(1r)(angle(z1l-z1r),180+angle(z1r-z3r));serif(2r)(angle(z2l-z2r),180+angle(z2r-z3r)); +endchar; + +beginchar("w", 14u#,x_height#,0); +numeric theta; +hpos(1)(stem,-can); hpos(2)(stem,can); +x1r=w-u; y1l=h=y2r; x2l=u; z3r=(.5w,h); y4l=y5l=0; .5[x4l,x5l]=x3; x5l=.75w-u; +theta:=90+angle(z1r-z5l); +penpos4(stem/sind(theta),90); penpos5(stem/sind(theta),90); +penpos3(stem/cosd(angle(z5r-z3r)),90); +z4'=whatever[z2r,z4r]=whatever[z3r,z4l+z3r-z3l]; +z5'=whatever[z1r,z5r]=whatever[z3r,z5l+z3r-z3l]; +filldraw z1l--z1r--z5l--z3l--z4l--z2l--z2r--z4'--z3r--z5'--cycle; +penlabels(1,2,3,4,5); +serif(1r)(angle(z1l-z1r),180+angle(z1r-z3r));serif(2r)(angle(z2l-z2r),180+angle(z2r-z3r)); +savep; +endchar; + +iff known latin_wcircumflex: +beginchar(latin_wcircumflex,14u#, asc_height#,0); +usep; +z0=(.5w,h); +circumflex(0); +endchar; + +beginchar("x", 8.5u#,x_height#,0); +numeric theta; +hpos(1)(stem,-can); hpos(2)(stem,can); +hpos(3)(stem,-can); hpos(4)(stem,can); +x1r=w-u=x4r; y1l=h=y2r; x2l=x3l=u; y3r=y4l=0; +filldraw z1l--z3l--z3r--z1r--cycle; +filldraw z2l--z4l--z4r--z2r--cycle; +penlabels(1,2,3,4); +serif(1r)(angle(z1l-z1r),180+angle(z1r-z3r));serif(2r)(angle(z2l-z2r),180+angle(z2r-z4r)); +endchar; + +beginchar("y", 10u#,x_height#,desc_depth#); +hpos(1)(stem,-can); hpos(2)(stem,-can); hpos(3)(stem,can); +x1r=w-u; y1l=h=y3r; x3l=u; y2r=-d; x2l=2u; z4l=whatever[z1l,z2l]; y4l=c_height; +z4r=z4l+(stem/sind(angle(z3l-z4l)),0) rotated (angle(z1l-z4l)-10); +filldraw z1l--z1r--z2r--z2l--cycle; +filldraw z3l--z3r--z4r--z4l--cycle; +penlabels(1,2,3,4); +serif(3r)(angle(z3l-z3r),180+angle(z3r-z4r));serif(1r)(angle(z1l-z1r),180+angle(z1r-z2r)); +savep; +endchar; + +iff known latin_yacute: +beginchar(latin_yacute, 10u#,asc_height#,desc_depth#); +usep; +z0=(.5w+.5u,h); +acute(0); +endchar; + +iff known latin_yumlaut: +beginchar(latin_yumlaut,10u#, .15[asc_height#,x_height#],desc_depth#); +usep; +z0=(.5w,h-.6stem); +umlaut(0); +endchar; + +iff known latin_ycircumflex: +beginchar(latin_ycircumflex, 10u#,asc_height#,desc_depth#); +usep; +z0=(.5w,h); +circumflex(0); +endchar; + +beginchar("z", 8u#, x_height#, 0); +vpos(1)(stem,can); vpos(4)(stem,0); +x1l=u=x3; x2=w-u=x4r; y1r=h=y2; y4l=y3=0; +y3'=stem; y2'=h-stem; x3'-x3=x2-x2'; y2''=h; x2''=x2-1.2stem; z2'=whatever[z3,z2'']; +filldraw z1r--z2--z3'--z4r--z4l--z3--z2'--z1l--cycle; +serif(1r)(angle(z1l-z1r),0); +penlabels(1,4); labels(2,2',3,3'); +savep; +endchar; + +iff known latin_zcaron: +beginchar(latin_zcaron,8u#,asc_height#,0); +usep; +z0=(.5w,h); +caron(0); +endchar; + +iff known latin_zacute: +beginchar(latin_zacute,8u#,asc_height#,0); +usep; +z0=(.5w+u,h); +acute(0); +endchar; + +iff known latin_zdotabove: +beginchar(latin_zdotabove,8u#,.15[asc_height#,x_height#],0); +usep; +z0=(.5w,h-.6stem); +acc_dot(0); +endchar; + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Uppercase +beginchar("A", 14u#,cap_height#,0); +numeric theta; +hpos(1)(cap_stem,can); hpos(2)(cap_stem,-can); +x1r=w-u; y1l=0=y2r; x2l=u; z3r=(.5w,h); +theta:=90+angle(z1r-z3r); +penpos3(cap_stem/sind(theta),90); +filldraw z1r--z3r--z2l--z2r--z3l--z1l--cycle; +y4r-y4l=cap_stem; y5r=y4r; y5l=y4l; .5[y4r,y4l]=.6x_height; +z4r=whatever[z1,z3]; z4l=whatever[z1,z3]; z5l=whatever[z3,z2]; z5r=whatever[z3,z2]; +filldraw z4r--z5r--z5l--z4l--cycle; +penlabels(1,2,3,4,5); +savep; +endchar; + +iff known latin_Aacute: +beginchar(latin_Aacute,14u#,Asc_height#,0); +usep; +z0=(.5w,h); +acute(0).low; +endchar; + +iff known latin_Aumlaut: +beginchar(latin_Aumlaut,14u#,.3[Asc_height#,cap_height#],0); +usep; +z0=(.5w,h-.6stem); +umlaut(0); +endchar; + +iff known latin_Agrave: +beginchar(latin_Agrave,14u#,Asc_height#,0); +usep; +z0=(.5w,h); +grave(0).low; +endchar; + +iff known latin_Acircumflex: +beginchar(latin_Acircumflex,14u#,Asc_height#,0); +usep; +z0=(.5w,h); +circumflex(0).low; +endchar; + +iff known latin_Atilde: +beginchar(latin_Atilde,14u#,Asc_height#,0); +usep; +z0=(.5w+.5u,h); +acc_tilde(0).low; +endchar; + +iff known latin_Amacron: +beginchar(latin_Amacron,14u#,Asc_height#,0); +usep; +z0=(.5w,h); +macron(0); +endchar; + +iff known latin_Abreve: +beginchar(latin_Abreve,14u#,Asc_height#,0); +usep; +z0=(.5w,h); +breve(0); +endchar; + +iff known latin_Aring: +beginchar(latin_Aring,14u#,Asc_height#-1.25u#-.75cap_stem#,0); +usep; +z0=(.5w,h); +ring(0).low; +endchar; + +iff known latin_Aogonek: +beginchar(latin_Aogonek,14u#,cap_height#,desc_depth#); +numeric theta; +hpos(1)(cap_stem,can); hpos(2)(cap_stem,-can); +x1r=w-u; y1l=0=y2r; x2l=u; z3r=(.5w,h); +theta:=90+angle(z1r-z3r); +penpos3(cap_stem/sind(theta),90); +filldraw z1r--z3r--z2l--z2r--z3l--z1l--cycle; +y4r-y4l=cap_stem; y5r=y4r; y5l=y4l; .5[y4r,y4l]=.6x_height; +z4r=whatever[z1,z3]; z4l=whatever[z1,z3]; z5l=whatever[z3,z2]; z5r=whatever[z3,z2]; +filldraw z4r--z5r--z5l--z4l--cycle; +penlabels(1,2,3,4,5); +.5[z20,z22]=.5[z21,z23]; y23=-d+.5stem; x20+.5stem=(w+u)-u; y20=y22; x21=x23; y21-y23=x20-x22; y21=-.5stem; +penpos20(stem,0); penpos21(stem,90); penpos22(stem,180); penpos23(stem,-90); +p:= z20{up}..{left}z21..{down}z22..{right}z23..cycle; +vpos(24)(stem,-can); z24=point 3.5 of p; penpos25(stem,135); +filldraw z22l{down}..z23l..{direction 3.5 of p}z24r--z24l{dir (angle(direction 3.5 of p)-180)}..z23r..{up}z22r..{z1l-z22r}z1l--z1r{down}..z21l..cycle; +penlabels(20,21,22,23,24,25); +endchar; + +beginchar("B", 12u#,cap_height#,0); +hpos(1)(cap_stem,0); hpos(2)(cap_stem,0); +x1l=u=x2l; y1=0; y2r=h; +filldraw z1l--z1r--z2r--z2l--cycle; +.5[z10,z12]=.5[z11,z13]; y11=h-.5cap_stem; x10+.5cap_stem=w-u; y10=y12; x11=x13; y11-y13=x10-x12; y13=.5h;%x12-.5cap_stem=2u; +penpos10(cap_stem,0); penpos11(cap_stem,90); penpos12(cap_stem,180); penpos13(cap_stem,-90); +penpos2'(cap_stem,90); penpos2''(cap_stem,270); +.5[y2'',y2']=y10; x2'=x2''=x2r; y2'r=y2r; +filldraw z2'r---z11r..{down}z10r..{left}z13r---z2''r--z2''l---z13l{right}..{up}z10l..{left}z11l---z2'l--cycle; +filldraw (z2'r---z11r..{down}z10r..{left}z13r---z2''r--z2''l---z13l{right}..{up}z10l..{left}z11l---z2'l--cycle) shifted (0,-.5h+.5cap_stem); +endchar; + +beginchar("C", 12.5u#,cap_height#,0); +path p; +penpos11(cap_stem,90); penpos12(cap_stem,0); penpos13(cap_stem,90); +.5[z10,z12]=.5[z11,z13]; y13=.5cap_stem; x10+.5cap_stem=(w+4u)-u; y10=y12; x11=x13; y11-y13=x10-x12; x12-.5cap_stem=u; +p:= z10{up}..{left}z11..{down}z12..{right}z13..cycle; +z1=point .68 of p; +z2=point 3.28 of p; +vpos(1)(cap_stem,-.5can); vpos(2)(cap_stem,.5can); +filldraw z1r..{left}z11r..{down}z12l..{right}z13l..z2l--z2r..z13r{left}..z12r{up}..z11l{right}..z1l--cycle; +penlabels(1,2); +savep; +endchar; + +iff known latin_Ccaron: +beginchar(latin_Ccaron,12.5u#,Asc_height#,0); +usep; +z0=(.65w,h); +caron(0).low; +endchar; + +iff known latin_Cacute: +beginchar(latin_Cacute,12.5u#,Asc_height#,0); +usep; +z0=(.75w,h); +acute(0).low; +endchar; + +iff known latin_Ccircumflex: +beginchar(latin_Ccircumflex,12.5u#,Asc_height#,0); +usep; +z0=(.5w+2u,h); +circumflex(0).low; +endchar; + +iff known latin_Cdotabove: +beginchar(latin_Cdotabove,12.5u#,.3[Asc_height#,cap_height#],0); +usep; +z0=(.5w+2u,h-.6stem); +acc_dot(0); +endchar; + +iff known latin_Ccedilla: +beginchar(latin_Ccedilla,12.5u#,Asc_height#,.75desc_depth#-.5stem#); +usep; +z0=(.5w,.5stem); +cedilla(0); +endchar; + +iff known sign_euro: +beginchar(sign_euro,11u#,cap_height#,0); +path p; +penpos11(cap_stem,90); penpos12(cap_stem,0); penpos13(cap_stem,90); +.5[z10,z12]=.5[z11,z13]; y13=.5cap_stem; x10+.5cap_stem=(w+3.5u)-u; y10=y12; x11=x13; y11=h-.5cap_stem; x12-.5cap_stem=u; +p:= z10{up}..{left}z11..{down}z12..{right}z13..cycle; +z1=point .68 of p; +z2=point 3.28 of p; +vpos(1)(cap_stem,-.5can); vpos(2)(cap_stem,.5can); +filldraw z1r..{left}z11r..{down}z12l..{right}z13l..z2l--z2r..z13r{left}..z12r{up}..z11l{right}..z1l--cycle; +penpos3(.75stem,90); vpos(4)(.75stem,can); y3=.55h; y4=.6h; +x4r=.75w; x3l=x12; +filldraw z3r--z4r--z4l--z3l--cycle; +filldraw (z3r--z4r--z4l--z3l--cycle) shifted (0,-2stem); +penlabels(1,2,3,4); +endchar; + +beginchar("D", 13u#,cap_height#,0); +hpos(1)(cap_stem,0); hpos(2)(cap_stem,0); +x1l=u=x2l; y1=0; y2r=h; +filldraw z1l--z1r--z2r--z2l--cycle; +penpos10(cap_stem,0); penpos11(cap_stem,90); penpos12(cap_stem,180); penpos13(cap_stem,-90); +.5[z10,z12]=.5[z11,z13]; y11=h-.5cap_stem; x10+.5cap_stem=w-u; y10=y12; x11=x13; y13=.5cap_stem; x12-.5cap_stem=0; +penpos2'(cap_stem,90); penpos2''(cap_stem,270); +.5[y2'',y2']=y10; x2'=x2''=x2r; y2'r=y2r; +filldraw z2'r---z11r..{down}z10r..{left}z13r---z2''r--z2''l---z13l{right}..{up}z10l..{left}z11l---z2'l--cycle; +savep; +endchar; + +iff known latin_Dcaron: +beginchar(latin_Dcaron,13u#,Asc_height#,0); +usep; +z0=(.35w,h); +caron(0).low; +endchar; + +iff known latin_Dstroke: +beginchar(latin_Dstroke,14u#,cap_height#,0); +addto currentpicture also used_p shifted (u,0); +z0=(3u,.55h); +macron(0); +endchar; + +iff known latin_Eth: +beginchar(latin_Eth,14u#,cap_height#,0); +addto currentpicture also used_p shifted (u,0); +z0=(3u,.55h); +macron(0); +endchar; + +beginchar("E", 11u#,cap_height#,0); +hpos(1)(cap_stem,0); hpos(2)(cap_stem,0); vpos(3)(cap_stem,-can); penpos4(cap_stem,90); vpos(5)(cap_stem,0); vpos(6)(cap_stem,can); +x1l=u=x2l; y1=y6l=0; y2r=h; y3r=h; x3l=x6r=w-u; x2r=x4; y4=y5=.5h; x5r=.75[x2r,x3r]; +filldraw z1l--z2l--z3r--z3l--(x2r,y3l)--z4r--z5r--z5l--z4l--(x1r,y6r)--z6r--z6l--cycle; +penlabels(1,2,3,4,5,6); +savep; +endchar; + +iff known latin_Eacute: +beginchar(latin_Eacute,11u#,Asc_height#,0); +usep; +z0=(.5w,h); +acute(0).low; +endchar; + +iff known latin_Ecaron: +beginchar(latin_Ecaron,11u#,Asc_height#,0); +usep; +z0=(.5w,h); +caron(0).low; +endchar; + +iff known latin_Emacron: +beginchar(latin_Emacron,11u#,Asc_height#,0); +usep; +z0=(.5w,h); +macron(0); +endchar; + +iff known latin_Edotabove: +beginchar(latin_Edotabove,11u#,.3[Asc_height#,cap_height#],0); +usep; +z0=(.5w+.3u,h-.6stem); +acc_dot(0); +endchar; + +iff known latin_Ebreve: +beginchar(latin_Ebreve,11u#,Asc_height#,0); +usep; +z0=(.5w,h); +breve(0); +endchar; + +iff known latin_Eogonek: +beginchar(latin_Eogonek,11u#,cap_height#,desc_depth#); +usep; +.5[z20,z22]=.5[z21,z23]; y23=-d+.5stem; x20+.5stem=(w+u)-u; y20=y22; x21=x23; y21-y23=x20-x22; y21=-.5stem; +penpos20(stem,0); penpos21(stem,90); penpos22(stem,180); penpos23(stem,-90); +p:= z20{up}..{left}z21..{down}z22..{right}z23..cycle; +vpos(24)(stem,-can); z24=point 3.5 of p; penpos25(stem,135); +filldraw z22l{down}..z23l..{direction 3.5 of p}z24r--z24l{dir (angle(direction 3.5 of p)-180)}..z23r..{up}z22r..z21r+stem*up--z21l+stem*up..cycle; +penlabels(20,21,22,23,24,25); +endchar; + +iff known latin_Egrave: +beginchar(latin_Egrave,11u#,Asc_height#,0); +usep; +z0=(.45w,h); +grave(0).low; +endchar; + +iff known latin_Ecircumflex: +beginchar(latin_Ecircumflex,11u#,Asc_height#,0); +usep; +z0=(.5w,h); +circumflex(0).low; +endchar; + +iff known latin_Eumlaut: +beginchar(latin_Eumlaut,11u#,.3[Asc_height#,cap_height#],0); +usep; +z0=(.5w,h-.6stem); +umlaut(0); +endchar; + +beginchar("F", 11u#,cap_height#,0); +hpos(1)(cap_stem,can); hpos(2)(cap_stem,0); vpos(3)(cap_stem,-can); penpos4(cap_stem,90); vpos(5)(cap_stem,0); +x1l=u=x2l; y1=0; y2r=h; y3r=h; x3l=w-u; x2r=x4; y4=y5=.5h; x5r=.75[x2r,x3r]; +filldraw z1r--z1l--z2l--z3r--z3l--(x2r,y3l)--z4r--z5r--z5l--z4l--cycle; +penlabels(1,2,3,4,5); +endchar; + +beginchar("G", 14.5u#,cap_height#,0); +path p; +penpos11(cap_stem,90); penpos12(cap_stem,0); penpos13(cap_stem,90); +.5[z10,z12]=.5[z11,z13]; y13=.5cap_stem; x10+.5cap_stem=(w+2u)-u; y10=y12; x11=x13; y11-y13=x10-x12; x12-.5cap_stem=u; +p:= z10{up}..{left}z11..{down}z12..{right}z13..cycle; +z1'=point .5 of p; +z2'=point 3.4 of p; +penpos1(cap_stem,170-(angle(direction .5 of p))); penpos2(cap_stem,90+(angle(direction 3.5 of p))); +penpos3(cap_stem,0); penpos4(cap_stem,0); vpos(5)(cap_stem,can); +x1r=w-u; y1=y1'; +z3l=z2r; x4=x3; y4=.8x_height=y5r; y4l:=y5l; x5=.55w; x3r=w-u; y2=y2'; +filldraw z1r..{left}z11r..{down}z12l..{right}z13l..{direction 3.4 of p}z2l..{up}z3r--z4r--z5r--z5l--z4l--z3l--z2r..z13r{left}..z12r{up}..z11l{right}..z1l--cycle; +penlabels(1,2,3,4,5); +savep; +endchar; + +iff known latin_Gcircumflex: +beginchar(latin_Gcircumflex,14.5u#,Asc_height#,0); +usep; +z0=(.5w+1.3u,h); +circumflex(0).low; +endchar; + +iff known latin_Gbreve: +beginchar(latin_Gbreve,14.5u#,Asc_height#,0); +usep; +z0=(.5w+1.3u,h); +breve(0); +endchar; + +iff known latin_Gdotabove: +beginchar(latin_Gdotabove,14.5u#,.3[Asc_height#,cap_height#],0); +usep; +z0=(.5w+u,h-.6stem); +acc_dot(0); +endchar; + +iff known latin_Gcedilla: +beginchar(latin_Gcedilla,14.5u#,cap_height#,.75desc_depth#-.5stem#); +usep; +z0=(.5w-.5u,.5stem); +cedilla(0); +endchar; + +beginchar("H", 11.5u#,cap_height#,0); +hpos(1)(cap_stem,can); hpos(2)(cap_stem,can); hpos(3)(cap_stem,can); hpos(4)(cap_stem,can); +penpos5(cap_stem,90); penpos6(cap_stem,90); +x1l=u=x2l; y1=y3=0; y2r=y4r=h; x3r=x4r=w-u; +y5=y6=.5h; x5=x1r; x6=x3l; +filldraw z1l--z2l--z2r--z1r--cycle; +filldraw z3l--z4l--z4r--z3r--cycle; +filldraw z5l--z6l--z6r--z5r--cycle; +penlabels(1,2,3,4); +savep; +endchar; + +iff known latin_Hcircumflex: +beginchar(latin_Hcircumflex,11.5u#,Asc_height#,0); +usep; +z0=(.5w,h); +circumflex(0).low; +endchar; + +iff known latin_Hbar: +beginchar(latin_Hbar,13.5u#,cap_height#,0); +addto currentpicture also used_p shifted (u,0);; +vpos(1)(.75stem,can); vpos(2)(.75stem,0); +lft x1l=u; rt x2=w-u; y1=y2=.75h; +filldraw z1r--z2r--z2l--z1l--cycle; +penlabels(1,2); +endchar; + +beginchar("I", 3.5u#,cap_height#,0); +hpos(1)(cap_stem,can); hpos(2)(cap_stem,can); +x1=.5w=x2; y1=0; y2r=h; +filldraw z1l--z1r--z2r--z2l--cycle; +savep; +endchar; + +iff known latin_Iacute: +beginchar(latin_Iacute,3.5u#,Asc_height#,0); +usep; +z0=(.5w,h); +acute(0).low; +endchar; + +iff known latin_Igrave: +beginchar(latin_Igrave,3.5u#,Asc_height#,0); +usep; +z0=(.5w,h); +grave(0).low; +endchar; + +iff known latin_Icircumflex: +beginchar(latin_Icircumflex,3.5u#,Asc_height#,0); +usep; +z0=(.5w,h); +circumflex(0).low; +endchar; + +iff known latin_Iumlaut: +beginchar(latin_Iumlaut,4u#,.3[Asc_height#,cap_height#],0); +addto currentpicture also used_p shifted (.25u,0); +z0=(.5w,h-.6stem); +umlaut(0); +endchar; + +iff known latin_Itilde: +beginchar(latin_Itilde,3.5u#,Asc_height#,0); +usep; +z0=(.5w,h); +acc_tilde(0).low; +endchar; + +iff known latin_Imacron: +beginchar(latin_Imacron,3.5u#,Asc_height#,0); +usep; +z0=(.5w,h); +macron(0); +endchar; + +iff known latin_Ibreve: +beginchar(latin_Ibreve,3.5u#,Asc_height#,0); +usep; +z0=(.5w,h); +breve(0); +endchar; + +iff known latin_Idot: +beginchar(latin_Idot,3.5u#,.3[Asc_height#,cap_height#],0); +usep; +z0=(.5w,h-.6stem); +acc_dot(0); +endchar; + +iff known latin_Iogonek: +beginchar(latin_Iogonek,3.5u#,cap_height#,desc_depth#); +usep; +z0=(.5w+.5cap_stem,0); +ogonek(0); +endchar; + +beginchar("J", 10u#,cap_height#,0); +hpos(1)(cap_stem,0); hpos(2)(cap_stem,can); vpos(3)(cap_stem,can); +x1r=x2r=w-u; y1=.5x_height; y2r=h; +filldraw z1l--z1r--z2r--z2l--cycle; +path p; +penpos10(cap_stem,0); penpos11(cap_stem,90); penpos12(cap_stem,0); penpos13(cap_stem,90); +.5[z10,z12]=.5[z11,z13]; y13=.5cap_stem; x10+.5cap_stem=w-u; y10=y12; +x11=x13; y11-y13=x10-x12; x13=.5w; x3=x12l; y3=.25x_height; +p:= z10{down}..{left}z13..{up}z12..{right}z11..cycle; +filldraw z3l..z13l{right}..{up}z1r--z2r--z2l--z1l{down}..{left}z13r..z3r--cycle; +penlabels(1,2,3,10,11,12,13); +savep; +endchar; + +iff known latin_Jcircumflex: +beginchar(latin_Jcircumflex, 10u#,Asc_height#,0); +usep; +z0=(w-1.5u,h); +circumflex(0).low; +endchar; + +beginchar("K", 11u#, cap_height#,0); +hpos(1)(cap_stem,can); hpos(2)(cap_stem,can); hpos(4)(cap_stem,-can); hpos(6)(cap_stem,can); +x1l=u=x2l; y1=0; y2r=h; x4r=x6r=w-u; y4l=h; y6=0; x5l=.25[x2r,x2l]; y5l=.5y4; +penpos5(.9cap_stem/cosd(angle(z4l-z5l)),0); +filldraw z1l--z1r--z2r--z2l--cycle; +filldraw z4l--z5l--z6l--z6r--z5r--z4r--cycle; +penlabels(1,2,3,4,5,6); +savep; +endchar; + +iff known latin_Kcedilla: +beginchar(latin_Kcedilla, 11u#,cap_height#,.75desc_depth#-.5stem#); +usep; +z0=(.5w-u,.5stem); +cedilla(0); +endchar; + +beginchar("L", 10u#,cap_height#,0); +hpos(1)(cap_stem,0); hpos(2)(cap_stem,can); vpos(3)(cap_stem,can); +x1l=u=x2l; y1=0; y2r=h; y3l=0; x3r=w-u; +filldraw z3l--z1l--z2l--z2r--(x2r,y3r)--z3r--cycle; +penlabels(1,2,3); +savep; +endchar; + +iff known latin_Lacute: +beginchar(latin_Lacute, 10u#,Asc_height#,0); +usep; +z0=(2u+stem,h); +acute(0).low; +endchar; + +iff known latin_Lcaron: +beginchar(latin_Lcaron, 10u#,cap_height#,0); +usep; +z0=(stem+3u,h); +ac_caron(0); +endchar; + +iff known latin_Lstroke: +beginchar(latin_Lstroke, 11u#,cap_height#,0); +addto currentpicture also used_p shifted (u,0); +vpos(1)(stem,can); penpos2(stem,90); +y1=.65h; y2=.8h; x1l=.5u; x2=w-6u; +filldraw z1l--z2l--z2r--z1r--cycle; +endchar; + +iff known latin_Lcedilla: +beginchar(latin_Lcedilla, 10u#,cap_height#,.75desc_depth#-.5stem#); +usep; +z0=(.5w-u,.25stem); +cedilla(0); +endchar; + +iff known latin_Ldot: +beginchar(latin_Ldot, 10u#,cap_height#,0); +usep; +z0=(4u,.6h); +dot(0); +endchar; + +beginchar("M", 18u#,cap_height#,0); +numeric theta; +hpos(1)(cap_stem,can); hpos(2)(cap_stem,-can); +x1r=w-u; y1l=0=y2r; x2l=u; z3l=(.5w,0); y4r=y5r=h; .5[x4l,x5l]=x3; x5r=.85w-u; +theta:=angle(z1r-z5r); +penpos4(cap_stem/cosd(theta),90); penpos5(cap_stem/cosd(theta),90); +penpos3(cap_stem/cosd(angle(z5-z3l)),90); +z4'=z3l+whatever*(z4r-z3r)=z2r+whatever*(z4r-z2l); +z5'=z3l+whatever*(z5r-z3r)=z1l+whatever*(z5r-z1r); +filldraw z1r--z5r--z3r--z4r--z2l--z2r--z4'--z3l--z5'--z1l--cycle; +penlabels(1,2,3,4,5); labels(4',5'); +endchar; + +beginchar("N", 12u#,cap_height#,0); +numeric theta; +hpos(1)(cap_stem,can); hpos(2)(cap_stem,0); hpos(3)(cap_stem,0); hpos(4)(cap_stem,can); +x1l=w-x4r=u; x2=x1; x3=x4; y1l=y3=0; y2=y4r=h; +theta:=(angle(z2l-z3r)); +z3''=z3r+((cap_stem,0) rotated (theta-90)); z3'=whatever[z3'',(z2l)]=whatever[z4l,z3l]; +z2''=z2l+((cap_stem,0) rotated (theta+90)); z2'=whatever[z2'',(z3r)]=whatever[z1r,z2r]; +filldraw z1l--z1r--z2'--z3r--z4r--z4l--z3'--z2l--cycle; +penlabels(1,2,3,4); labels(2',2'',3',3''); +savep; +endchar; + +iff known latin_Ncaron: +beginchar(latin_Ncaron,12u#,Asc_height#,0); +usep; +z0=(.5w,h); +caron(0); +endchar; + +iff known latin_Nacute: +beginchar(latin_Nacute,12u#,Asc_height#,0); +usep; +z0=(.5w,h); +acute(0).low; +endchar; + +iff known latin_Ntilde: +beginchar(latin_Ntilde,12u#,Asc_height#,0); +usep; +z0=(.5w,h); +acc_tilde(0).low; +endchar; + +iff known latin_Ncedilla: +beginchar(latin_Ncedilla,12u#,cap_height#,.75desc_depth#-.5stem#); +usep; +z0=(u+.45stem,.5stem); +cedilla(0); +endchar; + +iff known latin_Eng: +beginchar(latin_Eng, 12u#,cap_height#,desc_depth#); +numeric theta; +hpos(1)(cap_stem,can); hpos(2)(cap_stem,0); hpos(3)(cap_stem,0); hpos(4)(cap_stem,can); +hpos(5)(cap_stem,can); +x1l=w-x4r=u; x2=x1; x3=x4; y1l=y3=0; y2=y4r=h; x5=x3; y5l=-d; +theta:=(angle(z2l-z3r)); +z3''=z3r+((cap_stem,0) rotated (theta-90)); z3'=whatever[z3'',(z2l)]=whatever[z4l,z3l]; +z2''=z2l+((cap_stem,0) rotated (theta+90)); z2'=whatever[z2'',(z3r)]=whatever[z1r,z2r]; +filldraw z1l--z1r--z2'--z3r--z4r--z4l--z3'--z2l--cycle; +filldraw z4l--z5l--z5r--z4r--cycle; +penlabels(1,2,3,4); labels(2',2'',3',3''); +endchar; + +beginchar("O", 16.5u#,cap_height#,0); +penpos10(cap_stem,0); penpos11(cap_stem,90); penpos12(cap_stem,180); penpos13(cap_stem,-90); +.5[z10,z12]=.5[z11,z13]; y13=.5cap_stem; x10+.5cap_stem=w-u; y10=y12; x11=x13; y11-y13=x10-x12; x12-.5cap_stem=u; +filldraw z10r{up}..{left}z11r..{down}z12r..{right}z13r..{up}z10r--z10l{down}..{left}z13l..{up}z12l..{right}z11l..{down}z10l--cycle; +savep; +endchar; + +iff known latin_Oacute: +beginchar(latin_Oacute,16.5u#,Asc_height#,0); +usep; +z0=(.5w+1.5u,h); +acute(0).low; +endchar; + +iff known latin_Ocircumflex: +beginchar(latin_Ocircumflex,16.5u#,Asc_height#,0); +usep; +z0=(.5w,h); +circumflex(0).low; +endchar; + +iff known latin_Oumlaut: +beginchar(latin_Oumlaut,16.5u#,.3[Asc_height#,cap_height#],0); +usep; +z0=(.5w,h-.6stem); +umlaut(0); +endchar; + +iff known latin_Ograve: +beginchar(latin_Ograve,16.5u#,Asc_height#,0); +usep; +z0=(.5w-1.5u,h); +grave(0); +endchar; + +iff known latin_Otilde: +beginchar(latin_Otilde,16.5u#,Asc_height#,0); +usep; +z0=(.5w+.5u,h); +acc_tilde(0).low; +endchar; + +iff known latin_Omacron: +beginchar(latin_Omacron,16.5u#,Asc_height#,0); +usep; +z0=(.5w,h); +macron(0); +endchar; + +iff known latin_Obreve: +beginchar(latin_Obreve,16.5u#,Asc_height#,0); +usep; +z0=(.5w,h); +breve(0); +endchar; + +iff known latin_Ohungarumlaut: +beginchar(latin_Ohungarumlaut,16.5u#,Asc_height#,0); +usep; +z0=(.5w+.8u,h); +H_umlaut(0).low; +endchar; + +beginchar("P", 11u#,cap_height#,0); +hpos(1)(cap_stem,can); hpos(2)(cap_stem,0); +x1l=u=x2l; y1=0; y2r=h; +filldraw z1l--z1r--z2r--z2l--cycle; +.5[z10,z12]=.5[z11,z13]; y11=h-.5cap_stem; x10+.5cap_stem=w-u; y10=y12; x11=x13; y11-y13=x10-x12; x12-.5cap_stem=2u; +penpos10(cap_stem,0); penpos11(cap_stem,90); penpos12(cap_stem,180); penpos13(cap_stem,-90); +penpos2'(cap_stem,90); penpos2''(cap_stem,270); +.5[y2'',y2']=y10; x2'=x2''=x2r; y2'r=y2r; +filldraw z2'r---z11r..{down}z10r..{left}z13r---z2''r--z2''l---z13l{right}..{up}z10l..{left}z11l---z2'l--cycle; +penlabels(1,2,10,11,12,13); +endchar; + +beginchar(latin_Thorn, 11u#,cap_height#,0); +hpos(1)(cap_stem,can); hpos(2)(cap_stem,0); +x1l=u=x2l; y1=0; y2r=h; +filldraw z1l--z1r--z2r--z2l--cycle; +.5[z10,z12]=.5[z11,z13]; y10=.55h; x10+.5cap_stem=w-u; y10=y12; x11=x13; y11-y13=x10-x12; x12-.5cap_stem=2u; +penpos10(cap_stem,0); penpos11(cap_stem,90); penpos12(cap_stem,180); penpos13(cap_stem,-90); +penpos2'(cap_stem,90); penpos2''(cap_stem,270); +.5[y2'',y2']=y10; x2'=x2''=x2r; y2'=y11; +filldraw z2'r---z11r..{down}z10r..{left}z13r---z2''r--z2''l---z13l{right}..{up}z10l..{left}z11l---z2'l--cycle; +penlabels(1,2,2',2'',10,11,12,13); +endchar; + +beginchar("Q", 16.5u#,cap_height#,.5desc_depth#); +penpos10(cap_stem,0); penpos11(cap_stem,90); penpos12(cap_stem,180); penpos13(cap_stem,-90); +.5[z10,z12]=.5[z11,z13]; y13=.5cap_stem; x10+.5cap_stem=w-u; y10=y12; x11=x13; y11-y13=x10-x12; x12-.5cap_stem=u; +filldraw z10r{up}..{left}z11r..{down}z12r..{right}z13r..{up}z10r--z10l{down}..{left}z13l..{up}z12l..{right}z11l..{down}z10l--cycle; +hpos(1)(cap_stem,can); hpos(2)(cap_stem,can); +y1l=-d; x1r=w-u; y2=.5x_height; z2=z1+whatever*(-1,1.5); +filldraw z1l--z2l--z2r--z1r--cycle; +penlabels(1,2); +endchar; + +beginchar("R", 11u#,cap_height#,0); +hpos(1)(cap_stem,can); hpos(2)(cap_stem,0); +x1l=u=x2l; y1=0; y2r=h; +filldraw z1l--z1r--z2r--z2l--cycle; +.5[z10,z12]=.5[z11,z13]; y11=h-.5cap_stem; x10+.5cap_stem=w-u; y10=y12; x11=x13; y11-y13=x10-x12; x12-.5cap_stem=2u; +z2'=z2r+.5cap_stem*down; x2'=x2''; .5[y2',y2'']=.5[y11,y13]; +penpos2'(cap_stem,90); penpos2''(cap_stem,270); penpos11(cap_stem,90); penpos10(cap_stem,0); penpos13(cap_stem,270); +hpos(3)(cap_stem,0); hpos(4)(cap_stem,can); +z3l=z2''l; x4r=w-u; y4l=0; +z0=(z4r--z3r) intersectionpoint (z13r--z2''r); +filldraw z2'r---z11r..{down}z10r..{left}z13r--- z0--z4r--z4l --z2''l---z13l..{up}z10l..z11l---z2'l--cycle; +penlabels(2',2'',3,4,10,11,13); labels(0); +savep; +endchar; + +iff known latin_Rcaron: +beginchar(latin_Rcaron,11u#,Asc_height#,0); +usep; +z0=(.45w,h); +caron(0).low; +endchar; + +iff known latin_Racute: +beginchar(latin_Racute,11u#,Asc_height#,0); +usep; +z0=(.45w,h); +acute(0).low; +endchar; + +iff known latin_Rcedilla: +beginchar(latin_Rcedilla,11u#,cap_height#,.75desc_depth#-stem#); +usep; +z0=(1.5u,stem); +cedilla(0); +endchar; + +beginchar("S", 12u#,cap_height#,0); +hpos(1)(cap_stem,0); penpos2(cap_stem,(-can+90)); vpos(3)(cap_stem,can); hpos(4)(cap_stem,0); penpos0(cap_stem,90); +x1r=w-u; y1=.5x_height; y4=h-.5x_height; x4l=u; +path p; +penpos10(cap_stem,0); penpos11(cap_stem,90); penpos12(cap_stem,0); penpos13(cap_stem,90); +.5[z10,z12]=.5[z11,z13]; y13=.5cap_stem; x10+.5cap_stem=w-u; y10=y12; +x11=x13; y11-y13=x10-x12; x13=.5w; x3=x12l; y3=.35x_height; +p:= z10{down}..{left}z13..{up}z12..{right}z11..cycle; +penpos20(cap_stem,0); penpos21(cap_stem,90); penpos22(cap_stem,0); penpos23(cap_stem,90); +.5[z20,z22]=.5[z21,z23]; y21=h-.5cap_stem; x20+.5cap_stem=w-u; y20=y22; +x21=x23; y21-y23=x20-x22; x23=.5w; x2r=x10r; y2r=h-.25x_height; +filldraw z3l..z13l{right}..{up}z1r--z1l{down}..{left}z13r..z3r--cycle; +filldraw z2l..z21l{left}..{down}z4r--z4l{up}..{right}z21r..z2r--cycle; +p:=z4r{down}..{down}z1r; z0=((.5w,0)--(.5w,h)) intersectionpoint p; +filldraw z4l{down}..z0l..{down}z1l--z1r{up}..z0r..{up}z4r--cycle; +penlabels(1,2,3,4,10,11,12,13,20,21,22,23); +savep; +endchar; + +iff known latin_Scaron: +beginchar(latin_Scaron,12u#,Asc_height#,0); +usep; +z0=(.55w,h); +caron(0).low; +endchar; + +iff known latin_Sacute: +beginchar(latin_Sacute,12u#,Asc_height#,0); +usep; +z0=(.6w,h); +acute(0).low; +endchar; + +iff known latin_Scedilla: +beginchar(latin_Scedilla,12u#,cap_height#,.75desc_depth#-.5stem#); +usep; +z0=(.45w,.5stem); +cedilla(0); +endchar; + +iff known latin_Scircumflex: +beginchar(latin_Scircumflex,12u#,Asc_height#,0); +usep; +z0=(.5w+.5u,h); +circumflex(0).low; +endchar; + +beginchar("T", 12u#, cap_height#, 0); +hpos(1)(cap_stem,can); penpos2(cap_stem,0); penpos3(cap_stem,90); vpos(4)(cap_stem,can) +z1=(.5w,0); z2=(x1,h-cap_stem); x3=w-x4l=w-u; y3=y4=h-.5cap_stem; +filldraw z1l--z1r--z2r--z3l--z3r--z4r--z4l--z2l--cycle; +%serif(3r,angle(z3l-z3r),0); serif(4r,angle(z4l-z4r),0); +savep; +endchar; + +iff known latin_Tcaron: +beginchar(latin_Tcaron,12u#,Asc_height#,0); +usep; +z0=(.5w,h); +caron(0).low; +endchar; + +iff known latin_Tcommaaccent: +beginchar(latin_Tcommaaccent,12u#,cap_height#,2.5u#); +usep; +y1r=-.5u; y2l=-d; x1r-x2l=2u; .5[x1r,x2l]=.5w-.5cap_stem; +hpos(2)(stem,-can); hpos(1)(cap_stem,-can); +filldraw (z1l--z1r--z2r--z2l--cycle); +endchar; + +iff known latin_Tbar: +beginchar(latin_Tbar,12u#,cap_height#,0); +usep; +vpos(1)(.75stem,can); vpos(2)(.75stem,0); +lft x1l=3u; rt x2=w-3u; y1=y2=x_height; +filldraw z1r--z2r--z2l--z1l--cycle; +penlabels(1,2); +endchar; + +beginchar("U", 13u#,cap_height#,0); +hpos(1)(cap_stem,0); hpos(2)(cap_stem,can); hpos(3)(cap_stem,0); hpos(4)(cap_stem,can); +x1r=x2r=w-u; y1=.5x_height=y3; y2r=y4r=h; x4l=x3l=u; +filldraw z1l--z1r--z2r--z2l--cycle; +filldraw z3l--z3r--z4r--z4l--cycle; +path p; +penpos10(cap_stem,0); penpos11(cap_stem,90); penpos12(cap_stem,0); penpos13(cap_stem,90); +.5[z10,z12]=.5[z11,z13]; y13=.5cap_stem; x10+.5cap_stem=w-u; y10=y12; +x11=x13; y11-y13=x10-x12; x13=.5w; +p:= z10{down}..{left}z13..{up}z12..{right}z11..cycle; +filldraw z3l{down}..z13l{right}..{up}z1r--z2r--z2l--z1l{down}..{left}z13r..{up}z3r--cycle; +penlabels(1,2,3,10,11,12,13); +savep; +endchar; + +iff known latin_Uacute: +beginchar(latin_Uacute,13u#,Asc_height#,0); +usep; +z0=(.5w+.5u,h); +acute(0).low; +endchar; + +iff known latin_Uring: +beginchar(latin_Uring,13u#, Asc_height#,0); +usep; +z0=(.5w,h); +ring(0).low; +endchar; + +iff known latin_Uumlaut: +beginchar(latin_Uumlaut,13u#, .3[Asc_height#,cap_height#],0); +usep; +z0=(.5w,h-.6stem); +umlaut(0); +endchar; + +iff known latin_Ugrave: +beginchar(latin_Ugrave,13u#, Asc_height#,0); +usep; +z0=(.5w,h); +grave(0).low; +endchar; + +iff known latin_Ucircumflex: +beginchar(latin_Ucircumflex,13u#, Asc_height#,0); +usep; +z0=(.5w,h); +circumflex(0).low; +endchar; + +iff known latin_Utilde: +beginchar(latin_Utilde,13u#, Asc_height#,0); +usep; +z0=(.5w,h); +acc_tilde(0).low; +endchar; + +iff known latin_Umacron: +beginchar(latin_Umacron,13u#, Asc_height#,0); +usep; +z0=(.5w,h); +macron(0); +endchar; + +iff known latin_Uhungarumlaut: +beginchar(latin_Uhungarumlaut,13u#, Asc_height#,0); +usep; +z0=(.5w+.75u,h); +H_umlaut(0).low; +endchar; + +iff known latin_Ubreve: +beginchar(latin_Ubreve,13u#, Asc_height#,0); +usep; +z0=(.5w,h); +breve(0); +endchar; + +iff known latin_Uogonek: +beginchar(latin_Uogonek,13u#, cap_height#,desc_depth#); +usep; +z0=(.5w+u,0); +ogonek(0); +endchar; + +beginchar("V", 13u#,cap_height#,0); +numeric theta; +hpos(1)(cap_stem,-can); hpos(2)(cap_stem,can); +x1r=w-u; y1l=h=y2r; x2l=u; z3l=(.5w,0); +theta:=90+angle(z1r-z3l); +penpos3(cap_stem/sind(theta),90); +filldraw z1l--z3r--z2r--z2l--z3l--z1r--cycle; +penlabels(1,2,3,4); +endchar; + +beginchar("W", 18u#,cap_height#,0); +numeric theta, wid; +wid=12u; +hpos(1)(cap_stem,-can); hpos(2)(cap_stem,can); +x1r=wid; y1l=h=y2r; x2l=u; z3l=(.5[x1,x2],0); x4=w-u; y4=y1r; +theta:=90+angle(z1r-z3l); +penpos3(cap_stem/sind(theta),90); +filldraw z1l--z3r--z2r--z2l--z3l--z1r--cycle; +filldraw (z1l--z3r--z2r--z2l--z3l--z1r--cycle) shifted (z4-z1r); +penlabels(1,2,3,4); +savep; +endchar; + +iff known latin_Wcircumflex: +beginchar(latin_Wcircumflex,18u#, Asc_height#,0); +usep; +z0=(.5w+.25u,h); +circumflex(0); +endchar; + +beginchar("X", 14u#,cap_height#,0); +numeric theta; +hpos(1)(cap_stem,-can); hpos(2)(cap_stem,can); +hpos(3)(cap_stem,-can); hpos(4)(cap_stem,can); +x1r=w-u=x4r; y1l=h=y2r; x2l=x3l=u; y3r=y4l=0; +filldraw z1l--z3l--z3r--z1r--cycle; +filldraw z2l--z4l--z4r--z2r--cycle; +penlabels(1,2,3,4); +endchar; + +beginchar("Y", 13u#,cap_height#,0); +hpos(1)(cap_stem,-can); hpos(2)(cap_stem,-can); hpos(3)(cap_stem,can); +x1r=w-u; y1l=h=y3r; x3l=u; y2r=0; x2l=3.5u; z4l=whatever[z1l,z2l]; y4l=.4h; +z4r=z4l+(cap_stem/sind(angle(z3l-z4l)),0) rotated (angle(z1l-z4l)-10); +filldraw z1l--z1r--z2r--z2l--cycle; +filldraw z3l--z3r--z4r--z4l--cycle; +penlabels(1,2,3,4); +savep; +endchar; + +iff known latin_Yacute: +beginchar(latin_Yacute,13u#,Asc_height#,0); +usep; +z0=(.5w,h); +acute(0).low; +endchar; + +iff known latin_Ycircumflex: +beginchar(latin_Ycircumflex,13u#,Asc_height#,0); +usep; +z0=(.5w,h); +circumflex(0).low; +endchar; + +iff known latin_Yumlaut: +beginchar(latin_Yumlaut,13u#,.3[Asc_height#,cap_height#],0); +usep; +z0=(.5w+.5u,h-.6stem); +umlaut(0); +endchar; + +beginchar("Z", 14u#,cap_height#,0); +numeric theta; +vpos(1)(cap_stem,can); vpos(2)(cap_stem,0); vpos(3)(cap_stem,0); vpos(4)(cap_stem,-can); +x1l=w-x4r=u; x1l=x3; x4r=x2; y1r=y2r=h; y4l=y3l=0; +theta:=(-angle(z2r-z3l)); +z3''=z3l+((0,cap_stem) rotated (theta-90)); z3'=whatever[z3'',(z2r)]=whatever[z4r,z3r]; +z2''=z2r+((0,cap_stem) rotated (theta+90)); z2'=whatever[z2'',(z3l)]=whatever[z1l,z2l]; +filldraw z1l--z2'--z3l--z4l--z4r--z3'--z2r--z1r--cycle; +penlabels(1,2,3,4); labels(2',2'',3',3''); +savep; +endchar; + +iff known latin_Zcaron: +beginchar(latin_Zcaron,14u#,Asc_height#,0); +usep; +z0=(.5w,h); +caron(0).low; +endchar; + +iff known latin_Zacute: +beginchar(latin_Zacute,14u#,Asc_height#,0); +usep; +z0=(.5w,h); +acute(0).low; +endchar; + +iff known latin_Zdotabove: +beginchar(latin_Zdotabove,14u#,.3[Asc_height#,cap_height#],0); +usep; +z0=(.5w,h-.6stem); +acc_dot(0); +endchar; + +"German sharp s"; +beginchar(oct"031", 10.5u#, cap_height#,0); +hpos(1)(stem,can); +z1l=(x12r,0); +.5[z10,z12]=.5[z11,z13]; y11=h-.5stem; x10+.5stem=w-2.5u; y10=y12; x11=x13; y11-y13=x10-x12; x12-.5stem=u; +penpos10(stem,0); penpos11(stem,90); penpos12(stem,180); vpos(13)(stem,can); +.5[z20,z22]=.5[z21,z23]; y21=y13; x20+.5stem=w-u; y20=y22; x21=x23; y23-.5stem=0; x22-.5stem=u; +penpos20(stem,0); penpos21(stem,90); penpos22(stem,180); penpos23(stem,90); vpos(2)(stem,can); +y2=y23; x2=.5[x23,x1l]; +filldraw z1l---z12r..{right}z11r..{down}z10r..{left}z13l--z13r{right}..z10l{up}..z11l{left}..z12l---z1r--cycle; +filldraw z13r{right}..{down}z20r..z23l---z2l--z2r---z23r..z20l{up}..{left}z13l--cycle; +penlabels(1,10,11,12,13,14,20,21,22,23); +endchar; + +"ae"; +beginchar(oct"032", 12.8u#,x_height#,0); +path p, op[]; numeric t[]; +penpos11(stem,90); penpos12(stem,0); penpos13(stem,90); +.5[z10,z12]=.5[z11,z13]; y13=.5stem; x10+.5stem=(w+u)-u; y10=y12; x11=x13; y11-y13=x10-x12; x12-.5stem=w-8u; +p:= z10{up}..{left}z11..{down}z12..{right}z13..cycle; +z1=point .5 of p; +z2=point 3.5 of p; +z3=((0,.25h)--(.75w,.25h)) intersectionpoint p; +penpos1(stem,(170-angle(direction.5 of p))); penpos2(stem,(100+angle(direction 3.5 of p))); +penpos3(stem,(90+angle(z3-z1))); z1''=(subpath (0,.5) of (z1r--z3r)) intersectionpoint p; z1'''=z1''+stem*dir(270+angle(z3-z1)); +z1'=(z1'''--z3l) intersectionpoint (z11l{right}..z1l); +filldraw z3r--z1r..{left}z11r..{down}z12l..{right}z13l..z2l--z2r..z13r{left}..z12r{up}..z11l{right}..z1'--z3l--cycle; +penlabels(3); labels(1'', 1'); +.5[z20,z22]=.5[z21,z23]; y23=.5stem; x20-x22=5.6u-stem; y20=y22; x21=x23; y21-y23=x20-x22; x22-.5stem=u; +penpos20(stem,0); penpos21(stem,90); penpos22(stem,180); penpos23(stem,-90); +op1:=z20r{up}..{left}z21r; +op2:=z21l{right}..{down}z20l; +op0:=z11{left}..{down}z12..{right}z13; +op3:=z11l{left}..{down}z12l..{right}z13l; +op4:=z11r{left}..{down}z12r..{right}z13r; +t1=xpart(op1 intersectiontimes op0); +t2=xpart(op2 intersectiontimes op0); +filldraw subpath (t1,1) of op1..{down}z22r..{right}z23r..z3r--z3l..{left}z23l..{up}z22l.. +subpath (0,t2) of op2--cycle; +z5r=op4 intersectionpoint op1; z5l=op3 intersectionpoint op2; +penpos6(stem,0); penpos7(stem,90); vpos(8)(stem,-can); +x6l=x5l; y6=.72h; x7=.5[x5l,x8l]; top y7r=h; y8=.9h; x8l=2u; +filldraw z5l--z5r--z6r{up}..{left}z7r..z8r--z8l..z7l{right}..{down}z6l--cycle; +endchar; + +"oe"; +beginchar(oct"033", 14.7u#,x_height#,0); +path p, op[]; numeric t[]; +penpos11(stem,90); penpos12(stem,0); penpos13(stem,90); +.5[z10,z12]=.5[z11,z13]; y13=.5stem; x10+.5stem=(w+u)-u; y10=y12; x11=x13; y11-y13=x10-x12; x12-.5stem=w-8u; +p:= z10{up}..{left}z11..{down}z12..{right}z13..cycle; +z1=point .5 of p; +z2=point 3.5 of p; +z3=((0,.25h)--(.75w,.25h)) intersectionpoint p; +penpos1(stem,(170-angle(direction.5 of p))); penpos2(stem,(100+angle(direction 3.5 of p))); +penpos3(stem,(90+angle(z3-z1))); z1''=(subpath (0,.5) of (z1r--z3r)) intersectionpoint p; z1'''=z1''+stem*dir(270+angle(z3-z1)); +z1'=(z1'''--z3l) intersectionpoint (z11l{right}..z1l); +filldraw z3r--z1r..{left}z11r..{down}z12l..{right}z13l..z2l--z2r..z13r{left}..z12r{up}..z11l{right}..z1'--z3l--cycle; +penlabels(3); labels(1'', 1'); +.5[z20,z22]=.5[z21,z23]; y23=.5stem; x20-x22=8u-stem; y20=y22; x21=x23; y21-y23=x20-x22; x22-.5stem=u; +penpos20(stem,0); penpos21(stem,90); penpos22(stem,180); penpos23(stem,-90); +op1:=z20r{up}..{left}z21r; +op2:=z21l{right}..{down}z20l; +op0:=z11{left}..{down}z12; +t1=xpart(op1 intersectiontimes op0); +t2=xpart(op2 intersectiontimes op0); +filldraw subpath (t1,1) of op1..{down}z22r..{right}z23r..z3r--z3l..{left}z23l..{up}z22l.. +subpath (0,t2) of op2--cycle; +endchar; + +"oslash"; +beginchar(oct"034", 10u#,x_height#,0); +.5[z10,z12]=.5[z11,z13]; y13=.5stem; x10+.5stem=w-u; y10=y12; x11=x13; y11-y13=x10-x12; x12-.5stem=u; +penpos10(stem,0); penpos11(stem,90); penpos12(stem,180); penpos13(stem,-90); +filldraw z10r{up}..{left}z11r..{down}z12r..{right}z13r..{up}z10r--z10l{down}..{left}z13l..{up}z12l..{right}z11l..{down}z10l--cycle; +hpos(1)(stem,can); hpos(2)(stem,can); +y1l=0; y2r=h; x1l=u; x2r=w-u; +filldraw z1l--z2l--z2r--z1r--cycle; +endchar; + +"AE"; +beginchar(oct"035", 18u#,cap_height#,0); +numeric theta; +hpos(1)(cap_stem,0); hpos(2)(cap_stem,0); vpos(3)(cap_stem,-can); penpos4(cap_stem,90); vpos(5)(cap_stem,0); vpos(6)(cap_stem,can); +x1l=8u=x2l; y1=y6l=0; y2r=h; y3r=h; x3l=x6r=w-u; x2r=x4; y4=y5=.8x_height; x5r=.75[x2r,x3r]; +filldraw z1l--z2l--z3r--z3l--(x2r,y3l)--z4r--z5r--z5l--z4l--(x1r,y6r)--z6r--z6l--cycle; +hpos(7)(cap_stem,-can); +y7r=0; x7l=u; z8r=(x1l,h); +theta:=90+angle(z8r-z7l); +penpos8(cap_stem/sind(theta),90); +filldraw z8r--z7l--z7r--z8l--cycle; +y14r-y14l=cap_stem; y15r=y14r; y15l=y14l; .5[y14r,y14l]=y4; +x14r=x14l=x1l; z15l=whatever[z8,z7]; z15r=whatever[z8,z7]; +filldraw z14r--z15r--z15l--z14l--cycle; +penlabels(1,2,3,4,5,6,7,8); +endchar; + +"OE"; +beginchar(oct"036", 18u#,cap_height#,0); +numeric theta; +hpos(1)(cap_stem,0); hpos(2)(cap_stem,0); vpos(3)(cap_stem,-can); penpos4(cap_stem,90); vpos(5)(cap_stem,0); vpos(6)(cap_stem,can); penpos7(cap_stem,270); penpos8(cap_stem,0); penpos9(cap_stem,90); +x1l=8u=x2l; y1=y6l=0; y2r=h; y3r=h; x3l=x6r=w-u; x2r=x4; y4=y5=.5h; x5r=.75[x2r,x3r]; +z7l=z2l; z9l=z1l; x8l=u; y8l=.5h; +filldraw z1l--z2l--z3r--z3l--(x2r,y3l)--z4r--z5r--z5l--z4l--(x1r,y6r)--z6r--z6l--cycle; +filldraw z7l{left}..{down}z8l..{right}z9l--z9r{left}..{up}z8r..{right}z7r--cycle; +penlabels(1,2,3,4,5,6,7,8,9); +endchar; + +"Oslash"; +beginchar(oct"037", 16.5u#,cap_height#,0); +penpos10(cap_stem,0); penpos11(cap_stem,90); penpos12(cap_stem,180); penpos13(cap_stem,-90); +.5[z10,z12]=.5[z11,z13]; y13=.5cap_stem; x10+.5cap_stem=w-u; y10=y12; x11=x13; y11-y13=x10-x12; x12-.5cap_stem=u; +filldraw z10r{up}..{left}z11r..{down}z12r..{right}z13r..{up}z10r--z10l{down}..{left}z13l..{up}z12l..{right}z11l..{down}z10l--cycle; +hpos(1)(stem,can); hpos(2)(stem,can); +y1l=0; y2r=h; x1l=u; x2r=w-u; +filldraw z1l--z2l--z2r--z1r--cycle; +endchar; + +beginchar("@", asc_height#+2u#, asc_height#,0); +z0=(.5w,.5h); +italic_a(0)(.4w); +penpos20(stem,0); penpos21(stem,90); penpos22(stem,180); vpos(23)(stem,-can); +penpos1(stem,90); z1l=(.5[x14r,x20l],y13r); +.5[z20,z22]=.5[z21,z23]; y23=.5stem; x20+.5stem=w-u; y20=y22; x21=x23; y21-y23=x20-x22; x22-.5stem=u; +filldraw z14l{down}..{right}z1l..z20r{up}..{left}z21r..{down}z22r..{right}z23l--z23r{left}..{up}z22l..{right}z21l +..{down}z20l..z1r{left}..{up}z14r--cycle; +penlabels(1,10,11,12,13,14,15,20,21,22,23); +endchar; + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Greek uppercase +beginchar(0, 10u#,cap_height#,0);%Gamma +hpos(1)(cap_stem,can); hpos(2)(cap_stem,0); vpos(3)(cap_stem,can); +x1l=u=x2l; y1=0; y2r=h; y3r=h; x3r=w-u; +filldraw z1r--z1l--z2l--z3r--z3l--(x2r,y3l)--cycle; +penlabels(1,2,3); +endchar; + +beginchar(1, 15u#,cap_height#,0);%Delta +numeric theta; +hpos(1)(cap_stem,0); hpos(2)(cap_stem,0); +penpos4(cap_stem,90); penpos5(cap_stem,90); +x1r=w-u; y1l=0=y2r; x2l=u; z3r=(.5w,h); +theta:=90+angle(z1r-z3r); +penpos3(cap_stem/sind(theta),90); +z4l=z1l; z5l=z2r; +filldraw z1r--z3r--z2l--z2r--z3l--z1l--cycle; +filldraw z4r--z5r--z5l--z4l--cycle; +penlabels(1,2,3,4,5); +endchar; + +beginchar(2, 16.5u#,cap_height#,0);%Theta +penpos10(cap_stem,0); penpos11(cap_stem,90); penpos12(cap_stem,180); penpos13(cap_stem,-90); +.5[z10,z12]=.5[z11,z13]; y13=.5cap_stem; x10+.5cap_stem=w-u; y10=y12; x11=x13; y11-y13=x10-x12; x12-.5cap_stem=u; +vpos(5)(cap_stem,can); vpos(6)(cap_stem,0); +.5[x5l,x6r]=.5w; y5=y6=.5h; x6r=.65w; +filldraw z10r{up}..{left}z11r..{down}z12r..{right}z13r..{up}z10r--z10l{down}..{left}z13l..{up}z12l..{right}z11l..{down}z10l--cycle; +filldraw z5l--z6l--z6r--z5r--cycle; +endchar; + +beginchar(3, 13u#,cap_height#,0);%Lambda +numeric theta; +hpos(1)(cap_stem,can); hpos(2)(cap_stem,-can); +x1r=w-u; y1l=0=y2r; x2l=u; z3r=(.5w,h); +theta:=90+angle(z1r-z3r); +penpos3(cap_stem/sind(theta),90); +filldraw z1r--z3r--z2l--z2r--z3l--z1l--cycle; +penlabels(1,2,3,4,5); +endchar; + +beginchar(4, 11u#,cap_height#,0); +vpos(1)(cap_stem,can); vpos(2)(cap_stem,0); +vpos(3)(cap_stem,0); vpos(4)(cap_stem,-can); +vpos(5)(cap_stem,0); vpos(6)(cap_stem,0); +x1l=u=x3l; x2r=x4l=w-u; y1r=y2r=h; y3l=y4l=0; +.5[x5l,x6r]=.5w; y5=y6=x_height; x6r=.75w; +filldraw z1l--z2l--z2r--z1r--cycle; +filldraw z3l--z4l--z4r--z3r--cycle; +filldraw z5l--z6l--z6r--z5r--cycle; +penlabels(1,2,3,4,5,6); +endchar; + +beginchar(5, 13.5u#, cap_height#, 0);%Pi +hpos(1)(cap_stem,can); penpos2(cap_stem,0); penpos3(cap_stem,90); vpos(4)(cap_stem,can) +z1l=(2.5u,0); z2=(x1,h-cap_stem); x3=w-x4l=w-u; y3=y4=h-.5cap_stem; +filldraw z1l--z1r--z2r--z2l--cycle; +filldraw (z1l--z1r--z2r--z2l--cycle) shifted (w-2x1,0); +filldraw z3l--z3r--z4r--z4l--cycle; +penlabels(1,2,3,4); +endchar; + +beginchar(6,14u#, cap_height#,0);%Sigma +vpos(1)(cap_stem,can); vpos(5)(cap_stem,-can); penpos3(cap_stem,180); +x1r=x5l=w-u; y1r=y2r=h; y4r=y5l=0; y3=.5h; x3=.65w; x2r=x4r=u; y2l=y1l; y4l=y5r; +z4'=z4r+((cap_stem,0) rotated (angle((z3r-z4r))-90)); +z2'=z2r+((cap_stem,0) rotated (angle((z3r-z2r))+90)); +z4l=z4'+whatever*(z3r-z4r); z2l=z2'+whatever*(z3r-z2r); +filldraw z1r--z2r--z3r--z4r--z5l--z5r--z4l--z3l--z2l--z1l--cycle; +penlabels(1,2,3,4,5); labels(2',4'); +endchar; + +beginchar(7,12u#,cap_height#,0); +path lp, rp; +numeric t[]; +vpos(1)(cap_stem,-can); penpos2(cap_stem,0); hpos(3)(cap_stem,can); vpos(4)(cap_stem,0); +x1r=u=w-x4r; x2=x3=.5w; y1r=y4r=h; y2=x_height; y3l=0; +lp:=z2r{up}..{left}z1r; +rp:=z2l{up}..{right}z4r; +(t2,t1)=lp intersectiontimes rp; +z2'=point t1 of lp; +filldraw z1l{right}..z2l---z3l--z3r---z2r..{right}z4l--subpath (0,1-t1) of (reverse rp)--z2'--subpath (t2,1) of lp --cycle; +penlabels(1,2,3); +endchar; + +beginchar(8, 13u#,cap_height#,0);%Phi +penpos10(cap_stem,0); penpos11(cap_stem,90); penpos12(cap_stem,180); penpos13(cap_stem,-90); +hpos(1)(cap_stem,can); hpos(2)(cap_stem,can); +x1=x2=.5w; y1l=0; y2r=h; +.5[z10,z12]=.5[z11,z13]=(.5w,.5h); x10+.5cap_stem=w-u; y10=y12; x11=x13; y11-y13=.75(x10-x12); %x12-.5cap_stem=u; +filldraw z10r{up}..{left}z11r..{down}z12r..{right}z13r..{up}z10r--z10l{down}..{left}z13l..{up}z12l..{right}z11l..{down}z10l--cycle; +filldraw z1l--z2l--z2r--z1r--cycle; +endchar; + +beginchar(9, 13u#,cap_height#,0);%Psi +hpos(10)(cap_stem,can); penpos11(cap_stem,90); hpos(12)(cap_stem,can); penpos13(cap_stem,-90); +hpos(1)(cap_stem,can); hpos(2)(cap_stem,can); +x1=x2=.5w; y1l=0; y2r=h; +.5[z10,z12]=.5[z11,z13]; x10+.5cap_stem=w-u; y10r=y12r=h; x11=x13; y11-y13=1.35(x10-x12); .5[x10,x12]=x1; +filldraw z12l{down}..{right}z13r..{up}z10r--z10l{down}..{left}z13l..{up}z12r--cycle; +filldraw z1l--z2l--z2r--z1r--cycle; +endchar; + +beginchar(10, 14u#,cap_height#,0);%Omega +penpos10(cap_stem,0); penpos11(cap_stem,90); penpos12(cap_stem,180); penpos13(cap_stem,-90); +.5[z10,z12]=.5[z11,z13]; y11=h-.5cap_stem; x10+.5cap_stem=w-u; y10=y12; x11=x13; y11-y13=.9(x10-x12); x12-.5cap_stem=u; +hpos(1)(cap_stem,can); hpos(2)(cap_stem,can); +penpos3(cap_stem,0); penpos4(cap_stem,0); +y1l=y2l=0; .5[x1,x2]=.5w; x2-x1=.2w; x3=x1; x4=x2; +y3=y4=.3y13; +filldraw z2r--z4r{up}..z10r{up}..{left}z11r..{down}z12r..{down}z3l--z1l--z1r--z3r{up}..{up}z12l..{right}z11l..{down}z10l..{down}z4l--z2l--cycle; +endchar; + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Digits +beginchar("0", fig_width#,cap_height#,0); +penpos10(stem,0); penpos11(stem,90); penpos12(stem,180); penpos13(stem,-90); +.5[z10,z12]=.5[z11,z13]; y13=.5stem; y11=h-.5stem; x10+.5stem=w-u; y10=y12; x11=x13; x12-.5stem=u; +filldraw z10r{up}..{left}z11r..{down}z12r..{right}z13r..{up}z10r--z10l{down}..{left}z13l..{up}z12l..{right}z11l..{down}z10l--cycle; +endchar; + +beginchar("1", fig_width#,cap_height#,0); +numeric theta; +hpos(1)(stem,can); hpos(3)(stem,-can); +x1r=w-u; y1l=0; y3l=.6h; x3l=u; z2r=(w-u,h); +theta:=(angle(z2r-z3l)); +z2'=z2r+((stem,0) rotated (theta-90)); +z2l=whatever[z2',z3r]=whatever[z1l,z2r-(stem,0)]; +filldraw z1r--z2r--z3l--z3r--z2l--z1l--cycle; +penlabels(1,2,3); labels(2'); +endchar; + +beginchar("2", fig_width#,cap_height#,0); +numeric theta; +vpos(1)(stem,can); +x1r=w-u; y1l=0; z2l=(u,0); y2r=y1r; +.5[z10,z12]=.5[z11,z13]; y11=h-.5stem; x10+.5stem=w-u; y10=y12; x11=x13; y11-y13=x10-x12; x12-.5stem=u; +penpos10(stem,0); penpos11(stem,90); penpos12(stem,180); penpos13(stem,-90); penpos10'(stem,0); +y10'=y10; x10'r=w; +theta:=angle(z10'l-z2l); +z2'=z2l+((stem,0) rotated (theta-90)); +z2r=whatever[z2',z10'r]; +y3l=y3r=y13; z3=.5[z3l,z3r]; +z3l=whatever[z2l,z10'l]; z3r=whatever[z2r,z10'r]; +penpos4(stem,180+theta); z4=z13; +filldraw z1r--z2r---z3r..z10r{up}..{left}z11r..{down}z12r..{right}z4r--z4l{left}..z12l..{right}z11l..{down}z10l..z3l---z2l--z1l--cycle; +penlabels(1,2,3,4,10,10',11,12,13); labels(2'); +endchar; + +beginchar("3", fig_width#, cap_height#,0); +.5[z10,z12]=.5[z11,z13]; y11=h-.5stem; x10+.5stem=w-u; y10=y12; x11=x13; y11-y13=x10-x12; x12-.5stem=u; +penpos10(stem,0); penpos11(stem,90); hpos(12)(stem,-can); vpos(13)(stem,can); +.5[z20,z22]=.5[z21,z23]; y21=y13; x20+.5stem=w-u; y20=y22; x21=x23; y23-.5stem=0; x22-.5stem=u; +penpos20(stem,0); penpos21(stem,90); hpos(22)(stem,can); penpos23(stem,90); vpos(2)(stem,can); +filldraw z12l{up}..{right}z11r..{down}z10r..{left}z13l--z13r{right}..z10l{up}..z11l{left}..{down}z12r--cycle; +filldraw z13r{right}..{down}z20r..{left}z23l..{up}z22l--z22r{down}..{right}z23r..z20l{up}..{left}z13l--cycle; +penlabels(10,11,12,13,14,20,21,22,23); +endchar; + +beginchar("4", fig_width#,cap_height#,0); +numeric theta; +hpos(1)(stem,can); penpos4(stem,90); +x1r=w-2.5u; y1l=0; y3l=.7x_height; x3l=u; z2r=(x1r,h); y4l=y3l; x4=w-u; y3r=y4r; +theta:=(angle(z2r-z3l)); +z2'=z2r+((stem,0) rotated (theta-90)); +z2l=z2'+whatever*(z3l-z2r)=whatever[z1l,z2r-(stem,0)]; +z3r=whatever[z2l,z2']; +filldraw z1r--z2r--z3l--z4l--z4r--z3r--z2l--z1l--cycle; +penlabels(1,2,3,4); labels(2'); +endchar; + +beginchar("5", fig_width#,cap_height#,0); +path op[]; numeric t[]; +vpos(1)(stem,can); +x1r=w-u; y1r=h; y2r=h; y2l=y1l; x2r=u; x2l=x2r+stem; +.5[z10,z12]=.5[z11,z13]; y13=.5stem; x10+.5stem=w-u; y10=y12; x11=x13; y11-y13=1(x10-x12); x12-.5stem=-.5u; +penpos10(stem,0); penpos11(stem,90); penpos12(stem,180); penpos13(stem,-90); +op1:=z11r{left}..{down}z12r; +op2:=z12l{up}..{right}z11l; +op3:=z2r--(x2r,0); +op4:=z2l--(x2l,0); +op5:=.5[z2l,z2r]--(.5[x2l,x2r],0); +op6:=z13{left}..{up}z12; +t1=xpart (op1 intersectiontimes op4); t2=xpart (op2 intersectiontimes op3); +z4=op5 intersectionpoint op6; +z3=op2 intersectionpoint op3; +op7:=z4--z4+w*(cosd(can),sind(can)); +op8:=z4--z4-w*(cosd(can),sind(can)); +op9:=z12r{down}..{right}z13r; +op10:=z13l{left}..{up}z12l; +filldraw z1r--z2r-- subpath (t2,1) of op2..{down}z10l..{left}z13l--subpath (0, xpart (op10 intersectiontimes op7)) of op10-- subpath (xpart (op9 intersectiontimes op8),1) of op9 --z13r{right}..{up}z10r..subpath (0,t1) of op1--z2l--z1l--cycle; +penlabels(1,2,10,11,12,13); labels(3); +endchar; + +beginchar("6", fig_width#,cap_height#,0); +vpos(1)(stem,-can); +x1=.65w; y1r=h; +.5[z10,z12]=.5[z11,z13]; y13=.5stem; x10+.5stem=w-u; y10=y12; x11=x13; y11-y13=1.2(x10-x12); x12-.5stem=u; +penpos10(stem,0); penpos11(stem,90); penpos12(stem,180); penpos13(stem,-90); +filldraw z10r{up}..{left}z11r..{down}z12r..{right}z13r..{up}z10r--z10l{down}..{left}z13l..{up}z12l..{right}z11l..{down}z10l--cycle; +filldraw z12r{up}..z1r--z1l..{down}z12l--cycle; +penlabels(1,10,11,12,13); +endchar; + +beginchar("7", fig_width#,cap_height#,0); +numeric theta; +hpos(1)(stem,can); vpos(3)(stem,can); +x1=.5w; y1l=0; x3l=u; y3r=h; y2r=h; x2r=w-u; y2l=y3l; +theta:=(angle(z2r-z1r)); +z2'=z2r+((-stem,0) rotated (theta-90)); +z2l=whatever[z2',z1l]; +filldraw z1r--z2r--z3r--z3l--z2l--z1l--cycle; +penlabels(1,2,3); +endchar; + +beginchar("8", fig_width#,cap_height#,0); +.5[z10,z12]=.5[z11,z13]; y13=.5stem; x10+.5stem=w-u; y10=y12; x11=x13; y11-y13=x10-x12; x12-.5stem=u; +penpos10(stem,0); penpos11(stem,90); penpos12(stem,180); penpos13(stem,-90); +filldraw z10r{up}..{left}z11r..{down}z12r..{right}z13r..{up}z10r--z10l{down}..{left}z13l..{up}z12l..{right}z11l..{down}z10l--cycle; +filldraw (z10r{up}..{left}z11r..{down}z12r..{right}z13r..{up}z10r--z10l{down}..{left}z13l..{up}z12l..{right}z11l..{down}z10l--cycle) shifted (z11-z13); +endchar; + +beginchar("9", fig_width#,cap_height#,0); +vpos(1)(stem,-can); +x1=.35w; y1l=0; +.5[z10,z12]=.5[z11,z13]; y11=h-.5stem; x10+.5stem=w-u; y10=y12; x11=x13; y11-y13=1.2(x10-x12); x12-.5stem=u; +penpos10(stem,0); penpos11(stem,90); penpos12(stem,180); penpos13(stem,-90); +filldraw z10r{up}..{left}z11r..{down}z12r..{right}z13r..{up}z10r--z10l{down}..{left}z13l..{up}z12l..{right}z11l..{down}z10l--cycle; +filldraw z10r{down}..z1l--z1r..{up}z10l--cycle; +penlabels(1,10,11,12,13); +endchar; + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Punctation, accents, etc. +beginchar(".",2u#+dot_height#, 2dot_height#/1.2,0); +z0=(.5w,dot_height/1.2); +dot(0); +endchar; + +beginchar("-", 6u#, x_height#,0); +vpos(1)(stem,can); penpos2(stem,90); +y1=y2=.65h; x1l=u; x2=w-u; +filldraw z1l--z2l--z2r--z1r--cycle; +endchar; + +iff known latin_hyphen_alt: +beginchar(latin_hyphen_alt, 6u#, x_height#,0); +vpos(1)(stem,can); penpos2(stem,90); +y1=y2=.65h; x1l=u; x2=w-u; +filldraw z1l--z2l--z2r--z1r--cycle; +endchar; + +beginchar(oct"173", 9u#, x_height#,0); +vpos(1)(stem,can); penpos2(stem,90); +y1=y2=.65h; x1l=u; x2=w-u; +filldraw z1l--z2l--z2r--z1r--cycle; +endchar; + +beginchar(oct"174", 12u#, x_height#,0); +vpos(1)(stem,can); penpos2(stem,90); +y1=y2=.65h; x1l=u; x2=w-u; +filldraw z1l--z2l--z2r--z1r--cycle; +endchar; + +beginchar("+", 10u#, v_center(8u#)); +vpos(1)(stem,can); penpos2(stem,90); hpos(3)(stem,can); hpos(4)(stem,can); +y1=y2=math_axis; x1l=u; x2=w-u; x3=x4=.5w; y3r=h; y4l=-d; +filldraw z1l--z2l--z2r--z1r--cycle; +filldraw z3l--z4l--z4r--z3r--cycle; +endchar; + +beginchar("*", 8u#, cap_height#,0); +hpos(1)(stem,can); hpos(2)(stem,can); +hpos(3)(stem,-45+can); hpos(4)(stem,-45+can); +hpos(5)(stem,45-can); hpos(6)(stem,45-can); +x1=x2=x0=.5w; y1r=h; y2l=h-6u; .5[y1,y2]=y0; +.5[z3l,z4r]=z0=.5[z5r,z6l]; x3r=w-u=x6r; cosd(45)*(x3r-x4l)=y3l-y4r; +cosd(45)*(x5l-x6r)=y6l-y5r; +filldraw z1l--z2l--z2r--z1r--cycle; +filldraw z3l--z4l--z4r--z3r--cycle; +filldraw z5l--z6l--z6r--z5r--cycle; +penlabels(1,2,3,4,5,6); +endchar; + +beginchar("&", 14u#, cap_height#,0); +vpos(1)(stem,-can); hpos(2)(stem,can); penpos3(stem,210); +y1l=0; x1r=w-u=x2r+u; y2l=x_height; z3=z11l; +.5[z10,z12]=.5[z11,z13]; y13=.5stem; x10+.5stem=.65w; y10=y12; x11=x13; y11-y13=x10-x12; x12-.5stem=u; +penpos10(stem,0); penpos11(stem,90); penpos12(stem,180); penpos13(stem,-90); +.5[z20,z22]=.5[z21,z23]; y21=h-.5stem; .5[x20,x22]=.5w-u; y20=y22; x21=x23; y21-y23=x20-x22; x20-x22=.3w+u; +penpos20(stem,0); penpos21(stem,90); penpos22(stem,180); penpos23(stem,-90); +filldraw z2r{down}..z13r{left}..{up}z12r..{right}z11r..{up}z20l..{left}z21l..{down}z22l..z3l..{right}z1r--z1l{left}..z3r..z22r{up}..{right}z21r..{down}z20r..{left}z11l..{down}z12l..{right}z13l..{up}z2l--cycle; +penlabels(1,2,3,10,11,12,13,20,21,22,23); +endchar; + +beginchar("'",2.5u#,asc_height#,0); +z0=(.5w,h); +quota(0); +endchar; + +beginchar("`",2.5u#,asc_height#,0); +z0=(.5w,h); +quota(0).upper; +endchar; + +beginchar(34,7u#,asc_height#,0); +.5[z1,z2]=(.5w,h); y1=y2; x1=2u; +quota(1); quota(2); +endchar; + +beginchar(oct"134",7u#,asc_height#,0); +.5[z1,z2]=(.5w,h); y1=y2; x1=2u; +quota(1).upper; quota(2).upper; +endchar; + +iff known sign_czech_closing: +beginchar(sign_czech_closing,7u#,asc_height#,0); +.5[z1,z2]=(.5w,h); y1=y2; x1=2u; +quota(1).upper; quota(2).upper; +endchar; + +iff known sign_CE_opening: +beginchar(sign_CE_opening,7u#,1.5u#,2u#); +.5[z1,z2]=(.5w,h); y1=y2; x1=2u; +quota(1); quota(2); +endchar; + +"Grave accent"; +beginchar(oct"022",6u#,asc_height#,0); +z0=(.5w,h); +grave(0); +endchar; + +"Acute accent"; +beginchar(oct"023",6u#,asc_height#,0); +z0=(.5w,h); +acute(0); +endchar; + +"Caron"; +beginchar(oct"024",6u#,asc_height#,0); +z0=(.5w,h); +caron(0); +endchar; + + +"Breve"; +beginchar(oct"025",7u#,asc_height#,0); +z0=(.5w,h); +breve(0); +endchar; + +"Macron (bar)"; +beginchar(oct"026",6u#,asc_height#,0); +z0=(.5w,h); +macron(0); +endchar; + +"Ring accent"; +beginchar(oct"027",6u#,asc_height#,0); +z0=(.5w,h); +ring(0); +endchar; + +"Circumflex"; +beginchar(oct"136",6u#,asc_height#,0); +z0=(.5w,h); +circumflex(0); +endchar; + +"Dot accent"; +beginchar(oct"137",6u#,asc_height#,0); +z0=(.5w,h-.6stem); +acc_dot(0); +endchar; + +"Hungarian umlaut"; +beginchar(oct"175",6u#,asc_height#,0); +z0=(.5w,h); +H_umlaut(0); +endchar; + +"Tilde"; +beginchar(oct"176",9u#,asc_height#,0); +z0=(.5w,h); +tilde(0) +endchar; + +"Umlaut"; +beginchar(oct"177",6u#,asc_height#,0); +z0=(.5w,h-.6stem); +umlaut(0); +endchar; + +iff known sign_ogonek: +"Ogonek"; +beginchar(sign_ogonek,6u#,0,desc_depth#); +z0=(.5w+.7u,0); ogonek(0); +endchar; + +"Cedilla"; +beginchar(oct"030",6u#,0,.75desc_depth#); +z0=(.5w,0); cedilla(0); +penlabels(1,2,3); +endchar; + +beginchar(",",4u#,dot_height#,2u#); +y1r=h; y2l=-d; x1r=w-u; x2l=u; +hpos(2)(stem,-can); hpos(1)(cap_stem,-can); +filldraw (z1l--z1r--z2r--z2l--cycle); +endchar; + +beginchar(";",4u#,x_height#,2u#); +y1r=1.5dot_height; y2l=-d; x1r=w-u; x2l=u; +hpos(2)(stem,-can); hpos(1)(cap_stem,-can); +filldraw (z1l--z1r--z2r--z2l--cycle); +z0=(x1,h-.5dot_height); dot(0); +endchar; + +beginchar(":",4u#,x_height#,0); +.5[y1,y2]=.5h; x1=x2=.5w; y1=.75dot_height; +dot(1); dot(2); +endchar; + +beginchar("/", 7u#, cap_height#,0); +hpos(1)(cap_stem,can); hpos(2)(cap_stem,can); +x1l=u; x2r=w-u; y1l=0; y2r=h; +path slash_path; +slash_path:=z1l--z2l--z2r--z1r--cycle; +filldraw slash_path; +endchar; + +beginchar("=", 10u#, v_center(7u#)); +vpos(1)(stem,can); penpos2(stem,90); +x1l=u; x2=w-u; y1=y2; .5[y1,y3]=math_axis; y1-y3=2dot_height; +filldraw z1l--z2l--z2r--z1r--cycle; +filldraw (z1l--z2l--z2r--z1r--cycle) shifted (0,y3-y1); +endchar; + +beginchar("#", 11u#, cap_height#, 0); +vpos(1)(stem,can); penpos2(stem,90); +hpos(3)(cap_stem,can); hpos(4)(cap_stem,can); +x1l=u; x2=w-u; y1=y2; .5[y1,y1']=.5h; y1-y1'=2dot_height; +x3l=u; x4r=.5w+u; y3l=0; y4r=h; +filldraw z3l--z4l--z4r--z3r--cycle; +filldraw (z3l--z4l--z4r--z3r--cycle) shifted (w-u-x4r,0); +filldraw z1l--z2l--z2r--z1r--cycle; +filldraw (z1l--z2l--z2r--z1r--cycle) shifted (0,y1'-y1); +endchar; + +beginchar("$",8u#,cap_height#,par_depth#); +penpos10(stem,0); penpos11(stem,90); hpos(12)(stem,can); penpos13(stem,270); +.5[z10,z12]=.5[z11,z13]; y13=.5stem; x10+.5stem=(w-u); y10=y12; x11=x13; y11-y13=x10-x12; x12-.5stem=u; +hpos(20)(stem,can); penpos21(stem,90); penpos22(stem,180); penpos23(stem,270); +penpos15(stem,45); z15=.5[z23,z11]; +.5[z20,z22]=.5[z21,z23]; y21=h-1.5stem; x20+.5stem=(w-u); y20=y22; x21=x23; y21-y23=x20-x22; x22-.5stem=u; +filldraw z20r{up}..{left}z21r..{down}z22r..z15l..{down}z10l..{left}z13l..{up}z12r--z12l{down}..{right}z13r..z10r{up} +..z15r..z22l{up}..{right}z21l..{down}z20l--cycle; +hpos(1)(stem,can); hpos(2)(stem,can); +x1=x2=.5w; y1r=h; y2l=-d; +filldraw z1l--z2l--z2r--z1r--cycle; +penlabels(10,11,12,13,20,21,22,23); +endchar; + +beginchar("%", 11u#, cap_height#, 0); +numeric circ; circ=3u; +.5[z1,z2]=.5(w,h); x1-.5circ-.5stem=u; y1+.5circ+.5stem=h; +kruh(1)(circ); kruh(2)(circ); +hpos(3)(cap_stem,can); hpos(4)(cap_stem,can); +y3l=0; y4r=h; x4r=w-u; x3l=u ; +filldraw z4l--z3l--z3r--z4r--cycle; +endchar; + +iff known sign_per_thousand: +beginchar(sign_per_thousand, 15u#, cap_height#, 0); +numeric circ; circ=3u; +.5[z1,z2]=.5(10u,h); x1-.5circ-.5stem=u; y1+.5circ+.5stem=h; +y2'=y2; x2'=w-u-.5circ-.5stem; +kruh(1)(circ); kruh(2)(circ); kruh(2')(circ); +hpos(3)(cap_stem,can); hpos(4)(cap_stem,can); +y3l=0; y4r=h; x4r=10u; x3l=u ; +filldraw z4l--z3l--z3r--z4r--cycle; +endchar; + +iff known sign_per_ten_thousand: +beginchar(sign_per_ten_thousand, 19u#, cap_height#, 0); +numeric circ; circ=3u; +.5[z1,z2]=.5(10u,h); x1-.5circ-.5stem=u; y1+.5circ+.5stem=h; +y2'=y2''=y2; x2''=w-u-.5circ-.5stem; x2'=x2''-circ-1.4stem; +kruh(1)(circ); kruh(2)(circ); kruh(2')(circ); kruh(2'')(circ); +hpos(3)(cap_stem,can); hpos(4)(cap_stem,can); +y3l=0; y4r=h; x4r=10u; x3l=u ; +filldraw z4l--z3l--z3r--z4r--cycle; +endchar; + +beginchar("(", 5u#, par_height#, par_depth#); +hpos(1)(stem,can); penpos2(stem,0); hpos(3)(stem,can); +x1r=x3r=w-u; x2l=u; y2=.5[y1,y3]; y3l=-d; y1r=h; +filldraw z1l..z2l..z3l--z3r..z2r..z1r--cycle; +penlabels(1,2,3); +endchar; + +beginchar(")", 5u#, par_height#, par_depth#); +hpos(1)(stem,-can); penpos2(stem,0); hpos(3)(stem,-can); +x1l=x3l=u; x2r=w-u; y2=.5[y1,y3]; y3r=-d; y1l=h; +filldraw z1l..z2l..z3l--z3r..z2r..z1r--cycle; +penlabels(1,2,3); +endchar; + +beginchar("[", 7u#, par_height#, par_depth#); +vpos(1)(stem,can); vpos(4)(stem,can); +x1r=x4r=w-u; x2r=x3r=u; y1r=y2r=h; y4l=y3r=-d; z3l=(x3r+stem,y4r); z2l=(x2r+stem,y1l); +filldraw z1r--z2r--z3r--z4l--z4r--z3l--z2l--z1l--cycle; +penlabels(1,2,3,4); +endchar; + +beginchar("]", 7u#, par_height#, par_depth#); +vpos(1)(stem,-can); vpos(4)(stem,-can); +x1r=x4r=u; x2r=x3r=w-u; y1r=y2r=h; y4l=y3r=-d; z3l=(x3r-stem,y4r); z2l=(x2r-stem,y1l); +filldraw z1r--z2r--z3r--z4l--z4r--z3l--z2l--z1l--cycle; +penlabels(1,2,3,4); +endchar; + +beginchar("!", 4u#, par_height#, 0); +hpos(1)(stem,can); hpos(2)(cap_stem,can); +x0=x1=x2=.5w; y2r=h; y1l=1.5dot_height; y0=.6stem; +filldraw z1l--z2l--z2r--z1r--cycle; +dot(0); +endchar; + +"Reversed exclamation mark"; +beginchar(oct"074", 4u#, par_height#-desc_depth#, desc_depth#); +hpos(1)(stem,can); hpos(2)(cap_stem,can); +x0=x1=x2=.5w; y2l=-d; y1l=h-1.5dot_height; y0=h-.6stem; +filldraw z1l--z2l--z2r--z1r--cycle; +dot(0); +endchar; + +beginchar("?", 9u#, par_height#, 0); +path p; +hpos(1)(stem,can); hpos(2)(stem,0); +x0=x1=x2=.5w; y2r=.5[y1,y13]; y1l=1.5dot_height; y0=.6stem; +.5[z10,z12]=.5[z11,z13]; y11=h-.5stem; x10+.5stem=w-u; y10=y12; x11=x13; y11-y13=x10-x12; x12-.5stem=u; +penpos10(stem,0); penpos11(stem,90); hpos(12)(stem,-can); penpos13(stem,-90); +p:=z2{up}..{up}z10; z3=point .5 of p; penpos3(stem,270+angle(direction .5 of p)); +filldraw z1l---z2l..z3l..z10l{up}..{left}z11l..{down}z12r--z12l{up}..z11r{right}..{down}z10r..z3r..z2r---z1r--cycle; +dot(0); +penlabels(1,2,3,10,11,12,13); +used_p:=nullpicture; addto used_p also currentpicture rotatedaround ((.5w,.5h),180); +endchar; + +"Reversed question sign"; +beginchar(oct"076", 9u#, par_height#-desc_depth#, desc_depth#); +addto currentpicture also used_p shifted (0,h-par_height); +endchar; + +iff known sign_less_than: +beginchar(sign_less_than, 10u#, .8cap_height#,0); +hpos(1)(stem/cosd(45),can); penpos2(stem/cosd(60),0);hpos(3)(stem/cosd(45),-can); +x2l=u; x1=x3; .5[y1l,y3l]=y2; y3l=h; y2=.5cap_height; rt x1r=w-u; +filldraw z1l--z2l--z3l--z3r--z2r--z1r--cycle; +penlabels(1,2,3); +endchar; + +iff known sign_greater_than: +beginchar(sign_greater_than, 10u#, .8cap_height#,0); +hpos(1)(stem/cosd(45),-can); penpos2(stem/cosd(60),0);hpos(3)(stem/cosd(45),can); +x2r=w-u; x1=x3; .5[y1r,y3r]=y2; y3r=h; y2=.5cap_height; lft x1l=u; +filldraw z1l--z2l--z3l--z3r--z2r--z1r--cycle; +endchar; + +iff known sign_french_opening: +"Left guillemot"; +beginchar(sign_french_opening, 8u#, .75[cap_height#,x_height#],0); +hpos(1)(stem,can); penpos2(stem,0);hpos(3)(stem,can); +x2l=u; x1=x3; y1l=0; y3r=h; y2=.5h; x1r=.6w; +filldraw z1l--z2l--z3l--z3r--z2r--z1r--cycle; +filldraw (z1l--z2l--z3l--z3r--z2r--z1r--cycle) shifted (w-u-x1r,0); +endchar; + +iff known sign_french_closing: +"Right guillemot"; +beginchar(sign_french_closing, 8u#, .75[cap_height#,x_height#],0); +hpos(1)(stem,-can); penpos2(stem,0);hpos(3)(stem,-can); +x2r=w-u; x1=x3; y1r=0; y3l=h; y2=.5h; x1l=.4w; +filldraw z1l--z2l--z3l--z3r--z2r--z1r--cycle; +filldraw (z1l--z2l--z3l--z3r--z2r--z1r--cycle) shifted (u-x1l,0); +endchar; + +"Polish crossbar"; +beginchar(oct"040", 3u#, cap_height#,0); +vpos(1)(stem,can); penpos2(stem,90); +y1=.65h; y2=.8h; x1l=0; x2=w; +filldraw z1l--z2l--z2r--z1r--cycle; +endchar; + +"Ligature ff"; +beginchar(oct"013", 10u#,cap_height#,0); +hpos(1)(stem,can); penpos2(stem,0); vpos(3)(stem,can); +x1l=2u=x2l; y1=0; y2=.8h; +path p; pair shift; +penpos11(stem,90); penpos12(stem,0); penpos13(stem,90); +.5[z10,z12]=.5[z11,z13]; y11=h-.5stem; x10+.5stem=(.6w+4u)-u; y10=y12; x11=x13; y11-y13=x10-x12; x12-.5stem=2u; +p:= z10{up}..{left}z11..{down}z12..{right}z13..cycle; +z3l=z11l; +shift:=(w-u-x3r,0); +filldraw z3r..z11r{left}..{down}z2l--z1l--z1r--z2r{up}..{right}z11l--cycle; +filldraw (z3r..z11r{left}..{down}z2l--z1l--z1r--z2r{up}..{right}z11l--cycle) shifted shift; +filldraw z3r--z3r+shift--z3l+shift--z3l--cycle; +vpos(4)(stem,can); penpos5(stem,90); +y4=y5=x_height; x4l=u; x5=w-u; +filldraw z4r--z5r--z5l--z4l--cycle; +penlabels(3); +z6r=z3r+shift; z6l=z3l+shift; +serif(6r)(angle(z6l-z6r),180-angle(direction 0 of (z3r..{left}z11r))); +endchar; + +"Ligature fi"; +beginchar(oct"014", 6u#+stem#,cap_height#,0); +hpos(1)(stem,can); penpos2(stem,0); vpos(3)(stem,can); +x1l=2u=x2l; y1=0; y2=.8h; +path p; pair shift; +penpos11(stem,90); penpos12(stem,0); penpos13(stem,90); +.5[z10,z12]=.5[z11,z13]; y11=h-.5stem; x10+.5stem=(w+4u)-u-stem; y10=y12; x11=x13; y11-y13=x10-x12; x12-.5stem=2u; +p:= z10{up}..{left}z11..{down}z12..{right}z13..cycle; +z3l=z11l; +filldraw z3r..z11r{left}..{down}z2l--z1l--z1r--z2r{up}..{right}z11l--cycle; +vpos(4)(stem,can); penpos5(stem,90); +y4=y5=x_height; x4l=u; x5=w-u; +filldraw z4r--z5r--z5l--z4l--cycle; +hpos(6)(stem,can); penpos7(stem,0); +x6r=x7r=w-u; y7r=x_height; y6l=0; +filldraw z6l--z7l--z7r--z6r--cycle; +z8a=(w-u,y3r); z8b=(x8a-(x3r-x3l),y3l); z8c=(x8a-.6stem,y8b-.8stem); z8d=(x8c-.6stem,y8b); +filldraw z3r--z8a--z8b--z8c--z8d--cycle; +penlabels(3); +endchar; + +"Ligature fl"; +beginchar(oct"015", 6u#+stem#,cap_height#,0); +hpos(1)(stem,can); penpos2(stem,0); vpos(3)(stem,can); +x1l=2u=x2l; y1=0; y2=.8h; +path p; pair shift; +penpos11(stem,90); penpos12(stem,0); penpos13(stem,90); +.5[z10,z12]=.5[z11,z13]; y11=h-.5stem; x10+.5stem=(w+4u)-u-stem; y10=y12; x11=x13; y11-y13=x10-x12; x12-.5stem=2u; +p:= z10{up}..{left}z11..{down}z12..{right}z13..cycle; +z3l=z11l; +filldraw z3r..z11r{left}..{down}z2l--z1l--z1r--z2r{up}..{right}z11l--cycle; +vpos(4)(stem,can); penpos5(stem,90); +y4=y5=x_height; x4l=u; x5=w-u; +filldraw z4r--z5r--z5l--z4l--cycle; +hpos(6)(stem,can); penpos7(stem,0); +x6r=x7r=w-u; y7r=h; y6l=0; +filldraw z6l--z7l--z7r--z6r--cycle; +penlabels(3); +endchar; + +"Ligature ffi"; +beginchar(oct"016", 10u#+stem#,cap_height#,0); +hpos(1)(stem,can); penpos2(stem,0); vpos(3)(stem,can); +x1l=2u=x2l; y1=0; y2=.8h; +path p; pair shift; +penpos11(stem,90); penpos12(stem,0); penpos13(stem,90); +.5[z10,z12]=.5[z11,z13]; y11=h-.5stem; x10+.5stem=(w)-u-stem; y10=y12; x11=x13; y11-y13=x10-x12; x12-.5stem=2u; +p:= z10{up}..{left}z11..{down}z12..{right}z13..cycle; +z3l=z11l; +shift:=(w-u-stem-x3r,0); +filldraw z3r..z11r{left}..{down}z2l--z1l--z1r--z2r{up}..{right}z11l--cycle; +filldraw (z3r..z11r{left}..{down}z2l--z1l--z1r--z2r{up}..{right}z11l--cycle) shifted shift; +filldraw z3r--z3r+shift--z3l+shift--z3l--cycle; +vpos(4)(stem,can); penpos5(stem,90); +y4=y5=x_height; x4l=u; x5=w-u; +filldraw z4r--z5r--z5l--z4l--cycle; +hpos(6)(stem,can); penpos7(stem,0); +x6r=x7r=w-u; y7r=x_height; y6l=0; +filldraw z6l--z7l--z7r--z6r--cycle; +z8a=(w-u,y3r); z8b=(x8a-(x3r-x3l),y3l); z8c=(x8a-.6stem,y8b-.8stem); z8d=(x8c-.6stem,y8b); +filldraw z3r+shift--z8a--z8b--z8c--z8d--cycle; +penlabels(3); +endchar; + +"Ligature ffl"; +beginchar(oct"017", 10u#+stem#,cap_height#,0); +hpos(1)(stem,can); penpos2(stem,0); vpos(3)(stem,can); +x1l=2u=x2l; y1=0; y2=.8h; +path p; pair shift; +penpos11(stem,90); penpos12(stem,0); penpos13(stem,90); +.5[z10,z12]=.5[z11,z13]; y11=h-.5stem; x10+.5stem=(w)-u-stem; y10=y12; x11=x13; y11-y13=x10-x12; x12-.5stem=2u; +p:= z10{up}..{left}z11..{down}z12..{right}z13..cycle; +z3l=z11l; +shift:=(w-u-stem-x3r,0); +filldraw z3r..z11r{left}..{down}z2l--z1l--z1r--z2r{up}..{right}z11l--cycle; +filldraw (z3r..z11r{left}..{down}z2l--z1l--z1r--z2r{up}..{right}z11l--cycle) shifted shift; +filldraw z3r--z3r+shift--z3l+shift--z3l--cycle; +vpos(4)(stem,can); penpos5(stem,90); +y4=y5=x_height; x4l=u; x5=w-u; +filldraw z4r--z5r--z5l--z4l--cycle; +hpos(6)(stem,can); penpos7(stem,0); +x6r=x7r=w-u; y7r=h; y6l=0; +filldraw z6l--z7l--z7r--z6r--cycle; +penlabels(3); +endchar; + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Ligatures and specials +ligtable "!": "`"=:oct"074"; +ligtable "?": "`"=:oct"076"; +ligtable oct"040": "l" kern -3u#; +ligtable oct"013": "i"=:oct"016", "l"=:oct"017"; +ligtable "-": "-"=:oct"173"; +ligtable oct"173": "-"=:oct"174"; +ligtable "/": "/" kern -3u#; + +w:=fig_width; +h:=cap_height; +numeric theta, sstem; +path digit[]; +sstem:=3/2stem;%digit one +hpos(1)(sstem,can); hpos(3)(sstem,-can); +x1r=w-u; y1l=0; y3l=.6h; x3l=2u; z2r=(w-u,h); +theta:=(angle(z2r-z3l)); +z2'=z2r+((sstem,0) rotated (theta-90)); +z2l=whatever[z2',z3r]=whatever[z1l,z2r-(sstem,0)]; +digit[1]:=(z1r--z2r--z3l--z3r--z2l--z1l--cycle) scaled 2/3; +clearxy; %digit two +vpos(1)(sstem,can); +x1r=w-u; y1l=0; z2l=(u,0); y2r=y1r; +.5[z10,z12]=.5[z11,z13]; y11=h-.5sstem; x10+.5sstem=w-u; y10=y12; x11=x13; y11-y13=x10-x12; x12-.5sstem=u; +penpos10(sstem,0); penpos11(sstem,90); penpos12(sstem,180); penpos13(sstem,-90); penpos10'(sstem,0); +y10'=y10; x10'r=w; +theta:=angle(z10'l-z2l); +z2'=z2l+((sstem,0) rotated (theta-90)); +z2r=whatever[z2',z10'r]; +y3l=y3r=y13; z3=.5[z3l,z3r]; +z3l=whatever[z2l,z10'l]; z3r=whatever[z2r,z10'r]; +penpos4(sstem,180+theta); z4=z13; +digit[2]:=(z1r--z2r---z3r..z10r{up}..{left}z11r..{down}z12r..{right}z4r--z4l{left}..z12l..{right}z11l..{down}z10l..z3l---z2l--z1l--cycle) scaled 2/3; +clearxy; %digit three +.5[z10,z12]=.5[z11,z13]; y11=h-.5sstem; x10+.5sstem=w-u; y10=y12; x11=x13; y11-y13=x10-x12; x12-.5sstem=u; +penpos10(sstem,0); penpos11(sstem,90); hpos(12)(sstem,-can); vpos(13)(sstem,can); +.5[z20,z22]=.5[z21,z23]; y21=y13; x20+.5sstem=w-u; y20=y22; x21=x23; y23-.5sstem=0; x22-.5sstem=u; +penpos20(sstem,0); penpos21(sstem,90); hpos(22)(sstem,can); penpos23(sstem,90); vpos(2)(sstem,can); +digit[3]:= (z12l{up}..{right}z11r..{down}z10r..{left}z13l--z13r{right}..z10l{up}..z11l{left}..{down}z12r--cycle) scaled 2/3; +digit3.1:=(z13r{right}..{down}z20r..{left}z23l..{up}z22l--z22r{down}..{right}z23r..z20l{up}..{left}z13l--cycle) scaled 2/3; +clearxy; %digit four +hpos(1)(sstem,can); penpos4(sstem,90); +x1r=w-2.5u; y1l=0; y3l=.7x_height; x3l=u; z2r=(x1r,h); y4l=y3l; x4=w-u; y3r=y4r; +theta:=(angle(z2r-z3l)); +z2'=z2r+((sstem,0) rotated (theta-90)); +z2l=z2'+whatever*(z3l-z2r)=whatever[z1l,z2r-(sstem,0)]; +z3r=whatever[z2l,z2']; +digit4:=(z1r--z2r--z3l--z4l--z4r--z3r--z2l--z1l--cycle) scaled 2/3; + +iff known sign_sup_one: +"One superscript"; +beginchar(sign_sup_one,.75fig_width#,cap_height#,0); +filldraw digit1 shifted (.5u,1/3*cap_height); +endchar; + +iff known sign_sup_two: +"Two superscript"; +beginchar(sign_sup_two,.75fig_width#,cap_height#,0); +filldraw digit2 shifted (.5u,1/3*cap_height); +endchar; + +iff known sign_sup_three: +"Three superscript"; +beginchar(sign_sup_three,.75fig_width#,cap_height#,0); +filldraw digit3 shifted (.5u,1/3*cap_height); +filldraw digit3.1 shifted (.5u,1/3*cap_height); +endchar; + +iff known sign_sup_a: +"Underbared letter 'a' supperscript (ordfeminine)"; +beginchar(sign_sup_a, 5.4u#, cap_height#,0); +hpos(1)(sstem,can); penpos2(sstem,0); penpos3(sstem,90); vpos(4)(sstem,-can); +lft x1r=6.6u; y1=0; x2=x1; y2=.7x_height; x3=3.8u; top y3r=x_height; y4=.86x_height; x4l=2u; +filldraw (z1l--z1r--z2r{up}..{left}z3r..z4r--z4l..z3l{right}..{down}z2l--cycle) scaled 2/3 shifted (0,1/3cap_height+1/3x_height); +.5[z10,z12]=.5[z11,z13]; y13=.5sstem; x10+.5sstem=6.6u; y10=y12; x11=x13; y11-y13=x10-x12; x12-.5sstem=u; +penpos10(sstem,0); penpos11(sstem,90); penpos12(sstem,180); penpos13(sstem,-90); +filldraw (z10r{up}..{left}z11r..{down}z12r..{right}z13r..{up}z10r--z10l{down}..{left}z13l..{up}z12l..{right}z11l..{down}z10l--cycle) scaled 2/3 shifted (0,1/3*cap_height+1/3x_height); +z0=(.5w,1/3(cap_height+x_height)-.75stem); macron(0); +endchar; + +iff known sign_sup_o: +"Underbared letter 'o' superscript (ordmasculine)"; +beginchar(sign_sup_o, 6.7u#,cap_height#,0); +.5[z10,z12]=.5[z11,z13]; y13=.5sstem; x10+.5sstem=9u; y10=y12; x11=x13; y11-y13=x10-x12; x12-.5sstem=u; +penpos10(sstem,0); penpos11(sstem,90); penpos12(sstem,180); penpos13(sstem,-90); +filldraw (z10r{up}..{left}z11r..{down}z12r..{right}z13r..{up}z10r--z10l{down}..{left}z13l..{up}z12l..{right}z11l..{down}z10l--cycle) scaled 2/3 shifted (0, 1/3cap_height+1/3x_height); +z0=(.5w,1/3(cap_height+x_height)-.75stem); macron(0); +endchar; + +iff known sign_onequarter: +"One quarter sign"; +beginchar(sign_onequarter,13u#,cap_height#+stem#,-stem#); +filldraw digit[1] shifted (-.5u,1/3cap_height+2stem); +filldraw slash_path shifted (3.5u,stem); +filldraw digit[4] shifted (w-.7fig_width,0); +endchar; + +iff known sign_threequarters: +"Three quarters sign"; +beginchar(sign_threequarters,13.5u#,cap_height#+stem#,-stem#); +filldraw digit[3] shifted (.5u,1/3cap_height+2stem); +filldraw digit3.1 shifted (.5u,1/3cap_height+2stem); +filldraw slash_path shifted (4u,stem); +filldraw digit[4] shifted (w-.7fig_width,0); +endchar; + +iff known sign_onehalf: +"One half sign"; +beginchar(sign_onehalf,14u#,cap_height#+stem#,-stem#); +filldraw digit[1] shifted (-.5u,1/3cap_height+2stem); +filldraw slash_path shifted (3.5u,stem); +filldraw digit[2] shifted (w-.7fig_width,0); +endchar; + +iff known sign_registered: +"Registered sign"; +beginchar(sign_registered, 16.5u#,cap_height#,0); +numeric scap_stem; scap_stem:=cap_stem/.65; +pair shift_it; +shift_it:=(.5*(16.5-.65*11)*u+.5u,.5*.35h); +hpos(1)(scap_stem,can); hpos(2)(scap_stem,0); +x1l=u=x2l; y1=0; y2r=h; +filldraw (z1l--z1r--z2r--z2l--cycle) scaled .65 shifted shift_it; +.5[z10,z12]=.5[z11,z13]; y11=h-.5scap_stem; x10+.5scap_stem=10u; y10=y12; x11=x13; y11-y13=x10-x12; x12-.5scap_stem=2u; +z2'=z2r+.5scap_stem*down; x2'=x2''; .5[y2',y2'']=.5[y11,y13]; +penpos2'(scap_stem,90); penpos2''(scap_stem,270); penpos11(scap_stem,90); penpos10(scap_stem,0); penpos13(scap_stem,270); +hpos(3)(scap_stem,0); hpos(4)(scap_stem,can); +z3l=z2''l; x4r=10u; y4l=0; +z0=(z4r--z3r) intersectionpoint (z13r--z2''r); +filldraw (z2'r---z11r..{down}z10r..{left}z13r--- z0--z4r--z4l --z2''l---z13l..{up}z10l..z11l---z2'l--cycle) scaled .65 shifted shift_it; +penpos20(cap_stem,0); penpos21(cap_stem,90); penpos22(cap_stem,180); penpos23(cap_stem,-90); +.5[z20,z22]=.5[z21,z23]; y23=.5cap_stem; x20+.5cap_stem=w-u; y20=y22; x21=x23; y21-y23=x20-x22; x22-.5cap_stem=u; +filldraw z20r{up}..{left}z21r..{down}z22r..{right}z23r..{up}z20r--z20l{down}..{left}z23l..{up}z22l..{right}z21l..{down}z20l--cycle; +endchar; + +iff known sign_copyright: +"Copyright sign"; +beginchar(sign_copyright, 16.5u#,cap_height#,0); +numeric scap_stem; scap_stem:=cap_stem/.65; +path p; +penpos11(scap_stem,90); penpos12(scap_stem,0); penpos13(scap_stem,90); +.5[z10,z12]=.5[z11,z13]; y13=.5scap_stem; x10+.5scap_stem=w-u; y10=y12; x11=x13; y11-y13=x10-x12; x12-.5scap_stem=u; +p:= z10{up}..{left}z11..{down}z12..{right}z13..cycle; +z1=point .68 of p; +z2=point 3.28 of p; +vpos(1)(scap_stem,-.5can); vpos(2)(scap_stem,.5can); +filldraw (z1r..{left}z11r..{down}z12l..{right}z13l..z2l--z2r..z13r{left}..z12r{up}..z11l{right}..z1l--cycle) scaled .65 shifted (.22*w,.5*.35h); +penpos20(cap_stem,0); penpos21(cap_stem,90); penpos22(cap_stem,180); penpos23(cap_stem,-90); +.5[z20,z22]=.5[z21,z23]; y23=.5cap_stem; x20+.5cap_stem=w-u; y20=y22; x21=x23; y21-y23=x20-x22; x22-.5cap_stem=u; +filldraw z20r{up}..{left}z21r..{down}z22r..{right}z23r..{up}z20r--z20l{down}..{left}z23l..{up}z22l..{right}z21l..{down}z20l--cycle; +endchar; + +iff known sign_period_centered: +"Centered period"; +beginchar(sign_period_centered,2u#+dot_height#, .5cap_height#+dot_height#/1.2,0); +z0=(.5w,h-2dot_height); +dot(0); +endchar; + +iff known sign_logicalnot: +"Logical not sign"; +beginchar(sign_logicalnot,10u#,x_height#,0); +vpos(1)(stem,can); penpos3(stem,0); +lft z1l=(u,h-stem); rt x3r=w-u; y3l=.45h; z2r=(x3r,y1r); z2l=(x3l,y1l); +filldraw z1r--z2r--z3r--z3l--z2l--z1l--cycle; +penlabels(1,2,3); +endchar; + +iff known sign_alinea: +"Paragraph sign"; +beginchar(sign_alinea, 11u#,cap_height#,0); +hpos(1)(cap_stem,0); hpos(2)(cap_stem,0); +x1r=w-u=x2r; y1=0; y2r=h; +filldraw z1l--z1r--z2r--z2l--cycle; +.5[z10,z12]=.5[z11,z13]; y11=h-.5cap_stem; x10+.5cap_stem=w-u; y10=y12; x11=x13; y11-y13=x10-x12; x12-.5cap_stem=u; +penpos10(cap_stem,0); penpos11(cap_stem,90); penpos12(cap_stem,180); penpos13(cap_stem,-90); +penpos2'(cap_stem,90); penpos2''(cap_stem,270); +.5[y2'',y2']=y10; x2'=x2''+2.5stem=x2l; y2'r=y2r; +filldraw z2'r---z11r..{down}z12r..{right}z13r---z2''r--z2''l---z13l{left}..{up}z12l..{right}z11l---z2'l--cycle; +z3=(x2''+stem,y2r); hpos(4)(cap_stem,can); x4r=x3; y4l=0; +filldraw z3--z4r--z4l--z2''r---z13r{left}..{up}z12r..z11r--cycle; +penlabels(1,2,2',3,4,10,11,12,13); +endchar; + +iff known sign_micron: +"Micron sign (greek mu)"; +beginchar(sign_micron, 9u#,x_height#,desc_depth#); +hpos(1)(stem,0); hpos(2)(stem,-can); vpos(3)(stem,can); penpos4(stem,0); hpos(5)(stem,can); +vpos(1')(stem,can); +x1l=u=x2l; y1=-.35d; y2l=y5r=h; y4=.3h; x5r=w-u; x4r=w-u; y1'l=-d; x1-x1'=y1'-y1; +filldraw z1'r--z1'l..z1l---z2l--z2r--z1r..{right}cycle; +path p; +penpos10(stem,180);penpos11(stem,90); penpos12(stem,0); penpos13(stem,90); +.5[z10,z12]=.5[z11,z13]; y13=.5stem; x10+.5stem=(w+0u)-u; y10=y12; x11=x13; y11-y13=x10-x12; x12-.5stem=u; +p:= z10{up}..{left}z11..{down}z12..{right}z13..cycle; +filldraw z5l--z5r--z10l{down}..z13l{left}..{up}z12l--z12r{down}..{right}z13r..{up}z10r--cycle; +endchar; + +iff known sign_plusminus: +"Plus minus sign"; +beginchar(sign_plusminus, 10u#, v_center(8u#)); +vpos(1)(stem,can); penpos2(stem,90); hpos(3)(stem,can); hpos(4)(stem,can); +y1=y2=math_axis; x1l=u; x2=w-u; x3=x4=.5w; y3r=h; y4l=-d; +filldraw z1l--z2l--z2r--z1r--cycle; +filldraw z3l--z4l--z4r--z3r--cycle; +filldraw (z1l--z2l--z2r--z1r--cycle) shifted (0,y2-y3); +endchar; + +iff known sign_minusplus: +"Minus plus sign"; +beginchar(sign_minusplus, 10u#, v_center(8u#)); +vpos(1)(stem,can); penpos2(stem,90); hpos(3)(stem,can); hpos(4)(stem,can); +y1=y2=math_axis; x1l=u; x2=w-u; x3=x4=.5w; y3r=h; y4l=-d; +filldraw z1l--z2l--z2r--z1r--cycle; +filldraw z3l--z4l--z4r--z3r--cycle; +filldraw (z1l--z2l--z2r--z1r--cycle) shifted (0,y3-y1); +endchar; + +iff known sign_cent: +"Cent sign"; +beginchar(sign_cent, 9u#,cap_height#,0); +path p; +penpos11(stem,90); penpos12(stem,0); penpos13(stem,90); +.5[z10,z12]=.5[z11,z13]; y13=.25h; x10+.5stem=(w+u)-u; y10=y12; x11=x13; y11-y13=x10-x12; x12-.5stem=u; +p:= z10{up}..{left}z11..{down}z12..{right}z13..cycle; +z1=point .5 of p; +z2=point 3.5 of p; +penpos1(stem,(170-angle(direction.5 of p))); penpos2(stem,(100+angle(direction 3.5 of p))); +filldraw z1r..{left}z11r..{down}z12l..{right}z13l..z2l--z2r..z13r{left}..z12r{up}..z11l{right}..z1l--cycle; +serif(1r,angle(z1l-z1r),180+angle(direction.5 of p)); +filldraw slash_path shifted (u,0); +endchar; + +iff known sign_yen: +"Yen sign"; +beginchar(sign_yen, 13u#,cap_height#,0); +hpos(1)(cap_stem,-can); hpos(2)(cap_stem,-can); hpos(3)(cap_stem,can); +x1r=w-u; y1l=h=y3r; x3l=u; y2r=0; x2l=3.5u; z4l=whatever[z1l,z2l]; y4l=.4h; +z4r=z4l+(cap_stem/sind(angle(z3l-z4l)),0) rotated (angle(z1l-z4l)-10); +filldraw z1l--z1r--z2r--z2l--cycle; +filldraw z3l--z3r--z4r--z4l--cycle; +vpos(6)(.75stem,can); vpos(7)(.75stem,0); +lft x6l=2u; rt x7=w-2u; y6=y7=y4l; +filldraw z6r--z7r--z7l--z6l--cycle; +filldraw (z6r--z7r--z7l--z6l--cycle) shifted (0,-2stem); +endchar; + +iff known sign_currency: +beginchar(sign_currency, 12u#,cap_height#,0); +"Currency sign"; +.5[z10,z12]=.5[z11,z13]=z0=(.5w,.5h); y10=y12; x11=x13; y11-y13=x10-x12; x12-.5stem=2u; +penpos10(stem,0); penpos11(stem,90); penpos12(stem,180); penpos13(stem,-90); +filldraw z10r{up}..{left}z11r..{down}z12r..{right}z13r..{up}z10r--z10l{down}..{left}z13l..{up}z12l..{right}z11l..{down}z10l--cycle; +path p; p:=z10{up}..{left}z11..{down}z12..{right}z13..{up}cycle; +x1'l=x4'r=w-u; x2'r=x3'l=u; +for i=1,2,3,4: +z[i]=point (i-.5) of p; penpos[i](stem,angle(direction (i-.5) of p)); +penpos[i]'(stem,angle(direction (i-.5) of p)); +z[i]'=whatever[z0,z[i]]; +filldraw z[i]r--z[i]l--z[i]'l--z[i]'r--cycle; +endfor; +penlabels(1,1',2,2',3,3',4,4'); +endchar; + +iff known sign_sterling: +"Sterling sing"; +beginchar(sign_sterling, 10u#,cap_height#,0); +vpos(1)(cap_stem,can); vpos(2)(cap_stem,can); penpos3(cap_stem,0); penpos4(cap_stem,0); vpos(5)(cap_stem,can); +y1l=0; x1r=w-u; y2l=0; x2l=u; y3=.15x_height; x3l-x2=y3-y2l; x4=x3; y4=.75h; y5r=h; x5-x4r=y5r-y4; +filldraw z1r--z1l--z2l{dir10}..{up}z3l---z4l..z5r--z5l..z4r---z3r--(x3r,y1r)--cycle; +vpos(6)(cap_stem,can); penpos7(cap_stem,90); +y6=y7=.5h; x6l=u; x7=.55w; +filldraw z6r--z6l--z7l--z7r--cycle; +penlabels(1,2,3,4,5,6,7); +endchar; + +iff known sign_bar: +"Vertical bar"; +beginchar(sign_bar, 5u#, cap_height#,0); +hpos(1)(cap_stem,can); hpos(2)(cap_stem,can); +x1=x2=.5w; y1l=0; y2r=h; +filldraw z1l--z2l--z2r--z1r--cycle; +endchar; + +iff known sign_broken_bar: +"Vertical broken bar"; +beginchar(sign_broken_bar, 5u#, cap_height#,0); +hpos(1)(cap_stem,can); penpos2(cap_stem,0); hpos(3)(cap_stem,can); penpos4(cap_stem,0); +x1=x2=x3=x4=.5w; y1l=0; y4r=h; .5[y2,y3]=.5h; y3l-y2=2cap_stem; +filldraw z1l--z2l--z2r--z1r--cycle; +filldraw z3l--z4l--z4r--z3r--cycle; +penlabels(1,2,3,4); +endchar; + +iff known sign_section: +"Section sign"; +beginchar(sign_section, 12u#,cap_height#,desc_depth#); +hpos(1)(cap_stem,0); penpos2(cap_stem,(-can+90)); vpos(3)(cap_stem,can); hpos(4)(cap_stem,0); penpos0(cap_stem,90); +x1r=w-u; y1=.6x_height; y4=h-.4x_height; x4l=u; +path p; +penpos10(cap_stem,0); penpos11(cap_stem,90); penpos12(cap_stem,0); penpos13(cap_stem,90); +.5[z10,z12]=.5[z11,z13]; y13=cap_stem+.1x_height; x10+.5cap_stem=w-u; y10=y12; +x11=x13; y11-y13=x10-x12; x13=.5w; x3=x12l; y3=.45x_height; +p:= z10{down}..{left}z13..{up}z12..{right}z11..cycle; +penpos20(cap_stem,0); penpos21(cap_stem,90); penpos22(cap_stem,0); penpos23(cap_stem,90); +.5[z20,z22]=.5[z21,z23]; y21=h-cap_stem+.1x_height; x20+.5cap_stem=w-u; y20=y22; +x21=x23; y21-y23=x20-x22; x23=.5w; x2r=x10r; y2r=h-.15x_height; +filldraw z13l{right}..{up}z1r--z1l{down}..{left}z13r--cycle; +filldraw z2l..z21l{left}..{down}z4r--z4l{up}..{right}z21r..z2r--cycle; +p:=z4r{down}..{down}z1r; z0=((.5w,0)--(.5w,h)) intersectionpoint p; +filldraw z4l{down}..z0l..{down}z1l--z1r{up}..z0r..{up}z4r--cycle; +filldraw (z4r{up}..{right}z21l--z21r{left}..{down} z4l) shifted (z0-z21)..{right}z13l..(z1l{down}..{left}z13r..z3r--z3l..z13l{right}..{up}z1r) shifted (z0-z21)..z13r{left}..{up}cycle; +penlabels(0,1,2,3,4,10,11,12,13,20,21,22,23); +endchar; + +iff known sign_divide: +"Divide sign"; +beginchar(sign_divide, 10u#, v_center(8u#)); +vpos(1)(stem,can); penpos2(stem,90); +y1=y2=math_axis; x1l=u; x2=w-u; .5[y3,y4]=math_axis; x3=x4=.5w; y3=dot_height; +filldraw z1l--z2l--z2r--z1r--cycle; +dot(3); dot(4); +endchar; + +iff known sign_backslash: +beginchar(sign_backslash, 8u#, cap_height#,0); +hpos(1)(cap_stem,-can); hpos(2)(cap_stem,-can); +x1r=w-u; x2l=u; y1r=0; y2l=h; +filldraw z1l--z2l--z2r--z1r--cycle; +endchar; + +iff known sign_underscore: +beginchar(sign_underscore, 9u#, 0,stem#); +vpos(1)(stem,can); penpos2(stem,90); +y1=y2=-.5stem; x1l=0; x2=w; +filldraw z1l--z2l--z2r--z1r--cycle; +endchar; + +iff known sign_times: +"Times sign"; +beginchar(sign_times, 9u#, v_center(6u#)); +numeric mstem; mstem=stem/cosd(15); +hpos(1)(stem/cosd(15),0); hpos(2)(stem/cosd(15),0); hpos(3)(mstem,can); hpos(4)(mstem,can); +x1l=x4l=u; x2r=x3r=w-u; y1l=y3l=0; y2r=y4r=h; +filldraw z1l--z2l--z2r--z1r--cycle; +filldraw z3l--z4l--z4r--z3r--cycle; +penlabels(1,2,3,4); +endchar; + +iff known sign_brace_left: +"Brace left"; +beginchar(sign_brace_left, 6.5u#, par_height#, par_depth#); +vpos(0)(.5stem,can); +vpos(1)(stem,can); penpos2(stem,180); penpos3(stem,180); +penpos4(stem,180); penpos5(stem,180); vpos(6)(stem,-can); +z0=(u,.5(h-d)); x1r=x6r=w-u; y1r=h; y2=.85h; y1-y2=x1-x2l; y3-y0=y1-y2; x3=x4=x5=x2; +y7=y0; x7=x3l-stem; +y6l=-d; y5=-d+.15h; .5[y4,y3]=y0; +filldraw z1r..z2r---z3r..{left}z0r--z0l{right}..z4r---z5r..{right}z6l--z6r{left}..z5l---z4l..{left}z7{right}..z3l---z2l..z1l--cycle; +penlabels(0,1,2,3,4,5,6,7); +endchar; + +iff known sign_brace_right: +"Brace right"; +beginchar(sign_brace_right, 6.5u#, par_height#, par_depth#); +vpos(0)(.5stem,-can); +vpos(1)(stem,-can); penpos2(stem,0); penpos3(stem,0); +penpos4(stem,0); penpos5(stem,0); vpos(6)(stem,can); +z0=(w-u,.5(h-d)); x1l=x6l=u; y1r=h; y2=.85h; y1-y2=x2l-x1; y3-y0=y1-y2; x3=x4=x5=x2; +y7=y0; x7=x3l+stem; +y6l=-d; y5=-d+.15h; .5[y4,y3]=y0; +filldraw z1r..z2r---z3r..{right}z0r--z0l{left}..z4r---z5r..{left}z6l--z6r{right}..z5l---z4l..{right}z7{left}..z3l---z2l..z1l--cycle; +penlabels(0,1,2,3,4,5,6,7); +endchar; + +iff known sign_dag: +"Dagger sign"; +beginchar(sign_dag, 8u#,cap_height#,0); +hpos(1)(stem,can); penpos2(stem,0); vpos(3)(stem,can); +x1=.5w=x2; y1=0; y2=h; +filldraw z2l--z1l--z1r--z2r--cycle; +vpos(4)(stem,can); penpos5(stem,90); +y4=y5=.4[x_height,h]; x4l=u; x5=w-u; +filldraw z4r--z5r--z5l--z4l--cycle; +endchar; + +iff known sign_dagg: +"Double dagger sign"; +beginchar(sign_dagg, 8u#,cap_height#,0); +hpos(1)(stem,can); penpos2(stem,0); vpos(3)(stem,can); +x1=.5w=x2; y1=0; y2=h; +filldraw z2l--z1l--z1r--z2r--cycle; +vpos(4)(stem,can); penpos5(stem,90); +vpos(7)(stem,can); penpos6(stem,90); +y4=y5=.4[x_height,h]; x4l=u; x5=w-u; +y6=y7=.5x_height; x6l=u; x7=w-u; +filldraw z4r--z5r--z5l--z4l--cycle; +filldraw z6r--z7r--z7l--z6l--cycle; +endchar; + +iff known sign_bullet: +"Bullet sign"; +beginchar(sign_bullet, 8u#,v_center(6u#)); +filldraw fullcircle scaled 6u shifted (.5w,.5(h-d)); +endchar; + +iff known sign_bullet_triangle: +"Triangle bullet sign"; +beginchar(sign_bullet_triangle, 7u#,v_center(6u#)); +filldraw (u,-d)--(w-u,math_axis)--(u,h)--cycle; +endchar; + +iff known sign_prime: +"Prime sign"; +beginchar(sign_prime,4u#,asc_height#,0); +y1r=h; y2l=.9x_height; x1r=w-u; x2l=u; +hpos(2)(stem,-can); hpos(1)(cap_stem,-can); +filldraw (z1l--z1r--z2r--z2l--cycle); +endchar; + +iff known sign_doubleprime: +"Double prime sign"; +beginchar(sign_doubleprime,6u#,asc_height#,0); +y1r=h; y2l=.9x_height; x1r=w-3u; x2l=u; +hpos(2)(stem,-can); hpos(1)(cap_stem,-can); +filldraw (z1l--z1r--z2r--z2l--cycle); +filldraw (z1l--z1r--z2r--z2l--cycle) shifted (2u,0); +endchar; + +iff known sign_tripleprime: +"Triple prime sign"; +beginchar(sign_tripleprime,8u#,asc_height#,0); +y1r=h; y2l=.9x_height; x1r=w-5u; x2l=u; +hpos(2)(stem,-can); hpos(1)(cap_stem,-can); +filldraw (z1l--z1r--z2r--z2l--cycle); +filldraw (z1l--z1r--z2r--z2l--cycle) shifted (2u,0); +filldraw (z1l--z1r--z2r--z2l--cycle) shifted (4u,0); +endchar; + +iff known sign_prime_reversed: +"Reversed prime sign"; +beginchar(sign_prime_reversed,4u#,asc_height#,0); +y1r=h; y2l=.9x_height; x1l=u; x2r=w-u; +hpos(2)(stem,-can); hpos(1)(cap_stem,-can); +filldraw (z1l--z1r--z2r--z2l--cycle); +endchar; + +iff known sign_doubleprime_reversed: +"Reversed double prime sign"; +beginchar(sign_doubleprime_reversed,6u#,asc_height#,0); +y1r=h; y2l=.9x_height; x1l=u; x2r=w-3u; +hpos(2)(stem,-can); hpos(1)(cap_stem,-can); +filldraw (z1l--z1r--z2r--z2l--cycle); +filldraw (z1l--z1r--z2r--z2l--cycle) shifted (2u,0); +endchar; + +iff known sign_tripleprime_reversed: +"Reversed triple prime sign"; +beginchar(sign_tripleprime_reversed,8u#,asc_height#,0); +y1r=h; y2l=.9x_height; x1l=u; x2r=w-5u; +hpos(2)(stem,-can); hpos(1)(cap_stem,-can); +filldraw (z1l--z1r--z2r--z2l--cycle); +filldraw (z1l--z1r--z2r--z2l--cycle) shifted (2u,0); +filldraw (z1l--z1r--z2r--z2l--cycle) shifted (4u,0); +endchar; + +iff known sign_arrow_left: +"Left arrow"; +beginchar(sign_arrow_left, 18u#, .8cap_height#,0); +hpos(1)(stem/cosd(30),can); penpos2(stem/cosd(45),0);hpos(3)(stem/cosd(30),-can); +penpos4(stem,90); vpos(5)(stem,-can); +x2l=u; x1=x3; .5[y1l,y3l]=y2; y3l=h; y2=.5cap_height; rt x1l=.3w; +rt x5r=w-u; y5=y2; z4=z2r; +filldraw z1l--z2l--z3l--z3r--z2r--z1r--cycle; +filldraw z4r--z5r--z5l--z4l--cycle; +penlabels(1,2,3,4,5); +endchar; + +iff known sign_arrow_right: +"Right arrow"; +beginchar(sign_arrow_right, 18u#, .8cap_height#,0); +hpos(1)(stem/cosd(30),-can); penpos2(stem/cosd(45),0);hpos(3)(stem/cosd(30),can); +penpos4(stem,90); vpos(5)(stem,can); +x2r=w-u; x1=x3; .5[y1r,y3r]=y2; y3r=h; y2=.5cap_height; lft x1r=.7w; +lft x5l=u; y5=y2; z4=z2l; +filldraw z1l--z2l--z3l--z3r--z2r--z1r--cycle; +filldraw z4r--z5r--z5l--z4l--cycle; +penlabels(1,2,3,4,5); +endchar; + +iff known sign_arrow_left_filled: +"Filled left arrow"; +beginchar(sign_arrow_left_filled, 18u#, .8cap_height#,0); +hpos(1)(stem/cosd(30),can); penpos2(stem/cosd(45),0);hpos(3)(stem/cosd(30),-can); +penpos4(stem,90); vpos(5)(stem,-can); +x2l=u; x1=x3; .5[y1l,y3l]=y2; y3l=h; y2=.5cap_height; rt x1l=.3w; +rt x5r=w-u; y4=y5=y2; x4=x3l; +filldraw z1l--z2l--z3l--z3r--z4r--z5r--z5l--z4l--z1r--cycle; +penlabels(1,2,3,4,5); +endchar; + +iff known sign_arrow_leftright: +"Left-right arrow"; +beginchar(sign_arrow_leftright, 18u#, .8cap_height#,0); +hpos(1)(stem/cosd(30),can); penpos2(stem/cosd(45),0);hpos(3)(stem/cosd(30),-can); +hpos(6)(stem/cosd(30),-can); penpos7(stem/cosd(45),0);hpos(8)(stem/cosd(30),can); +penpos4(stem,90); vpos(5)(stem,can); +x7r=w-u; x6=x8; .5[y6r,y8r]=y7; y8r=h; y7=.5cap_height; lft x6r=.7w; +x2l=u; x1=x3; .5[y1l,y3l]=y2; y3l=h; y2=.5cap_height; rt x1l=.3w; +z5=z7l; z4=z2r; +filldraw z1l--z2l--z3l--z3r--z2r--z1r--cycle; +filldraw z6l--z7l--z8l--z8r--z7r--z6r--cycle; +filldraw z4r--z5r--z5l--z4l--cycle; +penlabels(1,2,3,4,5,6,7,8); +endchar; + +iff known sign_arrow_up: +"Up arrow"; +beginchar(sign_arrow_up, 10u#, cap_height#,0); +hpos(1)(stem/cosd(30),-can); penpos2(stem/cosd(60),90);hpos(3)(stem/cosd(30),can); +penpos4(stem,0); hpos(5)(stem,can); +y2r=h; y1=y3; .5[x1l,x3r]=x2; rt x3r=w-u; x2=.5w; y1=x_height; +y5l=0; x5=x2; z4=z2l; +filldraw z1l--z2r--z3r--z3l--z2l--z1r--cycle; +filldraw z4r--z5r--z5l--z4l--cycle; +penlabels(1,2,3,4,5); +endchar; + +iff known sign_arrow_down: +"Down arrow"; +beginchar(sign_arrow_down, 10u#, cap_height#,0); +hpos(1)(stem/cosd(30),can); penpos2(stem/cosd(60),90);hpos(3)(stem/cosd(30),-can); +penpos4(stem,0); hpos(5)(stem,can); +y2l=0; y1=y3; .5[x1l,x3r]=x2; rt x3r=w-u; x2=.5w; y1=h-x_height; +y5r=h; x5=x2; z4=z2r; +filldraw z1l--z2l--z3r--z3l--z2r--z1r--cycle; +filldraw z4r--z5r--z5l--z4l--cycle; +penlabels(1,2,3,4,5); +endchar; + +iff known sign_arrow_updown: +"Up-down arrow"; +beginchar(sign_arrow_updown, 10u#, cap_height#,0); +hpos(1)(stem/cosd(30),-can); penpos2(stem/cosd(50),90);hpos(3)(stem/cosd(30),can); +hpos(6)(stem/cosd(30),can); penpos7(stem/cosd(50),90);hpos(8)(stem/cosd(30),-can); +penpos4(stem,0); hpos(5)(stem,can); +y2r=h; y1=y3; .5[x1l,x3r]=x2; rt x3r=w-u; x2=.5w; y1=1.2x_height; +y7l=0; y6=y8; .5[x6l,x8r]=x7; rt x8r=w-u; x7=.5w; y6=h-1.2x_height; +z5=z7r; z4=z2l; +filldraw z1l--z2r--z3r--z3l--z2l--z1r--cycle; +filldraw z6l--z7l--z8r--z8l--z7r--z6r--cycle; +filldraw z4r--z5r--z5l--z4l--cycle; +penlabels(1,2,3,4,5); +endchar; + +iff known sign_sum: +"Sumation sign (text mode)"; +beginchar(sign_sum,14u#, par_height#,desc_depth#); +vpos(1)(cap_stem,can); vpos(5)(cap_stem,-can); penpos3(cap_stem/cosd(45),180); +x1r=x5l=w-u; y1r=y2r=h; y4r=y5l=-d; y3=.5(h-d); x3=.65w; x2r=x4r=u; y2l=y1l; y4l=y5r; +z4'=z4r+((cap_stem,0) rotated (angle((z3r-z4r))-90)); +z2'=z2r+((cap_stem,0) rotated (angle((z3r-z2r))+90)); +z4l=z4'+whatever*(z3r-z4r); z2l=z2'+whatever*(z3r-z2r); +filldraw z1r--z2r--z3r--z4r--z5l--z5r--z4l--z3l--z2l--z1l--cycle; +penlabels(1,2,3,4,5); labels(2',4'); +endchar; + +iff known sign_integral: +"Simple integral sign (text mode)"; +beginchar(sign_integral, 6u#,par_height#,desc_depth#); +penpos1(stem,0); penpos2(stem,0); vpos(3)(stem,can); vpos(3')(stem,-can); +x1=.5w=x2; y1=0; y2=.8cap_height;path p; +penpos10(stem,0); penpos11(stem,90); penpos12(stem,0); penpos13(stem,90); +.5[z10,z12]=.5[z11,z13]; y11=h-.5stem; x10+.5stem=(w+6u)-u; y10=y12; x11=x13; y11-y13=x10-x12; x12-.5stem=2u; +p:= z10{up}..{left}z11..{down}z12..{right}z13..cycle; +z3l=z11l; z3'=z13; +filldraw z3r..z11r{left}..{down}z2l---z1l..{left}((z3'r--z3'l) shifted (z1l-z10l)){right}..z1r--z2r{up}..{right}z11l--cycle; +penlabels(1,2,3,3'); +endchar; + +iff known sign_exist: +"Exists sign"; +beginchar(sign_exist, 8u#,cap_height#,0); +hpos(1)(stem,0); hpos(2)(stem,0); vpos(3)(stem,-can); penpos4(stem,90); vpos(5)(stem,0); vpos(6)(stem,can); +x1r=w-u=x2r; y1=y6l=0; y2r=h; y3r=h; x3r=x6l=u; x2l=x4; y4=y5=.5h; x5=x3; +filldraw z1r--z2r--z3r--z3l--(x2l,y3l)--z4r--z5r--z5l--z4l--(x1l,y6r)--z6r--z6l--cycle; +penlabels(1,2,3,4,5,6); +endchar; + +iff known sign_forall: +"For all sign"; +beginchar(sign_forall, 11u#,cap_height#,2u#); +numeric theta; +hpos(1)(stem,-can); hpos(2)(stem,can); +x1r=w-u; y1l=h=y2r; x2l=u; z3l=(.5w,-d); +theta:=90+angle(z1r-z3l); +penpos3(stem/sind(theta),90); +penpos4(stem,90); penpos5(stem,90); +y5=y4=.6h; z4=whatever[z2,z3]; z5=whatever[z1,z3]; +filldraw z1l--z3r--z2r--z2l--z3l--z1r--cycle; +filldraw z4l--z5l--z5r--z4r--cycle; +penlabels(1,2,3,4,5); +endchar; + +iff known sign_infinity: +"Infinity"; +beginchar(sign_infinity, 17u#,x_height#,0); +penpos10(stem,0); penpos11(stem,90); penpos12(stem,180); penpos13(stem,-90); +penpos20(stem,0); penpos21(stem,90); penpos22(stem,180); penpos23(stem,-90); +.5[z10,z12]=.5[z11,z13]; y13=y23=.5stem; y10=y20=y12=y22; x11=x13; y11-y13=x10-x12=y21-y23=x20-x22; +.5[z20,z22]=.5[z21,z23]; x21=x23; x12-.5stem=u; x10=.5w; .5[x12,x20]=.5w; +filldraw z13r{left}..{up}z12r..{right}z11r..z10r..{right}z23l..{up}z20l..{left}z21l..z22l..{left}z13r--z13l{right}..z22r..z21r{right}..z20r{down}..z23r{left}..z10l..z11l{left}..{down}z12l..{right}z13l--cycle; +penlabels(10,11,12,13,20,21,22,23); +endchar; + +iff known sign_partial: +"Partial derivative sign"; +beginchar(sign_partial, 10u#,cap_height#,0); +.5[z10,z12]=.5[z11,z13]; y13=.5stem; x10+.5stem=w-u; y10=y12; x11=x13; y11-y13=1.1(x10-x12); x12-.5stem=u; +penpos10(stem,0); penpos11(stem,90); penpos12(stem,180); penpos13(stem,-90); +filldraw z10r{up}..{left}z11r..{down}z12r..{right}z13r..{up}z10r--z10l{down}..{left}z13l..{up}z12l..{right}z11l..{down}z10l--cycle; +penpos1(stem,30); vpos(2)(stem,-can); +x1r=w-2u; y1=.75h; x2l=.3w; y2r=h; +filldraw z10r{up}..z1r..{left}z2r--z2l{right}..z1l..{down}z10l--cycle; +penlabels(0,1,2,10,11,12,13); +endchar; + +iff known sign_root: +"Square root sign"; +beginchar(sign_root, 13u#,par_height#,desc_depth#); +numeric theta; +hpos(1)(stem,-can); +x1r=w-u; y1l=h; z3l=(.5w,-d); +theta:=90+angle(z1r-z3l); +penpos3(stem/sind(theta),90); +x4l=u; y2r=.5cap_height; x2r=4u; z4l=z2r+whatever*dir(angle(z3r-z2r)+90); +z4r=z4l+stem*dir(angle(z2r-z4l)-90); +z2l=z4r+whatever*(z2r-z4l)=z3l+whatever*(z2r-z3r); +filldraw z1l--z3r--z3l--z1r--cycle; +filldraw z4l--z2r--z3r--z3l--z2l--z4r--cycle; +penlabels(1,2,3,4,5); +endchar; + +iff known sign_in_set: +"In set sign"; +beginchar(sign_in_set, 8u#,v_center(.75cap_height#)); +hpos(2)(stem,0); vpos(3)(stem,can); penpos4(stem,90); vpos(5)(stem,0); vpos(6)(stem,-can); +x2l=u; y1=y6l=-d; z2r=z4; y3r=h; x3r=x6l=w-u; y4=y5=.5(h-d); x5r=x3l; +filldraw z2l{up}...{right}z3r--z3l{left}..{down}z4r--z5r--z5l--z4l{down}..{right}z6r--z6l{left}...cycle; +penlabels(2,3,4,5,6); +endchar; + +iff known sign_empty_set: +"Empty set"; +beginchar(sign_empty_set, fig_width#,cap_height#,0); +penpos10(stem,0); penpos11(stem,90); penpos12(stem,180); penpos13(stem,-90); +.5[z10,z12]=.5[z11,z13]; y13=.5stem; y11=h-.5stem; x10+.5stem=w-u; y10=y12; x11=x13; x12-.5stem=u; +filldraw z10r{up}..{left}z11r..{down}z12r..{right}z13r..{up}z10r--z10l{down}..{left}z13l..{up}z12l..{right}z11l..{down}z10l--cycle; +hpos(1)(cap_stem,can); hpos(2)(cap_stem,can); +x1l=u; x2r=w-u; y1l=0; y2r=h; +filldraw z1l--z2l--z2r--z1r--cycle; +endchar; + +end. + |