From ce3158affc70967326d28a3a13948ee507338006 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Mon, 17 Nov 2008 01:35:05 +0000 Subject: elvish update to get free license git-svn-id: svn://tug.org/texlive/trunk@11317 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/doc/fonts/elvish/README | 35 +- Master/texmf-dist/doc/fonts/elvish/teng.tex | 32 + .../texmf-dist/fonts/source/public/elvish/cirth.mf | 779 +++++++++++++++++++++ .../fonts/source/public/elvish/elvish-cirth.mf | 779 --------------------- .../texmf-dist/fonts/tfm/public/elvish/cirth.tfm | Bin 0 -> 620 bytes .../fonts/tfm/public/elvish/elvish-cirth.tfm | Bin 620 -> 0 bytes Master/texmf-dist/tex/generic/elvish/teng.tex | 32 - Master/tlpkg/bin/ctan2tds | 2 + Master/tlpkg/bin/tlpkg-ctan-check | 2 +- 9 files changed, 827 insertions(+), 834 deletions(-) create mode 100644 Master/texmf-dist/doc/fonts/elvish/teng.tex create mode 100644 Master/texmf-dist/fonts/source/public/elvish/cirth.mf delete mode 100644 Master/texmf-dist/fonts/source/public/elvish/elvish-cirth.mf create mode 100644 Master/texmf-dist/fonts/tfm/public/elvish/cirth.tfm delete mode 100644 Master/texmf-dist/fonts/tfm/public/elvish/elvish-cirth.tfm delete mode 100644 Master/texmf-dist/tex/generic/elvish/teng.tex diff --git a/Master/texmf-dist/doc/fonts/elvish/README b/Master/texmf-dist/doc/fonts/elvish/README index 4bb3346b45f..74c467f009f 100644 --- a/Master/texmf-dist/doc/fonts/elvish/README +++ b/Master/texmf-dist/doc/fonts/elvish/README @@ -1,3 +1,5 @@ +(README changed 09/06/99; conditions relaxed) + 28/06/91 As a concession to those who for some reason don't have Metafont, the following files are now included: teng10.tfm and cirth.tfm (the font metric files), and {teng10,cirth}.pk{300,360} (the pk files generated @@ -10,31 +12,20 @@ with mode imagen (i.e. Laserwriter) at normal size and at magstep 1). These files are copyright (c) 1987 J.C. Bradfield. They are distributed on the following conditions: - (a) You may make the source and generated fonts available at your site. - (b) You may use the generated fonts in any academic or non-commercial - publication. You may not charge, or allow any other user at your - site to charge, for use of these fonts. - (c) You, or any user at your site, may make modifications for his or - her own use. If you distribute any modified form of these files, you - must include the original files clearly labelled as such. + (a) You may use the source and generated fonts for any purpose, + and may distribute the files, provided that all files including + this copyright notice remain intact. + (b) You may make modifications for your own use. You may distribute + modified versions of these files PROVIDED that this copyright + notice remains intact AND that you include the original files + clearly labelled as such. If you produce modifications that seem useful, you are asked to send them to me, so that they can be incorporated into the master files. - (d) You may redistribute these files to single individuals (who are - asked to act on the note below), but you may *not* place these - files in a public archive site without my permission. - -The tengwar font is still under development; when I consider that a -reasonably final version has been produced, conditions (c) and (d) -will no longer apply; but until then I ask you to comply. - - -*** PLEASE *** If you use these fonts, let me know (at the contact -address below). One day, I may actually get round to the necessary tidying -and improvement, at which time I shall want to replace all earlier versions. -In particular, I hope that the facilities of TeX 3.0 will allow a great -improvement in the "user interface" to the fonts. +There are still things I would like to do with these fonts, in +particular, to provide virtual fonts for Quenya etc. If you have +suggestions or comments, please contact me. ****************************************** @@ -83,7 +74,7 @@ I can be contacted by post at: U.K. EH9 3JZ I can be contacted by electronic mail as: - jcb@lfcs.ed.ac.uk (in Internet domain ordering) + jcb@dcs.ed.ac.uk (in Internet domain ordering) If that doesn't work, you should kick your postmaster, and then get him/her to tell you how to reach that address. (Well, maybe diff --git a/Master/texmf-dist/doc/fonts/elvish/teng.tex b/Master/texmf-dist/doc/fonts/elvish/teng.tex new file mode 100644 index 00000000000..f87a2fbd7f1 --- /dev/null +++ b/Master/texmf-dist/doc/fonts/elvish/teng.tex @@ -0,0 +1,32 @@ +% Version 1.0 dated 31/01/90 +% macros for tengwar in Quenya and Sindarin +\font\teng=teng10 +\def\qac#1#2{\accent`#2#1} +\def\sac{\accent`} +\catcode`\^^I=12 % want to get at tab +{\catcode`\^=13% +% Because we define various things that conflict with plain TeX +% macros, we do all definitions inside the tengwar section, though +% this is of course expensive +\gdef\quenya{\teng\catcode`\^=13\let^=\qac\dotengdefs} +\gdef\sindarin{\teng\catcode`\^=13\let^=\sac\dotengdefs}} +\def\dotengdefs{% +\def\lap##1##2{\ooalign{##2\crcr\hidewidth##1\hidewidth}}% +\def\raisedlap##1##2{\ooalign{##2\crcr\hidewidth\raise0.35ex\hbox{##1}\hidewidth}}% +\def\lowlap##1##2{\ooalign{##2\crcr\hidewidth\vbox{\vskip0.2ex% +\hbox{##1}\vskip-.2ex}\hidewidth}}% +\def\verylowlap##1##2{\ooalign{##2\crcr\hidewidth\lower0.3ex% +\hbox{##1}\hidewidth}}% +\def\ssy{\verylowlap^^Zz}% +\def\ldot{\raisedlap^^El}% +\def\S{\kern-0.15em^^S}% +\def\s{\kern-0.15em^^T}% +%%%%\def\ll{\raisedlap^^Bl}% +\def\ll{\lap^^Cl}% +\def\,{\lap^^E}% +\def\y{\lap^^Y}\def\z{\lap^^Z}\def\Y{\lap"}\def\b{\lap^^B}\def\c{\lap^^C}% +\def\N{\lap^^N}\def\.{\accent`i}\def\\{\accent`e}\def\U{\accent`^^V}% +% control sequences for the extended tengwar +\chardef\xT=12\chardef\xf=16\chardef\xC=27\chardef\xK=11% +\chardef\xD=4\chardef\xv=18\chardef\xJ=10\chardef\xG=7% +} % end \dotengdefs diff --git a/Master/texmf-dist/fonts/source/public/elvish/cirth.mf b/Master/texmf-dist/fonts/source/public/elvish/cirth.mf new file mode 100644 index 00000000000..790da12fe0a --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/elvish/cirth.mf @@ -0,0 +1,779 @@ +designsize:=10pt# ; +autorounding := 1 ; +mode_setup; +em#:=10pt#; ; desc#:=10/3pt#; ex#:=8pt#; o#:=1/8pt#; +% parameters + +font_normal_space(0.4em#) ; font_x_height(ex#) ; +font_quad(em#) ; font_normal_stretch(0.2em#) ; +font_normal_shrink(0.1em#) ; + +penangle := 30 ; +penwidth# := 1/12em# ; penthickness# := 1/50em# ; +define_pixels(em,desc,ex); +define_blacker_pixels(penwidth,penthickness) ; +tehta_penwidth# = 0.8penwidth# ; +define_blacker_pixels(tehta_penwidth) ; +define_corrected_pixels(o); +straight_sidebar# = 1/12em#; curve_sidebar# = 1/18em#; +define_whole_pixels(straight_sidebar,curve_sidebar) ; + +fudge := 0.05 ex ; % fudge for lowering calma luva +u# := em#/18 ; +define_pixels(u) ; +tailjut# := 12u# - 10u# ; +define_whole_pixels(tailjut) ; +luva_width# = 0.5em# ; define_pixels(luva_width) ; +pickup pencircle xscaled penwidth yscaled penthickness rotated penangle; +main_nib := savepen ; +pickup pencircle xscaled tehta_penwidth yscaled penthickness rotated penangle; +tehta_nib := savepen ; + + + +def draw_stem(suffix i,j)(expr serifs) = % serifs = t,b,tb for Top & Bottom + z.i.$ = z.i + 0.05em * dir(penangle+180) ; + z.i.$$ = z.i + 0.1em * down ; + z.j.$ = z.j + 0.05em * dir(penangle) ; + z.j.$$ = z.j + 0.1em * up ; + draw z.i .. z.j ; + if (serifs = "t") or (serifs = "tb"): + filldraw z.i -- z.i.${dir(penangle-90)} + .. {down}z.i.$$ & z.i.$$ .. z.i & cycle ; fi + if (serifs = "b") or (serifs = "tb"): + filldraw z.j -- z.j.${dir(penangle+90)} + .. {up}z.j.$$ & z.j.$$ .. z.j & cycle ; fi + labels(i,j) + enddef ; + +def diag(suffix i,j) = % diag from i to j with serif at j + draw z.i -- z.j ; + theta := + if x.j > x.i: + if y.j > y.i: penangle - 90 else: penangle fi + else: + if y.j > y.i: -penangle else: penangle + 90 fi fi ; + draw z.j -- (z.j + 0.05em*dir theta) ; +enddef ; + +beginchar("p",10u#,ex#,0) ; "The rune p" ; + pickup main_nib ; + top y1 = h ; bot y2 = 0 ; lft x1 = lft x2 = straight_sidebar ; + draw_stem(1,2,"tb") ; + bot z4 = 0.4[z2,z1] ; + rt x3 = w - curve_sidebar ; y3 = 1/2[y4,y1] ; + draw z1 -- z3 -- z4 ; +endchar ; + +beginchar("b",12u#,ex#,0) ; "The rune b" ; + pickup main_nib ; + top y1 = h ; bot y2 = 0 ; lft x1 = lft x2 = straight_sidebar ; + draw_stem(1,2,"tb") ; + bot z4 = 0.4[z2,z1] ; + rt x3 = w - curve_sidebar - tailjut ; y3 = 1/2[y4,y1] ; + draw z1 -- z3 -- z4 ; + y5 = y2 ; rt x5 = w - curve_sidebar ; + bot y4' = round y4 ; x4 = x4' ; + diag(4',5) ; +endchar ; + +beginchar("f",10u#,ex#,0) ; "The rune f" ; + pickup main_nib ; + top y1 = h ; bot y2 = 0 ; rt x1 = rt x2 = w - straight_sidebar ; + draw_stem(1,2,"b") ; + bot z4 = 0.4[z2,z1] ; + lft x3 = curve_sidebar ; y3 = 1/2[y4,y1] ; + draw z1 -- z3 -- z4 ; +endchar ; + +beginchar("v",12u#,ex#,0) ; "The rune v" ; + pickup main_nib ; + top y1 = h ; bot y2 = 0 ; rt x1 = rt x2 = w - straight_sidebar ; + draw_stem(1,2,"b") ; + bot z4 = 0.45[z2,z1] ; + lft x3 = curve_sidebar+tailjut ; y3 = 1/2[y4,y1] ; + draw z1 -- z3 -- z4 ; + y5 = y2 ; lft x5 = curve_sidebar ; + diag(4,5) ; +endchar ; + +beginchar("W",19u#,ex#,0) ; "The rune hw" ; + pickup main_nib ; + top y1 = h ; bot y2 = 0 ; x1 = x2 = good.x 0.5w ; + draw_stem(1,2,"b") ; + bot z4 = 0.4[z2,z1] ; + rt x3 = w - curve_sidebar ; y3 = 1/2[y4,y1] ; + draw z1 -- z3 -- z4 ; + lft x5 = curve_sidebar ; y5 = y3 ; + draw z1 -- z5 -- z4 ; +endchar ; + +beginchar("m",10u#,ex#,0) ; "The rune m" ; + pickup main_nib ; + top y1 = h ; bot y2 = 0 ; lft x1 = lft x2 = straight_sidebar ; + draw_stem(1,2,"b") ; + top z4 = 0.55[z2,z1] ; + rt x3 = w - curve_sidebar ; y3 = 1/2[y4,y1] ; + draw z1 -- z3 -- z4 ; + y5 = 1/2[y4,y2] ; + rt x5 = w - 1/2curve_sidebar ; + draw z4 -- z5 -- z2 ; +endchar ; + +beginchar("M",10u#,ex#,0); "The rune mb" ; + pickup main_nib ; + top y1 = h ; bot y2 = 0 ; rt x1 = rt x2 = w- straight_sidebar ; + draw_stem(1,2,"b") ; + top z4 = 0.55[z2,z1] ; + lft x3 = curve_sidebar ; y3 = 1/2[y4,y1] ; + draw z1 -- z3 -- z4 ; + y5 = 1/2[y4,y2] ; + lft x5 = 1/2curve_sidebar ; + draw z4 -- z5 -- z2 ; +endchar ; + +beginchar("t",10u#,ex#,0) ; "The rune t" ; + pickup main_nib ; + top y1 = h ; bot y2 = 0 ; lft x1 = lft x2 = straight_sidebar ; + draw_stem(1,2,"tb") ; + rt x3 = w - curve_sidebar ; y3 = .7[y2,y1] ; + diag(1,3) ; +endchar ; + +beginchar("d",10u#,ex#,0) ; "The rune d" ; + pickup main_nib ; + top y1 = h ; bot y2 = 0 ; lft x1 = lft x2 = straight_sidebar ; + draw_stem(1,2,"tb") ; + rt x3 = w - curve_sidebar ; y3 = .7[y2,y1] ; + diag(1,3) ; + x4 = x1 ; x5 = x3 ; bot y4 = round (.5[y1,y2]) ; y4 - y1 = y5 - y3 ; + diag(4,5) ; +endchar ; + +beginchar("T",10u#,ex#,0) ; "The rune th" ; + pickup main_nib ; + top y1 = h ; bot y2 = 0 ; rt x1 = rt x2 = w - straight_sidebar ; + draw_stem(1,2,"b") ; + lft x3 = curve_sidebar ; y3 = .7[y2,y1] ; + diag(1,3) ; +endchar ; + +beginchar("D",10u#,ex#,0) ; "The rune dh" ; + pickup main_nib ; + top y1 = h ; bot y2 = 0 ; rt x1 = rt x2 = w - straight_sidebar ; + draw_stem(1,2,"b") ; + lft x3 = curve_sidebar ; y3 = .7[y2,y1] ; + diag(1,3) ; + x4 = x1 ; x5 = x3 ; bot y4 = round(.5[y1,y2]) ; y4 - y1 = y5 - y3 ; + diag(4,5) ; +endchar ; + +beginchar("n",17u#,ex#,0) ; "The rune n" ; + pickup main_nib ; + top y1 = h ; bot y2 = 0 ; x1 = x2 = good.x .5w ; + draw_stem(1,2,"b") ; + lft x3 = curve_sidebar = w - rt x4 ; y3 = y4 = .7[y2,y1] ; + diag(1,3) ; diag(1,4) ; +endchar ; + +beginchar("c",12u#,ex#,0) ; "The rune ch" ; + pickup main_nib ; + top y1 = h ; bot y2 = 0 ; lft x1 = lft x2 = straight_sidebar ; + bot y3 = .45[y1,y2] ; x3 = x1 ; + rt x4 = w - curve_sidebar ; y4 = y2 ; + draw_stem(1,2,"tb") ; + diag(3,4) ; +endchar ; + +beginchar("j",13u#,ex#,0) ; "The rune j" ; + pickup main_nib ; + top y1 = h ; bot y2 = 0 ; lft x1 = lft x2 = straight_sidebar ; + bot y3 = .4[y1,y2] ; x3 = x1 ; + rt x4 = w - curve_sidebar ; y4 = y2 ; + draw_stem(1,2,"tb") ; + diag(3,4) ; + y5 = .5[y2,y3] ; x5 = x1 ; y6 = y4 ; z6 - z5 = whatever*(z4 - z3) ; + diag(5,6) ; +endchar ; + +beginchar("C",11u#,ex#,0) ; "The rune sh" ; + pickup main_nib ; + top y1 = h ; bot y2 = 0 ; rt x1 = rt x2 = w - straight_sidebar ; + bot y3 = .45[y1,y2] ; x3 = x1 ; + lft x4 = curve_sidebar ; y4 = y2 ; + draw_stem(1,2,"tb") ; + diag(3,4) ; +endchar ; + +beginchar("J",12u#,ex#,0) ; "The rune zh" ; + pickup main_nib ; + top y1 = h ; bot y2 = 0 ; rt x1 = rt x2 = w - straight_sidebar ; + bot y3 = .4[y1,y2] ; x3 = x1 ; + lft x4 = curve_sidebar ; y4 = y2 ; + draw_stem(1,2,"tb") ; + diag(3,4) ; + y5 = .5[y2,y3] ; x5 = x1 ; y6 = y4 ; z6 - z5 = whatever*(z4 - z3) ; + diag(5,6) ; +endchar ; + +beginchar("Y",18u#,ex#,0) ; "The rune nj" ; + pickup main_nib ; + top y1 = h ; bot y2 = 0 ; x1 = x2 = good.x .5w ; + bot y3 = .45[y1,y2] ; x3 = x1 ; + y4 = y5 = y2 ; x4 = curve_sidebar = w - x5 ; + draw_stem(1,2,"tb") ; + diag(3,4) ; diag(3,5) ; +endchar ; + +beginchar("k",11u#,ex#,0) ; "The rune k" ; + pickup main_nib ; + top y1 = h ; bot y2 = 0 ; lft x1 = lft x2 = straight_sidebar ; + top y3 = .55[y1,y2] ; x3 = x1 ; + y4 = y1 ; rt x4 = w - curve_sidebar ; + draw_stem(1,2,"tb") ; + draw z3{dir 35} .. tension 1 .. {dir 80}z4 -- z4 + 0.03em*left ; +endchar ; + +beginchar("g",12u#,ex#,0) ; "The rune g" ; + pickup main_nib ; + top y1 = h ; bot y2 = 0 ; lft x1 = lft x2 = straight_sidebar ; + top y3 = .6[y1,y2] ; x3 = x1 ; + y4 = y1 ; rt x4 = w - curve_sidebar ; + draw_stem(1,2,"tb") ; + draw z3{dir 35} .. tension 1 .. {dir 80}z4 -- z4 + 0.03em*left ; + z5 = .55[z1,z3] ; z6 = .5[z1,z4] ; + draw z5{dir 40} .. tension 2 .. z6 -- z6 + 0.03em*left ; +endchar ; + +beginchar("K",11u#,ex#,0) ; "The rune kh" ; + pickup main_nib ; + top y1 = h ; bot y2 = 0 ; rt x1 = rt x2 = w - straight_sidebar ; + top y3 = .55[y1,y2] ; x3 = x1 ; + y4 = y1 ; lft x4 = curve_sidebar ; + draw_stem(1,2,"tb") ; + draw z3{dir 135} .. tension 1 .. {dir 100}z4 -- z4 + 0.03em*left ; +endchar ; + +beginchar("G",12u#,ex#,0) ; "The rune gh" ; + pickup main_nib ; + top y1 = h ; bot y2 = 0 ; rt x1 = rt x2 = w - straight_sidebar ; + top y3 = .6[y1,y2] ; x3 = x1 ; + y4 = y1 ; lft x4 = curve_sidebar ; + draw_stem(1,2,"tb") ; + draw z3{dir 145} .. tension 1 .. {dir 100}z4 -- z4 + 0.03em*left ; + z5 = .55[z1,z3] ; z6 = .5[z1,z4] ; + draw z5{dir 145} .. tension 1 .. {dir 100}z6 -- z6 + 0.03em*left ; +endchar ; + +beginchar("N",16u#,ex#,0) ; "The rune ng" ; + pickup main_nib ; + top y1 = h ; bot y2 = 0 ; x1 = x2 = good.x .5w ; + top y3 = .55[y1,y2] ; x3 = x1 ; + y4 = y1 ; lft x4 = curve_sidebar ; + draw_stem(1,2,"tb") ; + draw z3{dir 145} .. tension 1 .. {dir 100}z4 -- z4 + 0.03em*left ; + y5 = y4 ; x5 = w - x4 ; + draw z3{dir 35} .. tension 1 .. {dir 80}z5 -- z5 + 0.03em*left ; +endchar ; + +beginchar(43,13u#,ex#,0) ; "The rune kw" ; + pickup main_nib ; + top y1 = h ; bot y2 = 0 ; lft x1 = lft x2 = straight_sidebar ; + draw_stem(1,2,"tb") ; + rt x4 = w - curve_sidebar ; x3 = .5[x1,x4] ; y4 = y1 ; y3 = .7[y2,y1] ; + draw z1 -- z3 ; diag(3,4) ; +endchar ; + +beginchar(39,13u#,ex#,0) ; "The rune gw" ; + pickup main_nib ; + top y1 = h ; bot y2 = 0 ; lft x1 = lft x2 = straight_sidebar ; + draw_stem(1,2,"tb") ; + rt x4 = w - curve_sidebar ; x3 = .5[x1,x4] ; y4 = y1 ; y3 = .7[y2,y1] ; + draw z1 -- z3 ; diag(3,4) ; + x5 = x1 ; top y5 = .6[y2,y1] ; z5 - z1 = z6 - z3 = z7 - z4 ; + draw z5 -- z6 ; diag(6,7) ; +endchar ; + +beginchar(11,13u#,ex#,0) ; "The rune khw" ; + pickup main_nib ; + top y1 = h ; bot y2 = 0 ; rt x1 = rt x2 = w - straight_sidebar ; + draw_stem(1,2,"b") ; + lft x4 = curve_sidebar ; x3 = .5[x1,x4] ; y4 = y1 ; y3 = .7[y2,y1] ; + draw z1 -- z3 ; diag(3,4) ; +endchar ; + +beginchar(7,13u#,ex#,0) ; "The rune ghw" ; + pickup main_nib ; + top y1 = h ; bot y2 = 0 ; rt x1 = rt x2 = w - straight_sidebar ; + draw_stem(1,2,"b") ; + lft x4 = curve_sidebar ; x3 = .5[x1,x4] ; y4 = y1 ; y3 = .7[y2,y1] ; + draw z1 -- z3 ; diag(3,4) ; + x5 = x1 ; top y5 = .6[y2,y1] ; z5 - z1 = z6 - z3 = z7 - z4 ; + draw z5 -- z6 ; diag(6,7) ; +endchar ; + +beginchar(14,22u#,ex#,0) ; "The rune ngw" ; + pickup main_nib ; + top y1 = h ; bot y2 = 0 ; x1 = x2 = good.x .5w ; + draw_stem(1,2,"b") ; + lft x4 = curve_sidebar ; x3 = .5[x1,x4] ; y4 = y1 ; y3 = .7[y2,y1] ; + draw z1 -- z3 ; diag(3,4) ; + x6 = w - x4 ; y6 = y4 ; y5 = y3 ; x5 = w - x3 ; + draw z1 -- z5 ; diag(5,6) ; +endchar ; + +beginchar(46,13u#,ex#,0) ; "The rune nw" ; + pickup main_nib ; + top y1 = h ; bot y2 = 0 ; lft x1 = lft x2 = straight_sidebar ; + draw_stem(1,2,"") ; + rt x4 = w - curve_sidebar ; x3 = .5[x1,x4] ; y4 = y1 ; y3 = .7[y2,y1] ; + draw z1 -- z3 ; diag(3,4) ; + x6 = x4 ; y6 = h - y4 ; y5 = h - y3 ; rt x5 = round x3 ; + draw z2 -- z5 ; diag(5,6) ; +endchar ; + +beginchar("r",10u#,ex#,0) ; "The rune r" ; + pickup main_nib ; + top y1 = h ; bot y2 = 0 ; lft x1 = lft x2 = straight_sidebar ; + y3 = .5[y1,y2] ; x3 = x1 ; + y4 = y1 ; rt x4 = w - curve_sidebar ; + draw_stem(1,2,"tb") ; + draw z3{dir 45} .. tension 2 .. {dir 80}z4 -- z4 + 0.03em*left ; + y5 = y2 ; x5 = x4 ; + draw z3{dir -20} .. z5{dir -80} ; +endchar ; + +beginchar("R",10u#,ex#,0) ; "The rune rh" ; + pickup main_nib ; + top y1 = h ; bot y2 = 0 ; rt x1 = rt x2 = w - straight_sidebar ; + y3 = .5[y1,y2] ; x3 = x1 ; + y4 = y1 ; lft x4 = curve_sidebar ; + draw_stem(1,2,"tb") ; + draw z3{dir 135} .. tension 2 .. {dir 100}z4 -- z4 + 0.03em*left ; + y5 = y2 ; x5 = x4 ; + draw z3{dir 200} .. z5{dir -100} ; +endchar ; + +beginchar("l",12u#,ex#,0) ; "The rune l" ; + pickup main_nib ; + top y1 = h ; bot y2 = 0 ; x1 = x2 = good.x .5w ; + top y3 = round .85h ; rt x3 = w - curve_sidebar ; + x4 = w - x3 ; y4 = h - y3 ; + draw_stem(1,2,"tb") ; + draw z3{dir -100} .. {dir -100}z4 .. z4 + 0.03em*dir -70 ; +endchar ; + +beginchar("L",12u#,ex#,0) ; "The rune lh" ; + pickup main_nib ; + top y1 = h ; bot y2 = 0 ; x1 = x2 = good.x .5w ; + top y3 = round .85h ; lft x3 = curve_sidebar ; + x4 = w - x3 ; y4 = h - y3 ; + draw_stem(1,2,"tb") ; + draw z3 + 0.03em*dir70 .. z3{dir -80} .. {dir -100}z4 .. z4 + 0.03em*dir -110 ; +endchar ; + +beginchar(1,12u#,ex#,0) ; "The rune ng--nd" ; + pickup main_nib ; + top y1 = h ; bot y2 = 0 ; x1 = x2 = good.x .5w ; + top y3 = round .85h ; lft x3 = curve_sidebar ; + x4 = w - x3 ; y4 = h - y3 ; + draw_stem(1,2,"tb") ; + draw z3 + 0.03em*dir70 .. z3{dir -80} .. {dir -100}z4 .. z4 + 0.03em*dir -110 ; + top y5 = round .85h ; rt x5 = w - curve_sidebar ; + x6 = w - x5 ; y6 = h - y5 ; + draw z5{dir -100} .. {dir -100}z6 .. z6 + 0.03em*dir -70 ; +endchar ; + +beginchar("s",10u#,ex#,0) ; "The rune s" ; + pickup main_nib ; + lft x1 = lft x3 = curve_sidebar = w - rt x2 ; + top y1 = h = h - bot y3 ; y2 = .5[y1,y3] ; + diag(2,1) ; diag(2,3) ; +endchar ; + +beginchar("S",10u#,ex#,0) ; "The rune s---variant" ; + pickup main_nib ; + rt x1 = rt x3 = w - curve_sidebar = w - lft x2 ; + top y1 = h = h - bot y3 ; y2 = .5[y1,y3] ; + diag(2,1) ; diag(2,3) ; +endchar ; + +beginchar("z",14u#,ex#,0) ; "The rune z" ; + pickup main_nib ; + lft x1 = curve_sidebar = w - rt x2 = w - rt x4 = lft x3 ; + top y1 = top y2 = h = h - bot y3 = h - bot y4 ; + z5 = .5[z1,z4] ; + diag(5,1) ; diag(5,2) ; diag(5,3) ; diag(5,4) ; +endchar ; + +beginchar(2,14u#,ex#,0) ; "The rune ng---variant" ; + pickup main_nib ; + lft x1 = curve_sidebar = w - rt x2 = w - rt x4 = lft x3 ; + top y1 = top y2 = h = h - bot y3 = h - bot y4 ; + z5 = .5[z1,z4] ; + diag(5,1) ; diag(5,2) ; diag(5,3) ; diag(5,4) ; + x1' = x4' = x5 ; y2' = y3' = y5 ; + top y1' = round .85h = h - bot y4' ; + z2' - z1' = z4' - z3' = whatever*(z4 - z1) ; + draw z1' -- z2' -- z4' -- z3' -- cycle ; +endchar ; + +beginchar(3,15u#,ex#,0) ; "The rune nd" ; + pickup main_nib ; + lft x1 = lft x3 = w - rt x2 = w - rt x4 = straight_sidebar ; + top y1 = top y2 = h - bot y3 = h - bot y4 = h ; + draw z1 -- z4 -- z2 -- z3 -- cycle ; +endchar ; + +beginchar(4,14u#,ex#,0) ; "The rune nd---variant" ; + pickup main_nib ; + lft x1 = lft x3 = w - rt x2 = w - rt x4 = straight_sidebar ; + top y1 = top y2 = h - bot y3 = h - bot y4 = h ; + draw_stem(1,3,"b") ; draw_stem(2,4,"b") ; + x5 = x1 ; x6 = x2 ; y5 = y6 = .45[y1,y3] ; + draw z1 -- z6 ; draw z2 -- z5 ; +endchar ; + +beginchar("i",4u#,ex#,0) ; "The rune i" ; + pickup main_nib ; + x1 = x2 = good.x .5w ; + top y1 = h ; bot y2 = 0 ; + draw_stem(1,2,"tb") ; +endchar ; + +beginchar("y", 9u#,ex#,0) ; "The rune y" ; + pickup main_nib ; + lft x1 = lft x2 = straight_sidebar = w - rt x3 = w - rt x4 ; + top y1 = h ; bot y4 = 0 ; + y2 = good.y .25h ; y3 = good.y .75h ; + draw_stem(1,2,"t") ; draw_stem(3,4,"b") ; draw z2 -- z3 ; +endchar ; + +beginchar("H", 9u#,ex#,0) ; "The rune y" ; + pickup main_nib ; + lft x1 = lft x2 = straight_sidebar = w - rt x3 = w - rt x4 ; + bot y1 = 0 ; top y4 = h ; + y2 = good.y .75h ; y3 = good.y .25h ; + draw_stem(2,1,"b") ; draw_stem(4,3,"t") ; draw z2 -- z3 ; +endchar ; + +beginchar("u",14u#,ex#,0) ; "The rune u" ; + pickup main_nib ; + lft x4 = curve_sidebar = w - rt x2 ; + x3 = good.x .5w ; + x1 = good.x .3[x4,x3] = w - x5 ; + top y3 = h ; + bot y1 = bot y5 = 0 ; + y2 = y4 = good.y .6h ; + diag(2,1) ; diag(4,5) ; draw z2 -- z3 -- z4 ; +endchar ; + +beginchar("U",10u#,ex#,0) ; "The rune long u" ; + pickup main_nib ; + lft x1 = lft x3 = curve_sidebar = w - rt x2 ; + top y1 = h = h - bot y3 ; y2 = .5[y1,y3] ; + diag(2,1) ; diag(2,3) ; + x5 = x1 ; y5 = y2 ; x4 = x6 = x2 ; y4 = y1 ; y6 = y3 ; + diag(5,4) ; diag(5,6) ; +endchar ; + +beginchar("w",12u#,ex#,0) ; "The rune w" ; + pickup main_nib ; + lft x1 = curve_sidebar = w - rt x3 ; + x2 = x4 = x5 = good.x .5w ; + top y2 = h ; bot y5 = 0 ; y4 = good.y .35h ; y1 = y3 = .5[y2,y4] ; + draw_stem(4,5,"b") ; draw z1 -- z2 -- z3 -- z4 -- cycle ; +endchar ; + +beginchar(21,12u#,ex#,0) ; "The rune ue" ; + pickup main_nib ; + lft x4 = curve_sidebar = w - rt x2 ; + x3 = good.x .5w ; + x1 = good.x .3[x4,x3] = w - x5 ; + top y3 = h ; + y1 = y5 = good.y .3h ; + y2 = y4 = good.y .6[y1,y3] ; + diag(2,1) ; diag(4,5) ; draw z2 -- z3 -- z4 ; + z6 = (z2 -- z1) intersectionpoint (z4--z5) ; + x7 = x6 ; bot y7 = 0 ; draw_stem(6,7,"b") ; +endchar ; + +beginchar(53,12u#,ex#,0) ; "The rune ue---variant" ; + pickup main_nib ; + lft x4 = curve_sidebar = w - rt x2 ; + x3 = good.x .5w ; + x1 = good.x .3[x4,x3] = w - x5 ; + top y3 = h ; + y1 = y5 = good.y .3h ; + y2 = y4 = good.y .6[y1,y3] ; + diag(2,1) ; diag(4,5) ; draw z2 -- z3 -- z4 ; + z6 = (z2 -- z1) intersectionpoint (z4--z5) ; + x7 = x6 ; bot y7 = 0 ; draw_stem(3,7,"b") ; +endchar ; + +beginchar("e",10u#,ex#,0) ; "The rune e" ; + pickup main_nib ; + lft x1 = lft x2 = straight_sidebar = w - rt x3 = w - rt x4 ; + top y1 = top y3 = h ; bot y2 = bot y4 = 0 ; + draw_stem(1,2,"tb") ; draw_stem(3,4,"tb") ; + x5 = x1 ; x6 = x3 ; .5[y5,y6] = vround .52h ; + top y5 = vround .67h ; draw z5 -- z6 ; +endchar ; + +beginchar("E",10u#,ex#,0) ; "The rune long e" ; + pickup main_nib ; + lft x1 = lft x2 = straight_sidebar = w - rt x3 = w - rt x4 ; + top y1 = top y3 = h ; bot y2 = bot y4 = 0 ; + draw_stem(1,2,"tb") ; draw_stem(3,4,"tb") ; + x5 = x7 = x1 ; x6 = x8 = x3 ; .5[y5,y8] = vround .52h ; + top y5 = vround .8h ; + top y6 = vround .67h ; y7 - y8 = y5 - y6 ; + draw z5 -- z6 ; draw z7 -- z8 ; +endchar ; + +beginchar("a",10u#,ex#,0) ; "The rune a" ; + pickup main_nib ; + lft x1 = lft x2 = straight_sidebar = w - rt x3 = w - rt x4 ; + top y1 = h ; top y3 = vround .75h ; bot y2 = bot y4 = 0 ; + draw_stem(1,2,"b") ; draw_stem(3,4,"b") ; + draw z1 -- z3 ; +endchar ; + +beginchar("A",10u#,ex#,0) ; "The rune long a" ; + pickup main_nib ; + lft x1 = lft x2 = straight_sidebar = w - rt x3 = w - rt x4 ; + top y1 = h ; top y3 = vround .75h ; bot y2 = bot y4 = 0 ; + draw_stem(1,2,"b") ; draw_stem(3,4,"b") ; + draw z1 -- z3 ; + x5 = x1 ; x6 = x3 ; y5 = vround .6h ; y5 - y6 = y1 - y3 ; + draw z5 -- z6 ; +endchar ; + +beginchar("o",12u#,ex#,0) ; "The rune o" ; + pickup main_nib ; + lft x1 = curve_sidebar = w - rt x3 ; x2 = good.x .5w ; + bot y1 = bot y3 = 0 ; top y2 = h ; + diag(2,3) ; diag(2,1) ; +endchar ; + +beginchar("O",16u#,ex#,0) ; "The rune long o" ; + pickup main_nib ; + lft x1 = curve_sidebar = w - rt x6 ; + rt x3 = hround .7w = w - lft x4 ; + x2 = good.x .5[x1,x3] ; x5 = good.x .5[x4,x6] ; + top y2 = top y5 = h ; + bot y1 = 0 ; y1 = y3 = y4 = y6 ; + diag(2,1) ; diag(2,3) ; diag(5,4) ; diag(5,6) ; +endchar ; + +beginchar(15,15u#,ex#,0) ; "The rune long o---variant" ; + pickup main_nib ; + lft x1 = lft x2 = straight_sidebar = w - rt x4 = w - rt x5 ; + x3 = good.x .5[x1,x4] ; + top y1 = top y4 = h ; bot y2 = bot y5 = 0 = bot y3 ; + draw_stem(1,2,"b") ; draw_stem(4,5,"b") ; draw z1 -- z3 -- z4 ; +endchar ; + +beginchar(47,12u#,ex#,0) ; "The rune oe" ; + pickup main_nib ; + lft x1 = curve_sidebar = w - rt x3 ; x2 = good.x .5w ; + bot y1 = bot y3 = 0 ; top y2 = h ; + diag(2,3) ; diag(2,1) ; + x4 = x2 ; y4 = y1 ; draw_stem(2,4,"b") ; +endchar ; + +beginchar("0",12u#,ex#,0) ; "The rune oe---variant" ; + pickup main_nib ; + lft x1 = curve_sidebar = w - rt x3 ; x2 = good.x .5w ; + bot y1 = bot y3 = 0 ; top y2 = h ; + diag(2,3) ; diag(2,1) ; + x4 = x2 = x5 ; top y4 = vround .4h ; y5 = y1 ; draw z4 -- z5 ; +endchar ; + +beginchar(5,12u#,ex#,0) ; "The rune n---another one" ; + pickup main_nib ; + lft x1 = curve_sidebar = w - rt x3 ; + x2 = x4 = good.x .5w ; + top y1 = top y3 = h ; bot y4 = 0 ; y2 = good.y .45h ; + draw_stem(2,4,"b") ; diag(1,2) ; diag(2,3) ; +endchar ; + +beginchar("h",12u#,ex#,0) ; "The rune h" ; + pickup main_nib ; + lft x1 = curve_sidebar = w - rt x3 ; + x2 = x4 = good.x .5w ; + bot y1 = bot y3 = 0 ; top y4 = h ; y2 = good.y .55h ; + draw_stem(4,2,"t") ; diag(1,2) ; diag(2,3) ; +endchar ; + +beginchar(6,8u#,ex#,0) ; "The cup rune" ; + pickup main_nib ; + lft x1 = lft x2 = lft x3 = straight_sidebar ; rt x4 = w - curve_sidebar ; + top y1 = h ; bot y2 = 0 ; .5[y3,y4] = vround .52h ; top y3 = vround .7h ; + draw_stem(1,2,"tb") ; diag(3,4) ; +endchar ; + +beginchar(8,8u#,ex#,0) ; "The evanescent cup rune" ; + pickup main_nib ; + lft x3 = curve_sidebar ; rt x4 = w - curve_sidebar ; + .5[y3,y4] = vround .52h ; top y3 = vround .7h ; + diag(3,4) ; diag(4,3) ; +endchar ; + +beginchar(9,8u#,ex#,0) ; "The schwa rune" ; + pickup main_nib ; + rt x1 = rt x2 = rt x3 = w - straight_sidebar ; lft x4 = curve_sidebar ; + top y1 = h ; bot y2 = 0 ; .5[y3,y4] = vround .52h ; top y3 = vround .7h ; + draw_stem(1,2,"tb") ; diag(3,4) ; +endchar ; + +beginchar(10,8u#,ex#,0) ; "The evanescent schwa rune" ; + pickup main_nib ; + rt x3 = w - curve_sidebar ; lft x4 = curve_sidebar ; + .5[y3,y4] = vround .52h ; top y3 = vround .7h ; + diag(3,4) ; diag(4,3) ; +endchar ; + +beginchar(16,10u#,ex#,0) ; "The rune ps" ; + pickup main_nib ; + top y1 = h ; bot y2 = 0 ; lft x1 = lft x2 = straight_sidebar ; + draw_stem(1,2,"tb") ; + bot y4 = vround 0.2[y2,y1] ; top y5 = vround .8[y2,y1] ; + x4 = x1 ; x5 = x2 ; + rt x3 = w - curve_sidebar ; y3 = 1/2[y4,y5] ; + draw z5 -- z3 -- z4 ; +endchar ; + +beginchar(20,10u#,ex#,0) ; "The rune ts" ; + pickup main_nib ; + top y1 = h ; bot y2 = 0 ; rt x1 = rt x2 = w - straight_sidebar ; + draw_stem(1,2,"tb") ; + bot y4 = vround 0.2[y2,y1] ; top y5 = vround .8[y2,y1] ; + x4 = x5 = x1 ; + lft x3 = curve_sidebar ; y3 = 1/2[y4,y5] ; + draw z5 -- z3 -- z4 ; +endchar ; + +beginchar(12,4u#,ex#,0) ; "The aspiration rune" ; + pickup main_nib ; + x1 = x2 = good.x .5w ; + bot y2 = vround .3h ; top y1 = vround .75h ; + draw_stem(1,2,"tb") ; +endchar ; + +beginchar("&",8u#,ex#,0) ; "The ampersand rune" ; + pickup main_nib ; + x1 = x2 = good.x .5w ; lft x3 = curve_sidebar = w - rt x4 ; + top y1 = h ; bot y2 = 0 ; + bot y3 = vround .7h = h - top y4 ; + draw_stem(1,2,"") ; diag(1,3) ; diag(2,4) ; +endchar ; + +beginchar(18,11u#,ex#,0) ; "The OE rune wyn" ; + pickup main_nib ; + top y1 = h ; bot y2 = 0 ; lft x1 = lft x2 = straight_sidebar ; + top y3 = .55[y1,y2] ; x3 = x1 ; + y4 = y1 ; rt x4 = w - curve_sidebar ; + draw_stem(1,2,"tb") ; + draw z3 -- z4 -- z1 ; +endchar ; + +beginchar(19,15u#,ex#,0) ; "The OE rune daeg---variant" ; + pickup main_nib ; + lft x1 = lft x3 = w - rt x2 = w - rt x4 = straight_sidebar ; + top y1 = top y2 = h - bot y3 = h - bot y4 = h ; + draw z1 -- z4 -- z2 -- z3 -- cycle ; draw z1 -- z2 ; draw z3 -- z4 ; +endchar ; + +beginchar(22,13u#,ex#,0) ; "The OE rune ac" ; + pickup main_nib ; + top y1 = h ; bot y2 = 0 ; lft x1 = lft x2 = straight_sidebar ; + draw_stem(1,2,"tb") ; + rt x4 = w - curve_sidebar ; x3 = .5[x1,x4] ; y4 = y1 ; y3 = .7[y2,y1] ; + draw z1 -- z3 ; diag(3,4) ; + x5 = x1 ; top y5 = .6[y2,y1] ; z5 - z1 = z6 - z3 = z7 - z4 ; + diag(5,6) ; +endchar ; + +beginchar(23,14u#,ex#,0) ; "The OE rune yr" ; + pickup main_nib ; + lft x1 = lft x2 = straight_sidebar = w - rt x3 = w - rt x4 ; + top y1 = h ; top y3 = vround .75h ; bot y2 = bot y4 = 0 ; + draw_stem(1,2,"b") ; draw_stem(3,4,"b") ; + draw z1 -- z3 ; + x5 = x1 ; x6 = x3 ; y5 = vround .6h ; y5 - y6 = y1 - y3 ; + draw z5 -- z6 ; + z7 = .5[z5,z6] ; x7 := good.x x7 ; x8 = x7 ; y8 = y2 ; draw_stem(7,8,"b") ; +endchar ; + +beginchar(24,13u#,ex#,0) ; "The OE rune calc" ; + pickup main_nib ; + lft x1 = lft x2 = straight_sidebar ; top y1 = h ; bot y2 = 0 ; + draw_stem(1,2,"tb") ; + .5[y3,y4] = vround .52h ; bot y3 = vround .4h ; + x3 = x1 ; + rt x5 = w - curve_sidebar ; y5 = y2 ; x4 = .5[x3,x5] ; + draw z3 -- z4 ; diag(4,5) ; +endchar ; + +beginchar(25,12u#,ex#,0) ; "The OE rune feoh" ; + pickup main_nib ; + top y1 = h ; bot y2 = 0 ; lft x1 = lft x2 = straight_sidebar ; + top y3 = .6[y1,y2] ; x3 = x1 ; + y4 = y1 ; rt x4 = w - curve_sidebar ; + draw_stem(1,2,"tb") ; + diag(3,4) ; + z5 = .55[z1,z3] ; z6 = .5[z1,z4] ; + diag(5,6) ; +endchar ; + +beginchar(26,14u#,ex#,0) ; "The Ereborian rune ai" ; + pickup main_nib ; + lft x1 = lft x2 = straight_sidebar = w - rt x3 = w - rt x4 ; + top y1 = h ; top y3 = vround .75h ; bot y2 = bot y4 = 0 ; + draw_stem(1,2,"b") ; draw_stem(3,4,"b") ; + draw z1 -- z3 ; + x5 = x1 ; x6 = x3 ; y5 = vround .6h ; y5 - y6 = y1 - y3 ; + z7 = .5[z5,z6] ; x7 := good.x x7 ; x8 = x7 ; y8 = y2 ; draw_stem(7,8,"tb") ; +endchar ; + +beginchar(27,14u#,ex#,0) ; "The Ereborian ea rune" ; + pickup main_nib ; + lft x1 = lft x2 = straight_sidebar = w - rt x3 = w - rt x4 ; + bot y2 = bot y4 = 0 ; y1 = y3 = good.y .5h ; + draw_stem(1,2,"b") ; draw_stem(3,4,"b") ; + x5 = good.x .5w ; top y5 = h ; x6 = x5 ; y6 = y2 ; + draw z1 -- z5 -- z3 ; draw_stem(5,6,"b") ; +endchar ; + +beginchar(28,13u#,ex#,0) ; "The Ereborian ew rune" ; + pickup main_nib ; + lft x1 = lft x3 = w - rt x2 = w - rt x4 = straight_sidebar ; + top y1 = top y2 = h - bot y3 = h - bot y4 = h ; + draw_stem(1,3,"b") ; draw_stem(2,4,"b") ; + x5 = x7 = x1 ; x6 = x8 = x2 ; y5 = y6 = .75[y1,y3] = h - y7 = h - y8 ; + draw z5 -- z8 ; draw z7 -- z6 ; +endchar ; + +beginchar(29,16u#,ex#,0) ; "The rune number 4" ; + pickup main_nib ; + lft x1 = curve_sidebar = w - rt x6 ; + rt x3 = hround .7w = w - lft x4 ; + x2 = good.x .5[x1,x3] ; x5 = good.x .5[x4,x6] ; + bot y2 = bot y5 = 0 ; + top y1 = h ; y1 = y3 = y4 = y6 ; + diag(2,1) ; diag(2,3) ; diag(5,4) ; diag(5,6) ; +endchar ; + +beginchar(30,16u#,ex#,0) ; "The rune number 5" ; + pickup main_nib ; + top y1 = h ; bot y2 = 0 ; x1 = x2 = good.x .5w ; + top y3 = .55[y1,y2] ; x3 = x1 ; + y4 = y1 ; lft x4 = curve_sidebar ; + draw_stem(1,2,"tb") ; + diag(3,4) ; + y5 = y4 ; x5 = w - x4 ; + diag(3,5) ; +endchar ; + +end. diff --git a/Master/texmf-dist/fonts/source/public/elvish/elvish-cirth.mf b/Master/texmf-dist/fonts/source/public/elvish/elvish-cirth.mf deleted file mode 100644 index 790da12fe0a..00000000000 --- a/Master/texmf-dist/fonts/source/public/elvish/elvish-cirth.mf +++ /dev/null @@ -1,779 +0,0 @@ -designsize:=10pt# ; -autorounding := 1 ; -mode_setup; -em#:=10pt#; ; desc#:=10/3pt#; ex#:=8pt#; o#:=1/8pt#; -% parameters - -font_normal_space(0.4em#) ; font_x_height(ex#) ; -font_quad(em#) ; font_normal_stretch(0.2em#) ; -font_normal_shrink(0.1em#) ; - -penangle := 30 ; -penwidth# := 1/12em# ; penthickness# := 1/50em# ; -define_pixels(em,desc,ex); -define_blacker_pixels(penwidth,penthickness) ; -tehta_penwidth# = 0.8penwidth# ; -define_blacker_pixels(tehta_penwidth) ; -define_corrected_pixels(o); -straight_sidebar# = 1/12em#; curve_sidebar# = 1/18em#; -define_whole_pixels(straight_sidebar,curve_sidebar) ; - -fudge := 0.05 ex ; % fudge for lowering calma luva -u# := em#/18 ; -define_pixels(u) ; -tailjut# := 12u# - 10u# ; -define_whole_pixels(tailjut) ; -luva_width# = 0.5em# ; define_pixels(luva_width) ; -pickup pencircle xscaled penwidth yscaled penthickness rotated penangle; -main_nib := savepen ; -pickup pencircle xscaled tehta_penwidth yscaled penthickness rotated penangle; -tehta_nib := savepen ; - - - -def draw_stem(suffix i,j)(expr serifs) = % serifs = t,b,tb for Top & Bottom - z.i.$ = z.i + 0.05em * dir(penangle+180) ; - z.i.$$ = z.i + 0.1em * down ; - z.j.$ = z.j + 0.05em * dir(penangle) ; - z.j.$$ = z.j + 0.1em * up ; - draw z.i .. z.j ; - if (serifs = "t") or (serifs = "tb"): - filldraw z.i -- z.i.${dir(penangle-90)} - .. {down}z.i.$$ & z.i.$$ .. z.i & cycle ; fi - if (serifs = "b") or (serifs = "tb"): - filldraw z.j -- z.j.${dir(penangle+90)} - .. {up}z.j.$$ & z.j.$$ .. z.j & cycle ; fi - labels(i,j) - enddef ; - -def diag(suffix i,j) = % diag from i to j with serif at j - draw z.i -- z.j ; - theta := - if x.j > x.i: - if y.j > y.i: penangle - 90 else: penangle fi - else: - if y.j > y.i: -penangle else: penangle + 90 fi fi ; - draw z.j -- (z.j + 0.05em*dir theta) ; -enddef ; - -beginchar("p",10u#,ex#,0) ; "The rune p" ; - pickup main_nib ; - top y1 = h ; bot y2 = 0 ; lft x1 = lft x2 = straight_sidebar ; - draw_stem(1,2,"tb") ; - bot z4 = 0.4[z2,z1] ; - rt x3 = w - curve_sidebar ; y3 = 1/2[y4,y1] ; - draw z1 -- z3 -- z4 ; -endchar ; - -beginchar("b",12u#,ex#,0) ; "The rune b" ; - pickup main_nib ; - top y1 = h ; bot y2 = 0 ; lft x1 = lft x2 = straight_sidebar ; - draw_stem(1,2,"tb") ; - bot z4 = 0.4[z2,z1] ; - rt x3 = w - curve_sidebar - tailjut ; y3 = 1/2[y4,y1] ; - draw z1 -- z3 -- z4 ; - y5 = y2 ; rt x5 = w - curve_sidebar ; - bot y4' = round y4 ; x4 = x4' ; - diag(4',5) ; -endchar ; - -beginchar("f",10u#,ex#,0) ; "The rune f" ; - pickup main_nib ; - top y1 = h ; bot y2 = 0 ; rt x1 = rt x2 = w - straight_sidebar ; - draw_stem(1,2,"b") ; - bot z4 = 0.4[z2,z1] ; - lft x3 = curve_sidebar ; y3 = 1/2[y4,y1] ; - draw z1 -- z3 -- z4 ; -endchar ; - -beginchar("v",12u#,ex#,0) ; "The rune v" ; - pickup main_nib ; - top y1 = h ; bot y2 = 0 ; rt x1 = rt x2 = w - straight_sidebar ; - draw_stem(1,2,"b") ; - bot z4 = 0.45[z2,z1] ; - lft x3 = curve_sidebar+tailjut ; y3 = 1/2[y4,y1] ; - draw z1 -- z3 -- z4 ; - y5 = y2 ; lft x5 = curve_sidebar ; - diag(4,5) ; -endchar ; - -beginchar("W",19u#,ex#,0) ; "The rune hw" ; - pickup main_nib ; - top y1 = h ; bot y2 = 0 ; x1 = x2 = good.x 0.5w ; - draw_stem(1,2,"b") ; - bot z4 = 0.4[z2,z1] ; - rt x3 = w - curve_sidebar ; y3 = 1/2[y4,y1] ; - draw z1 -- z3 -- z4 ; - lft x5 = curve_sidebar ; y5 = y3 ; - draw z1 -- z5 -- z4 ; -endchar ; - -beginchar("m",10u#,ex#,0) ; "The rune m" ; - pickup main_nib ; - top y1 = h ; bot y2 = 0 ; lft x1 = lft x2 = straight_sidebar ; - draw_stem(1,2,"b") ; - top z4 = 0.55[z2,z1] ; - rt x3 = w - curve_sidebar ; y3 = 1/2[y4,y1] ; - draw z1 -- z3 -- z4 ; - y5 = 1/2[y4,y2] ; - rt x5 = w - 1/2curve_sidebar ; - draw z4 -- z5 -- z2 ; -endchar ; - -beginchar("M",10u#,ex#,0); "The rune mb" ; - pickup main_nib ; - top y1 = h ; bot y2 = 0 ; rt x1 = rt x2 = w- straight_sidebar ; - draw_stem(1,2,"b") ; - top z4 = 0.55[z2,z1] ; - lft x3 = curve_sidebar ; y3 = 1/2[y4,y1] ; - draw z1 -- z3 -- z4 ; - y5 = 1/2[y4,y2] ; - lft x5 = 1/2curve_sidebar ; - draw z4 -- z5 -- z2 ; -endchar ; - -beginchar("t",10u#,ex#,0) ; "The rune t" ; - pickup main_nib ; - top y1 = h ; bot y2 = 0 ; lft x1 = lft x2 = straight_sidebar ; - draw_stem(1,2,"tb") ; - rt x3 = w - curve_sidebar ; y3 = .7[y2,y1] ; - diag(1,3) ; -endchar ; - -beginchar("d",10u#,ex#,0) ; "The rune d" ; - pickup main_nib ; - top y1 = h ; bot y2 = 0 ; lft x1 = lft x2 = straight_sidebar ; - draw_stem(1,2,"tb") ; - rt x3 = w - curve_sidebar ; y3 = .7[y2,y1] ; - diag(1,3) ; - x4 = x1 ; x5 = x3 ; bot y4 = round (.5[y1,y2]) ; y4 - y1 = y5 - y3 ; - diag(4,5) ; -endchar ; - -beginchar("T",10u#,ex#,0) ; "The rune th" ; - pickup main_nib ; - top y1 = h ; bot y2 = 0 ; rt x1 = rt x2 = w - straight_sidebar ; - draw_stem(1,2,"b") ; - lft x3 = curve_sidebar ; y3 = .7[y2,y1] ; - diag(1,3) ; -endchar ; - -beginchar("D",10u#,ex#,0) ; "The rune dh" ; - pickup main_nib ; - top y1 = h ; bot y2 = 0 ; rt x1 = rt x2 = w - straight_sidebar ; - draw_stem(1,2,"b") ; - lft x3 = curve_sidebar ; y3 = .7[y2,y1] ; - diag(1,3) ; - x4 = x1 ; x5 = x3 ; bot y4 = round(.5[y1,y2]) ; y4 - y1 = y5 - y3 ; - diag(4,5) ; -endchar ; - -beginchar("n",17u#,ex#,0) ; "The rune n" ; - pickup main_nib ; - top y1 = h ; bot y2 = 0 ; x1 = x2 = good.x .5w ; - draw_stem(1,2,"b") ; - lft x3 = curve_sidebar = w - rt x4 ; y3 = y4 = .7[y2,y1] ; - diag(1,3) ; diag(1,4) ; -endchar ; - -beginchar("c",12u#,ex#,0) ; "The rune ch" ; - pickup main_nib ; - top y1 = h ; bot y2 = 0 ; lft x1 = lft x2 = straight_sidebar ; - bot y3 = .45[y1,y2] ; x3 = x1 ; - rt x4 = w - curve_sidebar ; y4 = y2 ; - draw_stem(1,2,"tb") ; - diag(3,4) ; -endchar ; - -beginchar("j",13u#,ex#,0) ; "The rune j" ; - pickup main_nib ; - top y1 = h ; bot y2 = 0 ; lft x1 = lft x2 = straight_sidebar ; - bot y3 = .4[y1,y2] ; x3 = x1 ; - rt x4 = w - curve_sidebar ; y4 = y2 ; - draw_stem(1,2,"tb") ; - diag(3,4) ; - y5 = .5[y2,y3] ; x5 = x1 ; y6 = y4 ; z6 - z5 = whatever*(z4 - z3) ; - diag(5,6) ; -endchar ; - -beginchar("C",11u#,ex#,0) ; "The rune sh" ; - pickup main_nib ; - top y1 = h ; bot y2 = 0 ; rt x1 = rt x2 = w - straight_sidebar ; - bot y3 = .45[y1,y2] ; x3 = x1 ; - lft x4 = curve_sidebar ; y4 = y2 ; - draw_stem(1,2,"tb") ; - diag(3,4) ; -endchar ; - -beginchar("J",12u#,ex#,0) ; "The rune zh" ; - pickup main_nib ; - top y1 = h ; bot y2 = 0 ; rt x1 = rt x2 = w - straight_sidebar ; - bot y3 = .4[y1,y2] ; x3 = x1 ; - lft x4 = curve_sidebar ; y4 = y2 ; - draw_stem(1,2,"tb") ; - diag(3,4) ; - y5 = .5[y2,y3] ; x5 = x1 ; y6 = y4 ; z6 - z5 = whatever*(z4 - z3) ; - diag(5,6) ; -endchar ; - -beginchar("Y",18u#,ex#,0) ; "The rune nj" ; - pickup main_nib ; - top y1 = h ; bot y2 = 0 ; x1 = x2 = good.x .5w ; - bot y3 = .45[y1,y2] ; x3 = x1 ; - y4 = y5 = y2 ; x4 = curve_sidebar = w - x5 ; - draw_stem(1,2,"tb") ; - diag(3,4) ; diag(3,5) ; -endchar ; - -beginchar("k",11u#,ex#,0) ; "The rune k" ; - pickup main_nib ; - top y1 = h ; bot y2 = 0 ; lft x1 = lft x2 = straight_sidebar ; - top y3 = .55[y1,y2] ; x3 = x1 ; - y4 = y1 ; rt x4 = w - curve_sidebar ; - draw_stem(1,2,"tb") ; - draw z3{dir 35} .. tension 1 .. {dir 80}z4 -- z4 + 0.03em*left ; -endchar ; - -beginchar("g",12u#,ex#,0) ; "The rune g" ; - pickup main_nib ; - top y1 = h ; bot y2 = 0 ; lft x1 = lft x2 = straight_sidebar ; - top y3 = .6[y1,y2] ; x3 = x1 ; - y4 = y1 ; rt x4 = w - curve_sidebar ; - draw_stem(1,2,"tb") ; - draw z3{dir 35} .. tension 1 .. {dir 80}z4 -- z4 + 0.03em*left ; - z5 = .55[z1,z3] ; z6 = .5[z1,z4] ; - draw z5{dir 40} .. tension 2 .. z6 -- z6 + 0.03em*left ; -endchar ; - -beginchar("K",11u#,ex#,0) ; "The rune kh" ; - pickup main_nib ; - top y1 = h ; bot y2 = 0 ; rt x1 = rt x2 = w - straight_sidebar ; - top y3 = .55[y1,y2] ; x3 = x1 ; - y4 = y1 ; lft x4 = curve_sidebar ; - draw_stem(1,2,"tb") ; - draw z3{dir 135} .. tension 1 .. {dir 100}z4 -- z4 + 0.03em*left ; -endchar ; - -beginchar("G",12u#,ex#,0) ; "The rune gh" ; - pickup main_nib ; - top y1 = h ; bot y2 = 0 ; rt x1 = rt x2 = w - straight_sidebar ; - top y3 = .6[y1,y2] ; x3 = x1 ; - y4 = y1 ; lft x4 = curve_sidebar ; - draw_stem(1,2,"tb") ; - draw z3{dir 145} .. tension 1 .. {dir 100}z4 -- z4 + 0.03em*left ; - z5 = .55[z1,z3] ; z6 = .5[z1,z4] ; - draw z5{dir 145} .. tension 1 .. {dir 100}z6 -- z6 + 0.03em*left ; -endchar ; - -beginchar("N",16u#,ex#,0) ; "The rune ng" ; - pickup main_nib ; - top y1 = h ; bot y2 = 0 ; x1 = x2 = good.x .5w ; - top y3 = .55[y1,y2] ; x3 = x1 ; - y4 = y1 ; lft x4 = curve_sidebar ; - draw_stem(1,2,"tb") ; - draw z3{dir 145} .. tension 1 .. {dir 100}z4 -- z4 + 0.03em*left ; - y5 = y4 ; x5 = w - x4 ; - draw z3{dir 35} .. tension 1 .. {dir 80}z5 -- z5 + 0.03em*left ; -endchar ; - -beginchar(43,13u#,ex#,0) ; "The rune kw" ; - pickup main_nib ; - top y1 = h ; bot y2 = 0 ; lft x1 = lft x2 = straight_sidebar ; - draw_stem(1,2,"tb") ; - rt x4 = w - curve_sidebar ; x3 = .5[x1,x4] ; y4 = y1 ; y3 = .7[y2,y1] ; - draw z1 -- z3 ; diag(3,4) ; -endchar ; - -beginchar(39,13u#,ex#,0) ; "The rune gw" ; - pickup main_nib ; - top y1 = h ; bot y2 = 0 ; lft x1 = lft x2 = straight_sidebar ; - draw_stem(1,2,"tb") ; - rt x4 = w - curve_sidebar ; x3 = .5[x1,x4] ; y4 = y1 ; y3 = .7[y2,y1] ; - draw z1 -- z3 ; diag(3,4) ; - x5 = x1 ; top y5 = .6[y2,y1] ; z5 - z1 = z6 - z3 = z7 - z4 ; - draw z5 -- z6 ; diag(6,7) ; -endchar ; - -beginchar(11,13u#,ex#,0) ; "The rune khw" ; - pickup main_nib ; - top y1 = h ; bot y2 = 0 ; rt x1 = rt x2 = w - straight_sidebar ; - draw_stem(1,2,"b") ; - lft x4 = curve_sidebar ; x3 = .5[x1,x4] ; y4 = y1 ; y3 = .7[y2,y1] ; - draw z1 -- z3 ; diag(3,4) ; -endchar ; - -beginchar(7,13u#,ex#,0) ; "The rune ghw" ; - pickup main_nib ; - top y1 = h ; bot y2 = 0 ; rt x1 = rt x2 = w - straight_sidebar ; - draw_stem(1,2,"b") ; - lft x4 = curve_sidebar ; x3 = .5[x1,x4] ; y4 = y1 ; y3 = .7[y2,y1] ; - draw z1 -- z3 ; diag(3,4) ; - x5 = x1 ; top y5 = .6[y2,y1] ; z5 - z1 = z6 - z3 = z7 - z4 ; - draw z5 -- z6 ; diag(6,7) ; -endchar ; - -beginchar(14,22u#,ex#,0) ; "The rune ngw" ; - pickup main_nib ; - top y1 = h ; bot y2 = 0 ; x1 = x2 = good.x .5w ; - draw_stem(1,2,"b") ; - lft x4 = curve_sidebar ; x3 = .5[x1,x4] ; y4 = y1 ; y3 = .7[y2,y1] ; - draw z1 -- z3 ; diag(3,4) ; - x6 = w - x4 ; y6 = y4 ; y5 = y3 ; x5 = w - x3 ; - draw z1 -- z5 ; diag(5,6) ; -endchar ; - -beginchar(46,13u#,ex#,0) ; "The rune nw" ; - pickup main_nib ; - top y1 = h ; bot y2 = 0 ; lft x1 = lft x2 = straight_sidebar ; - draw_stem(1,2,"") ; - rt x4 = w - curve_sidebar ; x3 = .5[x1,x4] ; y4 = y1 ; y3 = .7[y2,y1] ; - draw z1 -- z3 ; diag(3,4) ; - x6 = x4 ; y6 = h - y4 ; y5 = h - y3 ; rt x5 = round x3 ; - draw z2 -- z5 ; diag(5,6) ; -endchar ; - -beginchar("r",10u#,ex#,0) ; "The rune r" ; - pickup main_nib ; - top y1 = h ; bot y2 = 0 ; lft x1 = lft x2 = straight_sidebar ; - y3 = .5[y1,y2] ; x3 = x1 ; - y4 = y1 ; rt x4 = w - curve_sidebar ; - draw_stem(1,2,"tb") ; - draw z3{dir 45} .. tension 2 .. {dir 80}z4 -- z4 + 0.03em*left ; - y5 = y2 ; x5 = x4 ; - draw z3{dir -20} .. z5{dir -80} ; -endchar ; - -beginchar("R",10u#,ex#,0) ; "The rune rh" ; - pickup main_nib ; - top y1 = h ; bot y2 = 0 ; rt x1 = rt x2 = w - straight_sidebar ; - y3 = .5[y1,y2] ; x3 = x1 ; - y4 = y1 ; lft x4 = curve_sidebar ; - draw_stem(1,2,"tb") ; - draw z3{dir 135} .. tension 2 .. {dir 100}z4 -- z4 + 0.03em*left ; - y5 = y2 ; x5 = x4 ; - draw z3{dir 200} .. z5{dir -100} ; -endchar ; - -beginchar("l",12u#,ex#,0) ; "The rune l" ; - pickup main_nib ; - top y1 = h ; bot y2 = 0 ; x1 = x2 = good.x .5w ; - top y3 = round .85h ; rt x3 = w - curve_sidebar ; - x4 = w - x3 ; y4 = h - y3 ; - draw_stem(1,2,"tb") ; - draw z3{dir -100} .. {dir -100}z4 .. z4 + 0.03em*dir -70 ; -endchar ; - -beginchar("L",12u#,ex#,0) ; "The rune lh" ; - pickup main_nib ; - top y1 = h ; bot y2 = 0 ; x1 = x2 = good.x .5w ; - top y3 = round .85h ; lft x3 = curve_sidebar ; - x4 = w - x3 ; y4 = h - y3 ; - draw_stem(1,2,"tb") ; - draw z3 + 0.03em*dir70 .. z3{dir -80} .. {dir -100}z4 .. z4 + 0.03em*dir -110 ; -endchar ; - -beginchar(1,12u#,ex#,0) ; "The rune ng--nd" ; - pickup main_nib ; - top y1 = h ; bot y2 = 0 ; x1 = x2 = good.x .5w ; - top y3 = round .85h ; lft x3 = curve_sidebar ; - x4 = w - x3 ; y4 = h - y3 ; - draw_stem(1,2,"tb") ; - draw z3 + 0.03em*dir70 .. z3{dir -80} .. {dir -100}z4 .. z4 + 0.03em*dir -110 ; - top y5 = round .85h ; rt x5 = w - curve_sidebar ; - x6 = w - x5 ; y6 = h - y5 ; - draw z5{dir -100} .. {dir -100}z6 .. z6 + 0.03em*dir -70 ; -endchar ; - -beginchar("s",10u#,ex#,0) ; "The rune s" ; - pickup main_nib ; - lft x1 = lft x3 = curve_sidebar = w - rt x2 ; - top y1 = h = h - bot y3 ; y2 = .5[y1,y3] ; - diag(2,1) ; diag(2,3) ; -endchar ; - -beginchar("S",10u#,ex#,0) ; "The rune s---variant" ; - pickup main_nib ; - rt x1 = rt x3 = w - curve_sidebar = w - lft x2 ; - top y1 = h = h - bot y3 ; y2 = .5[y1,y3] ; - diag(2,1) ; diag(2,3) ; -endchar ; - -beginchar("z",14u#,ex#,0) ; "The rune z" ; - pickup main_nib ; - lft x1 = curve_sidebar = w - rt x2 = w - rt x4 = lft x3 ; - top y1 = top y2 = h = h - bot y3 = h - bot y4 ; - z5 = .5[z1,z4] ; - diag(5,1) ; diag(5,2) ; diag(5,3) ; diag(5,4) ; -endchar ; - -beginchar(2,14u#,ex#,0) ; "The rune ng---variant" ; - pickup main_nib ; - lft x1 = curve_sidebar = w - rt x2 = w - rt x4 = lft x3 ; - top y1 = top y2 = h = h - bot y3 = h - bot y4 ; - z5 = .5[z1,z4] ; - diag(5,1) ; diag(5,2) ; diag(5,3) ; diag(5,4) ; - x1' = x4' = x5 ; y2' = y3' = y5 ; - top y1' = round .85h = h - bot y4' ; - z2' - z1' = z4' - z3' = whatever*(z4 - z1) ; - draw z1' -- z2' -- z4' -- z3' -- cycle ; -endchar ; - -beginchar(3,15u#,ex#,0) ; "The rune nd" ; - pickup main_nib ; - lft x1 = lft x3 = w - rt x2 = w - rt x4 = straight_sidebar ; - top y1 = top y2 = h - bot y3 = h - bot y4 = h ; - draw z1 -- z4 -- z2 -- z3 -- cycle ; -endchar ; - -beginchar(4,14u#,ex#,0) ; "The rune nd---variant" ; - pickup main_nib ; - lft x1 = lft x3 = w - rt x2 = w - rt x4 = straight_sidebar ; - top y1 = top y2 = h - bot y3 = h - bot y4 = h ; - draw_stem(1,3,"b") ; draw_stem(2,4,"b") ; - x5 = x1 ; x6 = x2 ; y5 = y6 = .45[y1,y3] ; - draw z1 -- z6 ; draw z2 -- z5 ; -endchar ; - -beginchar("i",4u#,ex#,0) ; "The rune i" ; - pickup main_nib ; - x1 = x2 = good.x .5w ; - top y1 = h ; bot y2 = 0 ; - draw_stem(1,2,"tb") ; -endchar ; - -beginchar("y", 9u#,ex#,0) ; "The rune y" ; - pickup main_nib ; - lft x1 = lft x2 = straight_sidebar = w - rt x3 = w - rt x4 ; - top y1 = h ; bot y4 = 0 ; - y2 = good.y .25h ; y3 = good.y .75h ; - draw_stem(1,2,"t") ; draw_stem(3,4,"b") ; draw z2 -- z3 ; -endchar ; - -beginchar("H", 9u#,ex#,0) ; "The rune y" ; - pickup main_nib ; - lft x1 = lft x2 = straight_sidebar = w - rt x3 = w - rt x4 ; - bot y1 = 0 ; top y4 = h ; - y2 = good.y .75h ; y3 = good.y .25h ; - draw_stem(2,1,"b") ; draw_stem(4,3,"t") ; draw z2 -- z3 ; -endchar ; - -beginchar("u",14u#,ex#,0) ; "The rune u" ; - pickup main_nib ; - lft x4 = curve_sidebar = w - rt x2 ; - x3 = good.x .5w ; - x1 = good.x .3[x4,x3] = w - x5 ; - top y3 = h ; - bot y1 = bot y5 = 0 ; - y2 = y4 = good.y .6h ; - diag(2,1) ; diag(4,5) ; draw z2 -- z3 -- z4 ; -endchar ; - -beginchar("U",10u#,ex#,0) ; "The rune long u" ; - pickup main_nib ; - lft x1 = lft x3 = curve_sidebar = w - rt x2 ; - top y1 = h = h - bot y3 ; y2 = .5[y1,y3] ; - diag(2,1) ; diag(2,3) ; - x5 = x1 ; y5 = y2 ; x4 = x6 = x2 ; y4 = y1 ; y6 = y3 ; - diag(5,4) ; diag(5,6) ; -endchar ; - -beginchar("w",12u#,ex#,0) ; "The rune w" ; - pickup main_nib ; - lft x1 = curve_sidebar = w - rt x3 ; - x2 = x4 = x5 = good.x .5w ; - top y2 = h ; bot y5 = 0 ; y4 = good.y .35h ; y1 = y3 = .5[y2,y4] ; - draw_stem(4,5,"b") ; draw z1 -- z2 -- z3 -- z4 -- cycle ; -endchar ; - -beginchar(21,12u#,ex#,0) ; "The rune ue" ; - pickup main_nib ; - lft x4 = curve_sidebar = w - rt x2 ; - x3 = good.x .5w ; - x1 = good.x .3[x4,x3] = w - x5 ; - top y3 = h ; - y1 = y5 = good.y .3h ; - y2 = y4 = good.y .6[y1,y3] ; - diag(2,1) ; diag(4,5) ; draw z2 -- z3 -- z4 ; - z6 = (z2 -- z1) intersectionpoint (z4--z5) ; - x7 = x6 ; bot y7 = 0 ; draw_stem(6,7,"b") ; -endchar ; - -beginchar(53,12u#,ex#,0) ; "The rune ue---variant" ; - pickup main_nib ; - lft x4 = curve_sidebar = w - rt x2 ; - x3 = good.x .5w ; - x1 = good.x .3[x4,x3] = w - x5 ; - top y3 = h ; - y1 = y5 = good.y .3h ; - y2 = y4 = good.y .6[y1,y3] ; - diag(2,1) ; diag(4,5) ; draw z2 -- z3 -- z4 ; - z6 = (z2 -- z1) intersectionpoint (z4--z5) ; - x7 = x6 ; bot y7 = 0 ; draw_stem(3,7,"b") ; -endchar ; - -beginchar("e",10u#,ex#,0) ; "The rune e" ; - pickup main_nib ; - lft x1 = lft x2 = straight_sidebar = w - rt x3 = w - rt x4 ; - top y1 = top y3 = h ; bot y2 = bot y4 = 0 ; - draw_stem(1,2,"tb") ; draw_stem(3,4,"tb") ; - x5 = x1 ; x6 = x3 ; .5[y5,y6] = vround .52h ; - top y5 = vround .67h ; draw z5 -- z6 ; -endchar ; - -beginchar("E",10u#,ex#,0) ; "The rune long e" ; - pickup main_nib ; - lft x1 = lft x2 = straight_sidebar = w - rt x3 = w - rt x4 ; - top y1 = top y3 = h ; bot y2 = bot y4 = 0 ; - draw_stem(1,2,"tb") ; draw_stem(3,4,"tb") ; - x5 = x7 = x1 ; x6 = x8 = x3 ; .5[y5,y8] = vround .52h ; - top y5 = vround .8h ; - top y6 = vround .67h ; y7 - y8 = y5 - y6 ; - draw z5 -- z6 ; draw z7 -- z8 ; -endchar ; - -beginchar("a",10u#,ex#,0) ; "The rune a" ; - pickup main_nib ; - lft x1 = lft x2 = straight_sidebar = w - rt x3 = w - rt x4 ; - top y1 = h ; top y3 = vround .75h ; bot y2 = bot y4 = 0 ; - draw_stem(1,2,"b") ; draw_stem(3,4,"b") ; - draw z1 -- z3 ; -endchar ; - -beginchar("A",10u#,ex#,0) ; "The rune long a" ; - pickup main_nib ; - lft x1 = lft x2 = straight_sidebar = w - rt x3 = w - rt x4 ; - top y1 = h ; top y3 = vround .75h ; bot y2 = bot y4 = 0 ; - draw_stem(1,2,"b") ; draw_stem(3,4,"b") ; - draw z1 -- z3 ; - x5 = x1 ; x6 = x3 ; y5 = vround .6h ; y5 - y6 = y1 - y3 ; - draw z5 -- z6 ; -endchar ; - -beginchar("o",12u#,ex#,0) ; "The rune o" ; - pickup main_nib ; - lft x1 = curve_sidebar = w - rt x3 ; x2 = good.x .5w ; - bot y1 = bot y3 = 0 ; top y2 = h ; - diag(2,3) ; diag(2,1) ; -endchar ; - -beginchar("O",16u#,ex#,0) ; "The rune long o" ; - pickup main_nib ; - lft x1 = curve_sidebar = w - rt x6 ; - rt x3 = hround .7w = w - lft x4 ; - x2 = good.x .5[x1,x3] ; x5 = good.x .5[x4,x6] ; - top y2 = top y5 = h ; - bot y1 = 0 ; y1 = y3 = y4 = y6 ; - diag(2,1) ; diag(2,3) ; diag(5,4) ; diag(5,6) ; -endchar ; - -beginchar(15,15u#,ex#,0) ; "The rune long o---variant" ; - pickup main_nib ; - lft x1 = lft x2 = straight_sidebar = w - rt x4 = w - rt x5 ; - x3 = good.x .5[x1,x4] ; - top y1 = top y4 = h ; bot y2 = bot y5 = 0 = bot y3 ; - draw_stem(1,2,"b") ; draw_stem(4,5,"b") ; draw z1 -- z3 -- z4 ; -endchar ; - -beginchar(47,12u#,ex#,0) ; "The rune oe" ; - pickup main_nib ; - lft x1 = curve_sidebar = w - rt x3 ; x2 = good.x .5w ; - bot y1 = bot y3 = 0 ; top y2 = h ; - diag(2,3) ; diag(2,1) ; - x4 = x2 ; y4 = y1 ; draw_stem(2,4,"b") ; -endchar ; - -beginchar("0",12u#,ex#,0) ; "The rune oe---variant" ; - pickup main_nib ; - lft x1 = curve_sidebar = w - rt x3 ; x2 = good.x .5w ; - bot y1 = bot y3 = 0 ; top y2 = h ; - diag(2,3) ; diag(2,1) ; - x4 = x2 = x5 ; top y4 = vround .4h ; y5 = y1 ; draw z4 -- z5 ; -endchar ; - -beginchar(5,12u#,ex#,0) ; "The rune n---another one" ; - pickup main_nib ; - lft x1 = curve_sidebar = w - rt x3 ; - x2 = x4 = good.x .5w ; - top y1 = top y3 = h ; bot y4 = 0 ; y2 = good.y .45h ; - draw_stem(2,4,"b") ; diag(1,2) ; diag(2,3) ; -endchar ; - -beginchar("h",12u#,ex#,0) ; "The rune h" ; - pickup main_nib ; - lft x1 = curve_sidebar = w - rt x3 ; - x2 = x4 = good.x .5w ; - bot y1 = bot y3 = 0 ; top y4 = h ; y2 = good.y .55h ; - draw_stem(4,2,"t") ; diag(1,2) ; diag(2,3) ; -endchar ; - -beginchar(6,8u#,ex#,0) ; "The cup rune" ; - pickup main_nib ; - lft x1 = lft x2 = lft x3 = straight_sidebar ; rt x4 = w - curve_sidebar ; - top y1 = h ; bot y2 = 0 ; .5[y3,y4] = vround .52h ; top y3 = vround .7h ; - draw_stem(1,2,"tb") ; diag(3,4) ; -endchar ; - -beginchar(8,8u#,ex#,0) ; "The evanescent cup rune" ; - pickup main_nib ; - lft x3 = curve_sidebar ; rt x4 = w - curve_sidebar ; - .5[y3,y4] = vround .52h ; top y3 = vround .7h ; - diag(3,4) ; diag(4,3) ; -endchar ; - -beginchar(9,8u#,ex#,0) ; "The schwa rune" ; - pickup main_nib ; - rt x1 = rt x2 = rt x3 = w - straight_sidebar ; lft x4 = curve_sidebar ; - top y1 = h ; bot y2 = 0 ; .5[y3,y4] = vround .52h ; top y3 = vround .7h ; - draw_stem(1,2,"tb") ; diag(3,4) ; -endchar ; - -beginchar(10,8u#,ex#,0) ; "The evanescent schwa rune" ; - pickup main_nib ; - rt x3 = w - curve_sidebar ; lft x4 = curve_sidebar ; - .5[y3,y4] = vround .52h ; top y3 = vround .7h ; - diag(3,4) ; diag(4,3) ; -endchar ; - -beginchar(16,10u#,ex#,0) ; "The rune ps" ; - pickup main_nib ; - top y1 = h ; bot y2 = 0 ; lft x1 = lft x2 = straight_sidebar ; - draw_stem(1,2,"tb") ; - bot y4 = vround 0.2[y2,y1] ; top y5 = vround .8[y2,y1] ; - x4 = x1 ; x5 = x2 ; - rt x3 = w - curve_sidebar ; y3 = 1/2[y4,y5] ; - draw z5 -- z3 -- z4 ; -endchar ; - -beginchar(20,10u#,ex#,0) ; "The rune ts" ; - pickup main_nib ; - top y1 = h ; bot y2 = 0 ; rt x1 = rt x2 = w - straight_sidebar ; - draw_stem(1,2,"tb") ; - bot y4 = vround 0.2[y2,y1] ; top y5 = vround .8[y2,y1] ; - x4 = x5 = x1 ; - lft x3 = curve_sidebar ; y3 = 1/2[y4,y5] ; - draw z5 -- z3 -- z4 ; -endchar ; - -beginchar(12,4u#,ex#,0) ; "The aspiration rune" ; - pickup main_nib ; - x1 = x2 = good.x .5w ; - bot y2 = vround .3h ; top y1 = vround .75h ; - draw_stem(1,2,"tb") ; -endchar ; - -beginchar("&",8u#,ex#,0) ; "The ampersand rune" ; - pickup main_nib ; - x1 = x2 = good.x .5w ; lft x3 = curve_sidebar = w - rt x4 ; - top y1 = h ; bot y2 = 0 ; - bot y3 = vround .7h = h - top y4 ; - draw_stem(1,2,"") ; diag(1,3) ; diag(2,4) ; -endchar ; - -beginchar(18,11u#,ex#,0) ; "The OE rune wyn" ; - pickup main_nib ; - top y1 = h ; bot y2 = 0 ; lft x1 = lft x2 = straight_sidebar ; - top y3 = .55[y1,y2] ; x3 = x1 ; - y4 = y1 ; rt x4 = w - curve_sidebar ; - draw_stem(1,2,"tb") ; - draw z3 -- z4 -- z1 ; -endchar ; - -beginchar(19,15u#,ex#,0) ; "The OE rune daeg---variant" ; - pickup main_nib ; - lft x1 = lft x3 = w - rt x2 = w - rt x4 = straight_sidebar ; - top y1 = top y2 = h - bot y3 = h - bot y4 = h ; - draw z1 -- z4 -- z2 -- z3 -- cycle ; draw z1 -- z2 ; draw z3 -- z4 ; -endchar ; - -beginchar(22,13u#,ex#,0) ; "The OE rune ac" ; - pickup main_nib ; - top y1 = h ; bot y2 = 0 ; lft x1 = lft x2 = straight_sidebar ; - draw_stem(1,2,"tb") ; - rt x4 = w - curve_sidebar ; x3 = .5[x1,x4] ; y4 = y1 ; y3 = .7[y2,y1] ; - draw z1 -- z3 ; diag(3,4) ; - x5 = x1 ; top y5 = .6[y2,y1] ; z5 - z1 = z6 - z3 = z7 - z4 ; - diag(5,6) ; -endchar ; - -beginchar(23,14u#,ex#,0) ; "The OE rune yr" ; - pickup main_nib ; - lft x1 = lft x2 = straight_sidebar = w - rt x3 = w - rt x4 ; - top y1 = h ; top y3 = vround .75h ; bot y2 = bot y4 = 0 ; - draw_stem(1,2,"b") ; draw_stem(3,4,"b") ; - draw z1 -- z3 ; - x5 = x1 ; x6 = x3 ; y5 = vround .6h ; y5 - y6 = y1 - y3 ; - draw z5 -- z6 ; - z7 = .5[z5,z6] ; x7 := good.x x7 ; x8 = x7 ; y8 = y2 ; draw_stem(7,8,"b") ; -endchar ; - -beginchar(24,13u#,ex#,0) ; "The OE rune calc" ; - pickup main_nib ; - lft x1 = lft x2 = straight_sidebar ; top y1 = h ; bot y2 = 0 ; - draw_stem(1,2,"tb") ; - .5[y3,y4] = vround .52h ; bot y3 = vround .4h ; - x3 = x1 ; - rt x5 = w - curve_sidebar ; y5 = y2 ; x4 = .5[x3,x5] ; - draw z3 -- z4 ; diag(4,5) ; -endchar ; - -beginchar(25,12u#,ex#,0) ; "The OE rune feoh" ; - pickup main_nib ; - top y1 = h ; bot y2 = 0 ; lft x1 = lft x2 = straight_sidebar ; - top y3 = .6[y1,y2] ; x3 = x1 ; - y4 = y1 ; rt x4 = w - curve_sidebar ; - draw_stem(1,2,"tb") ; - diag(3,4) ; - z5 = .55[z1,z3] ; z6 = .5[z1,z4] ; - diag(5,6) ; -endchar ; - -beginchar(26,14u#,ex#,0) ; "The Ereborian rune ai" ; - pickup main_nib ; - lft x1 = lft x2 = straight_sidebar = w - rt x3 = w - rt x4 ; - top y1 = h ; top y3 = vround .75h ; bot y2 = bot y4 = 0 ; - draw_stem(1,2,"b") ; draw_stem(3,4,"b") ; - draw z1 -- z3 ; - x5 = x1 ; x6 = x3 ; y5 = vround .6h ; y5 - y6 = y1 - y3 ; - z7 = .5[z5,z6] ; x7 := good.x x7 ; x8 = x7 ; y8 = y2 ; draw_stem(7,8,"tb") ; -endchar ; - -beginchar(27,14u#,ex#,0) ; "The Ereborian ea rune" ; - pickup main_nib ; - lft x1 = lft x2 = straight_sidebar = w - rt x3 = w - rt x4 ; - bot y2 = bot y4 = 0 ; y1 = y3 = good.y .5h ; - draw_stem(1,2,"b") ; draw_stem(3,4,"b") ; - x5 = good.x .5w ; top y5 = h ; x6 = x5 ; y6 = y2 ; - draw z1 -- z5 -- z3 ; draw_stem(5,6,"b") ; -endchar ; - -beginchar(28,13u#,ex#,0) ; "The Ereborian ew rune" ; - pickup main_nib ; - lft x1 = lft x3 = w - rt x2 = w - rt x4 = straight_sidebar ; - top y1 = top y2 = h - bot y3 = h - bot y4 = h ; - draw_stem(1,3,"b") ; draw_stem(2,4,"b") ; - x5 = x7 = x1 ; x6 = x8 = x2 ; y5 = y6 = .75[y1,y3] = h - y7 = h - y8 ; - draw z5 -- z8 ; draw z7 -- z6 ; -endchar ; - -beginchar(29,16u#,ex#,0) ; "The rune number 4" ; - pickup main_nib ; - lft x1 = curve_sidebar = w - rt x6 ; - rt x3 = hround .7w = w - lft x4 ; - x2 = good.x .5[x1,x3] ; x5 = good.x .5[x4,x6] ; - bot y2 = bot y5 = 0 ; - top y1 = h ; y1 = y3 = y4 = y6 ; - diag(2,1) ; diag(2,3) ; diag(5,4) ; diag(5,6) ; -endchar ; - -beginchar(30,16u#,ex#,0) ; "The rune number 5" ; - pickup main_nib ; - top y1 = h ; bot y2 = 0 ; x1 = x2 = good.x .5w ; - top y3 = .55[y1,y2] ; x3 = x1 ; - y4 = y1 ; lft x4 = curve_sidebar ; - draw_stem(1,2,"tb") ; - diag(3,4) ; - y5 = y4 ; x5 = w - x4 ; - diag(3,5) ; -endchar ; - -end. diff --git a/Master/texmf-dist/fonts/tfm/public/elvish/cirth.tfm b/Master/texmf-dist/fonts/tfm/public/elvish/cirth.tfm new file mode 100644 index 00000000000..8212036e971 Binary files /dev/null and b/Master/texmf-dist/fonts/tfm/public/elvish/cirth.tfm differ diff --git a/Master/texmf-dist/fonts/tfm/public/elvish/elvish-cirth.tfm b/Master/texmf-dist/fonts/tfm/public/elvish/elvish-cirth.tfm deleted file mode 100644 index 8212036e971..00000000000 Binary files a/Master/texmf-dist/fonts/tfm/public/elvish/elvish-cirth.tfm and /dev/null differ diff --git a/Master/texmf-dist/tex/generic/elvish/teng.tex b/Master/texmf-dist/tex/generic/elvish/teng.tex deleted file mode 100644 index f87a2fbd7f1..00000000000 --- a/Master/texmf-dist/tex/generic/elvish/teng.tex +++ /dev/null @@ -1,32 +0,0 @@ -% Version 1.0 dated 31/01/90 -% macros for tengwar in Quenya and Sindarin -\font\teng=teng10 -\def\qac#1#2{\accent`#2#1} -\def\sac{\accent`} -\catcode`\^^I=12 % want to get at tab -{\catcode`\^=13% -% Because we define various things that conflict with plain TeX -% macros, we do all definitions inside the tengwar section, though -% this is of course expensive -\gdef\quenya{\teng\catcode`\^=13\let^=\qac\dotengdefs} -\gdef\sindarin{\teng\catcode`\^=13\let^=\sac\dotengdefs}} -\def\dotengdefs{% -\def\lap##1##2{\ooalign{##2\crcr\hidewidth##1\hidewidth}}% -\def\raisedlap##1##2{\ooalign{##2\crcr\hidewidth\raise0.35ex\hbox{##1}\hidewidth}}% -\def\lowlap##1##2{\ooalign{##2\crcr\hidewidth\vbox{\vskip0.2ex% -\hbox{##1}\vskip-.2ex}\hidewidth}}% -\def\verylowlap##1##2{\ooalign{##2\crcr\hidewidth\lower0.3ex% -\hbox{##1}\hidewidth}}% -\def\ssy{\verylowlap^^Zz}% -\def\ldot{\raisedlap^^El}% -\def\S{\kern-0.15em^^S}% -\def\s{\kern-0.15em^^T}% -%%%%\def\ll{\raisedlap^^Bl}% -\def\ll{\lap^^Cl}% -\def\,{\lap^^E}% -\def\y{\lap^^Y}\def\z{\lap^^Z}\def\Y{\lap"}\def\b{\lap^^B}\def\c{\lap^^C}% -\def\N{\lap^^N}\def\.{\accent`i}\def\\{\accent`e}\def\U{\accent`^^V}% -% control sequences for the extended tengwar -\chardef\xT=12\chardef\xf=16\chardef\xC=27\chardef\xK=11% -\chardef\xD=4\chardef\xv=18\chardef\xJ=10\chardef\xG=7% -} % end \dotengdefs diff --git a/Master/tlpkg/bin/ctan2tds b/Master/tlpkg/bin/ctan2tds index 49f483ae780..625a9226770 100755 --- a/Master/tlpkg/bin/ctan2tds +++ b/Master/tlpkg/bin/ctan2tds @@ -767,6 +767,7 @@ $standardfmt='latex'; 'edmac', 'generic', 'elhyphen', 'generic', 'elsevier-bib','bibtex', + 'elvish', 'fonts', 'encxvlna', 'generic', 'eplain', 'eplain', 'epsf', 'generic', @@ -1325,6 +1326,7 @@ $standardclean = '\.head|\.tmp|\.dvi|\.log|\.out|\.aux|\.toc|\.lof|\.lot' 'acmconf' => "$standardclean|flushend.sty", # dup with sttools 'chemscheme' => "$standardclean|jawltxdoc.sty", # temp file for doc 'chemstyle' => "$standardclean|jawltxdoc.sty", # temp file for doc + 'elvish' => '\.pk3', # no pk files 'gentle' => 'gentle.ps.gz', # pdf is enough 'hyph-utf8' => 'README', 'latex2e-help-texinfo' => '\.info', # must move .info by hand, sigh diff --git a/Master/tlpkg/bin/tlpkg-ctan-check b/Master/tlpkg/bin/tlpkg-ctan-check index 38118c33da9..a218f2dbedc 100755 --- a/Master/tlpkg/bin/tlpkg-ctan-check +++ b/Master/tlpkg/bin/tlpkg-ctan-check @@ -78,7 +78,7 @@ my @WorkingTLP = qw( ebong ebsthesis eCards ecc ecclesiastic economic ecv ed edmac edmargin ednotes eemeir egameps egplot eijkhout - ellipsis elpres elsarticle elsevier elsevier-bib + ellipsis elpres elsarticle elsevier elsevier-bib elvish emulateapj emp encxvlna endfloat endheads engpron engrec enumitem envbig environ envlab epigrafica epigraph epiolmec eplain -- cgit v1.2.3