summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/fonts/source
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2008-06-30 18:49:44 +0000
committerKarl Berry <karl@freefriends.org>2008-06-30 18:49:44 +0000
commit03dbd8d63e1b42f1d938aa9ad1a5e2e731576beb (patch)
tree5f26790282914f5aca7472638dbae432e6360374 /Master/texmf-dist/fonts/source
parent0ca5b6be9ad62a517beebbf03f3f56dcf10ad14d (diff)
etex-pkg separated, should do the rest too
git-svn-id: svn://tug.org/texlive/trunk@9121 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/fonts/source')
-rw-r--r--Master/texmf-dist/fonts/source/public/archaic/copsn10.mf1001
-rw-r--r--Master/texmf-dist/fonts/source/public/archaic/givbc10.mf921
-rw-r--r--Master/texmf-dist/fonts/source/public/archaic/gvibc10.mf354
-rw-r--r--Master/texmf-dist/fonts/source/public/archaic/sarab10.mf321
-rw-r--r--Master/texmf-dist/fonts/source/public/archaic/vikglyph.mf394
-rw-r--r--Master/texmf-dist/fonts/source/public/archaic/viktitle.mf52
6 files changed, 3043 insertions, 0 deletions
diff --git a/Master/texmf-dist/fonts/source/public/archaic/copsn10.mf b/Master/texmf-dist/fonts/source/public/archaic/copsn10.mf
new file mode 100644
index 00000000000..5cba60ec790
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/archaic/copsn10.mf
@@ -0,0 +1,1001 @@
+%%
+%% This is file `copsn10.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% oldprsn.dtx (with options: `up')
+%% ------------------------------------------------------------------
+%% Author: Peter Wilson (Herries Press) herries dot press at earthlink dot net
+%% Copyright 1999--2005 Peter R. Wilson
+%%
+%% This work may be distributed and/or modified under the
+%% conditions of the Latex Project Public License, either
+%% version 1.3 of this license or (at your option) any
+%% later version.
+%% The latest version of the license is in
+%% http://www.latex-project.org/lppl.txt
+%% and version 1.3 or later is part of all distributions of
+%% LaTeX version 2003/06/01 or later.
+%%
+%% This work has the LPPL maintenance status "author-maintained".
+%%
+%% This work consists of the files listed in the README file.
+%% ------------------------------------------------------------------
+%%% COPSN10.MF Computer Old Persian Cuneiform font 10 point design size.
+
+
+font_identifier:="oldprsn"; font_size 10pt#;
+
+u#:=.2pt#; % unit width
+ht#:=8pt#; % height of characters (CM cap-height is approx 6.8pt)
+s#:=1.5pt#; % width correction (right and left)
+o#:=1/20pt#; % overshoot
+px#:=.4pt#; % horizontal width of pen
+font_normal_space:=7pt#; % width of a blank space
+font_normal_shrink:=.9pt#; % width correction for blank space
+font_x_height:=4.5pt#; % height of one ex
+font_quad:=10pt#; % an em
+
+font_coding_scheme:="Old Persian glyphs";
+mode_setup;
+
+ho#:=o#; % horizontal overshoot
+leftloc#:=s#; % leftmost xcoord of character
+py#:=px#; % vertical thickness of the pen
+
+define_pixels(s,u);
+define_blacker_pixels(px,py);
+define_good_x_pixels(leftloc);
+define_corrected_pixels(o); % turn on overshoot correction
+define_horizontal_corrected_pixels(ho);
+
+numeric midloc, rightloc, aw;
+pickup pencircle xscaled px yscaled py;
+stylus:=savepen;
+
+numeric trht, trbs;
+numeric th, tb;
+th = 6/24; tb = 8/24;
+numeric wiht, wibs;
+numeric wh, wb;
+wh = 10/24; wb = 20/24;
+def beginglyph(expr code, unit_width) =
+ beginchar(code, unit_width*ht#+2s#, ht#, 0);
+ midloc:=1/2w; rightloc:=(w-s); aw := rightloc-leftloc;
+ trht := th*h; trbs := tb*h;
+ wiht := wh*h; wibs := wb*h;
+ pickup stylus enddef;
+
+let cmchar=\;
+
+
+def triangle(suffix $)(expr ht, bs, ang) =
+ path pth[];
+ pair pr[];
+ pr1 := (x$-ht,y$); % midpoint of base in default position
+ pr2 := pr1 shifted (1/2bs*up); % base points
+ pr3 := pr1 shifted (1/2bs*down);
+ z$trl = pr2 rotatedaround(z$, ang);
+ z$trr = pr3 rotatedaround(z$, ang);
+ z$trc = 1/2[z$trl,z$trr];
+ z$tic = 1/2[z$,z$trc];
+ pth$ := z$--z$trl--z$trr--cycle;
+enddef;
+
+
+def trir(suffix $)(expr ht, bs) =
+ path pth[];
+ z$trc = (x$-ht, y$); % midpoint of base
+ z$trl = (x$trc, y$trc+1/2bs); % base points
+ z$trr = (x$trc, y$trc-1/2bs);
+ z$tic = 1/2[z$,z$trc];
+ pth$ := z$--z$trl--z$trr--cycle;
+enddef;
+
+
+def triu(suffix $)(expr ht, bs) =
+ path pth[];
+ z$trc = (x$, y$-ht); % midpoint of base
+ z$trl = (x$-1/2bs, y$trc); % base points
+ z$trr = (x$+1/2bs, y$trc); % base points
+ z$tic = 1/2[z$,z$trc];
+ pth$ := z$--z$trl--z$trr--cycle;
+enddef;
+
+
+def tril(suffix $)(expr ht, bs) =
+ path pth[];
+ z$trc = (x$+ht, y$); % midpoint of base
+ z$trl = (x$trc, y$trc-1/2bs); % base points
+ z$trr = (x$trc, y$trc+1/2bs);
+ z$tic = 1/2[z$,z$trc];
+ pth$ := z$--z$trl--z$trr--cycle;
+enddef;
+
+
+def tril(suffix $)(expr ht, bs) =
+ path pth[];
+ z$trc = (x$+ht, y$); % midpoint of base
+ z$trl = (x$trc, y$trc-1/2bs); % base points
+ z$trr = (x$trc, y$trc+1/2bs);
+ z$tic = 1/2[z$,z$trc];
+ pth$ := z$--z$trl--z$trr--cycle;
+enddef;
+
+
+def trid(suffix $)(expr ht, bs) =
+ path pth[];
+ z$trc = (x$, y$+ht); % midpoint of base
+ z$trl = (x$+1/2bs, y$trc); % base points
+ z$trr = (x$-1/2bs, y$trc); % base points
+ z$tic = 1/2[z$,z$trc];
+ pth$ := z$--z$trl--z$trr--cycle;
+enddef;
+
+
+def wing(suffix $)(expr ht, bs, ang) =
+ path pth[];
+ pair pr[];
+ pr1 := (x$+ht,y$); % midpoint of base in default position
+ pr2 := pr1 shifted (1/2bs*down); % base points
+ pr3 := pr1 shifted (1/2bs*up);
+ pr4 := pr1 rotatedaround(z$, ang);
+ z$wil = pr2 rotatedaround(z$, ang);
+ z$wir = pr3 rotatedaround(z$, ang);
+ z$wic = 1/2[z$,pr4];
+ pth$ := z$--z$wil{(z$wic-z$wil)}..z$wic..{(z$wir-z$wic)}z$wir--cycle;
+enddef;
+
+
+def wingl(suffix $)(expr ht, bs) =
+ path pth[];
+ z$wil = (x$+ht, y$-1/2bs); % base points
+ z$wir = (x$wil, y$+1/2bs);
+ z$wic = (1/2[x$,x$wil], y$); % midpoint of base curve
+ pth$ := z$--z$wil{(z$wic-z$wil)}..z$wic..{(z$wir-z$wic)}z$wir--cycle;
+enddef;
+
+
+def wingd(suffix $)(expr ht, bs) =
+ path pth[];
+ z$wil = (x$+1/2bs, y$+ht); % base points
+ z$wir = (x$-1/2bs, y$wil);
+ z$wic = (x$, 1/2[y$,y$wil]); % midpoint of base curve
+ pth$ := z$--z$wil{(z$wic-z$wil)}..z$wic..{(z$wir-z$wic)}z$wir--cycle;
+enddef;
+
+
+def wingr(suffix $)(expr ht, bs) =
+ path pth[];
+ z$wil = (x$-ht, y$+1/2bs); % base points
+ z$wir = (x$wil, y$-1/2bs);
+ z$wic = (1/2[x$,x$wil], y$); % midpoint of base curve
+ pth$ := z$--z$wil{(z$wic-z$wil)}..z$wic..{(z$wir-z$wic)}z$wir--cycle;
+enddef;
+
+
+def wingu(suffix $)(expr ht, bs) =
+ path pth[];
+ z$wil = (x$-1/2bs, y$-ht); % base points
+ z$wir = (x$+1/2bs, y$wil);
+ z$wic = (x$, 1/2[y$,y$wil]); % midpoint of base curve
+ pth$ := z$--z$wil{(z$wic-z$wil)}..z$wic..{(z$wir-z$wic)}z$wir--cycle;
+enddef;
+
+cmchar "Old Persian letter a";
+beginglyph("a", (3tb+2th));
+ z1trl=(leftloc,h); % top pin
+ trir(1, trht, trbs); fill pth1;
+ z1'=(rightloc,y1); draw z1tic--z1';
+ z12trc=(midloc,y1trr); % middle pin
+ trid(12, trht, trbs); fill pth12;
+ z12'=(x12,0); draw z12tic--z12';
+ z11trl=z12trr; % left pin
+ trid(11, trht, trbs); fill pth11;
+ z11'=(x11,0); draw z11tic--z11';
+ z13trr=z12trl; % right pin
+ trid(13, trht, trbs); fill pth13;
+ z13'=(x13,0); draw z13tic--z13';
+ labels(1,11,12,13);
+endchar;
+
+cmchar "Old Persian letter i";
+beginglyph("i", (2tb)); %% 3tb too large
+ z1trl=(leftloc,h); % top pin
+ trir(1, trht, trbs); fill pth1;
+ z1'=(rightloc,y1); draw z1tic--z1';
+ z11trr=z1trr; % left pin
+ trid(11, trht, trbs); fill pth11;
+ z11'=(x11,0); draw z11tic--z11';
+ z12trr=z11trl; % middle pin
+ trid(12, trht, trbs); fill pth12;
+ z12'=(x12,0); draw z12tic--z12';
+ z2trc=(x11trl,y1); % second top head
+ trir(2, trht, trbs); fill pth2;
+ labels(1,2,11,12,13);
+endchar;
+
+cmchar "Old Persian letter u";
+beginglyph("u", (2tb+wh)); %% 3tb+wh too large
+ z31=(leftloc,1/2h); % left wing
+ wingl(31, wiht, wibs); fill pth31;
+ z1trl=(x31wil,h); % top pin
+ trir(1, trht, trbs); fill pth1;
+ z1'=(rightloc,y1); draw z1tic--z1';
+ z11trr=z1trr; % left pin
+ trid(11, trht, trbs); fill pth11;
+ z11'=(x11,0); draw z11tic--z11';
+ z12trr=z11trl; % middle pin
+ trid(12, trht, trbs); fill pth12;
+ z12'=(x12,0); draw z12tic--z12';
+ labels(1,2,11,12,13);
+endchar;
+
+cmchar "Old Persian syllable ka (k)";
+beginglyph("k", (3tb)); %% 4tb too large
+ z1trr=(leftloc,h); % left pin
+ trid(1, trht, trbs); fill pth1;
+ z1'=(x1,0); draw z1tic--z1';
+ z11trr=(x1trl,1/2h); % top pin
+ trir(11, trht, trbs); fill pth11;
+ z11'=(rightloc,y11); draw z11tic--z11';
+ z12trl=z11trr; % bottom pin
+ trir(12, trht, trbs); fill pth12;
+ z12'=(rightloc,y12); draw z12tic--z12';
+ labels(1,11,12);
+endchar;
+
+cmchar "Old Persian syllable ku (K)";
+beginglyph("K", (tb+wh));
+ z1=(leftloc,1/2h); % wing
+ wingl(1, wiht, wibs); fill pth1;
+ z2trr=(x1wil,h); % pin
+ trid(2, trht, trbs); fill pth2;
+ z2'=(x2,0); draw z2tic--z2';
+ labels(1,2);
+endchar;
+
+cmchar "Old Persian syllable xa (x)";
+beginglyph("x", (2tb+2wh));
+ z1=(leftloc,1/2h); % left wing
+ wingl(1, wiht, wibs); fill pth1;
+ z2=(x1wil,y1); % right wing
+ wingl(2, wiht, wibs); fill pth2;
+ z11trr=(x2wil,h); % left pin
+ trid(11, trht, trbs); fill pth11;
+ z11'=(x11,0); draw z11tic--z11';
+ z12trr=z11trl; % right pin
+ trid(12, trht, trbs); fill pth12;
+ z12'=(x12,0); draw z12tic--z12';
+ labels(1,2,11,12);
+endchar;
+
+cmchar "Old Persian syllable ga (g)";
+beginglyph("g", (3tb+wh));
+ z1=(leftloc,1/2h); % wing
+ wingl(1, wiht, wibs); fill pth1;
+ z11trr=(x1wil,h); % left pin
+ trid(11, trht, trbs); fill pth11;
+ z11'=(x11,0); draw z11tic--z11';
+ z12trr=z11trl; % right pin
+ trid(12, trht, trbs); fill pth12;
+ z12'=(x12,0); draw z12tic--z12';
+ z21trc=(x12trl,y1); % small pin
+ trir(21, trht, trbs); fill pth21;
+ z21'=(rightloc,y21); draw z21tic--z21';
+ labels(1,2,11,12,21);
+endchar;
+
+cmchar "Old Persian syllable gu (G)";
+beginglyph("G", (2tb+th+wh)); %% 3tb+wh too large
+ z1=(leftloc,1/2h); % wing
+ wingl(1, wiht, wibs); fill pth1;
+ z12trc=(x1wil, 1/2h); % middle pin
+ trir(12, trht, trbs); fill pth12;
+ z12'=(rightloc,y12); draw z12tic--z12';
+ z13trl=z12trr; % bottom pin
+ trir(13, trht, trbs); fill pth13;
+ z13'=(rightloc,y13); draw z13tic--z13';
+ z11trr=z12trl; % top pin
+ trir(11, trht, trbs); fill pth11;
+ z11'=(rightloc,y11); draw z11tic--z11';
+ z111trc=1/2[z11trc,z11'];
+ trir(111, trht, trbs); fill pth111;
+ labels(1,2,3,4,5,6,11,12,13,111);
+endchar;
+
+cmchar "Old Persian syllable ca (c)";
+beginglyph("c", (4tb));
+ z1trl=(leftloc,h); % top pin
+ trir(1, trht, trbs); fill pth1;
+ z11trr=(x1, y1trr); % left pin
+ trid(11, trht, trbs); fill pth11;
+ z11'=(x11,0); draw z11tic--z11';
+ z12trr=z11trl; % middle pin
+ trid(12, trht, trbs); fill pth12;
+ z12'=(x12,0); draw z12tic--z12';
+ z2trl=z12trl; % bottom pin
+ trir(2, trht, trbs); fill pth2;
+ z2'=(rightloc,y2); draw z2tic--z2';
+ z1'=(x2trl,y1); draw z1tic--z1'; % body of top pin
+ labels(1,2,3,4,5,6,11,12,13);
+endchar;
+
+cmchar "Old Persian syllable ja (j)";
+beginglyph("j", (th+tb+wh));
+ z1trc=(leftloc,1/2h); % hor pin
+ trir(1, trht, trbs); fill pth1;
+ z2=(rightloc-wiht,y1); % wing
+ wingl(2, wiht, wibs); fill pth2;
+ draw z1tic--z2;
+ z11trc=(1/2[x1,x2], h); % vert pin
+ trid(11, trht, trbs); fill pth11;
+ z11'=(x11,0); draw z11tic--z11';
+ labels(1,2,3,4,11,12,13);
+endchar;
+
+cmchar "Old Persian syllable ji (J)";
+beginglyph("J",(7/2tb+wh)); %% 4tb+wh too large
+ z1trc=(leftloc, 1/2h); % left pin
+ trir(1, trht, trbs); fill pth1;
+ z2=(x1+trbs, y1); % wing
+ draw z1tic--z2;
+ wingl(2, wiht, wibs); fill pth2;
+ z12trc=(x2wil,y1); % middle pin
+ trir(12, trht, trbs); fill pth12;
+ z12'=(rightloc, y12); draw z12tic--z12';
+ z11trr=z12trl; % top pin
+ trir(11, trht, trbs); fill pth11;
+ z11'=(rightloc, y11); draw z11tic--z11';
+ z13trl=z12trr; % bottom pin
+ trir(13, trht, trbs); fill pth13;
+ z13'=(rightloc, y13); draw z13tic--z13';
+ labels(1,2,3,4,5,6,7,8,9,10,11,12,13);
+endchar;
+
+cmchar "Old Persian syllable ta (t)";
+beginglyph("t", (4tb+th)); %% 5tb too large
+ z3trl=(rightloc,h); % right pin
+ trid(3, trht, trbs); fill pth3;
+ z3'=(x3,0); draw z3tic--z3';
+ z1trl=(x3trr-trbs,h); % left pin
+ trid(1, trht, trbs); fill pth1;
+ z1'=(x1,0); draw z1tic--z1';
+ z11trr=(leftloc,1/2h); % top pin
+ trir(11, trht, trbs); fill pth11;
+ z11'=(x1,y11); draw z11tic--z11';
+ z12trl=z11trr; % bottom pin
+ trir(12, trht, trbs); fill pth12;
+ z12'=(x1,y12); draw z12tic--z12';
+ z2trc=(1/2[x1,x3], y11trl); % middle pin
+ trid(2, trht, trbs); fill pth2;
+ z2'=(x2,0); draw z2tic--z2';
+ labels(1,2,3,4,5,6,7,8,9,10,11,12);
+endchar;
+
+cmchar "Old Persian syllable tu (T)";
+beginglyph("T", (4tb+th)); %% 5tb too large
+ z1trr=(leftloc,h); % left pin
+ trid(1, trht, trbs); fill pth1;
+ z1'=(x1,0); draw z1tic--z1';
+ z2trr=z1trl; % center pin
+ trid(2, trht, trbs); fill pth2;
+ z2'=(x2,0); draw z2tic--z2';
+ z3trr=z2trl; % right pin
+ trid(3, trht, trbs); fill pth3;
+ z3'=(x3,0); draw z3tic--z3';
+ z11trl=(x3trl, 1/2h); % short hor pin
+ trir(11, trht, trbs); fill pth11;
+ z11'=(rightloc,y11); draw z11tic--z11';
+ labels(1,2,3,11);
+endchar;
+
+cmchar "Old Persian syllable tha (o)";
+beginglyph("o", (2tb+wh));
+ z1trr=(leftloc,h); % left pin
+ trid(1, trht, trbs); fill pth1;
+ z1'=(x1,0); draw z1tic--z1';
+ z2=(x1,1/2h); % wing
+ wingl(2, wiht, wibs); fill pth2;
+ z3trr=(x2wil,h); % right pin
+ trid(3, trht, trbs); fill pth3;
+ z3'=(x3,0); draw z3tic--z3';
+ labels(1,2,3);
+endchar;
+
+cmchar "Old Persian syllable c(cedilla)a (C)";
+beginglyph("C", (2tb));
+ z1trl=(leftloc,h); % top pin
+ trir(1, trht, trbs); fill pth1;
+ z1'=(rightloc,y1); draw z1tic--z1';
+ z2trl=z1trr; % center pin
+ trir(2, trht, trbs); fill pth2;
+ z2'=(rightloc,y2); draw z2tic--z2';
+ z11trr=z2trr; % left pin
+ trid(11, trht, trbs); fill pth11;
+ z11'=(x11,0); draw z11tic--z11';
+ z12trr=z11trl; % right pin
+ trid(12, trht, trbs); fill pth12;
+ z12'=(x12,0); draw z12tic--z12';
+ labels(1,2,11,12);
+endchar;
+
+cmchar "Old Persian syllable da (d)";
+beginglyph("d", (2tb));
+ z1trl=(leftloc,h); % top pin
+ trir(1, trht, trbs); fill pth1;
+ z1'=(rightloc,y1); draw z1tic--z1';
+ z11trr=z1trr; % left pin
+ trid(11, trht, trbs); fill pth11;
+ z11'=(x11,0); draw z11tic--z11';
+ z12trr=z11trl; % right pin
+ trid(12, trht, trbs); fill pth12;
+ z12'=(x12,0); draw z12tic--z12';
+ labels(1,2,11,12);
+endchar;
+
+cmchar "Old Persian syllable di (P)";
+beginglyph("P", (3tb+th)); %% 4tb too large
+ z2trl=(rightloc,h); % right pin
+ trid(2, trht, trbs); fill pth2;
+ z2'=(x2,0); draw z2tic--z2';
+ z1trl=z2trr; % left pin
+ trid(1, trht, trbs); fill pth1;
+ z1'=(x1,0); draw z1tic--z1';
+ z12trc=(leftloc,1/2h); % center pin
+ trir(12, trht, trbs); fill pth12;
+ z12'=(x1,y12); draw z12tic--z12';
+ z11trr=z12trl; % top pin
+ trir(11, trht, trbs); fill pth11;
+ z11'=(x1,y11); draw z11tic--z11';
+ z13trl=z12trr; % bottom pin
+ trir(13, trht, trbs); fill pth13;
+ z13'=(x1,y13); draw z13tic--z13';
+ labels(1,2,11,12,13);
+endchar;
+
+cmchar "Old Persian syllable du (D)";
+beginglyph("D", (2tb+th+wh)); %% 3tb+wh too large
+ z1=(leftloc,h/2); % wing
+ wingl(1, wiht, wibs); fill pth1;
+ z2trl=(rightloc,h); % right pin
+ trid(2, trht, trbs); fill pth2;
+ z2'=(x2,0); draw z2tic--z2';
+ z12trc=(x1wil,h/2); % center pin
+ trir(12, trht, trbs); fill pth12;
+ z12'=(x2,y12); draw z12tic--z12';
+ z11trr=z12trl; % top pin
+ trir(11, trht, trbs); fill pth11;
+ z11'=(x2,y11); draw z11tic--z11';
+ z13trl=z12trr; % bottom pin
+ trir(13, trht, trbs); fill pth13;
+ z13'=(x2,y13); draw z13tic--z13';
+ labels(1,2,11,12,13);
+endchar;
+
+cmchar "Old Persian syllable na (n)";
+beginglyph("n", (2tb+wh));
+ z1=(rightloc-wiht, h/2); % wing
+ wingl(1, wiht, wibs); fill pth1;
+ z11trr=(leftloc,h/2); % top pin
+ trir(11, trht, trbs); fill pth11;
+ z11'=(x1,y11); draw z11tic--z11';
+ z12trl=z11trr; % bottom pin
+ trir(12, trht, trbs); fill pth12;
+ z12'=(x1,y12); draw z12tic--z12';
+ labels(1,11,12);
+endchar;
+
+cmchar "Old Persian syllable nu (N)";
+beginglyph("N", (2tb+2wh));
+ z1=(leftloc, h/2); % left wing
+ wingl(1, wiht, wibs); fill pth1;
+ z2=(x1wil, y1); % right wing
+ wingl(2, wiht, wibs); fill pth2;
+ z11trr=(x2wil,h/2); % top pin
+ trir(11, trht, trbs); fill pth11;
+ z11'=(rightloc,y11); draw z11tic--z11';
+ z12trl=z11trr; % bottom pin
+ trir(12, trht, trbs); fill pth12;
+ z12'=(rightloc,y12); draw z12tic--z12';
+ labels(1,2,11,12);
+endchar;
+
+cmchar "Old Persian syllable pa (p)";
+beginglyph("p", (2tb));
+ z1trc=(leftloc,h); % top pin
+ trir(1, trht, trbs); fill pth1;
+ z1'=(rightloc,y1); draw z1tic--z1';
+ z2trl=(x1,y1); % middle pin
+ trir(2, trht, trbs); fill pth2;
+ z2'=(rightloc,y2); draw z2tic--z2';
+ z3trl=(x1trc,y2); % bottom pin
+ trir(3, trht, trbs); fill pth3;
+ z3'=(rightloc,y3); draw z3tic--z3';
+ z11trr=z3trr; % left pin
+ trid(11, trht, trbs); fill pth11;
+ z11'=(x11,0); draw z11tic--z11';
+ z12trr=z11trl; % right pin
+ trid(12, trht, trbs); fill pth12;
+ z12'=(x12,0); draw z12tic--z12';
+ labels(1,2,3,11,12);
+endchar;
+
+cmchar "Old Persian syllable fa (f)";
+beginglyph("f", (tb+2wh));
+ z1trr=(leftloc,h); % left pin
+ trid(1, trht, trbs); fill pth1;
+ z1'=(x1,0); draw z1tic--z1';
+ z11=(x1,h/2); % left wing
+ wingl(11, wiht, wibs); fill pth11;
+ z12=(x11wil,y11); % right wing
+ wingl(12, wiht, wibs); fill pth12;
+ labels(1,11,12);
+endchar;
+
+cmchar "Old Persian syllable ba (b)";
+beginglyph("b", (3tb));
+ z1trl=(rightloc,h); % right pin
+ trid(1, trht, trbs); fill pth1;
+ z1'=(x1,0); draw z1tic--z1';
+ z11trr=(leftloc,h/2); % top pin
+ trir(11, trht, trbs); fill pth11;
+ z11'=(x1,y11); draw z11tic--z11';
+ z12trl=z11trr; % bottom pin
+ trir(12, trht, trbs); fill pth12;
+ z12'=(x1,y12); draw z12tic--z12';
+ labels(1,11,12);
+endchar;
+
+cmchar "Old Persian syllable ma (m)";
+beginglyph("m", (4tb+th)); %% 5tb too large
+ z3trl=(rightloc,h); % right pin
+ trid(3, trht, trbs); fill pth3;
+ z3'=(x3,0); draw z3tic--z3';
+ z2trl=(x3trr,y3); % center pin
+ trid(2, trht, trbs); fill pth2;
+ z2'=(x2,0); draw z2tic--z2';
+ z1trl=(x2trr,h); % left pin
+ trid(1, trht, trbs); fill pth1;
+ z1'=(x1,0); draw z1tic--z1';
+ z11trc=(leftloc, h/2); % hor pin
+ trir(11, trht, trbs); fill pth11;
+ z11'=(x1,y11); draw z11tic--z11';
+ labels(1,2,3,11);
+endchar;
+
+cmchar "Old Persian syllable mi (w)";
+beginglyph("w", (2tb+wh));
+ z1trr=(leftloc,h); % left pin
+ trid(1, trht, trbs); fill pth1;
+ z1'=(x1,0); draw z1tic--z1';
+ z2=(x1,h/2); % wing
+ wingl(2, wiht, wibs); fill pth2;
+ z11trr=(x2wil, h/2); % top pin
+ trir(11, trht, trbs); fill pth11;
+ z11'=(rightloc,y11); draw z11tic--z11';
+ z12trl=z11trr; % bottom pin
+ trir(12, trht, trbs); fill pth12;
+ z12'=(rightloc,y12); draw z12tic--z12';
+ labels(1,2,11,12);
+endchar;
+
+cmchar "Old Persian syllable mu (M)";
+beginglyph("M", (5tb+wh));
+ z5trc=(rightloc-2trbs, h/2); % right pin
+ trir(5, trht, trbs); fill pth5;
+ z5'=(rightloc,y5); draw z5tic--z5';
+ z4=(x5trc-wiht,y5); % wing
+ wingl(4, wiht, wibs); fill pth4;
+ z2trc=(leftloc+trht,y5); % middle pin
+ trir(2, trht, trbs); fill pth2;
+ z2'=z4; draw z2tic--z2';
+ z1trr=(leftloc,y2trl); % top pin
+ trir(1, trht, trbs); fill pth1;
+ z1'=(3/4[x1,x2'],y1); draw z1tic--z1';
+ z3trl=(leftloc,y2trr); % bottom pin
+ trir(3, trht, trbs); fill pth3;
+ z3'=(x1',y3); draw z3tic--z3';
+ labels(1,2,3,4);
+endchar;
+
+cmchar "Old Persian syllable ya (y)";
+beginglyph("y", (2tb+wh));
+ z1trr=(leftloc,h); % left pin
+ trid(1, trht, trbs); fill pth1;
+ z1'=(x1,0); draw z1tic--z1';
+ z2=(x1,h/2); % wing
+ wingl(2, wiht, wibs); fill pth2;
+ z11trc=(x2wil, h/2); % right pin
+ trir(11, trht, trbs); fill pth11;
+ z11'=(rightloc,y11); draw z11tic--z11';
+ labels(1,2,11,12);
+endchar;
+
+cmchar "Old Persian syllable ra (r)";
+beginglyph("r", (3tb+th)); %% 4tb too large
+ z11trl=(rightloc, h); % right pin
+ trid(11, trht, trbs); fill pth11;
+ z11'=(x11,0); draw z11tic--z11';
+ z2trc=(leftloc+trht,h/2); % middle pin
+ trir(2, trht, trbs); fill pth2;
+ z2'=(x11,y2); draw z2tic--z2';
+ z1trr=(leftloc,y2trl); % top pin
+ trir(1, trht, trbs); fill pth1;
+ z1'=(x2',y1); draw z1tic--z1';
+ z3trl=(leftloc,y2trr); % bottom pin
+ trir(3, trht, trbs); fill pth3;
+ z3'=(x2',y3); draw z3tic--z3';
+ labels(1,2,3,4);
+endchar;
+
+cmchar "Old Persian syllable ru (R)";
+beginglyph("R", (tb+th+2wh)); %% 2tb+2wh too large
+ z3=(rightloc-wiht,h/2); % right wing
+ wingl(3, wiht, wibs); fill pth3;
+ z2=(x3-wiht,y3); % left wing
+ wingl(2, wiht, wibs); fill pth2;
+ z1trc=(leftloc,y3); % pin
+ trir(1, trht, trbs); fill pth1;
+ z1'=z2; draw z1tic--z1';
+ labels(1,2,3);
+endchar;
+
+cmchar "Old Persian syllable la (l)";
+beginglyph("l", (3tb+th)); %% 4tb too large
+ z11trl=(rightloc,h); % right pin
+ trid(11, trht, trbs); fill pth11;
+ z11'=(x11,0); draw z11tic--z11';
+ z2trc=(leftloc,h/2); % middle pin
+ trir(2, trht, trbs); fill pth2;
+ z2'=(x11,y2); draw z2tic--z2';
+ z1trr=(x2,y2trl); % top pin
+ trir(1, trht, trbs); fill pth1;
+ z1'=(x2',y1); draw z1tic--z1';
+ z3trl=(x1trr,y2trr); % bottom pin
+ trir(3, trht, trbs); fill pth3;
+ z3'=(x2',y3); draw z3tic--z3';
+ labels(1,2,3,11);
+endchar;
+
+cmchar "Old Persian syllable va (v)";
+beginglyph("v", (5tb));
+ z11trc=(leftloc,h/2); % left hor pin
+ trir(11, trht, trbs); fill pth11;
+ z11'=(x11+trbs,y11); draw z11tic--z11';
+ z12trc=(x11',h); % vert pin
+ trid(12, trht, trbs); fill pth12;
+ z12'=(x12,0); draw z12tic--z12';
+ z2=(x12+1/2trbs+2trht, h/2); % middle pin
+ trir(2, trht, trbs); fill pth2;
+ z2'=(rightloc,y2); draw z2tic--z2';
+ z1trr=(x2trc-trht,y2trl); % top pin
+ trir(1, trht, trbs); fill pth1;
+ z1'=(x2',y1); draw z1tic--z1';
+ z3trl=(x1trr,y2trr); % bottom pin
+ trir(3, trht, trbs); fill pth3;
+ z3'=(x2',y3); draw z3tic--z3';
+ labels(1,2,3,11);
+endchar;
+
+cmchar "Old Persian syllable vi (V)";
+beginglyph("V", (2tb));
+ z1trl=(midloc,1/3h); % left pin
+ trid(1, trht, trbs); fill pth1;
+ z1'=(x1,0); draw z1tic--z1';
+ z2trr=z1trl; % right pin
+ trid(2, trht, trbs); fill pth2;
+ z2'=(x2,0); draw z2tic--z2';
+ z3trc=(x1trl,h); % top pin
+ trid(3, trht, trbs); fill pth3;
+ z3'=(x3,y1trl); draw z3tic--z3';
+ z11trc=(leftloc, 1/2[y1trl,y3trl]); % hor pin
+ trir(11, trht, trbs); fill pth11;
+ z11'=(rightloc,y11); draw z11tic--z11';
+ labels(1,2,3,4,11);
+endchar;
+
+cmchar "Old Persian syllable sa (s)";
+beginglyph("s", (3tb+th)); %% 4tb too large
+ z12trr=(leftloc,h); % vert pin
+ trid(12, trht, trbs); fill pth12;
+ z12'=(x12,0); draw z12tic--z12';
+ z2=(x12+1/2trbs+2trht, h/2); % middle pin
+ trir(2, trht, trbs); fill pth2;
+ z2'=(rightloc,y2); draw z2tic--z2';
+ z1trr=(x2trc-trht,y2trl); % top pin
+ trir(1, trht, trbs); fill pth1;
+ z1'=(x2',y1); draw z1tic--z1';
+ z3trl=(x1trr,y2trr); % bottom pin
+ trir(3, trht, trbs); fill pth3;
+ z3'=(x2',y3); draw z3tic--z3';
+ labels(1,2,3,11,12);
+endchar;
+
+cmchar "Old Persian syllable sva (S)";
+beginglyph("S", (2wh));
+ z1=(leftloc,1/2wibs); % left wing
+ wingl(1, wiht, wibs); fill pth1;
+ z2=(x1+wiht,y1); % right wing
+ wingl(2, wiht, wibs); fill pth2;
+ z3trl=(leftloc,h); % pin
+ trir(3, trht, trbs); fill pth3;
+ z3'=(rightloc,y3); draw z3tic--z3';
+ labels(1,2,3);
+endchar;
+
+cmchar "Old Persian syllable za (z)";
+beginglyph("z", (4tb));
+ z1trr=(leftloc,h); % left pin
+ trid(1, trht, trbs); fill pth1;
+ z1'=(x1,0); draw z1tic--z1';
+ z2trl=(rightloc,h); % right pin
+ trid(2, trht, trbs); fill pth2;
+ z2'=(x2,0); draw z2tic--z2';
+ z11trc=(x1trl,h/2); % hor pins
+ trir(11, trht, trbs); fill pth11;
+ z11'=(x2trr,y11); draw z11tic--z11';
+ z12trc=1/2[z11trc,z11'];
+ trir(12, trht, trbs); fill pth12;
+ labels(1,2,11);
+endchar;
+
+cmchar "Old Persian syllable ha (h)";
+beginglyph("h", (2tb+2wh));
+ z1=(leftloc,h/2); % left wing
+ wingl(1, wiht, wibs); fill pth1;
+ z2=(rightloc-wiht,y1); % right wing
+ wingl(2, wiht, wibs); fill pth2;
+ z11trr=(x1wil,y1); % top pin
+ trir(11, trht, trbs); fill pth11;
+ z11'=(x2,y11); draw z11tic--z11';
+ z12trl=z11trr; % bottom pin
+ trir(12, trht, trbs); fill pth12;
+ z12'=(x2,y12); draw z12tic--z12';
+ labels(1,2,11,12);
+endchar;
+
+cmchar "Old Persian word: king (X)";
+beginglyph("X", (3tb+2wh));
+ z4=(rightloc-wiht, h/2); % right wing
+ wingl(4, wiht, wibs); fill pth4;
+ z11trc=(x4,h); % center vert pin
+ trid(11, trht, trbs); fill pth11;
+ z11'=(x11,0); draw z11tic--z11';
+ z3wir=(x11trr,y4wir); % left wing
+ wingl(3, wiht, wibs); fill pth3;
+ z1trr=(leftloc,y4); % top pin
+ trir(1, trht, trbs); fill pth1;
+ z1'=(x3,y1); draw z1tic--z1';
+ z2trl=z1trr; % bottom pin
+ trir(2, trht, trbs); fill pth2;
+ z2'=(x1',y2); draw z2tic--z2';
+ labels(1,2,3,4,11);
+endchar;
+
+cmchar "Old Persian word: country (version a) (q)";
+beginglyph("q", (9/4tb+wh)); %% 5/2tb+wh too large
+ numeric n[];
+ n1 := 1/2wiht;
+ n2 := 1/2wibs;
+ z12trl=(rightloc,h); % right pin
+ trid(12, trht, trbs); fill pth12;
+ z12'=(x12,0); draw z12tic--z12';
+ z11trl=z12trr; % left pin
+ trid(11, trht, trbs); fill pth11;
+ z11'=(x11,0); draw z11tic--z11';
+ z1=(leftloc, h-1/2n2); % top left wing
+ wingl(1, n1, n2); fill pth1;
+ z2=(x1wil, y1); % top right wing
+ wingl(2, n1, n2); fill pth2;
+ z3=(x1, 1/2n2); % bottom left wing
+ wingl(3, n1, n2); fill pth3;
+ z4=(x2, y3); % bottom right wing
+ wingl(4, n1, n2); fill pth4;
+ labels(1,2,3,4,11,12);
+endchar;
+
+cmchar "Old Persian word: country (version b) (Q)";
+beginglyph("Q", (5/4tb+wh)); %% 3/2tb+wh too large
+ numeric n[];
+ n1 := 1/2wiht;
+ n2 := 1/2wibs;
+ z11trl=(rightloc,h); % right pin
+ trid(11, trht, trbs); fill pth11;
+ z11'=(x11,0); draw z11tic--z11';
+ z1=(leftloc, h-1/2n2); % top left wing
+ wingl(1, n1, n2); fill pth1;
+ z2=(x1wil, y1); % top right wing
+ wingl(2, n1, n2); fill pth2;
+ z3=(x1, 1/2n2); % bottom left wing
+ wingl(3, n1, n2); fill pth3;
+ z4=(x2, y3); % bottom right wing
+ wingl(4, n1, n2); fill pth4;
+ labels(1,2,3,4,11,12);
+endchar;
+
+cmchar "Old Persian word: earth (L)";
+beginglyph("L", (3wh));
+ z1=(leftloc, wiht); % left wing
+ wingl(1, wiht, wibs); fill pth1;
+ z2=(x1wil, y1); % center wing
+ wingl(2, wiht, wibs); fill pth2;
+ z3=(x2wil, y1); % right wing
+ wingl(3, wiht, wibs); fill pth3;
+ z11trr=(x1,y1wir); % top pin
+ trir(11, trht, trbs); fill pth11;
+ z11'=(rightloc,y11); draw z11tic--z11';
+ z12trc=(x2,y11);
+ trir(12, trht, trbs); fill pth12;
+ z13trc=(x3,y11);
+ trir(13, trht, trbs); fill pth13;
+ labels(1,2,3,11,12,13);
+endchar;
+
+cmchar "Old Persian word: god (B)";
+beginglyph("B", (2tb+2wh));
+ z4=(rightloc-wiht, h/2); % right wing
+ wingl(4, wiht, wibs); fill pth4;
+ z3=(x4-wiht, y4); % left wing
+ wingl(3, wiht, wibs); fill pth3;
+ z1trc=(leftloc,y4); % pin
+ trir(1, trht, trbs); fill pth1;
+ z1'=z3; draw z1tic--z1';
+ z2trc=1/2[z1trc,z1'];
+ trir(2, trht, trbs); fill pth2;
+ labels(1,2,3,4);
+endchar;
+
+cmchar "Old Persian word: Auramazda (version a) (e)";
+beginglyph("e", (3tb+wh));
+ z43=(rightloc-wiht, h/2); % wing
+ wingl(43, wiht, wibs); fill pth43;
+ z46trc=(x43,h); % vert pin
+ trid(46, trht, trbs); fill pth46;
+ z46'=(x46,0); draw z46tic--z46';
+ z14trr=(leftloc,h/2); % pin 3
+ trir(14, trht, trbs); fill pth14;
+ z14'=(x46,y14); draw z14tic--z14';
+ z24trc=1/2[z14trc,z14']; z34trc=2/3[z14trc,z14'];
+ trir(24, trht, trbs); fill pth24;
+
+ z12trl=z14trr; % pin 2
+ trir(12, trht, trbs); fill pth12;
+ z12'=(x46,y12); draw z12tic--z12';
+ z22=(x24,y12); z32=(x34,y12);
+ trir(22, trht, trbs); fill pth22;
+
+ labels(12,14,21,22,23,24,25,31,32,33,34,35,41,42,43,44,45,46);
+endchar;
+
+cmchar "Old Persian word: Auramazda (version b) (E)";
+beginglyph("E", (4tb));
+%% z43=(rightloc-wiht, h/2); % wing
+%% wingl(43, wiht, wibs); fill pth43;
+ z46trc=(rightloc,h+trht); % vert pin
+ trid(46, trht, trbs); fill pth46;
+ z46'=(x46,-1/2trbs); draw z46tic--z46';
+ z14trr=(leftloc,h/2); % pin 3
+ trir(14, trht, trbs); fill pth14;
+ z14'=(x46,y14); draw z14tic--z14';
+ z24trc=1/3[z14trc,z14']; z34trc=2/3[z14trc,z14'];
+ trir(24, trht, trbs); fill pth24;
+ trir(34, trht, trbs); fill pth34;
+
+ z12trl=z14trr; % pin 2
+ trir(12, trht, trbs); fill pth12;
+ z12'=(x46,y12); draw z12tic--z12';
+ z22=(x24,y12); z32=(x34,y12);
+ trir(22, trht, trbs); fill pth22;
+ trir(32, trht, trbs); fill pth32;
+
+ z21trl=(x24trc, y12trr); % pin 1
+ trir(21, trht, trbs); fill pth21;
+ z21'=(x46,y21); draw z21tic--z21';
+ z31=(x34,y21);
+ trir(31, trht, trbs); fill pth31;
+
+ z25trr=(x24trc, y14trl); % pin 4
+ trir(25, trht, trbs); fill pth25;
+ z25'=(x46,y25); draw z25tic--z25';
+ z35=(x34,y25);
+ trir(35, trht, trbs); fill pth35;
+ labels(12,14,21,22,23,24,25,31,32,33,34,35,41,42,43,44,45,46);
+endchar;
+
+cmchar "Old Persian word: Auramazda (version c) (F)";
+beginglyph("F", (4tb+wh));
+ z43=(rightloc-wiht, h/2); % wing
+ wingl(43, wiht, wibs); fill pth43;
+ z46trc=(x43,h+trht); % vert pin
+ trid(46, trht, trbs); fill pth46;
+ z46'=(x46,-1/2trbs); draw z46tic--z46';
+ z14trr=(leftloc,y43); % pin 3
+ trir(14, trht, trbs); fill pth14;
+ z14'=(x46,y14); draw z14tic--z14';
+ z24trc=1/3[z14trc,z14']; z34trc=2/3[z14trc,z14'];
+ trir(24, trht, trbs); fill pth24;
+ trir(34, trht, trbs); fill pth34;
+
+ z12trl=z14trr; % pin 2
+ trir(12, trht, trbs); fill pth12;
+ z12'=(x46,y12); draw z12tic--z12';
+ z22=(x24,y12); z32=(x34,y12);
+ trir(22, trht, trbs); fill pth22;
+ trir(32, trht, trbs); fill pth32;
+
+ z21trl=(x24trc, y12trr); % pin 1
+ trir(21, trht, trbs); fill pth21;
+ z21'=(x46,y21); draw z21tic--z21';
+ z31=(x34,y21);
+ trir(31, trht, trbs); fill pth31;
+
+ z25trr=(x24trc, y14trl); % pin 4
+ trir(25, trht, trbs); fill pth25;
+ z25'=(x46,y25); draw z25tic--z25';
+ z35=(x34,y25);
+ trir(35, trht, trbs); fill pth35;
+ labels(12,14,21,22,23,24,25,31,32,33,34,35,41,42,43,44,45,46);
+endchar;
+
+cmchar "Old Persian numeral 1 (1)";
+beginglyph("1", (tb));
+ z1trc=(midloc,h);
+ trid(1, trht, trbs); fill pth1;
+ z1'=(x1,0); draw z1tic--z1';
+ labels(1,2);
+endchar;
+
+cmchar "Old Persian numeral 2 (2)";
+beginglyph("2", (tb));
+ z1trc=(midloc,h);
+ trid(1, trht, trbs); fill pth1;
+ z1'=(x1,0); draw z1tic--z1';
+ z2trc=1/2[z1trc,z1'];
+ trid(2, trht, trbs); fill pth2;
+ labels(1,2);
+endchar;
+
+cmchar "Old Persian numeral 10 (3)";
+beginglyph("3", (wh));
+ z1=(leftloc,h/2);
+ wingl(1, wiht, wibs); fill pth1;
+ labels(1,2);
+endchar;
+
+cmchar "Old Persian numeral 20 (4)";
+beginglyph("4", (1/2wh));
+ z1=(leftloc,3/4h);
+ wingl(1, 1/2wiht, 1/2wibs); fill pth1;
+ z2=(leftloc,1/4h);
+ wingl(2, 1/2wiht, 1/2wibs); fill pth2;
+ labels(1,2);
+endchar;
+
+cmchar "Old Persian numeral 100 (5)";
+beginglyph("5", (tb+2th));
+ z1trl=(leftloc,h); % top pins
+ trir(1, trht, trbs); fill pth1;
+ z2trr=(rightloc,h);
+ tril(2, trht, trbs); fill pth2;
+ draw z1tic--z2tic;
+ z11trc=(1/2[x1,x2],y1trr); % vertical pin
+ trid(11, trht, trbs); fill pth11;
+ z11'=(x11,0); draw z11tic--z11';
+ labels(1,2,11);
+endchar;
+
+cmchar "Old Persian word divider (:)";
+beginglyph(":", (3tb));
+ numeric alpha;
+ alpha := trbs;
+ z1=(leftloc+alpha, h-alpha);
+ z2=(rightloc-alpha, alpha);
+ triangle(1, trht, trbs, angle((z2-z1)));
+ fill pth1; draw z1tic--z2;
+ labels(1,2);
+endchar;
+
+end
+
diff --git a/Master/texmf-dist/fonts/source/public/archaic/givbc10.mf b/Master/texmf-dist/fonts/source/public/archaic/givbc10.mf
new file mode 100644
index 00000000000..e2e190fa50c
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/archaic/givbc10.mf
@@ -0,0 +1,921 @@
+%%
+%% This is file `givbc10.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% greek4cbc.dtx (with options: `up')
+%% ------------------------------------------------------------------
+%% Author: Peter Wilson (Herries Press) herries dot press at earthlink dot net
+%% Copyright 1999--2005 Peter R. Wilson
+%%
+%% This work may be distributed and/or modified under the
+%% conditions of the Latex Project Public License, either
+%% version 1.3 of this license or (at your option) any
+%% later version.
+%% The latest version of the license is in
+%% http://www.latex-project.org/lppl.txt
+%% and version 1.3 or later is part of all distributions of
+%% LaTeX version 2003/06/01 or later.
+%%
+%% This work has the LPPL maintenance status "author-maintained".
+%%
+%% This work consists of the files listed in the README file.
+%% ------------------------------------------------------------------
+ %%% GIVBC10.MF Computer Greek 4 century BC font 10 point design size.
+
+if unknown cmbase: input cmbase fi
+
+font_identifier:="GIVBC"; font_size 10pt#;
+
+u#:=20/36pt#; % unit width
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=270/36pt#; % height of tallest characters
+asc_height#:=250/36pt#; % height of lowercase ascenders
+cap_height#:=246/36pt#; % height of caps
+fig_height#:=232/36pt#; % height of numerals
+x_height#:=155/36pt#; % height of lowercase without ascenders
+desc_depth#:=70/36pt#; % depth of lowercase descenders
+half_height#:=1/2cap_height#; % half the height of caps
+
+side#:=cap_height#; % Height and width of the square
+thickfudge:=1/9;
+thick#:=thickfudge*side#; % thickness of all lines in the font
+
+rule_thickness#:=.4pt#; % thickness of lines
+
+cap_stem#:=thick#; % thickness of majuscule stems
+
+o#:=8/36pt#; % amount of overshoot for curves
+apex_o#:=thin#; % amount of overshoot for diagonal junctions
+apex_corr#=0pt#; % fine tuning of overshoot
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+
+serifs:=false; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+
+dot_size#:=38/36pt#; % size of dots
+square_dots:=false; % should dots be square?
+
+boolean whole_font; % try generating a complete font?
+whole_font:=false;
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% MACRO SECTION %%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+def makebox(text rule) =
+ for y=0,half_height,cap_height,body_height,x_height,-desc_depth,-body_depth:
+ rule((l,y)t_,(r,y)t_); endfor % horizontals
+ for x=l,r: rule((x,-body_depth)t_,(x,body_height)t_); endfor % verticals
+ for x=u*(1+floor(1/u)) step u until r-1:
+ rule((x,-body_depth)t_,(x,body_height)t_); endfor % more verticals
+ if charic<>0:
+ rule((r+charic*pt,h.o_),(r+charic*pt,.5h.o_)); fi % italic correction
+enddef;
+
+
+def proofpcbb(suffix $)(expr xoff, yoff) =
+if proofing > 0:
+ x$bl = x$ - xoff; y$bl = y$ - yoff; % Bottom Left Hand Corner
+ z$br = (x$bl+cap_height, y$bl); % BRHC
+ z$tr = (x$bl+cap_height, y$bl+cap_height); % TRHC
+ z$tl = (x$bl, y$bl+cap_height); % TLHC
+ z$bc = 1/2[z$bl,z$br]; z$tc = 1/2[z$tl,z$tr]; % horizontal mid points
+ pair hc, vc;
+ hc = (2u,0); vc = (0,2u);
+ pickup pensquare scaled 2;
+ for s = z$bl, z$br, z$tr, z$tl, z$bc, z$tc:
+ draw s-hc--s+hc;
+ draw s-vc--s+vc;
+ endfor
+fi
+enddef;
+
+
+let cm_font_setup=font_setup; % Knuth's original font_setup
+
+
+def greek_font_setup= % contains special stuff for archaic Greek font
+ define_pixels(u);
+ define_pixels(side,thick,half_height);
+ let adjust_fit=normal_adjust_fit;
+ define_whole_pixels(letter_fit);
+ define_whole_vertical_pixels(body_height,asc_height,
+ cap_height,x_height,desc_depth);
+ body_depth:=desc_depth+body_height-asc_height;
+ define_pixels(dot_size);
+ shrink_fit:=1+hround(2letter_fit#*hppp)-2letter_fit;
+ if not string mode:
+ if mode<=smoke:
+ shrink_fit:=0;
+ fi
+ fi
+enddef;
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% END OF MACROS %%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
+font_coding_scheme:="ASCII caps and miniscules";
+
+mode_setup;
+
+greek_font_setup;
+
+numeric pcshiftx#; % x value of LHS of box wrt origin of char box
+define_pixels(pcshiftx);
+
+
+font_slant slant;
+font_x_height x_height#;
+if monospace: font_normal_space 9u#; % no stretching or shrinking
+ font_quad 18u#;
+ font_extra_space 9u#;
+else: font_normal_space 6u#+2letter_fit#;
+ font_normal_stretch 3u#; font_normal_shrink 2u#;
+ font_quad 18u#+4letter_fit#;
+ font_extra_space 2u#;
+fi
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
+cmchar "Greek 394BC letter alpha (a)";
+beginchar("a", 2u#+side#+2thick#, cap_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u+thick;
+y100 = h/2; x100 = pcshiftx+y100; % center point
+numeric alpha[], hor, vert, hypot, theta;
+pair greek[];
+hor := 0.5h; vert := h-thick;
+greek1 = (hor, vert);
+theta = 270 + angle(greek1);
+ % for left leg
+penpos1(thick,theta); penpos2(thick,theta);
+ % and for the right leg
+penpos3(thick,-theta); penpos4(thick,-theta);
+rt x1r=pcshiftx; lft x4l=x1r+side;
+bot y1r=bot y4l=0;
+top y3r= top y2l=h;
+x3r=x2l = 0.5[x1r,x4l];
+z0=whatever[z1r,z2r]=whatever[z3l,z4l];
+ % draw the legs
+filldraw z1l--z2l--z4r--z4l--z0--z1r--cycle;
+ % now for the bar
+y5l=y6l=hround(1/3h);
+y5r-y5l=y6r-y6l=thick;
+penpos5(whatever, angle(z2-z1)); penpos6(whatever, angle(z3-z4));
+z5=whatever[z1,z2]; z6=whatever[z3,z4];
+penstroke z5e--z6e; % bar line
+proofpcbb(100, y100, y100);
+penlabels(0,1,2,3,4,5,6,100); endchar;
+
+
+cmchar "Greek 394BC letter beta (b)";
+beginchar("b",4u#+5/9side#, cap_height#, 0);
+adjust_fit(0,0);
+pcshiftx := 2u;
+y100=h/2; x100=pcshiftx+y100; % square center
+penpos1(thick,0); penpos2(thick,0);
+y2l=0; y1l=h; x1l=x2l=pcshiftx;
+numeric alpha, long, short, hypot;
+long=(w-2pcshiftx); short=h/4; hypot=short++long;
+alpha := hypot/long;
+penpos3(alpha*thick,90); penpos4(alpha*thick,90);
+penpos5(alpha*thick,90); penpos6(alpha*thick,90);
+z3l=z2l;
+x4l=w-pcshiftx; y4l=0.25[y2l,y1l];
+z5r=z4l;
+x6l=x2r; y6l=0.5[y2l,y1l];
+penpos7(alpha*thick,90); penpos8(alpha*thick,90);
+penpos9(alpha*thick,90); penpos10(alpha*thick,90);
+z7r=z6l;
+x8l=x4l; y8l=0.75[y2l,y1l];
+z9r=z8l;
+z10r=z1l;
+z11=whatever[z2r,z1r]=whatever[z3r,z4r]; % bottom bowl and stem
+z12=whatever[z3r,z4r]=whatever[z6l,z5l]; % bottom bowl inner
+z13=whatever[z5r,z6r]=whatever[z7l,z8l]; % between the bowls
+z14=whatever[z7r,z8r]=whatever[z9l,z10l]; % top bowl inner
+z15=whatever[z2r,z1r]=whatever[z9l,z10l]; % top bowl and stem
+filldraw z1l--z2l--z4l--z13--z8l--cycle;
+unfilldraw z6l--z12--z11--cycle;
+unfilldraw z7r--z15--z14--cycle;
+proofpcbb(100, y100, y100);
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,100);
+endchar;
+
+
+cmchar "Greek 394BC letter gamma (g)";
+beginchar("g",2u#+thick#+2/3side#, cap_height#, 0);
+adjust_fit(0, 0);
+pcshiftx := u;
+y100 = h/2; x100 = pcshiftx + y100; % center point
+penpos1(thick,0); penpos2(thick,0);
+x1l=x2l=pcshiftx; top y1l=h; bot y2l=0;
+filldraw stroke z1e--z2e;
+penpos3(thick,90); penpos4(thick,90);
+y3r=y4r=y1l; x3l=x1l; x4l=w-pcshiftx;
+filldraw stroke z3e--z4e;
+proofpcbb(100, y100, y100);
+penlabels(1,2,3,4,100); endchar;
+
+
+cmchar "Greek 394BC letter delat (d)";
+beginchar("d", 2u#+side#+2thick#, cap_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u+thick;
+y100 = h/2; x100 = pcshiftx+y100; % center point
+numeric alpha, hor, vert, hypot, theta;
+pair greek[];
+hor := 0.5h; vert := h-thick;
+greek1 = (hor, vert);
+theta = 270 + angle(greek1);
+ % for left leg
+penpos1(thick,theta); penpos2(thick,theta);
+ % and for the right leg
+penpos3(thick,-theta); penpos4(thick,-theta);
+rt x1r=pcshiftx; lft x4l=x1r+side;
+bot y1r=bot y4l=0;
+top y2l= top y3r=h;
+x3r=x2l = 0.5[x1r,x4l];
+z0=whatever[z1r,z2r]=whatever[z3l,z4l];
+ % now for the bar
+penpos5(thick,90); penpos6(thick,90);
+bot y5l=bot y6l=0;
+x5l=pcshiftx; x6l=w-pcshiftx;
+z7=whatever[z1l,z2l]=whatever[z5l,z6l];
+z8=whatever[z3r,z4r]=whatever[z5l,z6l];
+z9=whatever[z1r,z2r]=whatever[z5r,z6r];
+z10=whatever[z3l,z4l]=whatever[z5r,z6r];
+filldraw z7--z2l--z8--cycle;
+unfilldraw z9--z0--z10--cycle;
+proofpcbb(100, y100, y100);
+penlabels(0,1,2,3,4,5,6,7,8,9,10,100); endchar;
+
+
+cmchar "Greek 394BC letter epsilon (e)";
+beginchar("e", 2u#+2/3side#+2thick#, cap_height#,0);
+adjust_fit(0,0);
+pcshiftx := u;
+y100=h/2; x100=pcshiftx+y100; % center point
+penpos1(thick,0); penpos2(thick,0);
+lft x1l=lft x2l=pcshiftx; top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+penpos5(thick,90); penpos6(thick,90);
+x5=x1; y5=y6=h/2; rt x6=pcshiftx + 2/3side;
+filldraw stroke z5e--z6e;
+penpos3(thick,90); penpos4(thick,90);
+x3=x1; top y3r=top y4r=h; x4=x6+thick;
+filldraw stroke z3e--z4e;
+penpos7(thick,90); penpos8(thick,90);
+x7=x1; bot y7l=bot y8l=0; x8=x6+2thick;
+filldraw stroke z7e--z8e;
+proofpcbb(100, y100, y100);
+penlabels(1,2,3,4,5,6,7,8,100); endchar; % end of "E"
+
+
+cmchar "Greek 394BC letter zeta (z)";
+beginchar("z", 2u#+side#, cap_height#,0);
+adjust_fit(0, 0);
+pcshiftx := u;
+y100=h/2; x100=pcshiftx+y100; % center of square
+numeric alpha, hor, vert, hypot;
+vert=h; hor=4/5side; hypot=vert++hor;
+alpha=hypot/vert;
+penpos1(thick,90); penpos2(thick,90); penpos3(alpha*thick, 0);
+penpos4(alpha*thick, 0);
+top y1r=h; lft x1=pcshiftx;
+y2=y1; rt x2=x3;
+rt x3r=x1+4/5side;; top y3=h; x4l=x1; bot y4=0;
+filldraw stroke z1e--z2e; % top bar
+filldraw stroke z3e--z4e; % diagonal
+penpos8(thick,90); penpos9(thick,90);
+x8=x4; bot y8l=0;
+x9=pcshiftx+side; y9=y8;
+filldraw stroke z8e--z9e;
+proofpcbb(100, y100, y100);
+penlabels(1,2,3,4,5,6,7,8,9,100); endchar;
+
+
+cmchar "Greek 394BC letter eta (h)";
+beginchar("h", 4u#+side#, cap_height#,0);
+adjust_fit(0,0);
+pcshiftx := 2u;
+y100 = h/2; x100 = pcshiftx + y100; % center point
+penpos1(thick,0); penpos2(thick,0);
+lft x1l=lft x2l=pcshiftx; bot y1=0; top y2=h;
+filldraw stroke z1e--z2e;
+penpos3(thick,0); penpos4(thick,0);
+rt x3r= rt x4r= x1l+side; bot y3=0; top y4=h;
+filldraw stroke z3e--z4e;
+penpos5(thick,90); penpos6(thick,90);
+x5=x1; x6=x3; y5=y6=h/2;
+filldraw stroke z5e--z6e;
+proofpcbb(100, y100, y100);
+labels(1,2,3,4,5,6,100); endchar;
+
+
+cmchar "Greek 394BC letter theta (T)";
+beginchar("T", 2u#+side#, cap_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+y100=h/2; x100=pcshiftx+y100; % square center
+numeric alpha; alpha=0.75;
+x2r=pcshiftx; x4r=x2r+h; y2r=y4r=y100;
+y1r=h; y3r=0; x1r=x3r=x100;
+x2l=x2r+thick; x4l=x4r-thick; y2l=y4l=y2r;
+y1l=y1r-thick; y3l=y3r+thick; x1l=x3l=x1r;
+filldraw z1r..z2r..z3r..z4r..cycle;
+unfilldraw z1l..z2l..z3l..z4l..cycle;
+x12=x100-alpha*thick; x14=x100+alpha*thick; y12=y14=y100;
+y11=y100+alpha*thick; y13=y100-alpha*thick; x11=x13=x100;
+path p;
+p= z11..z12..z13..z14..cycle;
+filldraw p; filldraw p;
+proofpcbb(100, y100, y100);
+penlabels(1,2,3,4,100); endchar;
+
+
+cmchar "Greek 394BC letter iota (i)";
+beginchar("i", 4u#+thick#, cap_height#,0);
+adjust_fit(0,0);
+pcshiftx := 2u;
+y100 = h/2; x100 = pcshiftx + 0.5thick; % center point
+penpos1(thick,0); penpos2(thick,0);
+x1=x2=hround(w/2); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % vertical stem
+proofpcbb(100, y100, y100);
+penlabels(1, 2, 100);
+endchar;
+
+
+cmchar "Greek 394BC letter kappa (k)";
+beginchar("k", 2u#+2/3side#, cap_height#,0);
+adjust_fit(0,0);
+pcshiftx := u;
+y100=h/2; x100=pcshiftx+y100; % square center
+penpos1(thick,0); penpos2(thick,0);
+lft x1l=lft x2l=pcshiftx;
+ top y1=h; bot y2=0;
+ filldraw stroke z1e--z2e; % left stem
+numeric hor, vert, theta[];
+pair greek[];
+hor := 2/3side; vert := side/2;
+greek1 = (hor,vert);
+theta1=270+angle(greek1);
+penpos3(thick,theta1); penpos4(thick,theta1);
+x3l=x2r; y3l=side/2;
+y4l=h; x4r=x1l+2/3side;
+vert := -side/4;
+greek2 = (hor,vert);
+theta2=270+angle(greek2);
+penpos5(thick,theta2); penpos6(thick,theta2);
+z5r=z3l;
+x6l=x4r; y6l=side/4;
+z0=whatever[z3r,z4r]=whatever[z5l,z6l];
+filldraw z3l--z4l--z4r--z0--z6l--z6r--cycle;
+proofpcbb(100, y100, y100);
+penlabels(0,1,2,3,4,5,6,100); endchar;
+
+
+cmchar "Greek 394BC letter lambda (l)";
+beginchar("l", 2u#+side#+2thick#, cap_height#,0);
+adjust_fit(0,0);
+pcshiftx := u+thick;
+y100 = h/2; x100 = pcshiftx+y100; % center point
+numeric alpha[], hor, vert, hypot, theta;
+pair greek[];
+hor := 0.5h; vert := h-thick;
+greek1 = (hor, vert);
+theta = 270 + angle(greek1);
+ % for left leg
+penpos1(thick,theta); penpos2(thick,theta);
+ % and for the right leg
+penpos3(thick,-theta); penpos4(thick,-theta);
+rt x1r=pcshiftx; lft x4l=x1r+side;
+bot y1r=bot y4l=0;
+top y3r= top y2l=h;
+x3r=x2l = 0.5[x1r,x4l];
+z0=whatever[z1r,z2r]=whatever[z3l,z4l];
+ % draw the legs
+filldraw z1l--z2l--z4r--z4l--z0--z1r--cycle;
+proofpcbb(100, y100, y100);
+penlabels(0,1,2,3,4,100); endchar; % end of "L"
+
+
+cmchar"Greek 394BC letter mu (m)";
+beginchar("m", 2u#+side#+2thick#, cap_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u+thick;
+y100=h/2; x100=pcshiftx+y100; % square center
+numeric alpha, hor, vert, hypot, theta[];
+pair greek[];
+hor := 3thick; vert := side;
+greek1 = (hor, vert);
+theta1 = 270 + angle(greek1);
+penpos1(thick,theta1); penpos2(thick,theta1);
+z1r=(pcshiftx,0); z2l=(pcshiftx+2thick,h);
+penpos3(thick,-theta1); penpos4(thick,-theta1);
+z3l=(pcshiftx+side,0); z4r=(pcshiftx+side-2thick,h);
+z0=z100;
+theta2 = 270 + angle(z4r-z0);
+penpos5(thick,-theta2); penpos6(thick,-theta2);
+z5r=z0; z6r=z2l;
+penpos7(thick,theta2); penpos8(thick,theta2);
+z7l=z0; z8l=z4r;
+z9=whatever[z1r,z2r]=whatever[z5l,z6l];
+z10=whatever[z5l,z6l]=whatever[z7r,z8r];
+z11=whatever[z7r,z8r]=whatever[z3l,z4l];
+filldraw z1l--z2l--z0--z4r--z3r--z3l--z11--z10--z9--z1r--cycle;
+proofpcbb(100, y100, y100);
+penlabels(0,1,2,3,4,5,6,7,8,9,10,100); endchar;
+
+
+cmchar "Greek 394BC letter nu (n)";
+beginchar("n", 4u#+side#, cap_height#,0);
+adjust_fit(0,0);
+pcshiftx := 2u;
+y100 = h/2; x100 = pcshiftx + y100; % center point
+numeric hor, vert, theta;
+pair greek[];
+hor = side-thick; vert = h;
+greek1=(hor,vert);
+theta=270 + angle(greek1);
+penpos1(thick,0); penpos2(thick,0);
+z1l=(pcshiftx,0); z2l=(pcshiftx,h);
+penpos3(thick,0); penpos4(thick,0);
+z3r=(pcshiftx+side,0); z4r=(pcshiftx+side,h);
+penpos5(thick,-theta); penpos6(thick,-theta);
+z5l=z3r; z6r=z2l;
+z7=whatever[z1r,z2r]=whatever[z5l,z6l];
+z8=whatever[z5r,z6r]=whatever[z3l,z4l];
+filldraw z1l--z2l--z8--z4l--z4r--z3r--z7--z1r--cycle;
+proofpcbb(100, y100, y100);
+penlabels(1,2,3,4,5,6,7,8,100); endchar;
+
+
+cmchar "Greek 394BC letter xi (x)";
+beginchar("x", 2u#+side#, cap_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+y100 = h/2; x100 = pcshiftx + y100; % center point
+penpos1(thick,0); penpos2(thick,0);
+z1=(x100,0); z2=(x100,h);
+filldraw stroke z1e--z2e;
+penpos3(thick,90); penpos4(thick,90);
+z3r=(pcshiftx,h); z4r=(pcshiftx+side,h);
+filldraw stroke z3e--z4e;
+penpos5(thick,90); penpos6(thick,90);
+z5=(pcshiftx,h/2); z6=(pcshiftx+side,h/2);
+filldraw stroke z5e--z6e;
+penpos7(thick,90); penpos8(thick,90);
+z7l=(pcshiftx,0); z8l=(pcshiftx+side,0);
+filldraw stroke z7e--z8e;
+proofpcbb(100, y100, y100);
+penlabels(1,2,3,4,5,6,7,8,100);
+endchar;
+
+
+cmchar "Greek 394BC letter omicron (o)";
+beginchar("o", 2u#+side#, cap_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+y100=h/2; x100=pcshiftx+y100; % square center
+x2r=pcshiftx; x4r=x2r+h; y2r=y4r=y100;
+y1r=h; y3r=0; x1r=x3r=x100;
+x2l=x2r+thick; x4l=x4r-thick; y2l=y4l=y2r;
+y1l=y1r-thick; y3l=y3r+thick; x1l=x3l=x1r;
+filldraw z1r..z2r..z3r..z4r..cycle;
+unfilldraw z1l..z2l..z3l..z4l..cycle;
+proofpcbb(100, y100, y100);
+penlabels(1,2,3,4,100); endchar;
+
+
+cmchar "Greek 394BC letter pi (p)";
+beginchar("p", 4u#+side#, cap_height#, 0);
+adjust_fit(0, 0);
+pcshiftx := 2u;
+y100 = h/2; x100 = pcshiftx + y100; % center point
+penpos1(thick,0); penpos2(thick,0);
+x1l=x2l=pcshiftx; top y1l=h; bot y2l=0;
+filldraw stroke z1e--z2e;
+penpos3(thick,90); penpos4(thick,90);
+y3r=y4r=y1l; x3l=x1l; x4l=w-pcshiftx;
+filldraw stroke z3e--z4e;
+penpos5(thick,0); penpos6(thick,0);
+x5r=x6r=x4; top y5=h; bot y6=h/2;
+filldraw stroke z5e--z6e;
+proofpcbb(100, y100, y100);
+penlabels(1,2,3,4,5,6,100); endchar;
+
+
+cmchar "Greek 394BC letter rho (r)";
+beginchar("r", 2u#+5/9side#, cap_height#,0);
+adjust_fit(0, 0);
+pcshiftx := u;
+y100=h/2; x100=pcshiftx+y100; % square center
+penpos1(thick,0); penpos2(thick,0);
+ top lft z1l=(pcshiftx,h); bot lft z2l=(pcshiftx,0);
+filldraw stroke z1e--z2e; % vertical stem
+penpos3(thick,90); penpos4(thick,0); penpos5(thick,-90);
+top y3r=top y1; x3r=x1r;
+bot y5r=5/9[y1,y2]; x5=x3;
+x4r=x1l+5/9side; y4=0.5[y5r,y3r];
+filldraw z3r{right}..z4r{down}..z5r{left}--z5l{right}..z4l{up}..z3l{left}--cycle;
+proofpcbb(100, y100, y100);
+penlabels(1,2,3,4,5,100);
+endchar;
+
+
+cmchar "Greek 394BC letter sigma (s)";
+beginchar("s", 2u#+2/3side#, cap_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+y100 = h/2; x100 = pcshiftx+y100; % square center
+pair greek[];
+numeric theta[];
+numeric hor, vert;
+hor := 2/3side; vert := 1/3h;
+greek1=(hor,vert);
+theta1=270+angle(greek1);
+penpos1(thick,-theta1); penpos2(thick,-theta1);
+penpos7(thick,theta1); penpos8(thick,theta1);
+hor := 2/3side-thick; vert := h/2 - h/3;
+greek2=(hor,vert);
+theta2=270-angle(greek2);
+penpos3(thick,theta2); penpos4(thick,theta2);
+penpos5(thick,-theta2); penpos6(thick,-theta2);
+y1l=0; x1r=pcshiftx+2/3side;
+z2l=(pcshiftx,h/3);
+z3l=z2l;
+z4r=(pcshiftx+2/3side-thick, h/2);
+z5r=z4r;
+z6l=(pcshiftx,2/3h);
+z7l=z6l;
+y8l=h; x8r=x1r;
+z10=whatever[z1r,z2r]=whatever[z3r,z4r];
+z11=whatever[z3l,z4l]=whatever[z5l,z6l];
+z12=whatever[z5r,z6r]=whatever[z7r,z8r];
+filldraw z1l--z2l--z11--z6l--z8l--z8r--z12--z4r--z10--z1r--cycle;
+proofpcbb(100, y100, y100);
+penlabels(1,2,3,4,5,6,7,8,10,11,12,100); endchar;
+
+
+cmchar "Greek 394BC letter tau (t)";
+beginchar("t",2u#+side#, cap_height#,0);
+adjust_fit(0,0);
+pcshiftx := u;
+y100=h/2; x100=pcshiftx+y100; % square center
+numeric hor, vert, theta;
+numeric alpha[]; pair greek[];
+alpha1=h-thick;
+penpos1(thick,0); penpos2(thick,0);
+z1=(w/2,0); z2=(w/2,alpha1);
+filldraw stroke z1e--z2e;
+penpos3(thick,90); penpos4(thick,90);
+z3r=(pcshiftx,alpha1); z4r=(w/2,alpha1);
+filldraw stroke z3e--z4e;
+hor := w/2; vert := h/5;
+greek1=(hor,vert);
+theta = 270 + angle(greek1);
+penpos5(thick,theta);
+y5l=h; x5r=w-pcshiftx;
+filldraw z4l{right}..{greek1}z5r--z5l{-greek1}..{left}z4r--cycle;
+proofpcbb(100, y100, y100);
+penlabels(1,2,3,4,5,100); endchar;
+
+
+cmchar "Greek 394BC letter upsilon (y)";
+beginchar("y", 2u#+side#, cap_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+y100=h/2; x100=pcshiftx+y100; % center of square
+numeric alpha, theta;
+numeric hor, vert;
+pair greek[];
+alpha=h/3;
+hor := h; vert := 0.75h;
+greek1 = (hor,vert); greek2 = (-hor, -vert);
+greek3 = (-hor,vert); greek4 = (hor, -vert);
+theta = 270 + angle(greek1);
+penpos1(thick,0); penpos2(thick,0);
+z1=(w/2,0); z2=(w/2,alpha);
+penpos3(thick,theta);
+y3l=h; x3r=w-pcshiftx;
+penpos4(thick,-theta);
+y4r=h; x4l=pcshiftx;
+filldraw z1l--z1r--z2r{up}..{greek1}z3r--z3l{greek2}..{down}z2l--cycle;
+filldraw z1l--z1r--z2r{up}..{greek3}z4r--z4l{greek4}..{down}z2l--cycle;
+proofpcbb(100, y100, y100);
+penlabels(0,1,2,3,4,5,6,100); endchar; % End of "U"
+
+
+cmchar "Greek 394BC letter chi (X)";
+beginchar("X", 2u#+side#, cap_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+y100=h/2; x100=pcshiftx+y100; % center of square
+numeric theta;
+theta = 270+45;
+penpos1(thick,theta); penpos2(thick,theta);
+x1l=pcshiftx; y1r=0; x2r=pcshiftx+side; y2l=h;
+filldraw stroke z1e--z2e;
+penpos3(thick,-theta); penpos4(thick,-theta);
+x3l=pcshiftx; y3r=h; x4r=pcshiftx+side; y4l=0;
+filldraw stroke z3e--z4e;
+proofpcbb(100, y100, y100);
+penlabels(1,2,3,4,100); endchar;
+
+
+cmchar "Greek 394BC letter phi (f)";
+beginchar("f", 2u#+2/3side#, cap_height#,0);
+adjust_fit(0, 0);
+pcshiftx := u;
+y100 = h/2; x100 = pcshiftx + y100; % center point
+penpos1(thick,0); penpos2(thick,0);
+z1=(w/2,0); z2=(w/2,h);
+z0=(w/2,h/2);
+numeric alpha;
+alpha := 1/3h;
+y3o=y3i=y5i=y5o=h/2;
+x3o=x0-alpha; x3i=x3o+thick; x5o=x0+alpha; x5i=x5o-thick;
+x4o=x4i=x6i=x6o=w/2;
+y4o=y0+alpha; y4i=y4o-thick; y6o=y0-alpha; y6i=y6o+thick;
+unfilldraw z3i..z4i..z5i..z6i..cycle;
+filldraw z3o..z4o..z5o..z6o..cycle;
+filldraw stroke z1e--z2e; filldraw stroke z1e--z2e;
+proofpcbb(100, y100, y100);
+penlabels(1,2,3,4,5,6,100);
+endchar;
+
+
+cmchar "Greek 394BC letter psi (P)";
+beginchar("P", 2u#+5/6side#, cap_height#,0);
+adjust_fit(0, 0);
+pcshiftx := u;
+y100 = h/2; x100 = pcshiftx + y100; % center point
+numeric alpha, beta;
+numeric hor, vert, theta;
+pair greek;
+alpha=5/6; % scale factor
+beta=1/3alpha*side+thick; % arm seperation height
+penpos1(thick,0); penpos2(thick,0);
+z1=(w/2,0); z2=(w/2,h);
+filldraw stroke z1e--z2e;
+hor := w/2; vert := h-beta;
+greek = (hor,vert);
+theta=270+angle(greek);
+penpos3(thick,theta); penpos4(thick,theta);
+z3l=(w/2,beta); y4l=alpha*h; x4r=w-pcshiftx;
+penpos5(thick,-theta); penpos6(thick,-theta);
+z5r=z3l; x6l=pcshiftx; y6r=y4l;
+z10=whatever[z1r,z2r]=whatever[z3r,z4r];
+z11=whatever[z1l,z2l]=whatever[z5l,z6l];
+filldraw z3l--z4l--z4r--z10--cycle; % right arm
+filldraw z5r--z6r--z6l--z11--cycle; % left arm
+proofpcbb(100, y100, y100);
+penlabels(1,2,3,4,5,6,10,11,100);
+endchar;
+
+
+cmchar "Greek 394BC letter omega (O)";
+beginchar("O", 2u#+4/3side#, cap_height#,0);
+adjust_fit(0, 0);
+pcshiftx := u;
+y100 = h/2; x100 = pcshiftx + y100; % center point
+penpos1(thick,90); penpos2(thick,90); penpos3(thick,90); penpos4(thick,90);
+z1l=(pcshiftx,0); z4l=(w-pcshiftx,0);
+x2l = w/2-side/4; x3l=w/2+side/4; y2l=y3l=0;
+numeric theta, hor, vert;
+pair greek[];
+hor := x2r-pcshiftx; vert := h;
+greek1=(hor,vert); greek2=(-hor,-vert);
+greek3=(-hor,vert); greek4=(hor,-vert);
+theta = 270+angle(greek1);
+penpos5(thick,-theta); penpos9(thick,theta);
+z5r=z2l; z9l=z3l;
+penpos6(thick,0); penpos8(thick,0);
+z6l=(w/2-side/2, h/2); z8r=(w/2+side/2, h/2);
+penpos7(thick,90);
+z7r=(w/2,h);
+path p[];
+p1=z5l{greek3}..z6l{up}..{right}z7r;
+p2=z7r{right}..z8r{down}..{greek2}z9r;
+p3=z1r--z4r;
+z10 = p3 intersectionpoint p1;
+z11 = p3 intersectionpoint p2;
+filldraw z1r--z10{greek3}..z6l{up}..z7r{right}..z8r{down}..{greek2}z11--z4r
+ --z4l--z3l{greek1}..z8l{up}..z7l{left}..z6r{down}..{greek4}z2l--z1l--cycle;
+proofpcbb(100, y100, y100);
+penlabels(1,2,3,4,5,6,7,8,9,10,11,100);
+endchar;
+
+
+cmchar "Greek 394BC letter beta (rough, B)";
+beginchar("B",4u#+2/3side#, cap_height#, 0);
+adjust_fit(0,0);
+pcshiftx := 2u;
+y100=h/2; x100=pcshiftx+y100; % square center
+numeric beta;
+beta := side/10; % amount to extend top and bottom
+penpos1(thick,0); penpos2(thick,0);
+y2l=-beta; y1l=h+beta; x1l=x2l=pcshiftx;
+numeric alpha, long, short, hypot;
+long=(w-2pcshiftx); short=h/4; hypot=short++long;
+alpha := hypot/long;
+penpos3(alpha*thick,90); penpos4(alpha*thick,90);
+penpos5(alpha*thick,90); penpos6(alpha*thick,90);
+z3l=z2l;
+x4l=w-pcshiftx; y4l=0.25[y2l,y1l];
+z5r=z4l;
+x6l=x2r; y6l=0.5[y2l,y1l];
+penpos7(alpha*thick,90); penpos8(alpha*thick,90);
+penpos9(alpha*thick,90); penpos10(alpha*thick,90);
+z7r=z6l;
+x8l=x4l; y8l=0.75[y2l,y1l];
+z9r=z8l;
+z10r=z1l;
+z11=whatever[z2r,z1r]=whatever[z3r,z4r]; % bottom bowl and stem
+z12=whatever[z3r,z4r]=whatever[z6l,z5l]; % bottom bowl inner
+z13=whatever[z5r,z6r]=whatever[z7l,z8l]; % between the bowls
+z14=whatever[z7r,z8r]=whatever[z9l,z10l]; % top bowl inner
+z15=whatever[z2r,z1r]=whatever[z9l,z10l]; % top bowl and stem
+filldraw z1l--z2l--z4l--z13--z8l--cycle;
+unfilldraw z6l--z12--z11--cycle;
+unfilldraw z7r--z15--z14--cycle;
+proofpcbb(100, y100, y100);
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,100);
+endchar;
+
+
+cmchar"Greek 394BC letter mu (rough, M)";
+beginchar("M", 2u#+side#+2thick#, cap_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u+thick;
+y100=h/2; x100=pcshiftx+y100; % square center
+numeric alpha, hor, vert, hypot, theta[];
+pair greek[];
+hor := 3thick; vert := side;
+greek1 = (hor, vert);
+theta1 = 270 + angle(greek1);
+numeric beta;
+beta := thick; % extra depth below baseline
+penpos1(thick,theta1); penpos2(thick,theta1);
+z1r=(pcshiftx,-beta); z2l=(pcshiftx+2thick,h);
+penpos3(thick,-theta1); penpos4(thick,-theta1);
+z3l=(pcshiftx+side,0); z4r=(pcshiftx+side-2thick,h);
+z0=z100;
+theta2 = 270 + angle(z4r-z0);
+penpos5(thick,-theta2); penpos6(thick,-theta2);
+z5r=z0; z6r=z2l;
+penpos7(thick,theta2); penpos8(thick,theta2);
+z7l=z0; z8l=z4r;
+z9=whatever[z1r,z2r]=whatever[z5l,z6l];
+z10=whatever[z5l,z6l]=whatever[z7r,z8r];
+z11=whatever[z7r,z8r]=whatever[z3l,z4l];
+filldraw z1l--z2l--z0--z4r--z3r--z3l--z11--z10--z9--z1r--cycle;
+proofpcbb(100, y100, y100);
+penlabels(0,1,2,3,4,5,6,7,8,9,10,100); endchar;
+
+
+cmchar "Greek 394BC letter nu (rough, N)";
+beginchar("N", 4u#+side#, cap_height#,0);
+adjust_fit(0,0);
+pcshiftx := 2u;
+y100 = h/2; x100 = pcshiftx + y100; % center point
+numeric hor, vert, theta;
+pair greek[];
+hor = side-thick; vert = h;
+greek1=(hor,vert);
+theta=270 + angle(greek1);
+numeric beta;
+beta := thick; % extra extensions of the legs
+penpos1(thick,0); penpos2(thick,0);
+z1l=(pcshiftx,-beta); z2l=(pcshiftx,h);
+penpos3(thick,0); penpos4(thick,0);
+z3r=(pcshiftx+side,0); z4r=(pcshiftx+side,h+beta);
+penpos5(thick,-theta); penpos6(thick,-theta);
+z5l=z3r; z6r=z2l;
+z7=whatever[z1r,z2r]=whatever[z5l,z6l];
+z8=whatever[z5r,z6r]=whatever[z3l,z4l];
+filldraw z1l--z2l--z8--z4l--z4r--z3r--z7--z1r--cycle;
+proofpcbb(100, y100, y100);
+penlabels(1,2,3,4,5,6,7,8,100); endchar;
+
+
+cmchar "Greek 394BC letter rho (rough, R)";
+beginchar("R", 2u#+2/3side#, cap_height#,0);
+adjust_fit(0, 0);
+pcshiftx := u;
+y100=h/2; x100=pcshiftx+y100; % square center
+numeric beta;
+beta := side/10; % extra top and bottom extensions
+penpos1(thick,0); penpos2(thick,0);
+ top lft z1l=(pcshiftx,h+beta); bot lft z2l=(pcshiftx,-beta);
+filldraw stroke z1e--z2e; % vertical stem
+penpos3(thick,90); penpos4(thick,0); penpos5(thick,-90);
+top y3r=top y1; x3r=x1r;
+bot y5r=5/9[y1,y2]; x5=x3;
+x4r=x1l+5/9side; y4=0.5[y5r,y3r];
+filldraw z3r{right}..z4r{down}..z5r{left}--z5l{right}..z4l{up}..z3l{left}--cycle;
+proofpcbb(100, y100, y100);
+penlabels(1,2,3,4,5,100);
+endchar;
+
+
+cmchar "Greek 394BC letter upsilon (rough, Y)";
+beginchar("Y", 2u#+6/5side#, cap_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+y100=h/2; x100=pcshiftx+y100; % center of square
+numeric beta;
+beta := side/10; % extra at top and bottom
+numeric alpha, theta;
+numeric hor, vert;
+pair greek[];
+alpha=h/3;
+hor := h; vert := 0.75h;
+greek1 = (hor,vert); greek2 = (-hor, -vert);
+greek3 = (-hor,vert); greek4 = (hor, -vert);
+theta = 270 + angle(greek1);
+penpos1(thick,0); penpos2(thick,0);
+z1=(w/2,-beta); z2=(w/2,alpha);
+penpos3(thick,theta);
+y3l=h+beta; x3r=w-pcshiftx;
+penpos4(thick,-theta);
+y4r=h+beta; x4l=pcshiftx;
+filldraw z1l--z1r--z2r{up}..{greek1}z3r--z3l{greek2}..{down}z2l--cycle;
+filldraw z1l--z1r--z2r{up}..{greek3}z4r--z4l{greek4}..{down}z2l--cycle;
+proofpcbb(100, y100, y100);
+penlabels(0,1,2,3,4,5,6,100); endchar; % End of "u"
+
+
+cmchar "Greek 394BC letter phi (rough, F)";
+beginchar("F", 2u#+4/5side#, cap_height#,0);
+adjust_fit(0, 0);
+pcshiftx := u;
+y100 = h/2; x100 = pcshiftx + y100; % center point
+numeric beta;
+beta := side/10; % extra at top and bottom
+penpos1(thick,0); penpos2(thick,0);
+z1=(w/2,-beta); z2=(w/2,h+beta);
+z0=(w/2,h/2);
+numeric alpha;
+alpha := 2/5side;
+y3o=y3i=y5i=y5o=h/2;
+x3o=x0-alpha; x3i=x3o+thick; x5o=x0+alpha; x5i=x5o-thick;
+x4o=x4i=x6i=x6o=w/2;
+y4o=y0+alpha; y4i=y4o-thick; y6o=y0-alpha; y6i=y6o+thick;
+unfilldraw z3i..z4i..z5i..z6i..cycle;
+filldraw z3o..z4o..z5o..z6o..cycle;
+filldraw stroke z1e--z2e; filldraw stroke z1e--z2e;
+proofpcbb(100, y100, y100);
+penlabels(1,2,3,4,5,6,100);
+endchar;
+
+
+cmchar "Greek 394BC letter psi (rough, Q)";
+beginchar("Q", 2u#+side#, cap_height#,0);
+adjust_fit(0, 0);
+pcshiftx := u;
+y100 = h/2; x100 = pcshiftx + y100; % center point
+numeric alpha, beta;
+numeric hor, vert, theta;
+pair greek;
+alpha=1; % scale factor
+beta=1/3alpha*side+thick; % arm seperation height
+numeric gamma;
+gamma := side/10; % extra at top and bottom
+penpos1(thick,0); penpos2(thick,0);
+z1=(w/2,-gamma); z2=(w/2,h+gamma);
+filldraw stroke z1e--z2e;
+hor := w/2; vert := h-beta;
+greek = (hor,vert);
+theta=270+angle(greek);
+penpos3(thick,theta); penpos4(thick,theta);
+z3l=(w/2,beta); y4l=alpha*h; x4r=w-pcshiftx;
+penpos5(thick,-theta); penpos6(thick,-theta);
+z5r=z3l; x6l=pcshiftx; y6r=y4l;
+z10=whatever[z1r,z2r]=whatever[z3r,z4r];
+z11=whatever[z1l,z2l]=whatever[z5l,z6l];
+filldraw z3l--z4l--z4r--z10--cycle; % right arm
+filldraw z5r--z6r--z6l--z11--cycle; % left arm
+proofpcbb(100, y100, y100);
+penlabels(1,2,3,4,5,6,10,11,100);
+endchar;
+
+
+end
+
diff --git a/Master/texmf-dist/fonts/source/public/archaic/gvibc10.mf b/Master/texmf-dist/fonts/source/public/archaic/gvibc10.mf
new file mode 100644
index 00000000000..07fab0a4262
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/archaic/gvibc10.mf
@@ -0,0 +1,354 @@
+%%
+%% This is file `gvibc10.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% greek6cbc.dtx (with options: `up')
+%% ------------------------------------------------------------------
+%% Author: Peter Wilson (Herries Press) herries dot press at earthlink dot net
+%% Copyright 1999--2005 Peter R. Wilson
+%%
+%% This work may be distributed and/or modified under the
+%% conditions of the Latex Project Public License, either
+%% version 1.3 of this license or (at your option) any
+%% later version.
+%% The latest version of the license is in
+%% http://www.latex-project.org/lppl.txt
+%% and version 1.3 or later is part of all distributions of
+%% LaTeX version 2003/06/01 or later.
+%%
+%% This work has the LPPL maintenance status "author-maintained".
+%%
+%% This work consists of the files listed in the README file.
+%% ------------------------------------------------------------------
+%%% GVIBC10.MF Computer Greek font (6th century BC) 10 point design size.
+
+
+font_identifier:="Greek"; font_size 10pt#;
+
+u#:=.2pt#; % unit width
+ht#:=7pt#; % height of characters (CM cap-height is approx 6.8pt)
+s#:=1.5pt#; % width correction (right and left)
+o#:=1/20pt#; % overshoot
+px#:=.7pt#; % horizontal width of pen
+font_normal_space:=7pt#; % width of a blank space
+font_normal_shrink:=.9pt#; % width correction for blank space
+font_x_height:=4.5pt#; % height of one ex
+font_quad:=10pt#; % an em
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+font_coding_scheme:="Greek glyphs";
+mode_setup;
+
+ho#:=o#; % horizontal overshoot
+leftloc#:=s#; % leftmost xcoord of character
+py#:=.9px#; % vertical thickness of the pen
+
+define_pixels(s,u);
+define_blacker_pixels(px,py);
+define_good_x_pixels(leftloc);
+define_corrected_pixels(o); % turn on overshoot correction
+define_horizontal_corrected_pixels(ho);
+
+numeric midloc, rightloc;
+pickup pencircle xscaled px yscaled py;
+stylus:=savepen;
+
+def beginglyph(expr code, unit_width) =
+ beginchar(code, unit_width*ht#+2s#, ht#, 0);
+ midloc:=1/2w; rightloc:=(w-s);
+ pickup stylus enddef;
+
+let cmchar=\;
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
+cmchar "Greek letter alpha (a)";
+beginglyph("a",0.6);
+x1=leftloc; x3=rightloc; % base points
+bot y1 = bot y3 = -o;
+x2 = midloc; top y2 = h; % apex
+draw z1--z2--z3; % draw the legs
+z4 = 0.4[z1, z2];
+draw z3--z4; % draw the bar
+labels(1,2,3,4);
+endchar;
+
+
+cmchar "Greek letter beta (b)";
+beginglyph("b",0.6);
+x1=x3=x5=leftloc;
+x2=x4=rightloc;
+bot y1=-o; top y5=h;
+y2=1/4h; y3=1/2h; y4=3/4h;
+draw z1--z5; % the upright
+draw z1{right}..z2..z3{left}; % lower bowl
+draw z3{right}..z4..z5{left}; % upper bowl
+labels(1,2,3,4,5); endchar;
+
+
+cmchar "Greek letter gamma (g)";
+beginglyph("g", 0.4);
+x1=x2=leftloc; x3=rightloc;
+bot y1=-o; top y2 = top y3= h;
+draw z1--z2--z3;
+labels(1,2,3); endchar;
+
+
+cmchar "Greek letter delta (d)";
+beginglyph("d",0.6);
+x1=leftloc; x2=midloc; x3=rightloc;
+bot y1 = bot y3= 0;
+top y2=h;
+draw z1--z2--z3--cycle;
+labels(1,2,3); endchar;
+
+
+cmchar "Greek letter epsilon (e)";
+beginglyph("e",0.6);
+x1=x3=leftloc; x4=x6=rightloc;
+bot y1= bot y4= -o; top y3= top y6= h;
+z2=0.5[z1,z3]; z5=0.5[z4,z6];
+draw z4--z1--z3--z6;
+draw z2--z5;
+labels(1,2,3,4,5,6); endchar;
+
+
+cmchar "Greek letter digamma (F)";
+beginglyph("F",0.6);
+x1=x3=leftloc; x4=x6=rightloc;
+bot y1= bot y4= -o; top y3= top y6= h;
+z2=0.65[z1,z3]; z5=0.65[z4,z6];
+draw z1--z3--z6;
+draw z2--z5;
+labels(1,2,3,4,5,6); endchar;
+
+
+cmchar "Greek letter zeta (z)";
+beginglyph("z",0.2);
+x1=x2=midloc;
+bot y1=-o; top y2=h;
+draw z1--z2; % the upright
+x3=x5=leftloc; x4=x6=rightloc;
+y3=y4=y1; y5=y6=y2;
+draw z3--z4; % lower bar
+draw z5--z6; % upper bar
+labels(1,2); endchar;
+
+
+cmchar "Greek letter eta (h)";
+beginglyph("h", 0.6);
+numeric alpha;
+x1=x3=leftloc; x4=x6=rightloc;
+bot y1 = bot y4= -o; top y3= top y6= h;
+z2=0.5[z1,z3]; z5=0.5[z4,z6];
+draw z1--z3--z6--z4--cycle; % rectangle
+draw z2--z5; % bar
+labels(1,2,3,4,5,6); endchar;
+
+
+cmchar "Greek letter theta (T)";
+beginglyph("T",1.0);
+path p;
+x1=leftloc; x3=rightloc;
+y2=h; y4=0;
+x2=x4=midloc;
+y1=y3=h/2;
+z100=(x2,y3); % circle center
+p = z1..z2..z3..z4..cycle; % the circle
+draw p;
+draw z1--z3; draw z2--z4; % the cross
+labels(1,2,3,4); endchar;
+
+
+cmchar "Greek letter iota (i)";
+beginglyph("i",0.2);
+x1=x2=midloc;
+bot y1=-o; top y2=h;
+draw z1--z2;
+labels(1,2); endchar;
+
+
+cmchar "Greek letter kappa (k)";
+beginglyph("k",0.6);
+numeric alpha;
+alpha:=0.1;
+x1=rightloc;
+x2=x1+alpha*(w-s);
+x3=x4=x5=leftloc;
+bot y1= bot y3=-o;
+y2=y5=h; y4=1/2h;
+draw z3--z5; % the upright
+draw z1--z4; draw z4--z2; % the arms
+labels(1,2,3,4,5); endchar;
+
+
+cmchar "Greek letter lambda (l)";
+beginglyph("l",0.4);
+x1=x2=leftloc; x3=rightloc;
+bot y1=-o; y2=h;
+y3=.7h;
+draw z1--z2--z3;
+labels(1,2,3); endchar;
+
+
+cmchar"Greek letter mu (m)";
+beginglyph("m",1.0);
+x1=rightloc;
+x5=x6=leftloc;
+x2=3/4[x5,x1]; x3=1/2[x5,x1]; x4=1/4[x5,x1];
+bot y6= -o;
+top y5= top y3 = h;
+top y1=.8h;
+y2=.6h;
+y4=.7h;
+draw z6--z5;
+draw z1--z2--z3--z4--z5;
+labels(1,2,3,4,5,6); endchar;
+
+
+cmchar "Greek letter nu (n)";
+beginglyph("n",0.6);
+x1=x2=leftloc; x3=x4=rightloc;
+y1=0; y2=0.8h; y3=0.3h; y4=h;
+draw z1--z2--z3--z4;
+labels(1,2,3,4); endchar;
+
+
+cmchar "Greek letter xi (x)";
+beginglyph("x", 0.6);
+x1=x3=leftloc; x4=x6=rightloc;
+bot y1= bot y4= -o; top y3= top y6= h;
+z2=0.5[z1,z3]; z5=0.5[z4,z6];
+z7=0.5[z1,z4]; z8=0.5[z3,z6];
+draw z1--z4; draw z2--z5; draw z3--z6; % horizontals
+draw z7--z8; % vertical
+labels(1,2,3,4,5,6,7,8); endchar;
+
+
+cmchar "Greek letter omicron (o)";
+beginglyph("o",1.0);
+x1=leftloc; x3=rightloc;
+y2=h; y4=0;
+x2=x4=midloc;
+y1=y3=h/2;
+draw z1..z2..z3..z4..cycle;
+labels(1,2,3,4); endchar;
+
+
+cmchar "Greek letter pi (p)";
+beginglyph("p", 0.4);
+x1=x2=leftloc; x3=x4=rightloc;
+bot y1=-o; top y2= top y3= h; y4=0.6h;
+draw z1--z2--z3--z4;
+labels(1,2,3,4); endchar;
+
+
+cmchar "Greek letter (koppa) q";
+beginglyph("q",0.6);
+numeric alpha;
+x1=leftloc;
+x3=rightloc;
+alpha=0.5(x3-x1); % circle radius
+y2=h;
+y4=y2-2alpha;
+bot y5=-o;
+x2=x4=x5=midloc;
+y1=y3=h-alpha;
+draw z1..z2..z3..z4..cycle; % the circle
+draw z5--z4; % the upright
+labels(1,2,3,4,5); endchar;
+
+
+cmchar "Greek letter rho (r)";
+beginglyph("r", 0.4);
+x1=x2=x3=leftloc; x4=rightloc;
+bot y1=-o; top y2=h;
+y3=y4=0.5h;
+draw z1--z2--z4--z3; % the P shape
+x5=midloc; y5=0.2h;
+draw z3--z5; % a little leg
+labels(1,2,3,4); endchar;
+
+
+cmchar "Greek letter sigma (s)";
+beginglyph("s", 0.8);
+x2=x4=leftloc; x1=x5=rightloc;
+y1=0; y5=h;
+y2=0.1h; y4=0.9h;
+z3=(midloc,0.5h);
+draw z1--z2--z3--z4--z5;
+labels(1,2,3,4,5); endchar;
+
+
+cmchar "Greek letter tau (t)";
+beginglyph("t", 0.6);
+x1=midloc; x2=leftloc; x4=rightloc;
+bot y1=-o; top y2= top y4= h;
+z3=0.5[z2,z4];
+draw z1--z3; % upright
+draw z2--z4; % bar
+labels(1,2,3,4); endchar;
+
+
+cmchar "Greek letter upsilon (y)";
+beginglyph("y", 0.6);
+x1=x3=midloc; x2=leftloc; x4=rightloc;
+bot y1=-o; top y2= top y4= h;
+y3=0.6h;
+draw z1--z3; % upright
+draw z2--z3--z4; % V
+labels(1,2,3,4); endchar;
+
+
+cmchar "Greek letter chi (X)";
+beginglyph("X", 0.6);
+x1=x2=leftloc; x3=x4=rightloc;
+bot y1= bot y3=-o; top y2= top y4=h;
+draw z1--z4; draw z2--z3;
+labels(1,2,3,4); endchar;
+
+
+cmchar "Greek letter phi (f)";
+beginglyph("f",0.6);
+x1=leftloc; x3=rightloc;
+x2=x4=midloc;
+y1=y3=0.5h;
+y2=h; y4=0;
+draw z1..z2..z3..z4..cycle; % the oval
+draw z4--z2; % the upright
+labels(1,2,3,4,5); endchar;
+
+
+cmchar "Greek letter psi (P)";
+beginglyph("P", 0.6);
+x1=x3=midloc; x2=leftloc; x4=rightloc;
+bot y1=-o; top y2= top y4= h;
+y3=0.5h;
+z5=0.5[z2,z4];
+draw z1--z5; % upright
+draw z2--z3--z4; % V
+labels(1,2,3,4,5); endchar;
+
+
+cmchar "Greek letter omega (O)";
+beginglyph("O", 1.0);
+x1=leftloc; x4=rightloc;
+y1=y4=0;
+z2=0.35[z1,z4]; z3=0.35[z4,z1];
+x7=midloc; y7=h;
+x5=0.1[x1,x4]; x6=0.1[x4,x1];
+y5=y6=0.5h;
+draw z1--z2..z5..z7..z6..z3--z4;
+labels(1,2,3,4,5,6,7); endchar;
+
+
+end
+
diff --git a/Master/texmf-dist/fonts/source/public/archaic/sarab10.mf b/Master/texmf-dist/fonts/source/public/archaic/sarab10.mf
new file mode 100644
index 00000000000..7046bbc7c09
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/archaic/sarab10.mf
@@ -0,0 +1,321 @@
+%%
+%% This is file `sarab10.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% sarabian.dtx (with options: `up')
+%% ------------------------------------------------------------------
+%% Author: Peter Wilson (Herries Press) herries dot press at earthlink dot net
+%% Copyright 2005 Peter R. Wilson
+%%
+%% This work may be distributed and/or modified under the
+%% conditions of the Latex Project Public License, either
+%% version 1.3 of this license or (at your option) any
+%% later version.
+%% The latest version of the license is in
+%% http://www.latex-project.org/lppl.txt
+%% and version 1.3 or later is part of all distributions of
+%% LaTeX version 2003/06/01 or later.
+%%
+%% This work has the LPPL maintenance status "author-maintained".
+%%
+%% This work consists of the files listed in the README file.
+%% ------------------------------------------------------------------
+%%% SARAB10.MF South Arabian font 10 point design size.
+
+%%% This font was designed by Alan M Stanier ( alan@essex.ac.uk ),
+%%% at Essex University Computer Service, Colchester, Essex CO4 3EA. England.
+%%%
+%%% If you make significant additions or improvements to the font,
+%%% please email me an updated version
+%%%
+%%% This font was used for several languages in Southern Arabia in the
+%%% second millenium BC
+%%%
+
+mode_setup;
+font_identifier:="sarabian";
+font_size:= 10pt#; % nominally, a 10pt font
+font_normal_space:=7pt#; % width of a blank space
+font_normal_shrink:=.9pt#; % width correction for blank space
+font_x_height:=4.5pt#; % height of one ex
+font_quad:=10pt#; % an em
+
+numeric pmg; pmg:=0.8; % a scale factor
+
+xpensize#:=pmg*0.8pt;
+ypensize#:=pmg*0.2pt;
+height#:=pmg*10pt#;
+width#:=pmg*7pt#;
+narrow#:=pmg*5.3pt#;
+
+mg#:= pmg*0.3pt#;
+define_pixels(mg);
+
+numeric cscale; % scale factor for original circles
+cscale# := mg#;
+define_pixels(cscale);
+let cmchar=\;
+
+
+define_pixels(height,width,narrow);
+def getpen = pickup pencircle xscaled xpensize# yscaled ypensize# rotated 30 enddef;
+
+
+
+cmchar "letter h";
+beginchar("h",width#,height#,0);
+ getpen;
+ draw (0,mg*30){down} .. (mg*7.5,mg*15){right} .. (mg*15,mg*30){up};
+ draw (mg*7.5,mg*15) -- (mg*7.5,0);
+endchar;
+
+
+cmchar "letter l";
+beginchar("l",width#,height#,0);
+ getpen;
+ draw (0,mg*15) -- (mg*15,mg*30) -- (mg*15,0);
+endchar;
+
+
+cmchar "letter h sub dot (coded as H)";
+beginchar("H",width#,height#,0);
+ getpen;
+ draw (0,mg*30){down} .. (mg*7.5,mg*15){right} .. (mg*15,mg*30){up};
+ draw (mg*7.5,mg*30) -- (mg*7.5,0);
+endchar;
+
+
+cmchar "letter m";
+beginchar("m",width#,height#,0);
+ getpen;
+ draw (mg*15,mg*30) -- (mg*15,0) -- (0,mg*7.5) -- (mg*15,mg*15) --
+(0,mg*22.5) -- (mg*15,mg*30);
+endchar;
+
+
+cmchar "letter q";
+beginchar("q",narrow#,height#,0);
+ getpen;
+ draw fullcircle scaled (10cscale) shifted(mg*5,mg*15);
+ draw (mg*5,mg*20) -- (mg*5,mg*30);
+ draw (mg*5,mg*10) -- (mg*5,0);
+endchar;
+
+
+cmchar "letter w";
+beginchar("w",width#,height#,0);
+ getpen;
+ draw fullcircle scaled (15cscale) shifted(mg*7.5,mg*15);
+ draw (mg*7.5,mg*7.5) -- (mg*7.5,mg*22.5);
+endchar;
+
+
+cmchar "letter s sup v (coded as S)";
+beginchar("S",width#,height#,0);
+ getpen;
+ draw (0,0) -- (0,mg*15) -- (mg*15,mg*15) -- (mg*15,0);
+ draw (mg*7.5,mg*15) -- (mg*7.5,mg*30);
+endchar;
+
+
+cmchar "letter r";
+beginchar("r",width#,height#,0);
+ getpen;
+ draw (0,mg*30){right} .. (mg*15,mg*15){down} .. (0,0){left};
+endchar;
+
+
+cmchar "letter b";
+beginchar("b",width#,height#,0);
+ getpen;
+ draw (0,0) -- (0,mg*30) -- (mg*15,mg*30) -- (mg*15,0);
+endchar;
+
+
+cmchar "letter t";
+beginchar("t",width#,height#,0);
+ getpen;
+ draw (0,0) -- (mg*15,mg*30);
+ draw (0,mg*30) -- (mg*15,0);
+endchar;
+
+
+cmchar "letter s";
+beginchar("s",width#,height#,0);
+ getpen;
+ draw (0,0) -- (mg*15,mg*15) -- (0,mg*30);
+ draw (mg*15,0) -- (0,mg*15) -- (mg*15,mg*30);
+endchar;
+
+
+cmchar "letter k";
+beginchar("k",width#,height#,0);
+ getpen;
+ draw (0,0) -- (0,mg*15) -- (mg*15,mg*15) -- (mg*15,0);
+ draw (0,mg*15) -- (mg*7.5,mg*30);
+endchar;
+
+
+cmchar "letter n";
+beginchar("n",width#,height#,0);
+ getpen;
+ draw (0,mg*30) -- (0,mg*15) -- (mg*15,mg*15) -- (mg*15,0);
+endchar;
+
+
+cmchar "letter h sub u (coded as H)";
+%%beginchar("1",width#,height#,0);
+beginchar("I",width#,height#,0);
+ getpen;
+ draw (0,mg*30){down} .. (mg*7.5,mg*15){right} .. (mg*15,mg*30){up};
+ draw (mg*7.5,mg*15) -- (mg*7.5,mg*7.5) -- (mg*15,mg*7.5) -- (mg*15,0);
+endchar;
+
+
+cmchar "letter s acute (coded as X)";
+%%beginchar("2",width#,height#,0);
+beginchar("X",width#,height#,0);
+ getpen;
+ draw (0,0) -- (mg*15,mg*7.5) -- (0,mg*15) --
+(mg*15,mg*22.5) -- (0,mg*30);
+endchar;
+
+
+cmchar "letter f";
+beginchar("f",width#,height#,0);
+ getpen;
+ draw (0,mg*15) -- (mg*7.5,0) -- (mg*15,mg*15) -- (mg*7.5,mg*30)
+-- (0,mg*15);
+endchar;
+
+
+cmchar "letter `";
+beginchar("`",width#,height#,0);
+ getpen;
+ draw (0,0) -- (0,mg*15) -- (mg*15,mg*15) -- (mg*15,0);
+ draw (mg*7.5,mg*15) -- (mg*7.5,mg*22.5) -- (0,mg*22.5) -- (0,mg*30);
+endchar;
+
+
+cmchar "letter ` (coded as o)";
+beginchar("o",width#,height#,0);
+ getpen;
+ draw (0,0) -- (0,mg*15) -- (mg*15,mg*15) -- (mg*15,0);
+ draw (mg*7.5,mg*15) -- (mg*7.5,mg*22.5) -- (0,mg*22.5) -- (0,mg*30);
+endchar;
+
+
+cmchar "letter '";
+beginchar("'",narrow#,height#,0);
+ getpen;
+ draw fullcircle scaled (10cscale) shifted(mg*5,mg*10);
+endchar;
+
+
+cmchar "letter ' (coded as a)";
+beginchar("a",narrow#,height#,0);
+ getpen;
+ draw fullcircle scaled (10cscale) shifted(mg*5,mg*10);
+endchar;
+
+
+cmchar "letter d sub dot (coded as B)";
+%%beginchar("D",width#,height#,0);
+beginchar("B",width#,height#,0);
+ getpen;
+ draw (0,0) -- (mg*15,0) -- (mg*15,mg*30) -- (0,mg*30) -- (0,0);
+ draw (0,mg*15) -- (mg*15,mg*15);
+endchar;
+
+
+cmchar "letter g";
+beginchar("g",width#,height#,0);
+ getpen;
+ draw (0,mg*30) -- (mg*15,mg*30) -- (mg*15,0);
+endchar;
+
+
+cmchar "letter d";
+beginchar("d",narrow#,height#,0);
+ getpen;
+ draw (0,mg*10) -- (0,mg*20) -- (mg*10,mg*15) -- (0,mg*10);
+ draw (mg*10,0) -- (mg*10,mg*30);
+endchar;
+
+
+cmchar "letter g acute (coded as G)";
+beginchar("G",width#,height#,0);
+ getpen;
+ draw (0,mg*25) -- (mg*5,mg*30) -- (mg*15,mg*30) -- (mg*15,0);
+ draw (mg*5,0) -- (mg*5,mg*30);
+endchar;
+
+
+cmchar "letter t sub dot (coded as T)";
+beginchar("T",width#,height#,0);
+ getpen;
+ draw (0,0) -- (mg*15,0) -- (mg*15,mg*30) -- (0,mg*30) -- (0,0);
+ draw (mg*7.5,0) -- (mg*7.5,mg*30);
+endchar;
+
+
+cmchar "letter z";
+beginchar("z",width#,height#,0);
+ getpen;
+ draw (0,0) -- (mg*15,mg*30) -- (0,mg*30) --
+(mg*15,0) -- (0,0);
+endchar;
+
+
+cmchar "letter d sub bar (coded as D)";
+%%beginchar("5",width#,height#,0);
+beginchar("D",width#,height#,0);
+ getpen;
+ draw (0,0) -- (0,mg*30);
+ draw (mg*15,0) -- (mg*15,mg*30);
+ draw (0,mg*12.5) -- (mg*15,mg*12.5);
+ draw (0,mg*17.5) -- (mg*15,mg*17.5);
+endchar;
+
+
+cmchar "letter y";
+beginchar("y",narrow#,height#,0);
+ getpen;
+ draw fullcircle scaled (10cscale) shifted(mg*5,mg*25);
+ draw (mg*5,mg*20) -- (mg*5,0);
+endchar;
+
+
+cmchar "letter t sub bar (coded as J)";
+%%beginchar("4",narrow#,height#,0);
+beginchar("J",narrow#,height#,0);
+ getpen;
+ draw fullcircle scaled (10cscale) shifted(mg*5,mg*25);
+ draw (mg*5,mg*20) -- (mg*5,mg*10);
+ draw fullcircle scaled (10cscale) shifted(mg*5,mg*5);
+endchar;
+
+
+cmchar "letter s sub dot (coded as x)";
+%%beginchar("3",narrow#,height#,0);
+beginchar("x",narrow#,height#,0);
+ getpen;
+ draw fullcircle scaled (10cscale) shifted(mg*5,mg*25);
+ draw (mg*5,mg*20) -- (mg*5,mg*10);
+ draw (0,0){up} .. (mg*5,mg*10){right} .. (mg*10,0){down};
+endchar;
+
+
+cmchar "letter z sub dot (coded as Z)";
+beginchar("Z",narrow#,height#,0);
+ getpen;
+ draw fullcircle scaled (10cscale) shifted(mg*5,mg*25);
+ draw (mg*5,mg*20) -- (mg*5,0);
+ draw (mg*5,mg*10){right} .. (mg*10,0){down};
+endchar;
+
+
+end
+
diff --git a/Master/texmf-dist/fonts/source/public/archaic/vikglyph.mf b/Master/texmf-dist/fonts/source/public/archaic/vikglyph.mf
new file mode 100644
index 00000000000..aa2408f2e8b
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/archaic/vikglyph.mf
@@ -0,0 +1,394 @@
+%%
+%% This is file `vikglyph.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% viking.dtx (with options: `maj')
+%%
+%% Copyright 2003 Uwe Zimmermann
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+%% Author: Uwe Zimmermann
+%% uwe.zimmermann@sciencetronics.com
+%%
+%% based on runic.ins by Peter R. Wilson
+%%
+cmchar "Runic letter F";
+beginglyph("F",0.6);
+z1 = (leftloc, 0.0h);
+z2 = (leftloc, 0.4h);
+z3 = (leftloc, 0.7h);
+z4 = (leftloc, 1.0h);
+z5 = (midloc, 1.0h);
+z6 = (rightloc, 1.0h);
+draw z1--z4;
+draw z2--z6;
+draw z3--z5;
+labels(1,2,3,4,5,6);
+endchar;
+cmchar "Runic letter U";
+beginglyph("U",0.6);
+z1 = (leftloc, 0.0h);
+z2 = (leftloc, 1.0h);
+z3 = (0.75rightloc, 0.65h);
+z4 = (rightloc, 0.0h);
+draw z1--z2--z3--z4;
+labels(1,2,3,4);
+endchar;
+cmchar "Runic letter TH";
+beginglyph("D",0.4);
+z1 = (leftloc, 0.0h);
+z2 = (leftloc, 0.2h);
+z3 = (leftloc, 0.8h);
+z4 = (leftloc, 1.0h);
+z5 = (rightloc, 0.5h);
+draw z1--z4;
+draw z2--z5;
+draw z3--z5;
+labels(1,2,3,4,5);
+endchar;
+cmchar "Runic letter O";
+beginglyph("O",0.4);
+z1 = (leftloc, 0.0h);
+z2 = (leftloc, 0.4h);
+z3 = (leftloc, 0.7h);
+z4 = (leftloc, 1.0h);
+z5 = (rightloc, 0.5h);
+z6 = (rightloc, 0.2h);
+draw z1--z4;
+draw z2--z6;
+draw z3--z5;
+labels(1,2,3,4,5,6);
+endchar;
+cmchar "Runic letter R";
+beginglyph("R",0.6);
+z1 = (leftloc, 0.0h);
+z2 = (leftloc, 1.0h);
+z3 = (0.7(leftloc+rightloc), 0.75h);
+z4 = (0.3(leftloc+rightloc), 0.5h);
+z5 = (rightloc, 0.0h);
+draw z1--z2--z3--z4--z5;
+labels(1,2,3,4,5);
+endchar;
+cmchar "Runic letter K";
+beginglyph("K",0.4);
+z1 = (leftloc, 0.0h);
+z2 = (leftloc, 0.5h);
+z3 = (leftloc, 1.0h);
+z4 = (rightloc, 1.0h);
+draw z1--z3;
+draw z2--z4;
+labels(1,2,3,4);
+endchar;
+cmchar "Runic letter G";
+beginglyph("G",0.4);
+z1 = (leftloc, 0.0h);
+z2 = (leftloc, 0.5h);
+z3 = (leftloc, 1.0h);
+z4 = (rightloc, 1.0h);
+z5 = (midloc, 0.95h);
+draw z1--z3;
+draw z2--z4;
+draw z5;
+labels(1,2,3,4,5);
+endchar;
+cmchar "Runic letter H";
+beginglyph("H",0.4);
+z1 = (midloc, 0.0h);
+z2 = (midloc, 1.0h);
+z3 = (leftloc, 0.3h);
+z4 = (leftloc, 0.7h);
+z5 = (rightloc, 0.7h);
+z6 = (rightloc, 0.3h);
+draw z1--z2;
+draw z3--z5;
+draw z4--z6;
+labels(1,2,3,4,5,6);
+endchar;
+cmchar "Runic letter N";
+beginglyph("N",0.4);
+z1 = (midloc, 0.0h);
+z2 = (midloc, 1.0h);
+z4 = (leftloc, 0.7h);
+z6 = (rightloc, 0.3h);
+draw z1--z2;
+draw z4--z6;
+labels(1,2,4,6);
+endchar;
+cmchar "Runic letter I";
+beginglyph("I",0.4);
+z1 = (midloc, 0.0h);
+z2 = (midloc, 1.0h);
+draw z1--z2;
+labels(1,2);
+endchar;
+cmchar "Runic letter E";
+beginglyph("E",0.4);
+z1 = (midloc, 0.0h);
+z2 = (midloc, 1.0h);
+z3 = (midloc, 0.5h);
+draw z1--z2;
+pickup stugna
+draw z3;
+labels(1,2,3);
+endchar;
+cmchar "Runic letter A";
+beginglyph("A",0.4);
+z1 = (midloc, 0.0h);
+z2 = (midloc, 1.0h);
+z4 = (leftloc, 0.3h);
+z6 = (rightloc, 0.7h);
+draw z1--z2;
+draw z4--z6;
+labels(1,2,4,6);
+endchar;
+cmchar "Runic letter S";
+beginglyph("S",0.4);
+z1 = (rightloc, 0.0h);
+z2 = (rightloc, 0.7h);
+z3 = (leftloc, 0.3h);
+z4 = (leftloc, 1.0h);
+draw z1--z2--z3--z4;
+labels(1,2,3,4);
+endchar;
+cmchar "Runic letter Z";
+beginglyph("Z",0.4);
+z1 = (leftloc, 0.0h);
+z2 = (leftloc, 0.7h);
+z3 = (rightloc, 0.3h);
+z4 = (rightloc, 1.0h);
+draw z1--z2--z3--z4;
+labels(1,2,3,4);
+endchar;
+cmchar "Runic letter T";
+beginglyph("T",0.4);
+z1 = (midloc, 0.0h);
+z2 = (midloc, 1.0h);
+z3 = (leftloc, 0.8h);
+z4 = (rightloc, 0.8h);
+draw z1--z2;
+draw z2--z3;
+draw z2--z4;
+labels(1,2,3,4);
+endchar;
+cmchar "Runic letter B";
+beginglyph("B",0.4);
+z1 = (leftloc, 0.0h);
+z2 = (leftloc, 0.5h);
+z3 = (leftloc, 1.0h);
+z4 = (rightloc, 0.75h);
+z5 = (rightloc, 0.25h);
+draw z1--z3;
+draw z3--z4--z2;
+draw z2--z5--z1;
+labels(1,2,3,4,5);
+endchar;
+cmchar "Runic letter M";
+beginglyph("M",0.6);
+z1 = (midloc, 0.0h);
+z2 = (midloc, 0.7h);
+z3 = (midloc, 1.0h);
+z4 = (leftloc, 1.0h);
+z5 = (rightloc, 1.0h);
+draw z1--z3;
+draw z2--z4;
+draw z2--z5;
+labels(1,2,3,4,5);
+endchar;
+cmchar "Runic letter L";
+beginglyph("L",0.4);
+z1 = (leftloc, 0.0h);
+z2 = (leftloc, 1.0h);
+z3 = (rightloc, 0.8h);
+draw z1--z2--z3;
+labels(1,2,3);
+endchar;
+cmchar "Runic letter Y";
+beginglyph("Y",0.6);
+z1 = (midloc, 0.0h);
+z2 = (midloc, 0.3h);
+z3 = (midloc, 1.0h);
+z4 = (leftloc, 0.0h);
+z5 = (rightloc, 0.0h);
+draw z1--z3;
+draw z2--z4;
+draw z2--z5;
+labels(1,2,3,4,5);
+endchar;
+cmchar "Runic letter :";
+beginglyph(":",0.2);
+z3 = (leftloc, 0.4h);
+z4 = (leftloc, 0.6h);
+z5 = (rightloc, 0.6h);
+z6 = (rightloc, 0.4h);
+draw z3--z5;
+draw z4--z6;
+labels(3,4,5,6);
+endchar;
+cmchar "Runic letter .";
+beginglyph(".",0.2);
+z3 = (midloc, 0.5h);
+draw z3;
+labels(3);
+endchar;
+cmchar "Runic letter F";
+beginglyph("f",0.3);
+z1 = (leftloc, 0.0h);
+z2 = (leftloc, 0.5h);
+z3 = (leftloc, 0.75h);
+z4 = (leftloc, 1.0h);
+z5 = (rightloc, 1.0h);
+z6 = (rightloc, 0.75h);
+draw z1--z4;
+draw z2--z6;
+draw z3--z5;
+labels(1,2,3,4,5,6);
+endchar;
+cmchar "Runic letter U";
+beginglyph("u",0.3);
+z1 = (leftloc, 0.0h);
+z2 = (leftloc, 1.0h);
+z4 = (rightloc, 0.0h);
+draw z1--z2--z4;
+labels(1,2,4);
+endchar;
+cmchar "Runic letter TH";
+beginglyph("d",0.3);
+z1 = (leftloc, 0.0h);
+z2 = (leftloc, 0.2h);
+z3 = (leftloc, 0.8h);
+z4 = (leftloc, 1.0h);
+z5 = (rightloc, 0.5h);
+draw z1--z4;
+draw z2--z5;
+draw z3--z5;
+labels(1,2,3,4,5);
+endchar;
+cmchar "Runic letter O";
+beginglyph("o",0.3);
+z1 = (leftloc, 0.0h);
+z2 = (leftloc, 0.4h);
+z3 = (leftloc, 0.7h);
+z4 = (leftloc, 1.0h);
+z5 = (rightloc, 0.5h);
+z6 = (rightloc, 0.2h);
+draw z1--z4;
+draw z2--z6;
+draw z3--z5;
+labels(1,2,3,4,5,6);
+endchar;
+cmchar "Runic letter R";
+beginglyph("r",0.3);
+z1 = (leftloc, 0.0h);
+z2 = (leftloc, 1.0h);
+z3 = (0.7(leftloc+rightloc), 0.75h);
+z4 = (0.3(leftloc+rightloc), 0.5h);
+z5 = (rightloc, 0.0h);
+draw z1--z2--z3--z4--z5;
+labels(1,2,3,4,5);
+endchar;
+cmchar "Runic letter K";
+beginglyph("k",0.3);
+z1 = (leftloc, 0.0h);
+z2 = (leftloc, 0.5h);
+z3 = (leftloc, 1.0h);
+z4 = (rightloc, 1.0h);
+draw z1--z3;
+draw z2--z4;
+labels(1,2,3,4);
+endchar;
+cmchar "Runic letter H";
+beginglyph("h",0.2);
+z1 = (midloc, 0.0h);
+z2 = (midloc, 1.0h);
+z3 = (leftloc, 0.5h);
+z5 = (rightloc, 0.5h);
+draw z1--z2;
+draw z3--z5;
+labels(1,2,3,5);
+endchar;
+cmchar "Runic letter N";
+beginglyph("n",0.3);
+z1 = (leftloc, 0.0h);
+z2 = (leftloc, 1.0h);
+z4 = (leftloc, 0.6h);
+z6 = (rightloc, 0.3h);
+draw z1--z2;
+draw z4--z6;
+labels(1,2,4,6);
+endchar;
+cmchar "Runic letter I";
+beginglyph("i",0.2);
+z1 = (midloc, 0.0h);
+z2 = (midloc, 1.0h);
+draw z1--z2;
+labels(1,2);
+endchar;
+cmchar "Runic letter A";
+beginglyph("a",0.3);
+z1 = (leftloc, 0.0h);
+z2 = (leftloc, 1.0h);
+z4 = (leftloc, 0.4h);
+z6 = (rightloc, 0.7h);
+draw z1--z2;
+draw z4--z6;
+labels(1,2,4,6);
+endchar;
+cmchar "Runic letter S";
+beginglyph("s",0.2);
+z1 = (midloc, 0.5h);
+z2 = (midloc, 1.0h);
+draw z1--z2;
+labels(1,2);
+endchar;
+cmchar "Runic letter T";
+beginglyph("t",0.3);
+z1 = (rightloc, 0.0h);
+z2 = (rightloc, 1.0h);
+z3 = (leftloc, 0.8h);
+draw z1--z2;
+draw z2--z3;
+labels(1,2,3);
+endchar;
+cmchar "Runic letter B";
+beginglyph("b",0.3);
+z1 = (leftloc, 0.0h);
+z2 = (leftloc, 0.3h);
+z3 = (leftloc, 0.6h);
+z4 = (leftloc, 1.0h);
+z5 = (rightloc, 0.8h);
+z6 = (rightloc, 0.5h);
+draw z1--z4;
+draw z2--z6;
+draw z3--z5;
+labels(1,2,3,4,5,6);
+endchar;
+cmchar "Runic letter M";
+beginglyph("m",0.3);
+z1 = (midloc, 0.0h);
+z2 = (midloc, 1.0h);
+z3 = (leftloc, 1.0h);
+z4 = (rightloc, 1.0h);
+draw z1--z2;
+draw z3--z4;
+labels(1,2,3,4);
+endchar;
+cmchar "Runic letter L";
+beginglyph("l",0.3);
+z1 = (leftloc, 0.0h);
+z2 = (leftloc, 1.0h);
+z3 = (rightloc, 0.8h);
+draw z1--z2--z3;
+labels(1,2,3);
+endchar;
+cmchar "Runic letter Y";
+beginglyph("y",0.2);
+z1 = (midloc, 0.0h);
+z2 = (midloc, 0.5h);
+draw z1--z2;
+labels(1,2);
+endchar;
diff --git a/Master/texmf-dist/fonts/source/public/archaic/viktitle.mf b/Master/texmf-dist/fonts/source/public/archaic/viktitle.mf
new file mode 100644
index 00000000000..0b3a96e83c3
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/archaic/viktitle.mf
@@ -0,0 +1,52 @@
+%%
+%% This is file `viktitle.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% viking.dtx (with options: `mfd')
+%%
+%% Copyright 2003 Uwe Zimmermann
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+%% Author: Uwe Zimmermann
+%% uwe.zimmermann@sciencetronics.com
+%%
+%% based on runic.ins by Peter R. Wilson
+%%
+
+font_coding_scheme:="Runic glyphs";
+mode_setup;
+
+ho#:=o#; % horizontal overshoot
+leftloc#:=s#; % leftmost xcoord of character
+py#:=.9px#; % vertical thickness of the pen
+
+define_pixels(s,u);
+define_blacker_pixels(px,py);
+define_good_x_pixels(leftloc);
+define_corrected_pixels(o); % turn on overshoot correction
+define_horizontal_corrected_pixels(ho);
+
+numeric midloc, rightloc;
+pickup pencircle xscaled px yscaled py;
+stylus:=savepen;
+
+pickup pencircle xscaled 2px yscaled 2px;
+stugna:=savepen;
+
+def beginglyph(expr code, unit_width) =
+ beginchar(code, unit_width*ht#+2s#, ht#, 0);
+ midloc:=1/2w; rightloc:=(w-s);
+ pickup stylus enddef;
+
+let cmchar=\;
+
+
+input vikglyph; % Runic glyphs
+
+end
+