% % These parameters define a 10-point 'teng-ajo' font. % They have been selected specifically to blend well with the % Computer Modern Roman 10-point typeface. % font_size 10pt#; asc_height#:=250/36pt#; % ascender height x_height#:=155/36pt#; % x-height tehtar_height#:=192/36pt#; % min height of tehtar, just above x-height desc_depth#:=70/36pt#; % descender depth u#:=18/36pt#; % basic unit of width boldness:=0.6; pentilt:=30; % pen slantiness joinf:=1/7; % displacement from stem terminus to start of bow bowlf:=0.6; % displacement of bow control point closef:=0.707106781187; % miscellaneous "closer to 1 than 0.5" factor boolean serifs; serifs:=true; mode_setup; em#:=17u#; % M-width thick#:=2u#*boldness; % width of vertical stems thin#:=min(1,1/5thick#); % width of thin curved segments define_pixels(em,x_height,asc_height,tehtar_height,desc_depth,u); define_blacker_pixels(thin,thick); if unknown serifs: boolean serifs; serifs:=true fi; if unknown slant: slant:=0 else: currenttransform:=identity slanted slant yscaled aspect_ratio fi; % Create the pen we'll use for all our work clear_pen_memory; pickup pencircle xscaled thick yscaled thin rotated pentilt; elf.nib := savepen; pickup pencircle xscaled 1/2thick yscaled thin rotated pentilt; small.nib := savepen; def stem(suffix $, $$) = lft x$ = lft x$$; y$=x_height; y$$=0; draw z$--z$$; penlabels($,$$); enddef; def asc_stem(suffix $, $$) = lft x$ = lft x$$; y[$]=asc_height; y[$$]=0; draw z$--z$$; penlabels($,$$); enddef; def desc_stem(suffix $, $$) = lft x$ = lft x$$; y$=x_height; y$$=-desc_depth; draw z$--z$$; penlabels($,$$); enddef; def ad_stem(suffix $, $$) = lft x$ = lft x$$; y$=asc_height; y$$=-desc_depth; draw z$--z$$; penlabels($,$$); enddef; % Bowls. x$ is fixed by the user, and we do the rest. def bowl(suffix $, $$, @) = y$=(1-joinf)[0,x_height]; y$$=bowlf[0,x_height]; y@=0; x$$=x$+7u; x@=x$+4u; draw z$..z$$..z@; penlabels($,$$,@); enddef; def bbowl(suffix $, @) = y$=(1-joinf)[0,x_height]; y$a=bowlf[0,x_height]; y$b=0; x$a=x$+7u; x$b=x$+4u; draw z$..z$a..z$b; penlabels($,$a,$b); % first bowl x@ = x$+6u; y@=(1-joinf)[0,x_height]; y@a=bowlf[0,x_height]; y@b=0; x@a=x@+7u; x@b=x@+4u; path p; p = z@..z@a..z@b; m := xpart (p intersectiontimes (z$..z$a..z$b)); draw subpath (m,2) of p; penlabels(@,@a,@b); % second bowl enddef; def lwob(suffix $, $$, @) = y$=joinf[0,x_height]; y$$=bowlf[0,x_height]; y@=x_height; x$$=x$-7u; x@=x$-4u; draw z$..z$$..z@; penlabels($,$$,@); enddef; def llwob(suffix $, @) = y$=joinf[0,x_height]; y$a=bowlf[0,x_height]; y$b=x_height; x$a=x$-7u; x$b=x$-4u; draw z$..z$a..z$b; penlabels($,$a,$b); % first bowl x@ = x$-6u; y@=joinf[0,x_height]; y@a=bowlf[0,x_height]; y@b=x_height; x@a=x@-7u; x@b=x@-4u; path p; p = z@..z@a..z@b; m := xpart (p intersectiontimes (z$..z$a..z$b)); draw subpath (m,2) of p; penlabels(@,@a,@b); % second bowl enddef; % Under- and over-bars connecting elements of the tengwar; i.e., not for % use as accents in their own right. See "tehtar over line" and "tehtar % under line" for the over- and underbar tehtar. % The user supplies the endpoints for these macros. def underbar(suffix $, $$) = x$u=x$; x$$u=x$$; bot y$u=bot y$$u=0; draw z$u--z$$u; penlabels($u,$$u); draw z$--(x$,-1/2u); % drop stem a bit % erase overlapping part of bowls z$t = (x$+1/2thick,-thick); erase fill z$t--(x$t,0)--(x$$,0)--(x$$,y$t)--cycle; enddef; def overbar(suffix $, $$) = x$o=x$; x$$o=x$$; top y$o=top y$$o=x_height; draw z$o--z$$o; penlabels($o,$$o); % erase overlapping part of bowls z$t = (x$-1/2thick,x_height+thick); erase fill z$t--(x$t,x_height)--(x$$,x_height)--(x$$,y$t)--cycle; enddef; % Serifs. Each serif is attached at z$, on the stem coming from z$$. if serifs: def ul_serif(suffix $,$$)= draw z$..(x$-1/2u, y$); enddef; def ur_serif(suffix $,$$)= draw z$..(x$+1/2u, y$); enddef; def dl_serif(suffix $,$$)= draw z$..(x$-1/2u, y$); enddef; def dr_serif(suffix $,$$)= draw z$..(x$+1/2u, y$); enddef; def uul_serif(suffix $,$$)= draw z${dir 200}..{dir 200}(x$-4u, y$); enddef; def uur_serif(suffix $,$$)= draw z${dir 30}..{dir 30}(x$+4u, y$); enddef; def ddl_serif(suffix $,$$)= draw z${dir 210}..{dir 210}(x$-4u, y$); enddef; def ddr_serif(suffix $,$$)= draw z${dir 30}..{dir 30}(x$+4u, y$); enddef; else: def ul_serif(suffix $,$$)= enddef; def ur_serif(suffix $,$$)= enddef; def dl_serif(suffix $,$$)= enddef; def dr_serif(suffix $,$$)= enddef; def uul_serif(suffix $,$$)= enddef; def uur_serif(suffix $,$$)= enddef; def ddl_serif(suffix $,$$)= enddef; def ddr_serif(suffix $,$$)= enddef; fi; beginchar("1",11u#,x_height#,desc_depth#); "Tengwar letter p"; pickup elf.nib; lft x1=u; desc_stem(1,2); ul_serif(1,2); dr_serif(2,1); x3=x1; bowl(3,4,5); endchar; beginchar("2",17u#,x_height#,desc_depth#); "Tengwar letter pp"; pickup elf.nib; lft x1=u; desc_stem(1,2); ul_serif(1,2); dr_serif(2,1); x3=x1; bbowl(3,4); endchar; beginchar("3",11u#,asc_height#,0); "Tengwar letter h"; pickup elf.nib; lft x1=u; asc_stem(1,2); uul_serif(1,2); dl_serif(2,1); x3=x1; bowl(3,4,5); endchar; beginchar("4",17u#,asc_height#,0); "Tengwar letter hh"; pickup elf.nib; lft x1=u; asc_stem(1,2); uul_serif(1,2); dl_serif(2,1); x3=x1; bbowl(3,4); endchar; beginchar("6",11u#,x_height#,0); "Tengwar letter n"; pickup elf.nib; lft x1=u; stem(1,2); dr_serif(2,1); x3=x1; bowl(3,4,5); endchar; beginchar("5",17u#,x_height#,0); "Tengwar letter nn"; pickup elf.nib; lft x1=u; stem(1,2); dr_serif(2,1); x3=x1; bbowl(3,4); endchar; beginchar("q",11u#,x_height#,desc_depth#); "Tengwar letter p_"; pickup elf.nib; lft x1=u; desc_stem(1,2); ul_serif(1,2); dr_serif(2,1); x3=x1; bowl(3,4,5); underbar(1,4); endchar; beginchar("w",17u#,x_height#,desc_depth#); "Tengwar letter pp_"; pickup elf.nib; lft x1=u; desc_stem(1,2); ul_serif(1,2); dr_serif(2,1); x3=x1; bbowl(3,4); underbar(1,4a); endchar; beginchar("e",11u#,asc_height#,0); "Tengwar letter h_"; pickup elf.nib; lft x1=u; asc_stem(1,2); ul_serif(1,2); x3=x1; bowl(3,4,5); underbar(1,4); endchar; beginchar("r",17u#,asc_height#,0); "Tengwar letter hh_"; pickup elf.nib; lft x1=u; asc_stem(1,2); ul_serif(1,2); x3=x1; bbowl(3,4); underbar(1,4a); endchar; beginchar("y",11u#,x_height#,0); "Tengwar letter n_"; pickup elf.nib; lft x1=u; stem(1,2); x3=x1; bowl(3,4,5); underbar(1,4); endchar; beginchar("t",17u#,x_height#,0); "Tengwar letter nn_"; pickup elf.nib; lft x1=u; stem(1,2); x3=x1; bbowl(3,4); underbar(1,4a); endchar; beginchar("a",11u#,x_height#,desc_depth#); "Tengwar letter q"; pickup elf.nib; rt x1=w-u; desc_stem(1,2); dr_serif(2,1); x3=x1; lwob(3,4,5); endchar; beginchar("s",17u#,x_height#,desc_depth#); "Tengwar letter qq"; pickup elf.nib; rt x1=w-u; desc_stem(1,2); dr_serif(2,1); x3=x1; llwob(3,4); endchar; beginchar("d",11u#,asc_height#,0); "Tengwar letter d"; pickup elf.nib; rt x1=w-u; asc_stem(1,2); uul_serif(1,2); dr_serif(2,1); x3=x1; lwob(3,4,5); endchar; beginchar("f",17u#,asc_height#,0); "Tengwar letter dd"; pickup elf.nib; rt x1=w-u; asc_stem(1,2); uul_serif(1,2); dr_serif(2,1); x3=x1; llwob(3,4); endchar; beginchar("h",11u#,x_height#,0); "Tengwar letter u"; pickup elf.nib; rt x1=w-u; stem(1,2); dr_serif(2,1); x3=x1; lwob(3,4,5); endchar; beginchar("g",17u#,x_height#,0); "Tengwar letter uu"; pickup elf.nib; rt x1=w-u; stem(1,2); dr_serif(2,1); x3=x1; llwob(3,4); endchar; beginchar("z",11u#,x_height#,desc_depth#); "Tengwar letter q_"; pickup elf.nib; rt x1=w-u; desc_stem(1,2); dr_serif(2,1); x3=x1; lwob(3,4,5); overbar(1,4); endchar; beginchar("x",17u#,x_height#,desc_depth#); "Tengwar letter qq_"; pickup elf.nib; rt x1=w-u; desc_stem(1,2); dr_serif(2,1); x3=x1; llwob(3,4); overbar(1,4a); endchar; beginchar("c",11u#,asc_height#,0); "Tengwar letter d_"; pickup elf.nib; rt x1=w-u; asc_stem(1,2); ul_serif(1,2); dr_serif(2,1); x3=x1; lwob(3,4,5); overbar(1,4); endchar; beginchar("v",17u#,asc_height#,0); "Tengwar letter dd_"; pickup elf.nib; rt x1=w-u; asc_stem(1,2); ul_serif(1,2); dr_serif(2,1); x3=x1; llwob(3,4); overbar(1,4a); endchar; beginchar("n",11u#,x_height#,0); "Tengwar letter u_"; pickup elf.nib; rt x1=w-u; stem(1,2); dr_serif(2,1); x3=x1; lwob(3,4,5); overbar(1,4); endchar; beginchar("b",17u#,x_height#,0); "Tengwar letter uu_"; pickup elf.nib; rt x1=w-u; stem(1,2); dr_serif(2,1); x3=x1; llwob(3,4); overbar(1,4a); endchar; beginchar("7",13u#,x_height#,desc_depth#); "Tengwar letter y"; pickup elf.nib; lft x5=2u; rt x3=w-u; lft x7=u; y3=x_height; x6=9u; y5=bot y6=-d; lwob(2,7,8); draw z3..z2..z5..z6; penlabels(2,3,5,6,7,8); endchar; beginchar("u",15u#,x_height#,desc_depth#); "Tengwar letter y'"; pickup elf.nib; lft x5=4u; rt x3=w-u; lft x7=3u; y3=x_height; x6=11u; y5=bot y6=-d; lwob(2,7,8); draw z3..z2..z5..z6; penlabels(2,3,5,6,7,8); pickup small.nib; % draw extra curlicue z9 = point closef of (z2..z7..z8); z10 = z9+0.5(z5-z2); z11 = z9+0.5(z6-z2); draw z9..z10..z11; penlabels(9,10,11); endchar; beginchar("j",11u#,x_height#,0); "Tengwar letter t"; pickup elf.nib; rt x1=w-u; x3=x1; lwob(3,4,5); overbar(1,4); endchar; beginchar("m",11u#,x_height#,0); "Tengwar letter s_"; pickup elf.nib; rt x1=w-u; top y1=x_height; z2=(x1-4u, x_height); x3=x6; y3=closef[y6, x_height]; z4=(x1, closef[x_height,0]); x5=.5[x4,x6]; bot y5=0; z6=(x1-7u, joinf[0,x_height]); draw z2{z3-z2}..z3..tension 1.414..z4..z5{left}..{curl infinity}z6; penlabels(2,3,4,5,6); overbar(1,6); endchar; beginchar("8",12u#,asc_height#,0); "Tengwar letter 6"; pickup elf.nib; rt x1=w-u; y1=h; z2=(4u, x_height); z3=(w-3u, joinf[0,x_height]); z4=closef[z3,z2]; draw z1{z4-z1}..z2..z3..z4; penlabels(1,2,3,4); endchar; beginchar("*",12u#,asc_height#,0); "Variant tengwar letter 6"; pickup elf.nib; rt x1=w-u; y1=h; z2=(4u, x_height); z3=(w-3u, joinf[0,x_height]); z4=closef[z3,z2]; draw z1..z2..z3..z4; penlabels(1,2,3,4); endchar; beginchar("i",12u#,x_height#,desc_depth#); "Tengwar letter 9"; pickup elf.nib; lft x1=u; y1=-d; z2=(w-3u, 0); z3=(4u, joinf[x_height,0]); z4=(1.1closef)[z3,z2]; draw z1{z4-z1}..z2..z3..z4; penlabels(1,2,3,4); endchar; beginchar("I",12u#,x_height#,desc_depth#); "Variant tengwar letter 9"; pickup elf.nib; lft x1=u; y1=-d; z2=(w-3u, 0); z3=(4u, joinf[x_height,0]); z4=(1.1closef)[z3,z2]; draw z1..z2..z3..z4; penlabels(1,2,3,4); endchar; beginchar("k",12u#,asc_height#,desc_depth#); "Tengwar letter 6c"; pickup elf.nib; rt x1=w-u; y1=h; z2=(4u, x_height); z3=(w-3u, joinf[0,x_height]); z4=closef[z3,z2]; path p; p = z1{z4-z1}..z2..z3..z4; draw p; penlabels(1,2,3,4); pickup small.nib; % draw extra curlicue z5=point (1+closef) of p; z6=z5+whatever*(z3-z2); bot y6=1/4[-desc_depth,0]; z7=closef[z6,z5]; draw z5..z6..z7; penlabels(5,6,7); endchar; beginchar(82,12u#,asc_height#,desc_depth#); "Tengwar letter 9c"; pickup elf.nib; lft x1=u; y1=-d; z2=(w-3u, 0); z3=(4u, joinf[x_height,0]); z4=(1.1closef)[z3,z2]; path p; p = z1{z4-z1}..z2..z3..z4; draw p; penlabels(1,2,3,4); pickup small.nib; % draw extra curlicue z5=point 1.6 of p; x6=x3; top y6=1/3[asc_height,x_height]; z7=closef[z6,z3]; draw z5..z6..z7; penlabels(5,6,7); endchar; beginchar(",",11u#,x_height#,desc_depth#); "Variant tengwar letter 9c"; pickup elf.nib; lft x1=1.5u; y1=-d; z2=(w-4.5u, 0); z3=(3.5u, joinf[x_height,0]); z4=(1.1closef)[z3,z2]; draw subpath(1,2.6) of (z1{z4-z1}..z2{dir 30}..z3..z4); draw z2{right}..{-dir pentilt}(x3,-d); penlabels(1,2,3,4); endchar; beginchar("9",11u#,asc_height#,0); "Tengwar letter lambe"; pickup elf.nib; lft x1=u; y1=h; rt x2=w-u; y2=0; x3=x1; y3=0; z4 = whatever[z1,z2]; z4-z3 = whatever*(z2-z1) yscaled -0.8; draw z1--z2; ul_serif(1,2); dr_serif(2,1); draw z3..z4; penlabels(1,2,3,4); endchar; beginchar("o",12u#,asc_height#,0); "Tengwar letter hw"; pickup elf.nib; rt x1=w-2u; asc_stem(1,2); ul_serif(1,2); x6=x5=x1; y5=joinf[x_height,0]; bot y6=0; x0c=whatever; y0c=.5[0,x_height]; x1a=x0c-1u; top y1a=x_height; x3a=x0c+1u; bot y3a=0; x2a=x0c-4u; y2a=bowlf[0,x_height]; x4a=x0c+4u; y4a=bowlf[x_height,0]; x4a=x5+1u; path p; p = z1a..z2a..z3a..z4a..cycle; n := xpart (p intersectiontimes (z1--z2)); m := xpart (reverse p intersectiontimes (z1--z2)); draw subpath(0, n) of p; draw subpath(4-m, 4) of p; penlabels(1a,2a,3a,4a); draw z6--z6+(2u,0); penlabels(4,5,6); erase fill (0,0)--(0,-u)--(w,-u)--(w,0)--cycle; endchar; beginchar("l",12u#,x_height#,0); "Tengwar letter a"; pickup elf.nib; lft x1=u; y1=asc_height; rt x2=w-2u; y2=0; x3=x1; y3=0; z4 = whatever[z1,z2]; z4-z3 = whatever*(z2-z1) yscaled -0.8; z5=whatever[z1,z2]; y5=x_height; draw z5--z2; ul_serif(5,2); dr_serif(2,5); draw z3..z4; penlabels(1,2,3,4,5); endchar; beginchar(".",12u#,x_height#,0); "Tengwar letter o"; pickup elf.nib; x1=5u; top y1=x_height; x3=7u; bot y3=0; x2=2u; y2=bowlf[0,x_height]; x4=10u; y4=bowlf[x_height,0]; draw z1..z2..z3..z4..cycle; penlabels(1,2,3,4); endchar; beginchar(91,4u#,asc_height#,0); "Tengwar letter l"; pickup elf.nib; lft x1=u; asc_stem(1,2); ul_serif(1,2); dr_serif(2,1); endchar; beginchar("`",4u#,x_height#,0); "Tengwar short carrier"; pickup elf.nib; lft x1=u; stem(1,2); ur_serif(1,2); dl_serif(2,1); endchar; beginchar("~",4u#,x_height#,desc_depth#); "Tengwar long carrier"; pickup elf.nib; lft x2=lft x1=u; y1=x_height; y2=closef[0,-d]; draw z1--(x1,-d-pen_bot); ur_serif(1,2); pickup pencircle scaled thin; z3=z2+whatever*dir 45; bot y3=-d; % Erase the bottom of the stem to get a clean cutoff. z0t = z3 + penoffset(dir -45) of currentpen; z0u = z2 + (dir 45)*whatever; pickup elf.nib; x0u = rt x2; erase fill z0t--z0u--(x0u,-d)--(x0t,-d)--cycle; pickup pencircle scaled thin; rt z0v = z0u; draw z0v--z3; penlabels(1,2,3,0t,0u,0v); endchar; beginchar("A",11u#,asc_height#,desc_depth#); "Tengwar ligature ql"; pickup elf.nib; rt x1=w-u; ad_stem(1,2); ul_serif(1,2); dr_serif(2,1); x3=x1; lwob(3,4,5); endchar; beginchar("Z",11u#,asc_height#,desc_depth#); "Tengwar ligature ql_"; pickup elf.nib; rt x1=w-u; ad_stem(1,2); ul_serif(1,2); dr_serif(2,1); x3=x1; lwob(3,4,5); overbar(1,4); endchar; beginchar("X",17u#,asc_height#,desc_depth#); "Tengwar ligature qql_"; pickup elf.nib; rt x1=w-u; ad_stem(1,2); ul_serif(1,2); dr_serif(2,1); x3=x1; llwob(3,4); overbar(1,4a); endchar; beginchar("]",12u#,x_height#,0); "Tengwar letter c"; pickup elf.nib; x1=5u; top y1=x_height; x3=7u; bot y3=0; x2=2u; y2=bowlf[0,x_height]; x4=10u; y4=bowlf[x_height,0]; draw subpath(closef,3+closef) of z1..z2..z3..z4..cycle; penlabels(1,2,3,4); endchar; % Tehtar --- the tengwar's diacritical vowels def diamond(suffix $) = pickup pencircle; z$a=z$+.5thick*up; z$b=z$+.5thick*right; z$c=z$+.5thick*down; z$d=z$+.5thick*left; path p; p = z$a{x$b-x$a,1.5(y$b-y$a)}...z$b{1.5(x$b-x$a),y$b-y$a} & z$b{1.5(x$c-x$b),y$c-y$b}...z$c{x$c-x$b,1.5(y$c-y$b)} & z$c{x$d-x$c,1.5(y$d-y$c)}...z$d{1.5(x$d-x$c),y$d-y$c} & z$d{1.5(x$a-x$d),y$a-y$d}...z$a{x$a-x$d,1.5(y$a-y$d)}; fill p--cycle; penlabels($,$a,$b); enddef; % % There are three different positions of tehtar accents in Dan % Smith's encoding: narrow (for carriers), medium (???), and % wide (for most other tengwar). There are also short (p- and % q-sized tengwar) and long (pp- and qq-sized tengwar) versions % of the tilde and bar accents. % back:=-2u; backk:=-5u; backkk:=-6u; def overdot(expr code, b, descr) = beginchar(code,0,tehtar_height#,0); descr; x1=b; y1=tehtar_height; diamond(1); endchar; enddef; def overdots(expr code, b, descr) = beginchar("E",0,tehtar_height#,0); descr; x1+2u = x2 = x3-2u = b; y1=y3=tehtar_height; y2=y1+thick; forsuffixes $=1,2,3: diamond($); endfor; endchar; enddef; def underdot(expr code, b, descr) = beginchar(code,0,0,desc_depth#); descr; z1=(b,-2thick); diamond(1); endchar; enddef; def underdots(expr code, b, descr) = beginchar(code,0,0,desc_depth#); descr; x1+2u = x2 = x3-2u = b; y1=y3=-2thick; y2=y1-thick; forsuffixes $=1,2,3: diamond($); endfor; endchar; enddef; def circumflex(expr code, b, descr) = beginchar(code,0,tehtar_height#,0); descr; pickup small.nib; x1+2u = x2 = x3-2u = b; y1=y3=tehtar_height; y2=y1+thick; draw z1{1.5(x2-x1),y2-y1}..{x2-x1,1.5(y2-y1)}z2--z3; endchar; enddef; def overchevron(expr code, b, descr) = beginchar(code,0,tehtar_height#,0); descr; pickup small.nib; x1+2u = x2 = x3-2u = b; y1=y3=y2+thick; y2=tehtar_height; draw z1{1.5(x2-x1),y2-y1}..{x2-x1,1.5(y2-y1)}z2--z3; endchar; enddef; def overcurl(expr code, b, descr) = beginchar(code,0,tehtar_height#,0); descr; x1+1.5u = x2-1.5u = b; y2-1.5thick=y1=tehtar_height-1/2thick; z3 = (.5[x1,x2],y2); pair m; m = (1.5(x2-x1), y2-y1); % direction at z1 penpos1(thin, -angle m); penpos2(1/2thick,0); penpos3(thin, 180-angle m); penstroke z1e{m}..z2e..z3e; endchar; enddef; def acuteaccent(expr code, b, descr) = beginchar(code,0,tehtar_height#,0); descr; pickup small.nib; x1+u = x2-u = b; y2-thick=y1=tehtar_height; draw z1--z2; endchar; enddef; def acuteaccentii(expr code, b, descr) = beginchar(code,0,tehtar_height#,0); descr; pickup small.nib; x1+2u=x2=x3=x4-2u=b; y1=y3=tehtar_height; y2=y4=y1+thick; draw z1--z2; draw z3--z4; endchar; enddef; underdot("O", backkk, "Tehtar under dot wide"); underdots(">", back, "Tehtar three under dots narrow"); overchevron("H",back,"Tehtar over chevron narrow"); overchevron("Y",backk,"Tehtar over chevron medium"); overchevron("6",backkk,"Tehtar over chevron wide"); overcurl("M",back,"Tehtar over curl narrow"); overcurl("J",backk,"Tehtar over curl medium"); overcurl("U",backkk,"Tehtar over curl wide"); overdot("B", back, "Tehtar over dot narrow"); overdot("G", backk, "Tehtar over dot medium"); overdot("T", backkk, "Tehtar over dot wide"); overdots("C", back, "Tehtar three over dots narrow"); overdots("D", backk, "Tehtar three over dots medium"); overdots("E", backkk, "Tehtar three over dots wide"); acuteaccent("V", back, "Tehtar acute accent narrow"); acuteaccent("F", backk, "Tehtar acute accent medium"); acuteaccent("R", backkk, "Tehtar acute accent wide"); % Punctuation beginchar("-",4u#,x_height#,0); "Punctuation vertical colon"; x1=x2=w/2; 1/2x_height = .5[y1,y2]; y2-y1 = w; diamond(1); diamond(2); endchar; beginchar("=",4u#,x_height#,0); "Punctuation single dot"; z1=(.5w,1/2x_height); diamond(1); endchar; %beginchar("L",0,tehtar_height#,0); "Tehtar dot in the middle of stuff"; %beginchar("_",4u#,x_height#,0); "Tengwar lowered curl meeting stem"; %beginchar("+",4u#,x_height#,0); "Tehtar lowered curl meeting bowl"; %beginchar("0",0,tehtar_height#,0); "Tehtar high over tilde short"; %beginchar(")",0,tehtar_height#,0); "Tehtar high over tilde long"; %beginchar("p",0,tehtar_height#,0); "Tehtar low over tilde short"; %beginchar("P",0,tehtar_height#,0); "Tehtar low over tilde long"; %beginchar(";",0,0,0); "Tehtar high under tilde short"; %beginchar(":",0,0,0); "Tehtar high under tilde long"; %beginchar("/",0,0,0); "Tehtar low under tilde short"; %beginchar("?",0,0,0); "Tehtar low under tilde long"; %beginchar("'",0,0,0); "Tehtar under line short"; %beginchar(34,0,0,0); "Tehtar under line long"; %beginchar("[",0,0,0); "Tehtar over line short"; %beginchar("{",0,0,0); "Tehtar over line long"; %beginchar("}",0,0,0); "Tehtar under curl"; font_slant slant; font_normal_space 1/3em#; font_normal_stretch 1/9em#; font_normal_shrink 1/12em#; font_x_height x_height#; font_quad em#; font_extra_space 0;