summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/fonts/source
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2014-02-03 17:54:28 +0000
committerKarl Berry <karl@freefriends.org>2014-02-03 17:54:28 +0000
commitcb505c213965d3779b4ec7d9281c011fec5fb0fd (patch)
tree949d321ac8edafa281e3d56cf34d14e0ade1643d /Master/texmf-dist/fonts/source
parent9c990b20d0bfa87768186c40adc05158b6ce30d0 (diff)
knuth-local from actual dek sources; just font stuff for now, replacing what was in misc/
git-svn-id: svn://tug.org/texlive/trunk@32856 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/fonts/source')
-rw-r--r--Master/texmf-dist/fonts/source/public/knuth-local/black.mf2
-rw-r--r--Master/texmf-dist/fonts/source/public/knuth-local/blackaps.mf (renamed from Master/texmf-dist/fonts/source/public/misc/blackaps.mf)0
-rw-r--r--Master/texmf-dist/fonts/source/public/knuth-local/blackimagen.mf (renamed from Master/texmf-dist/fonts/source/public/misc/blackimagen.mf)0
-rw-r--r--Master/texmf-dist/fonts/source/public/knuth-local/blacklino.mf (renamed from Master/texmf-dist/fonts/source/public/misc/blacklino.mf)0
-rw-r--r--Master/texmf-dist/fonts/source/public/knuth-local/blacklj.mf (renamed from Master/texmf-dist/fonts/source/public/misc/blacklj.mf)0
-rw-r--r--Master/texmf-dist/fonts/source/public/knuth-local/domino.mf100
-rw-r--r--Master/texmf-dist/fonts/source/public/knuth-local/gray.mf3
-rw-r--r--Master/texmf-dist/fonts/source/public/knuth-local/grayaps.mf (renamed from Master/texmf-dist/fonts/source/public/misc/grayaps.mf)0
-rw-r--r--Master/texmf-dist/fonts/source/public/knuth-local/grayimagen.mf (renamed from Master/texmf-dist/fonts/source/public/misc/grayimagen.mf)0
-rw-r--r--Master/texmf-dist/fonts/source/public/knuth-local/grayimagen3.mf (renamed from Master/texmf-dist/fonts/source/public/misc/grayimagen3.mf)0
-rw-r--r--Master/texmf-dist/fonts/source/public/knuth-local/grayimagenlight.mf (renamed from Master/texmf-dist/fonts/source/public/misc/grayimagenlight.mf)0
-rw-r--r--Master/texmf-dist/fonts/source/public/knuth-local/graylj.mf10
-rw-r--r--Master/texmf-dist/fonts/source/public/knuth-local/local.mf122
-rw-r--r--Master/texmf-dist/fonts/source/public/knuth-local/logod10.mf (renamed from Master/texmf-dist/fonts/source/public/mflogo/logod10.mf)0
-rw-r--r--Master/texmf-dist/fonts/source/public/knuth-local/logosl9.mf (renamed from Master/texmf-dist/fonts/source/public/mflogo/logosl9.mf)0
-rw-r--r--Master/texmf-dist/fonts/source/public/knuth-local/mfman.mf (renamed from Master/texmf-dist/fonts/source/public/misc/mfman.mf)9
-rw-r--r--Master/texmf-dist/fonts/source/public/knuth-local/oneone.mf10
-rw-r--r--Master/texmf-dist/fonts/source/public/knuth-local/random.mf (renamed from Master/texmf-dist/fonts/source/public/misc/random.mf)0
-rw-r--r--Master/texmf-dist/fonts/source/public/knuth-local/slantaps4.mf (renamed from Master/texmf-dist/fonts/source/public/misc/slantaps4.mf)0
-rw-r--r--Master/texmf-dist/fonts/source/public/knuth-local/slantimagen4.mf (renamed from Master/texmf-dist/fonts/source/public/misc/slantimagen4.mf)0
-rw-r--r--Master/texmf-dist/fonts/source/public/knuth-local/slantimagen6.mf (renamed from Master/texmf-dist/fonts/source/public/misc/slantimagen6.mf)0
-rw-r--r--Master/texmf-dist/fonts/source/public/knuth-local/slantlino4.mf (renamed from Master/texmf-dist/fonts/source/public/misc/slantlino4.mf)0
-rw-r--r--Master/texmf-dist/fonts/source/public/knuth-local/slantlj4.mf11
-rw-r--r--Master/texmf-dist/fonts/source/public/knuth-local/snfont.mf165
-rw-r--r--Master/texmf-dist/fonts/source/public/misc/black.mf4
-rw-r--r--Master/texmf-dist/fonts/source/public/misc/gray.mf4
-rw-r--r--Master/texmf-dist/fonts/source/public/misc/graylj.mf10
-rw-r--r--Master/texmf-dist/fonts/source/public/misc/oneone.mf10
-rw-r--r--Master/texmf-dist/fonts/source/public/misc/slantlj4.mf11
29 files changed, 431 insertions, 40 deletions
diff --git a/Master/texmf-dist/fonts/source/public/knuth-local/black.mf b/Master/texmf-dist/fonts/source/public/knuth-local/black.mf
new file mode 100644
index 00000000000..dfbdd1765fc
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/knuth-local/black.mf
@@ -0,0 +1,2 @@
+%input blackimagen % the `standard' black font is for imagen (300dpi)
+input blacklj % now it's for LaserJet 4 (600dpi)
diff --git a/Master/texmf-dist/fonts/source/public/misc/blackaps.mf b/Master/texmf-dist/fonts/source/public/knuth-local/blackaps.mf
index b3ea7720326..b3ea7720326 100644
--- a/Master/texmf-dist/fonts/source/public/misc/blackaps.mf
+++ b/Master/texmf-dist/fonts/source/public/knuth-local/blackaps.mf
diff --git a/Master/texmf-dist/fonts/source/public/misc/blackimagen.mf b/Master/texmf-dist/fonts/source/public/knuth-local/blackimagen.mf
index 6171bdbbaa3..6171bdbbaa3 100644
--- a/Master/texmf-dist/fonts/source/public/misc/blackimagen.mf
+++ b/Master/texmf-dist/fonts/source/public/knuth-local/blackimagen.mf
diff --git a/Master/texmf-dist/fonts/source/public/misc/blacklino.mf b/Master/texmf-dist/fonts/source/public/knuth-local/blacklino.mf
index 6bc06c41119..6bc06c41119 100644
--- a/Master/texmf-dist/fonts/source/public/misc/blacklino.mf
+++ b/Master/texmf-dist/fonts/source/public/knuth-local/blacklino.mf
diff --git a/Master/texmf-dist/fonts/source/public/misc/blacklj.mf b/Master/texmf-dist/fonts/source/public/knuth-local/blacklj.mf
index a1808c8a6c8..a1808c8a6c8 100644
--- a/Master/texmf-dist/fonts/source/public/misc/blacklj.mf
+++ b/Master/texmf-dist/fonts/source/public/knuth-local/blacklj.mf
diff --git a/Master/texmf-dist/fonts/source/public/knuth-local/domino.mf b/Master/texmf-dist/fonts/source/public/knuth-local/domino.mf
new file mode 100644
index 00000000000..6bd9da121be
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/knuth-local/domino.mf
@@ -0,0 +1,100 @@
+% a font for double-9 dominoes
+% initially designed to work best on 300dpi printer
+
+% Example: To typeset a 2x3 array containing a vertical "1 over 2"
+% followed by horizontal "3 4" over horizontal "5 6", say
+% \obeylines \catcode`\^=12 \offinterlineskip
+% ^1<3>4
+% v2<5>6
+
+% One can also typeset individual half dominoes without boundaries
+
+% Note: The "real" dominoes (made in Taiwan) have slightly different
+% proportions, more or less as if the centers were at 17,32,47 instead
+% instead of 16,32,48. But the present scheme seems mathematically better.
+mode_setup;
+p#:=in#/300;
+d#:=64p#;
+define_pixels(p);
+
+font_identifier:="DOMINO";
+font_coding_scheme:="dominoes";
+font_size:=10pt#;
+
+pickup pencircle scaled p; tiny_pen=savepen;
+pickup pencircle scaled 13p; huge_pen=savepen;
+% I first tried 15p, and it looked OK, but the Taiwan set has smaller dots
+pickup pencircle scaled 3p; bound_pen=savepen;
+
+def begindomchar(expr code)=
+ beginchar(code,d#,d#,0);
+ pickup tiny_pen;
+ for x=0 step 2p until 60p:
+ drawdot (x+.5p,1.5p); drawdot (x+1.5p,.5p);
+ drawdot (.5p,x+3.5p); drawdot (1.5p,x+2.5p);
+ drawdot (w-1.5p,x+1.5p); drawdot (w-.5p,x+.5p);
+ drawdot (x+2.5p,h-.5p); drawdot (x+3.5p,h-1.5p);
+ endfor
+% fill (2p,2p)--(w-2p,2p)--(w-2p,h-2p)--(2p,h-2p)--cycle;
+ fill (3p,3p)--(w-3p,3p)--(w-3p,h-3p)--(3p,h-3p)--cycle;
+ pickup huge_pen;
+enddef;
+
+def dota = erase drawdot(16p,48p) enddef;
+def dotb = erase drawdot(32p,48p) enddef;
+def dotc = erase drawdot(48p,48p) enddef;
+def dotd = erase drawdot(16p,32p) enddef;
+def dote = erase drawdot(32p,32p) enddef;
+def dotf = erase drawdot(48p,32p) enddef;
+def dotg = erase drawdot(16p,16p) enddef;
+def doth = erase drawdot(32p,16p) enddef;
+def doti = erase drawdot(48p,16p) enddef;
+
+def v(expr code)=128+ASCII code enddef;
+ % change character code for vertical format
+
+begindomchar("0"); endchar;
+begindomchar("1"); dote; endchar;
+%begindomchar("2"); dotc; dotg; endchar;
+%begindomchar(v("2")); dota; doti; endchar; % in vertical position
+%begindomchar("3"); dotc; dote; dotg; endchar;
+%begindomchar(v("3")); dota; dote; doti; endchar; % in vertical position
+begindomchar("2"); dota; doti; endchar;
+begindomchar(v("2")); dotc; dotg; endchar; % in vertical position
+begindomchar("3"); dota; dote; doti; endchar;
+begindomchar(v("3")); dotc; dote; dotg; endchar; % in vertical position
+begindomchar("4"); dota; dotc; dotg; doti; endchar;
+begindomchar("5"); dota; dotc; dote; dotg; doti; endchar;
+begindomchar("6"); dota; dotb; dotc; dotg; doth; doti; endchar;
+begindomchar(v("6")); dota; dotc; dotd; dotf; dotg; doti; endchar; % vert
+begindomchar("7"); dota; dotb; dotc; dote; dotg; doth; doti; endchar;
+begindomchar(v("7")); dota; dotc; dotd; dote; dotf; dotg; doti; endchar; % vert
+begindomchar("8"); dota; dotb; dotc; dotd; dotf; dotg; doth; doti; endchar;
+begindomchar("9"); dota; dotb; dotc; dotd; dote; dotf; dotg; doth; doti;
+ endchar;
+
+beginchar("<",d#,d#,0); % outline of left half
+% fill (w-2.5p,h-2p)--(w+2.5p,h-2p)--(w+2.5p,2p)--(w-2.5p,2p)--cycle;
+ fill (w-3.5p,h-3p)--(w+3.5p,h-3p)--(w+3.5p,3p)--(w-3.5p,3p)--cycle;
+endchar;
+beginchar(">",d#,d#,0); % outline of right half
+% fill (-2.5p,h-2p)--(2.5p,h-2p)--(2.5p,2p)--(-2.5p,2p)--cycle;
+ fill (-3.5p,h-3p)--(3.5p,h-3p)--(3.5p,3p)--(-3.5p,3p)--cycle;
+endchar;
+beginchar("^",d#,d#,0); % outline of top half
+% fill (2p,-2.5p)--(2p,2.5p)--(w-2p,2.5p)--(w-2p,-2.5p)--cycle;
+ fill (3p,-3.5p)--(3p,3.5p)--(w-3p,3.5p)--(w-3p,-3.5p)--cycle;
+endchar;
+beginchar("v",d#,d#,0); % outline of bottom half
+% fill (2p,h-2.5p)--(2p,h+2.5p)--(w-2p,h+2.5p)--(w-2p,h-2.5p)--cycle;
+ fill (3p,h-3.5p)--(3p,h+3.5p)--(w-3p,h+3.5p)--(w-3p,h-3.5p)--cycle;
+endchar;
+
+ligtable "^": "v": "2" |=: v("2"), v("2") kern-d#,
+ "3" |=: v("3"), v("3") kern-d#,
+ "6" |=: v("6"), v("6") kern-d#,
+ "7" |=: v("7"), v("7") kern-d#, skipto 1;
+ligtable "<": ">": "2" kern-d#, "3" kern-d#, "6" kern-d#, "7" kern-d#, 1::
+ "0" kern-d#, "1" kern-d#, "4" kern-d#, "5" kern-d#, "8" kern-d#, "9" kern-d#;
+
+end.
diff --git a/Master/texmf-dist/fonts/source/public/knuth-local/gray.mf b/Master/texmf-dist/fonts/source/public/knuth-local/gray.mf
new file mode 100644
index 00000000000..0392f30eb7c
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/knuth-local/gray.mf
@@ -0,0 +1,3 @@
+input graylj % `standard' gray font is for the laserjet
+
+
diff --git a/Master/texmf-dist/fonts/source/public/misc/grayaps.mf b/Master/texmf-dist/fonts/source/public/knuth-local/grayaps.mf
index 44f1c4eab6c..44f1c4eab6c 100644
--- a/Master/texmf-dist/fonts/source/public/misc/grayaps.mf
+++ b/Master/texmf-dist/fonts/source/public/knuth-local/grayaps.mf
diff --git a/Master/texmf-dist/fonts/source/public/misc/grayimagen.mf b/Master/texmf-dist/fonts/source/public/knuth-local/grayimagen.mf
index 63381aa0afe..63381aa0afe 100644
--- a/Master/texmf-dist/fonts/source/public/misc/grayimagen.mf
+++ b/Master/texmf-dist/fonts/source/public/knuth-local/grayimagen.mf
diff --git a/Master/texmf-dist/fonts/source/public/misc/grayimagen3.mf b/Master/texmf-dist/fonts/source/public/knuth-local/grayimagen3.mf
index d60fab3f9a0..d60fab3f9a0 100644
--- a/Master/texmf-dist/fonts/source/public/misc/grayimagen3.mf
+++ b/Master/texmf-dist/fonts/source/public/knuth-local/grayimagen3.mf
diff --git a/Master/texmf-dist/fonts/source/public/misc/grayimagenlight.mf b/Master/texmf-dist/fonts/source/public/knuth-local/grayimagenlight.mf
index 5625d2554bf..5625d2554bf 100644
--- a/Master/texmf-dist/fonts/source/public/misc/grayimagenlight.mf
+++ b/Master/texmf-dist/fonts/source/public/knuth-local/grayimagenlight.mf
diff --git a/Master/texmf-dist/fonts/source/public/knuth-local/graylj.mf b/Master/texmf-dist/fonts/source/public/knuth-local/graylj.mf
new file mode 100644
index 00000000000..5c87efde42e
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/knuth-local/graylj.mf
@@ -0,0 +1,10 @@
+% Gray font for HP LaserJet; proofsheet resolution is 150 pixels per inch.
+% Each pixel is represented by a 4x4 square, with 4/16 of the dots on.
+
+if mode<>ljfour: errmessage "This file is for laserjet only"; fi
+
+font_identifier "GRAYLJ";
+
+boolean lightweight;
+
+input grayf
diff --git a/Master/texmf-dist/fonts/source/public/knuth-local/local.mf b/Master/texmf-dist/fonts/source/public/knuth-local/local.mf
new file mode 100644
index 00000000000..1690d48049c
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/knuth-local/local.mf
@@ -0,0 +1,122 @@
+% This file can be loaded after plain.mf.
+% It introduces conventions that are commonly used on my home computer,
+% while remaining compatible with the plain base.
+% It also adds some macros added by AMS in their amsmodes.mf, version 2.1a
+base_version:=base_version&"/art";
+
+def cand(text q) = startif true q else: false fi enddef;
+def cor(text q) = startif true true else: q fi enddef;
+tertiarydef p startif true = if p: enddef;
+
+def mode_def suffix $ =
+ if known($) cand
+ (numeric $ cand
+ ($<number_of_modes cand
+ (mode_name[$] = (str $ & "_")))):
+ else: if known(mode-$) cand (unknown mode): mode:= fi
+ $:=incr number_of_modes;
+ mode_name[$]:=str$ & "_";
+ fi
+ expandafter quote def scantokens mode_name[$] enddef;
+
+screen_rows:=1024; screen_cols:=1024;
+
+% Here are conventions for local output devices:
+
+mode_def imagen = % imagen mode: for the Imagen 8/300 (Canon engine)
+ proofing:=0; % no, we're not making proofs
+ fontmaking:=1; % yes, we are making a font
+ tracingtitles:=0; % no, don't show titles in the log
+ pixels_per_inch:=300;
+ blacker:=0; % Canon engine is black enough
+ fillin:=.2; % and it tends to fill in diagonals
+ o_correction:=.6; %
+ enddef;
+
+mode_def aps = % aps mode: for the Autologic APS-Micro5
+ proofing:=0; % no, we're not making proofs
+ fontmaking:=1; % yes, we are making a font
+ tracingtitles:=1; % yes, show titles online
+ pixels_per_inch:=722.909; % that's roughly 10 per pt
+ blacker:=.2; % make pens a teeny bit blacker
+ fillin:=.2; % but compensate for diagonal fillin
+ o_correction:=1; % and keep the full overshoot
+ enddef;
+
+mode_def linohi = % lino mode: for the Linotronic at 1270dpi
+ proofing:=0; % no, we're not making proofs
+ fontmaking:=1; % yes, we are making a font
+ tracingtitles:=1; % yes, show titles online
+ pixels_per_inch:=1270;
+ blacker:=.2; % make pens a teeny bit blacker
+ fillin:=.2; % but compensate for diagonal fillin
+ o_correction:=1; % and keep the full overshoot
+ enddef;
+
+mode_def fourc = % for 400dpi printers
+ proofing:=0; % no, we're not making proofs
+ fontmaking:=1; % yes, we are making a font
+ tracingtitles:=0; % no, don't show titles in the log
+ pixels_per_inch:=400;
+ blacker:=0; % engine is black enough
+ fillin:=.2; % and it tends to fill in diagonals
+ o_correction:=.6; %
+ enddef;
+
+localfont:=imagen;
+
+% Macros to add mode information specials to fonts. (by Pierre MacKay)
+
+def mode_special(suffix $) =
+ string s,d;
+ s:=str$; d:=decimal scantokens s;
+ special s&":="&d&";" enddef;
+
+def font_mode_specials =
+ p_p_i=pixels_per_inch/mag;
+ if fontmaking > 0:
+ begingroup; save d,s,p; save pixels_per_inch;
+ string p;
+ pixels_per_inch:=p_p_i;
+ special jobname;
+ mode_special(mag);
+ if string mode: p:=mode;
+ else: p:=substring(0,length(mode_name[mode])-1) of mode_name[mode]; fi
+ special "mode:="&p&";";
+ mode_special(pixels_per_inch);
+ mode_special(blacker);
+ mode_special(fillin);
+ mode_special(o_correction);
+ endgroup;
+ fi
+enddef;
+
+% Finally, here are macros for Xerox-world font info:
+
+def font_family expr s = % string s names the font family, e.g., "CMR"
+ headerbyte 49: BCPL_string(s,20);
+ special "identifier "&s enddef;
+def coding_scheme expr s = % string s names the scheme, e.g. "TEX TEXT"
+ headerbyte 9: BCPL_string(s,40);
+ special "codingscheme "&s enddef;
+def font_face_byte expr x = % integer x gives the family member number,
+ headerbyte 72: x; % which should be between 0 and 255
+ special "fontfacebyte"; numspecial x enddef;
+
+def BCPL_string(expr s,n)= % string s becomes an n-byte BCPL string
+ for l:=if length(s)>=n: n-1 else: length(s) fi: l
+ for k:=1 upto l: , substring (k-1,k) of s endfor
+ for k:=l+2 upto n: , 0 endfor endfor enddef;
+
+Xerox_world:=1; % users can say `if known Xerox_world:...fi'
+
+inner end;
+def bye=
+ if fontmaking>0: font_family font_identifier_;
+ coding_scheme font_coding_scheme_;
+ font_face_byte max(0,254-round 2designsize);
+ font_mode_specials; fi
+ end
+ enddef;
+
+outer bye,end;
diff --git a/Master/texmf-dist/fonts/source/public/mflogo/logod10.mf b/Master/texmf-dist/fonts/source/public/knuth-local/logod10.mf
index fc484a4b182..fc484a4b182 100644
--- a/Master/texmf-dist/fonts/source/public/mflogo/logod10.mf
+++ b/Master/texmf-dist/fonts/source/public/knuth-local/logod10.mf
diff --git a/Master/texmf-dist/fonts/source/public/mflogo/logosl9.mf b/Master/texmf-dist/fonts/source/public/knuth-local/logosl9.mf
index 03b3d922884..03b3d922884 100644
--- a/Master/texmf-dist/fonts/source/public/mflogo/logosl9.mf
+++ b/Master/texmf-dist/fonts/source/public/knuth-local/logosl9.mf
diff --git a/Master/texmf-dist/fonts/source/public/misc/mfman.mf b/Master/texmf-dist/fonts/source/public/knuth-local/mfman.mf
index 0bbe24f9de6..e272689889e 100644
--- a/Master/texmf-dist/fonts/source/public/misc/mfman.mf
+++ b/Master/texmf-dist/fonts/source/public/knuth-local/mfman.mf
@@ -1,5 +1,8 @@
% This file generates most of the figures for The METAFONTbook
+lcode_:=" /"; % suppress overflow labels
+grayfont black;
+
def clear_all = clearit; clearxy; pickup standardpen;
proofrulethickness 0;
enddef;
@@ -239,6 +242,7 @@ endgroup;
fi enddef;
makedot(z1); makedot(z2); makedot(z3); makedot(z4); recurse(z1,z2,z3,z4);
+makelabel.bot.nodot("ignore",(160,-10)); % kludge for GFtoEPS!
shipit;
"Figure 3d"; % 4 points and various cubics
@@ -760,7 +764,7 @@ penpos3'(b,theta3); penpos4'(b,theta3); penpos8(.6b,theta3);
penstroke z1e..z1'e{z6'-z1'}..z7e..{z6'-z1'}z6'e..z6e;
penpos2(b,0); penpos5(b,0); penstroke z2e..z5e;
penstroke z3e..z3'e{z4'-z3'}..z8e..{z4'-z3'}z4'e..z4e;
-penlabels(1,1',2,3,3',4,4',5,6,6');
+penlabels(1,1',3,3',4,4',6,6');
labels.top(1r,1'r,2,3l,3'l,4l,4'l,6r,6'r);
labels.bot(1l,1'l,3r,3'r,4r,4'r,5,6l,6'l);
labels.lft(2l,5l);
@@ -1300,6 +1304,7 @@ for x=0 step 10 until 220: proofrule((x,0),(x,220)); endfor
for y=0 step 10 until 220: proofrule((0,y),(220,y)); endfor
proofrulethickness .8;
proofrule ((0,110),(220,110)); proofrule ((110,0),(110,220));
+makelabel.bot.nodot("ignore",(160,-10)); % kludge for GFtoEPS!
showit;
shipit;
@@ -1314,6 +1319,7 @@ for x=0 step 10 until 320: proofrule((x,0),(x,220)); endfor
for y=0 step 10 until 220: proofrule((0,y),(320,y)); endfor
proofrulethickness .8;
proofrule ((0,110),(320,110)); proofrule ((160,0),(160,220));
+makelabel.bot.nodot("ignore",(160,-10)); % kludge for GFtoEPS!
showit;
shipit;
@@ -1328,6 +1334,7 @@ for x=0 step 10 until 320: proofrule((x,0),(x,220)); endfor
for y=0 step 10 until 220: proofrule((0,y),(320,y)); endfor
proofrulethickness .8;
proofrule ((0,110),(320,110)); proofrule ((160,0),(160,220));
+makelabel.bot.nodot("ignore",(160,-10)); % kludge for GFtoEPS!
showit;
shipit;
diff --git a/Master/texmf-dist/fonts/source/public/knuth-local/oneone.mf b/Master/texmf-dist/fonts/source/public/knuth-local/oneone.mf
new file mode 100644
index 00000000000..efa30cf1f2c
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/knuth-local/oneone.mf
@@ -0,0 +1,10 @@
+% Black font for Imagen with proofsheet resolution 300 pixels per inch
+
+if mode<>imagen: errmessage "This file is for imagen only"; fi
+
+font_identifier "BLACKIMAGEN";
+picture pix_picture; pix_wd := pix_ht := 1;
+pix_picture := unitpixel;
+dotsize:=10;
+
+input grayf
diff --git a/Master/texmf-dist/fonts/source/public/misc/random.mf b/Master/texmf-dist/fonts/source/public/knuth-local/random.mf
index cc433a8d1fb..cc433a8d1fb 100644
--- a/Master/texmf-dist/fonts/source/public/misc/random.mf
+++ b/Master/texmf-dist/fonts/source/public/knuth-local/random.mf
diff --git a/Master/texmf-dist/fonts/source/public/misc/slantaps4.mf b/Master/texmf-dist/fonts/source/public/knuth-local/slantaps4.mf
index 1d7ecbd4928..1d7ecbd4928 100644
--- a/Master/texmf-dist/fonts/source/public/misc/slantaps4.mf
+++ b/Master/texmf-dist/fonts/source/public/knuth-local/slantaps4.mf
diff --git a/Master/texmf-dist/fonts/source/public/misc/slantimagen4.mf b/Master/texmf-dist/fonts/source/public/knuth-local/slantimagen4.mf
index ffe19c7b90b..ffe19c7b90b 100644
--- a/Master/texmf-dist/fonts/source/public/misc/slantimagen4.mf
+++ b/Master/texmf-dist/fonts/source/public/knuth-local/slantimagen4.mf
diff --git a/Master/texmf-dist/fonts/source/public/misc/slantimagen6.mf b/Master/texmf-dist/fonts/source/public/knuth-local/slantimagen6.mf
index 3859b471fd8..3859b471fd8 100644
--- a/Master/texmf-dist/fonts/source/public/misc/slantimagen6.mf
+++ b/Master/texmf-dist/fonts/source/public/knuth-local/slantimagen6.mf
diff --git a/Master/texmf-dist/fonts/source/public/misc/slantlino4.mf b/Master/texmf-dist/fonts/source/public/knuth-local/slantlino4.mf
index 02ef790a035..02ef790a035 100644
--- a/Master/texmf-dist/fonts/source/public/misc/slantlino4.mf
+++ b/Master/texmf-dist/fonts/source/public/knuth-local/slantlino4.mf
diff --git a/Master/texmf-dist/fonts/source/public/knuth-local/slantlj4.mf b/Master/texmf-dist/fonts/source/public/knuth-local/slantlj4.mf
new file mode 100644
index 00000000000..53264d05366
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/knuth-local/slantlj4.mf
@@ -0,0 +1,11 @@
+% slant font for slope 1/4 on the LaserJet
+
+if mode<>ljfour: errmessage "This file is for LaserJet only"; fi
+
+s=1/4;
+n=30;
+r#=.4;
+u=3; % an approximation to r in pixels
+
+font_identifier "SLANTLJ4";
+input slant
diff --git a/Master/texmf-dist/fonts/source/public/knuth-local/snfont.mf b/Master/texmf-dist/fonts/source/public/knuth-local/snfont.mf
new file mode 100644
index 00000000000..dd50508dff8
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/knuth-local/snfont.mf
@@ -0,0 +1,165 @@
+% special font for Surreal Numbers "Conway Stone"
+
+u#:=1mm#/2.5; % basic unit, corresponds to 1mm after 250% magnification
+mode_setup;
+define_pixels(u);
+
+vardef nd= u*normaldeviate enddef;
+randomseed:=3.14;
+
+def .... = .. tension1.2 .. enddef;
+def ..... = .. tension2 .. enddef;
+
+def zerochar(expr code) =
+ beginchar(code,(10+normaldeviate)*u#,10u#,0);
+ z0=(.5w,5u);
+ for j=1 upto 5:
+ z[j]=z0+((0,4u+.125nd) rotated (j*72+8normaldeviate));
+ endfor
+ fill z1....z2....z3....z4....z5....cycle;
+ labels(0,1,2,3,4,5);
+ endchar;
+enddef;
+
+def colonchar(expr code) =
+ beginchar(code,(5.5+normaldeviate)*u#,10u#,0);
+ z0=(.5w,3u); z10=(.5w,8u);
+ for j=1 upto 3:
+ z[j]=z0+((0,1.75u+.075nd) rotated (j*120+8normaldeviate));
+ z[10+j]=z10+((0,1.75u+.075nd) rotated (60+j*120+8normaldeviate));
+ endfor
+ fill z1....z2....z3....cycle;
+ fill z11....z12....z13....cycle;
+ labels(0,1,2,3,10,11,12,13);
+ endchar;
+enddef;
+
+def horizchar(expr code) =
+ beginchar(code,(13+normaldeviate)*u#,10u#,0);
+ z1=(2u+nd/4,5u+nd/10);
+ z2=(w-2u+nd/4,5u+nd/10);
+ penpos1(1.5u,90);
+ penpos2(1.5u,90);
+ z10r=z1r+(nd/2,nd/8);
+ z10l=z1l+(nd/2,nd/8);
+ z10=(.5+uniformdeviate.3)[z10l,z10r]-(abs nd,0);
+ z20l=z2l+(nd/2,nd/8);
+ z20r=z2r+(nd/2,nd/8);
+ z20=(.5+uniformdeviate.3)[z20l,z20r]+(abs nd,0);
+ pickup pencircle scaled u;
+ filldraw z10r{dir(180+10normaldeviate)}...z10...z10l{dir 10normaldeviate}
+ ....z20l{dir 10normaldeviate}....z20....z20r{dir(180+10normaldeviate)}
+ ....cycle;
+ penlabels(1,2,10,20);
+ endchar;
+enddef;
+
+def equalchar(expr code) =
+ beginchar(code,(15+normaldeviate)*u#,10u#,0);
+ z1=(4.5u+nd/4,6u+nd/10);
+ z2=(w-4.5u+nd/4,6u+nd/10);
+ penpos1(u,90);
+ penpos2(u,90);
+ z10r=z1r+(nd/2,nd/8);
+ z10l=z1l+(nd/2,nd/8);
+ z10=(.5+uniformdeviate.3)[z10l,z10r]-(abs nd,0);
+ z20l=z2l+(nd/2,nd/8);
+ z20r=z2r+(nd/2,nd/8);
+ z20=(.5+uniformdeviate.3)[z20l,z20r]+(abs nd,0);
+ pickup pencircle scaled .5u;
+ filldraw z10r{dir(180+5normaldeviate)}...z10...z10l{dir 5normaldeviate}
+ ....z20l{dir 5normaldeviate}....z20....z20r{dir(180+5normaldeviate)}
+ ....cycle;
+ z3=(4.5u+nd/4,2.5u+nd/10);
+ z4=(w-4.5u+nd/4,2.5u+nd/10);
+ penpos3(u,90);
+ penpos4(u,90);
+ z30r=z3r+(nd/2,nd/8);
+ z30l=z3l+(nd/2,nd/8);
+ z30=(.5+uniformdeviate.3)[z30l,z30r]-(abs nd,0);
+ z40l=z4l+(nd/2,nd/8);
+ z40r=z4r+(nd/2,nd/8);
+ z40=(.5+uniformdeviate.3)[z40l,z40r]+(abs nd,0);
+ filldraw z30r{dir(180+5normaldeviate)}...z30...z30l{dir 5normaldeviate}
+ ....z40l{dir 5normaldeviate}....z40....z40r{dir(180+5normaldeviate)}
+ ....cycle;
+ penlabels(1,2,3,4,10,20,30,40);
+ endchar;
+enddef;
+
+def vertchar(expr code) =
+ beginchar(code,(5.5+normaldeviate)*u#,10u#,0);
+ z1=(.5w+nd/10,9u+nd/4);
+ z2=(.5w+nd/10,u+nd/4);
+ penpos1(1.8u,0);
+ penpos2(1.8u,0);
+ z10r=z1r+(nd/8,nd/2);
+ z10l=z1l+(nd/8,nd/2);
+ z10=(.5+uniformdeviate.3)[z10l,z10r]+(0,abs nd);
+ z20l=z2l+(nd/8,nd/2);
+ z20r=z2r+(nd/8,nd/2);
+ z20=(.5+uniformdeviate.3)[z20l,z20r]-(0,abs nd);
+ pickup pencircle scaled .6u;
+ filldraw z10r{dir(90+10normaldeviate)}....z10....z10l{dir-(90+10normaldeviate)}
+ ....z20l{dir-(90+10normaldeviate)}....z20....z20r{dir(90+10normaldeviate)}
+ ....cycle;
+ penlabels(1,2,10,20);
+ endchar;
+enddef;
+
+def leftchar(expr code) =
+ beginchar(code,(10+normaldeviate)*u#,10u#,0);
+ z1=(w-2u+nd/16,11u+nd/8);
+ z0=z2=(3u+nd/16,5u+nd/16);
+ z3=(w-2u+nd/16,-u+nd/8);
+ penpos1(u,-35+10normaldeviate);
+ penpos0(u,-35);
+ penpos3(u,35+10normaldeviate);
+ penpos2(u,35);
+ z4=whatever[z0l,z1l]=whatever[z2l,z3l];
+ pickup pencircle scaled u;
+ filldraw z1l{(z0l-z1l)rotated 5normaldeviate}....z4--z0r
+ ....z1r{(z1r-z0r)rotated 5normaldeviate}.....cycle;
+ filldraw z3l{(z2l-z3l)rotated 5normaldeviate}....z4--z2r
+ ....z3r{(z3r-z2r)rotated 5normaldeviate}.....cycle;
+ penlabels(0,1,2,3,4);
+ endchar;
+enddef;
+
+def rightchar(expr code) =
+ beginchar(code,(10+normaldeviate)*u#,10u#,0);
+ z1=(2u+nd/16,11u+nd/8);
+ z0=z2=(w-3u+nd/16,5u+nd/16);
+ z3=(2u+nd/16,-u+nd/8);
+ penpos1(u,35+10normaldeviate);
+ penpos0(u,35);
+ penpos3(u,-35+10normaldeviate);
+ penpos2(u,-35);
+ z4=whatever[z0r,z1r]=whatever[z2r,z3r];
+ pickup pencircle scaled u;
+ filldraw z1r{(z0r-z1r)rotated 5normaldeviate}....z4--z0l
+ ....z1l{(z1l-z0l)rotated 5normaldeviate}.....cycle;
+ filldraw z3r{(z2r-z3r)rotated 5normaldeviate}....z4--z2l
+ ....z3l{(z3l-z2l)rotated 5normaldeviate}.....cycle;
+ penlabels(0,1,2,3,4);
+ endchar;
+enddef;
+
+for r=0 upto 9:
+ zerochar(10+r);
+ colonchar(20+r);
+ horizchar(30+r);
+ equalchar(40+r);
+ vertchar(50+r);
+ leftchar(60+r);
+ rightchar(70+r);
+endfor
+
+font_quad:=10u#;
+font_normal_space:=5u#;
+font_normal_stretch:=3u#;
+font_normal_shrink:=2u#;
+font_identifier:="SNFONT";
+font_coding_scheme:="PI";
+
+end.
diff --git a/Master/texmf-dist/fonts/source/public/misc/black.mf b/Master/texmf-dist/fonts/source/public/misc/black.mf
deleted file mode 100644
index 1837b50c66e..00000000000
--- a/Master/texmf-dist/fonts/source/public/misc/black.mf
+++ /dev/null
@@ -1,4 +0,0 @@
-if mode=ljfour: input blacklj;
-elseif mode=cx: input blackcx;
-elseif mode=aps: input blackaps;
-fi
diff --git a/Master/texmf-dist/fonts/source/public/misc/gray.mf b/Master/texmf-dist/fonts/source/public/misc/gray.mf
deleted file mode 100644
index 584361d12df..00000000000
--- a/Master/texmf-dist/fonts/source/public/misc/gray.mf
+++ /dev/null
@@ -1,4 +0,0 @@
-if mode=ljfour: input graylj;
-elseif mode=cx: input graycx;
-elseif mode=aps: input grayaps;
-fi
diff --git a/Master/texmf-dist/fonts/source/public/misc/graylj.mf b/Master/texmf-dist/fonts/source/public/misc/graylj.mf
deleted file mode 100644
index e4596221361..00000000000
--- a/Master/texmf-dist/fonts/source/public/misc/graylj.mf
+++ /dev/null
@@ -1,10 +0,0 @@
-% Gray font for LJ with proofsheet resolution 150 pixels per inch.
-% Each pixel is represented by a 4x4 square, with 4/16 of the dots on.
-
-if mode<>ljfour: errmessage "This file is for ljfour only"; fi
-
-font_identifier "GRAYLJ";
-
-boolean lightweight;
-
-input grayf
diff --git a/Master/texmf-dist/fonts/source/public/misc/oneone.mf b/Master/texmf-dist/fonts/source/public/misc/oneone.mf
deleted file mode 100644
index 09975533ce0..00000000000
--- a/Master/texmf-dist/fonts/source/public/misc/oneone.mf
+++ /dev/null
@@ -1,10 +0,0 @@
-% Black font for CX with proofsheet resolution 300 pixels per inch
-
-if mode<>cx: errmessage "This file is for cx only"; fi
-
-font_identifier "BLACKCX";
-picture pix_picture; pix_wd := pix_ht := 1;
-pix_picture := unitpixel;
-dotsize:=10;
-
-input grayf
diff --git a/Master/texmf-dist/fonts/source/public/misc/slantlj4.mf b/Master/texmf-dist/fonts/source/public/misc/slantlj4.mf
deleted file mode 100644
index 49dc12e236a..00000000000
--- a/Master/texmf-dist/fonts/source/public/misc/slantlj4.mf
+++ /dev/null
@@ -1,11 +0,0 @@
-% slant font for slope 1/4 on the LJ
-
-if mode<>ljfour: errmessage "This file is for ljfour only"; fi
-
-s=1/4;
-n=30;
-r#=.4;
-u=2; % an approximation to r in pixels
-
-font_identifier "SLANTLJ4";
-input slant