summaryrefslogtreecommitdiff
path: root/fonts/capbas
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
committerNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
commite0c6872cf40896c7be36b11dcc744620f10adf1d (patch)
tree60335e10d2f4354b0674ec22d7b53f0f8abee672 /fonts/capbas
Initial commit
Diffstat (limited to 'fonts/capbas')
-rw-r--r--fonts/capbas/capbas.mf120
-rw-r--r--fonts/capbas/capbas.tfmbin0 -> 332 bytes
-rw-r--r--fonts/capbas/capbasd.mf126
-rw-r--r--fonts/capbas/capbasd.tfmbin0 -> 332 bytes
-rw-r--r--fonts/capbas/capfon.mf371
-rw-r--r--fonts/capbas/cmbug.mf21
-rw-r--r--fonts/capbas/cmbug.tfmbin0 -> 768 bytes
-rw-r--r--fonts/capbas/cmgray.mf21
-rw-r--r--fonts/capbas/cmgray.tfmbin0 -> 1272 bytes
-rw-r--r--fonts/capbas/d7seg.mf251
-rw-r--r--fonts/capbas/d7seg.tfmbin0 -> 548 bytes
-rw-r--r--fonts/capbas/deseg.mf301
-rw-r--r--fonts/capbas/deseg.tfmbin0 -> 548 bytes
-rw-r--r--fonts/capbas/flyspec.mf184
-rw-r--r--fonts/capbas/flyspec.tfmbin0 -> 556 bytes
-rw-r--r--fonts/capbas/mftools.mf223
-rw-r--r--fonts/capbas/necker.mf187
-rw-r--r--fonts/capbas/necker.tfmbin0 -> 560 bytes
-rw-r--r--fonts/capbas/readme61
-rw-r--r--fonts/capbas/simdefs.mf158
-rw-r--r--fonts/capbas/simfon.mf160
-rw-r--r--fonts/capbas/simfon.tfmbin0 -> 472 bytes
22 files changed, 2184 insertions, 0 deletions
diff --git a/fonts/capbas/capbas.mf b/fonts/capbas/capbas.mf
new file mode 100644
index 0000000000..53aa25301b
--- /dev/null
+++ b/fonts/capbas/capbas.mf
@@ -0,0 +1,120 @@
+%%% @mffile{
+%%% filename="capbas.mf",
+%%% version="",
+%%% date="",
+%%% filetype="mf fontcreator",
+%%% package="m-capbas.arj"
+%%% author="Phons Bloemen (PhB)",
+%%% address="Eindhoven U. of Technology"
+%%% email="Internet: phons@ei.ele.tue.nl",
+%%% codetable="ISO/ASCII",
+%%% checksumtype="none",
+%%% checksum="0",
+%%% keywords="",
+%%% abstract="
+%%% Capital Baseball
+%%% Part of Capital Baseball package"
+%%% copyright="Copyleft (L) Phons Bloemen (PhB),
+%%% according to GNU public licence version 2 or later.
+%%% (1) Do not change this file (even its name)
+%%% (2) if you do make changes, first rename it to some
+%%% other name, and mark your changes clearly.",
+%%% }
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+font_size 2.5mm#;
+em# :=0.25mm#;
+%%% We are making a straight font
+
+font_coding_scheme:="TeX text";
+font_identifier:="CAPBAS";
+body_height#:=10em#; % height of tallest characters
+asc_height#:=10em#; % height of lowercase ascenders
+cap_height#:=10em#; % height of caps
+fig_height#:=10em#; % height of numerals
+x_height#:=10em#; % height of lowercase without ascenders
+math_axis#:=10em#; % axis of symmetry for math symbols
+bar_height#:=10em#; % height of crossbar in lowercase e
+comma_depth#:=0em#; % depth of comma below baseline
+desc_depth#:=0em#; % depth of lowercase descenders
+%% monospace := false;
+%% font_setup;
+font_normal_space 10 * em#;
+font_quad 40em#;
+font_extra_space 10 * em#;
+boolean roundcapbas;
+roundcapbas := false;
+revcap := 1;
+mode_setup;
+
+picture apen;
+
+input capfon.mf;
+input mftools.mf;
+
+%%% Font Parameters
+%%% tf : size of the 'edges' in the font
+%%% unit : unit length of the 'grid'.
+%%% wdt : size of grid. Character is 3x7, 4x7 or 5x7 units.
+
+% A macro to generate a letter. The letters are defined on a
+% 'grid'. This grid may be 'stretched', 'mirrored' and 'rotated'
+% by a transform operator. This keeps the labels of the points
+% equal. The capbasgrid function draws the grid. The letters
+% themselved are created on the grid bij separate macros for each
+% letter.
+% This makes it easy to create different letterforms. Later, the
+% letters may be 'pattern-filled' or 'outlined'.
+
+def begincapbaschar(expr c,unit,wdt)(text t) =
+beginchar((char c),wdt*unit*1.05em#,unit*7*1em#,0);
+ z1 = (0.5w,0.5h);
+ z0 = z1;
+ tf := 0.25 * w / unit;
+ scapbasgrid(1,0.9*h,1.125*w/wdt);
+ t ;
+endchar;
+enddef;
+
+begincapbaschar( 32,1.43,3)(dummy);
+
+apen:=nullpicture;
+begincapbaschar( 48,1.43,4)(gencho(1));
+begincapbaschar( 49,1.43,4)(genchone(1));
+begincapbaschar( 50,1.43,4)(genchtwo(1));
+begincapbaschar( 51,1.43,4)(genchthr(1));
+begincapbaschar( 52,1.43,4)(genchfou(1));
+begincapbaschar( 53,1.43,4)(genchfiv(1));
+begincapbaschar( 54,1.43,4)(genchsix(1));
+begincapbaschar( 55,1.43,4)(genchsev(1));
+begincapbaschar( 56,1.43,4)(gencheig(1));
+begincapbaschar( 57,1.43,4)(genchnin(1));
+begincapbaschar( 64,1.43,4,genchij(1));
+begincapbaschar( 65,1.43,4,gencha(1));
+begincapbaschar( 66,1.43,4,genchb(1));
+begincapbaschar( 67,1.43,4,genchc(1));
+begincapbaschar( 68,1.43,4,genchd(1));
+begincapbaschar( 69,1.43,4,genche(1));
+begincapbaschar( 70,1.43,4,genchf(1));
+begincapbaschar( 71,1.43,4,genchg(1));
+begincapbaschar( 72,1.43,4,genchh(1));
+begincapbaschar( 73,1.43,2,genchi(1));
+begincapbaschar( 74,1.43,4,genchj(1));
+begincapbaschar( 75,1.43,4,genchk(1));
+begincapbaschar( 76,1.43,4,genchl(1));
+begincapbaschar( 77,1.43,5,genchm(1));
+begincapbaschar( 78,1.43,4,genchn(1));
+begincapbaschar( 79,1.43,4,gencho(1));
+begincapbaschar( 80,1.43,4,genchp(1));
+begincapbaschar( 81,1.43,4,genchq(1));
+begincapbaschar( 82,1.43,4,genchr(1));
+begincapbaschar( 83,1.43,4,genchs(1));
+begincapbaschar( 84,1.43,4,gencht(1));
+begincapbaschar( 85,1.43,4,genchu(1));
+begincapbaschar( 86,1.43,4,genchv(1));
+begincapbaschar( 87,1.43,5,genchw(1));
+begincapbaschar( 88,1.43,4,genchx(1));
+begincapbaschar( 89,1.43,4,genchy(1));
+begincapbaschar( 90,1.43,4,genchz(1));
+end;
+
diff --git a/fonts/capbas/capbas.tfm b/fonts/capbas/capbas.tfm
new file mode 100644
index 0000000000..d95ea2288d
--- /dev/null
+++ b/fonts/capbas/capbas.tfm
Binary files differ
diff --git a/fonts/capbas/capbasd.mf b/fonts/capbas/capbasd.mf
new file mode 100644
index 0000000000..9d37dc3172
--- /dev/null
+++ b/fonts/capbas/capbasd.mf
@@ -0,0 +1,126 @@
+%%% @mffile{
+%%% filename="capbasd.mf",
+%%% version="",
+%%% date="",
+%%% filetype="mf fontcreator",
+%%% package="m-capbas.arj"
+%%% author="Phons Bloemen (PhB)",
+%%% address="Eindhoven U. of Technology"
+%%% email="Internet: phons@ei.ele.tue.nl",
+%%% codetable="ISO/ASCII",
+%%% checksumtype="none",
+%%% checksum="0",
+%%% keywords="",
+%%% abstract="
+%%% Capital Baseball at 1.5 cm.
+%%% Part of Capital Baseball package"
+%%% copyright="Copyleft (L) Phons Bloemen (PhB),
+%%% according to GNU public licence version 2 or later.
+%%% (1) Do not change this file (even its name)
+%%% (2) if you do make changes, first rename it to some
+%%% other name, and mark your changes clearly.",
+%%% }
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+font_size 2.5mm#;
+em# :=0.25mm#;
+%%% We are making a straight font
+
+font_coding_scheme:="TeX text";
+font_identifier:="CAPBAS";
+body_height#:=10em#; % height of tallest characters
+asc_height#:=10em#; % height of lowercase ascenders
+cap_height#:=10em#; % height of caps
+fig_height#:=10em#; % height of numerals
+x_height#:=10em#; % height of lowercase without ascenders
+math_axis#:=10em#; % axis of symmetry for math symbols
+bar_height#:=10em#; % height of crossbar in lowercase e
+comma_depth#:=0em#; % depth of comma below baseline
+desc_depth#:=0em#; % depth of lowercase descenders
+%% monospace := false;
+%% font_setup;
+font_normal_space 10 * em#;
+font_quad 40em#;
+font_extra_space 10 * em#;
+boolean roundcapbas;
+roundcapbas := false;
+revcap := 1;
+mode_setup;
+
+picture apen;
+
+input capfon.mf;
+input mftools.mf;
+
+%%% Font Parameters
+%%% thrb : witdh of total outline
+%%% thra : thickness of outline
+%%% thrb - thra: distance between character contour and outline
+%%% tf : size of the 'edges' in the font
+%%% unit : unit length of the 'grid'.
+%%% wdt : size of grid. Character is 3x7, 4x7 or 5x7 units.
+
+% A macro to generate a letter. The letters are defined on a
+% 'grid'. This grid may be 'stretched', 'mirrored' and 'rotated'
+% by a transform operator. This keeps the labels of the points
+% equal. The capbasgrid function draws the grid. The letters
+% themselved are created on the grid bij separate macros for each
+% letter.
+% This makes it easy to create different letterforms. Later, the
+% letters may be 'pattern-filled' or 'outlined'.
+
+def begincapbaschar(expr c,unit,wdt)(text t) =
+beginchar((char c),wdt*unit*1.15em#,unit*7*1em#,0);
+ z1 = (0.5w,0.5h);
+ z0 = z1;
+ thrb := 0.15 * w / unit ;
+ thra := 0.1 * w / unit ;
+ tf := 0.25 * w /unit;
+ scapbasgrid(1,0.9*h,1*w/wdt);
+ t ;
+ douboutline(thrb,thra);
+endchar;
+enddef;
+
+begincapbaschar( 32,1.43,3)(dummy);
+
+apen:=nullpicture;
+begincapbaschar( 48,1.43,4)(gencho(1));
+begincapbaschar( 49,1.43,4)(genchone(1));
+begincapbaschar( 50,1.43,4)(genchtwo(1));
+begincapbaschar( 51,1.43,4)(genchthr(1));
+begincapbaschar( 52,1.43,4)(genchfou(1));
+begincapbaschar( 53,1.43,4)(genchfiv(1));
+begincapbaschar( 54,1.43,4)(genchsix(1));
+begincapbaschar( 55,1.43,4)(genchsev(1));
+begincapbaschar( 56,1.43,4)(gencheig(1));
+begincapbaschar( 57,1.43,4)(genchnin(1));
+begincapbaschar( 64,1.43,4,genchij(1));
+begincapbaschar( 65,1.43,4,gencha(1));
+begincapbaschar( 66,1.43,4,genchb(1));
+begincapbaschar( 67,1.43,4,genchc(1));
+begincapbaschar( 68,1.43,4,genchd(1));
+begincapbaschar( 69,1.43,4,genche(1));
+begincapbaschar( 70,1.43,4,genchf(1));
+begincapbaschar( 71,1.43,4,genchg(1));
+begincapbaschar( 72,1.43,4,genchh(1));
+begincapbaschar( 73,1.43,2,genchi(1));
+begincapbaschar( 74,1.43,4,genchj(1));
+begincapbaschar( 75,1.43,4,genchk(1));
+begincapbaschar( 76,1.43,4,genchl(1));
+begincapbaschar( 77,1.43,5,genchm(1));
+begincapbaschar( 78,1.43,4,genchn(1));
+begincapbaschar( 79,1.43,4,gencho(1));
+begincapbaschar( 80,1.43,4,genchp(1));
+begincapbaschar( 81,1.43,4,genchq(1));
+begincapbaschar( 82,1.43,4,genchr(1));
+begincapbaschar( 83,1.43,4,genchs(1));
+begincapbaschar( 84,1.43,4,gencht(1));
+begincapbaschar( 85,1.43,4,genchu(1));
+begincapbaschar( 86,1.43,4,genchv(1));
+begincapbaschar( 87,1.43,5,genchw(1));
+begincapbaschar( 88,1.43,4,genchx(1));
+begincapbaschar( 89,1.43,4,genchy(1));
+begincapbaschar( 90,1.43,4,genchz(1));
+end;
+
diff --git a/fonts/capbas/capbasd.tfm b/fonts/capbas/capbasd.tfm
new file mode 100644
index 0000000000..465c0781ac
--- /dev/null
+++ b/fonts/capbas/capbasd.tfm
Binary files differ
diff --git a/fonts/capbas/capfon.mf b/fonts/capbas/capfon.mf
new file mode 100644
index 0000000000..29c551cf06
--- /dev/null
+++ b/fonts/capbas/capfon.mf
@@ -0,0 +1,371 @@
+%%% @mffile{
+%%% filename="capfon.mf",
+%%% version="",
+%%% date="",
+%%% filetype="mf fontcreator",
+%%% package="m-capbas.arj"
+%%% author="Phons Bloemen (PhB)",
+%%% address="Eindhoven U. of Technology,
+%%% Fac. of Electrical Engineering,
+%%% P. O. Box 513, NL-5600 MB Eindhoven
+%%% email="Internet: phons@ei.ele.tue.nl",
+%%% codetable="ISO/ASCII",
+%%% checksumtype="none",
+%%% checksum="0",
+%%% keywords="",
+%%% abstract="
+%%% Input file defining the glyphs for Capital Baseball.
+%%% The font is drawn onto a fixed 'grid' of points. By
+%%% deformation of this 'square' grid special effects can
+%%% be achieved.
+%%% Part of Capital Baseball package"
+%%% copyright="Copyleft (L) Phons Bloemen (PhB),
+%%% according to GNU public licence version 2 or later.
+%%% (1) Do not change this file (even its name)
+%%% (2) if you do make changes, first rename it to some
+%%% other name, and mark your changes clearly.",
+%%% }
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+def dummy =
+enddef;
+
+def corner (suffix $) =
+ if roundcapbas :
+ (z$a - z$) = dir(angle(z$ - z0)) scaled td * scaw * h * revcap;
+ (z$c - z$) = dir(angle(z0 - z$)) scaled td * scaw * h * revcap;
+ z$b = z$ rotatedaround (z0,te * scaw * revcap);
+ z$d = z$ rotatedaround (z0,-te * scaw * revcap);
+ else:
+ z$a = z$ + (0,tf * revcap);
+ z$c = z$ - (0,tf * revcap);
+ z$b = z$ - (tf * revcap,0);
+ z$d = z$ + (tf * revcap,0);
+ fi
+enddef;
+
+def arcus(suffix i,j) =
+ if roundcapbas :
+ (z.i .. z.i rotatedaround (z0,(angle(z.j-z0)-angle(z.i-z0))/3) ..
+ z.j rotatedaround (z0,(angle(z.i-z0)-angle(z.j-z0))/3) .. z.j)
+ else :
+ (z.i -- z.j)
+ fi
+enddef;
+
+def rcapbasgrid(suffix $)(expr hi,ma) =
+ revcap := 1;
+ for k = 1,3,4,5,6,7,8,9,11 :
+ sca := 1 + ((k-6)*hi/10)/(length(z$ - z0));
+ z$j[k] = z0 + ((z$ - z0) scaled sca) rotated (ma*4);
+ z$a[k] = z0 + ((z$ - z0) scaled sca) rotated (ma*3);
+ z$b[k] = z0 + ((z$ - z0) scaled sca) rotated (ma*2);
+ z$c[k] = z0 + ((z$ - z0) scaled sca) rotated (ma*1);
+ z$d[k] = z0 + ((z$ - z0) scaled sca) rotated (0);
+ z$e[k] = z0 + ((z$ - z0) scaled sca) rotated (-ma);
+ z$f[k] = z0 + ((z$ - z0) scaled sca) rotated (-ma*2);
+ z$g[k] = z0 + ((z$ - z0) scaled sca) rotated (-ma*3);
+ z$h[k] = z0 + ((z$ - z0) scaled sca) rotated (-ma*4);
+ endfor;
+ labels($);
+enddef;
+
+def capbasrevgrid(suffix $)(expr hi,ma) =
+ revcap := -1;
+ for k = 1,3,4,5,6,7,8,9,11 :
+ sca := 1 - ((k-6)*hi/10)/(length(z$ - z0));
+ z$j[k] = z0 + ((z$ - z0) scaled sca) rotated (-ma*4);
+ z$a[k] = z0 + ((z$ - z0) scaled sca) rotated (-ma*3);
+ z$b[k] = z0 + ((z$ - z0) scaled sca) rotated (-ma*2);
+ z$c[k] = z0 + ((z$ - z0) scaled sca) rotated (-ma*1);
+ z$d[k] = z0 + ((z$ - z0) scaled sca) rotated (0);
+ z$e[k] = z0 + ((z$ - z0) scaled sca) rotated (ma*1);
+ z$f[k] = z0 + ((z$ - z0) scaled sca) rotated (ma*2);
+ z$g[k] = z0 + ((z$ - z0) scaled sca) rotated (ma*3);
+ z$h[k] = z0 + ((z$ - z0) scaled sca) rotated (ma*4);
+ endfor;
+ labels($);
+enddef;
+
+
+def scapbasgrid(suffix $)(expr hi,ma) =
+ revcap := 1;
+ for k = 1,3,4,5,6,7,8,9,11 :
+ z$j[k] = z0 + (-ma*2,(k-6)*hi/10);
+ z$a[k] = z0 + (-ma*3/2,(k-6)*hi/10);
+ z$b[k] = z0 + (-ma,(k-6)*hi/10);
+ z$c[k] = z0 + (-ma/2,(k-6)*hi/10);
+ z$d[k] = z0 + (0,(k-6)*hi/10);
+ z$e[k] = z0 + (ma/2,(k-6)*hi/10);
+ z$f[k] = z0 + (ma,(k-6)*hi/10);
+ z$g[k] = z0 + (ma*3/2,(k-6)*hi/10);
+ z$h[k] = z0 + (ma*2,(k-6)*hi/10);
+ endfor;
+ labels($);
+enddef;
+
+def gencha(suffix $) =
+ corner($a11);corner($g11);
+ fill(z$a11c -- arcus($a11d,$g11b) -- z$g11c --
+ arcus($g9,$a9) -- cycle);
+ fill(arcus($c9,$a9) -- arcus($a1,$c1) -- cycle);
+ fill(arcus($g9,$e9) -- arcus($e1,$g1) -- cycle);
+ fill(arcus($c7,$e7) -- arcus($e5,$c5) -- cycle);
+cull currentpicture keeping (1,infinity); enddef;;
+def genchb(suffix $) =
+ corner($g11); corner($g6); corner($g1);
+ fill(arcus($a11,$g11b) -- z$g11c -- z$g6a -- z$g6b -- z$g6c --
+ z$g1a -- arcus($g1b,$a1) -- cycle);
+ unfill(arcus($c9,$e9) -- arcus($e7,$c7) -- cycle);
+ unfill(arcus($c5,$e5) -- arcus($e3,$c3) -- cycle);
+cull currentpicture keeping (1,infinity); enddef;;
+def genchd(suffix $) =
+ corner($g11);corner($g1);
+ fill(arcus($a11,$g11b) -- z$g11c -- z$g1a --
+ arcus($g1b,$a1) -- cycle);
+ unfill(arcus($c9,$e9) -- arcus($e3,$c3) -- cycle);
+cull currentpicture keeping (1,infinity); enddef;;
+def genchc(suffix $) =
+ corner($g11);corner($g1);corner($a1);corner($a11)
+ fill(arcus($a11d,$g11b) -- z$g11c -- z$g1a --
+ arcus($g1b,$a1d) -- z$a1a -- z$a11c -- cycle);
+ unfill(arcus($c9,$e9) -- arcus($e3,$c3) -- cycle);
+ unfill(arcus($e8,$g8) -- arcus($g4,$e4) -- cycle);
+cull currentpicture keeping (1,infinity); enddef;;
+def genche(suffix $) =
+ fill(arcus($a11,$c11) -- arcus($c1,$a1) -- cycle );
+ fill(arcus($c11,$g11) -- arcus($g9,$c9) -- cycle );
+ fill(arcus($c7,$g7) -- arcus($g5,$c5) -- cycle );
+ fill(arcus($c3,$g3) -- arcus($g1,$c1) -- cycle );
+cull currentpicture keeping (1,infinity); enddef;;
+def genchf(suffix $) =
+ fill(arcus($a11,$c11) -- arcus($c1,$a1) -- cycle );
+ fill(arcus($c11,$g11) -- arcus($g9,$c9) -- cycle );
+ fill(arcus($c7,$g7) -- arcus($g5,$c5) -- cycle );
+cull currentpicture keeping (1,infinity); enddef;;
+def genchg(suffix $) =
+ corner($g11);corner($g1);corner($g6);corner($a11);corner($a1);
+ fill(arcus($a11d,$g11b) -- z$g11c -- z$g1a --
+ arcus($g1b,$a1d) -- z$a1a -- z$a11c -- cycle);
+ unfill(arcus($c9,$e9) -- arcus($e3,$c3) -- cycle);
+ unfill(arcus($e8,$g8) -- z$g6c -- arcus($g6b,$e6) -- cycle);
+ fill(arcus($d6,$e6) -- arcus($e4,$d4) -- cycle);
+cull currentpicture keeping (1,infinity); enddef;;
+def genchh(suffix $) =
+ fill(arcus($a11,$c11) -- arcus($c1,$a1) -- cycle);
+ fill(arcus($e11,$g11) -- arcus($g1,$e1) -- cycle);
+ fill(arcus($c7,$e7) -- arcus($e5,$c5) -- cycle);
+cull currentpicture keeping (1,infinity); enddef;;
+def genchi(suffix $) =
+ fill(arcus($c11,$e11) -- arcus($e1,$c1) -- cycle);
+cull currentpicture keeping (1,infinity); enddef;;
+def genchj(suffix $) =
+ corner($g1);corner($a1);
+ fill(arcus($a3,$g3) -- z$g1a -- arcus($g1b,$a1d) -- z$a1a --
+ cycle);
+ fill(arcus($c4,$a4) -- arcus($a3,$c3) -- cycle);
+ fill(arcus($g11,$e11) -- arcus($e3,$g3) -- cycle);
+cull currentpicture keeping (1,infinity); enddef;;
+def genchij(suffix $) =
+ corner($g1);corner($a1);
+ fill(arcus($a3,$g3) -- z$g1a -- arcus($g1b,$a1d) -- z$a1a --
+ cycle);
+ fill(arcus($c4,$a4) -- arcus($a3,$c3) -- cycle);
+ fill(arcus($g11,$e11) -- arcus($e3,$g3) -- cycle);
+ fill(arcus($a11,$c11) -- arcus($c7,$a7) -- cycle);
+cull currentpicture keeping (1,infinity); enddef;;
+def genchk(suffix $) =
+ corner($e6);corner($g8);corner($g4);
+ fill(arcus($e11,$g11) -- z$g8c -- z$e6 -- z$g4a -- arcus($g1,$e1)
+ -- z$e4 -- arcus($d5,$c5) -- arcus($c7,$d7) -- z$e8 -- cycle);
+ fill(arcus($a11,$c11) -- arcus($c1,$a1) -- cycle );
+cull currentpicture keeping (1,infinity); enddef;;
+def genchl(suffix $) =
+ fill(arcus($a11,$c11) -- arcus($c3,$g3) -- arcus($g1,$a1) -- cycle);
+cull currentpicture keeping (1,infinity); enddef;;
+def genchm(suffix $) =
+ fill(arcus($j11,$b11) -- z$d8 -- z$d5 -- z$b8 -- arcus($b1,$j1)
+ -- cycle);
+ fill(arcus($f11,$h11) -- arcus($h1,$f1) -- z$f8 -- z$d5 -- z$d8
+ -- cycle);
+cull currentpicture keeping (1,infinity); enddef;;
+def genchn(suffix $) =
+ fill(arcus($a11,$c11) -- arcus($c1,$a1) -- cycle);
+ fill(arcus($e11,$g11) -- arcus($g1,$e1) -- cycle);
+ fill(z$c11 -- z$e6 -- z$e1 -- z$c6 -- cycle);
+cull currentpicture keeping (1,infinity); enddef;;
+def gencho(suffix $) =
+ corner($g11);corner($g1);corner($a1);corner($a11);
+ fill(arcus($a11d,$g11b) -- z$g11c -- z$g1a --
+ arcus($g1b,$a1d) -- z$a1a -- z$a11c -- cycle);
+ unfill(arcus($c9,$e9) -- arcus($e3,$c3) -- cycle);
+cull currentpicture keeping (1,infinity); enddef;;
+def genchq(suffix $) =
+ corner($g11);corner($g1);corner($a1);corner($a11);
+ corner($e1);corner($g3);
+ fill(arcus($a11d,$g11b) -- z$g11c -- z$g1a --
+ arcus($g1b,$a1d) -- z$a1a -- z$a11c -- cycle);
+ unfill(arcus($c9,$e9) -- z$e4 -- arcus($d3,$c3) -- cycle);
+ unfill(arcus($e1d,$e1b) -- z$e1a -- cycle);
+ unfill(z$g3a -- z$g3b -- z$g3c -- cycle);
+cull currentpicture keeping (1,infinity); enddef;;
+def genchp(suffix $) =
+ corner($g11);corner($g5);
+ fill(arcus($a11,$g11b) -- z$g11c -- z$g5a --
+ arcus($g5b,$a5) -- cycle);
+ unfill(arcus($c9,$e9) -- arcus($e7,$c7) -- cycle);
+ fill(arcus($a1,$c1) -- arcus($c6,$a6) -- cycle);
+cull currentpicture keeping (1,infinity); enddef;;
+def genchr(suffix $) =
+ corner($g11);corner($g6);corner($e5);
+ fill(arcus($a11,$g11b) -- z$g11c -- z$g6a -- z$g6b -- z$g6c --
+ arcus($g1,$a1) -- cycle);
+ unfill(arcus($c9,$e9) -- arcus($e7,$c7) -- cycle);
+ unfill(arcus($c5,$e5b) -- z$e5c -- arcus($e1,$c1) -- cycle);
+cull currentpicture keeping (1,infinity); enddef;;
+def genchs(suffix $) =
+ corner($g11);corner($a11);corner($g1);corner($a1);corner($g7);
+ corner($a5);
+ fill(arcus($a11d,$g11b) -- z$g11c -- arcus($g9,$a9) -- z$a11c --
+ cycle);
+ fill(arcus($a7,$g7b) -- z$g7c -- arcus($g5,$a5d) -- z$a5a --
+ cycle);
+ fill(arcus($a3,$g3) -- z$g1a -- arcus($g1b,$a1d) -- z$a1a --
+ cycle);
+ fill(arcus($c4,$a4) -- arcus($a3,$c3) -- cycle);
+ fill(arcus($c9,$a9) -- arcus($a6,$c6) -- cycle);
+ fill(arcus($g6,$e6) -- arcus($e3,$g3) -- cycle);
+ fill(arcus($g9,$e9) -- arcus($e8,$g8) -- cycle);
+cull currentpicture keeping (1,infinity); enddef;;
+def gencht(suffix $) =
+ z$e10 = (z$e11+z$e9)/2; z$c10 = (z$c11+z$c9)/2;
+ fill(arcus($e10,$c10) -- arcus($c1,$e1) -- cycle);
+ fill(arcus($a11,$g11) -- arcus($g9,$a9) -- cycle);
+cull currentpicture keeping (1,infinity); enddef;;
+def genchu(suffix $) =
+ corner($g11);corner($g1);corner($a1);corner($a11);
+ fill(arcus($a11,$g11) -- z$g1a --
+ arcus($g1b,$a1d) -- z$a1a -- z$a11c -- cycle);
+ unfill(arcus($c11,$e11) -- arcus($e3,$c3) -- cycle);
+cull currentpicture keeping (1,infinity); enddef;;
+def genchv(suffix $) =
+ fill(arcus($a11,$c11) -- arcus($c6,$a6) -- cycle);
+ fill(arcus($e11,$g11) -- arcus($g6,$e6) -- cycle);
+ fill(z$d1 -- arcus($g6,$e6) -- z$d4 -- arcus($c6,$a6) -- cycle);
+cull currentpicture keeping (1,infinity); enddef;;
+def genchw(suffix $) =
+ fill(arcus($j11,$b11) -- z$c4 -- z$d6 -- z$d3 -- z$b1 -- cycle);
+ fill(arcus($f11,$h11) -- z$f1 -- z$d3 -- z$d6 -- z$e4 -- cycle);
+cull currentpicture keeping (1,infinity); enddef;;
+def genchx(suffix $) =
+ corner($a7);corner($a5);corner($g5);corner($b6);corner($f6);
+ corner($g7);corner($e9);corner($e3);corner($c9);corner($c3);
+ fill(arcus($a11,$c11) -- z$c9c -- z$d7 -- z$d6 -- z$b6d -- z$a7
+ -- cycle);
+ fill(arcus($e11,$g11) -- z$g7 -- z$f6b -- z$d6 -- z$d7 -- z$e9c
+ -- cycle);
+ fill(arcus($a1,$c1) -- z$c3a -- z$d5 -- z$d6 -- z$b6d -- z$a5
+ -- cycle);
+ fill(arcus($e1,$g1) -- z$g5 -- z$f6b -- z$d6 -- z$d5 -- z$e3a
+ -- cycle);
+cull currentpicture keeping (1,infinity); enddef;;
+def genchy(suffix $) =
+ corner($a7);corner($g7);corner($e9);corner($c9);
+ fill(arcus($a11,$c11) -- z$c5 -- z$a7a -- cycle);
+ fill(arcus($e11,$g11) -- z$g7a -- z$e5 -- cycle);
+ fill(z$c9c -- z$d7 -- z$e9c -- arcus($e1,$c1) -- cycle);
+cull currentpicture keeping (1,infinity); enddef;;
+def genchz(suffix $) =
+ fill(arcus($a11,$g11) -- arcus($g9,$a9) -- cycle);
+ fill(arcus($a3,$g3) -- arcus($g1,$a1) -- cycle);
+ fill(arcus($a3,$c3) -- z$g8 -- arcus($g9,$e9) -- z$a4 -- cycle);
+cull currentpicture keeping (1,infinity); enddef;;
+def genchone(suffix $) =
+ fill(arcus($c3,$e3) -- arcus($e11,$c11) -- cycle);
+ fill(z$c11 -- z$b9 -- z$b7 -- z$c9 -- cycle);
+ fill(arcus($b1,$f1) -- arcus($f3,$b3) -- cycle);
+cull currentpicture keeping (1,infinity); enddef;;
+def genchtwo(suffix $) =
+ corner($a11);corner($g11);
+ fill(arcus($a11d,$g11b) -- z$g11c -- arcus($g9,$a9)
+ -- z$a11c -- cycle);
+ fill(arcus($a8,$c8) -- arcus($c9,$a9) -- cycle);
+ fill(arcus($a3,$g3) -- arcus($g1,$a1) -- cycle);
+ fill(arcus($a3,$c3) -- z$g7 -- arcus($g9,$e9)
+ -- z$e8 -- z$a4 -- cycle);
+cull currentpicture keeping (1,infinity); enddef;;
+def genchthr(suffix $) =
+ corner($a11);corner($g11);corner($a1);corner($g1);corner($g6);
+ fill(arcus($a11d,$g11b) -- z$g11c -- arcus($g9,$a9)
+ -- z$a11c -- cycle);
+ fill(arcus($a1d,$g1b) -- z$g1a -- arcus($g3,$a3) -- z$a1a -- cycle);
+ fill(arcus($a8,$c8) -- arcus($c9,$a9) -- cycle);
+ fill(arcus($a4,$c4) -- arcus($c3,$a3) -- cycle);
+ fill(arcus($g9,$e9) -- arcus($e7,$c7) -- arcus($c5,$e5) --
+ arcus($e3,$g3) -- z$g6c -- z$g6b -- z$g6a -- cycle);
+cull currentpicture keeping (1,infinity); enddef;;
+def genchfou(suffix $) =
+ corner($c5);corner($d9);
+ fill(arcus($d11,$f11) -- arcus($f1,$d1) -- cycle);
+ fill(arcus($a5,$g5) -- arcus($g3,$a3) -- cycle);
+ fill(arcus($a5,$c5) -- z$d9c -- z$d11 -- cycle);
+cull currentpicture keeping (1,infinity); enddef;;
+def genchfiv(suffix $) =
+ z$e2 = (z$e1+3z$e3)/4; z$g2 = (z$g1+3z$g3)/4;
+ z$a10 = (z$a11+z$a9)/2; z$c10 = (z$c11+z$c9)/2;
+ corner($g1);corner($a1);corner($g7);
+ fill(arcus($a11,$g11) -- arcus($g9,$a9) -- cycle);
+ fill(arcus($a5,$g5) -- z$g7c -- arcus($g7b,$c7) --
+ arcus($c10,$a10) -- cycle);
+ fill(arcus($a1d,$g1b) -- z$g1a -- arcus($g3,$c3) --
+ arcus($c4,$a4) -- z$a1a -- cycle);
+ fill(arcus($e6,$g6) -- arcus($g2,$e2) -- cycle);
+cull currentpicture keeping (1,infinity); enddef;;
+
+def genchsev(suffix $) =
+ corner($c5);corner($e9);
+ fill(arcus($a11,$g11) -- arcus($g9,$a9) -- cycle);
+ fill(arcus($c1,$e1) -- z$e5 -- arcus($g9,$e9) -- z$c5a -- cycle);
+cull currentpicture keeping (1,infinity); enddef;;
+def gencheig(suffix $) =
+ corner($g11); corner($g6); corner($g1);
+ corner($a6);corner($a1); corner($a11);
+ fill(arcus($a11d,$g11b) -- z$g11c --
+ z$g6a -- z$g6b -- z$g6c -- z$g1a -- arcus($g1b,$a1d) --
+ z$a1a -- z$a6c -- z$a6d -- z$a6a -- z$a11c -- cycle);
+ unfill(arcus($c9,$e9) -- arcus($e7,$c7) -- cycle);
+ unfill(arcus($c5,$e5) -- arcus($e3,$c3) -- cycle);
+cull currentpicture keeping (1,infinity); enddef;;
+def genchsix(suffix $) =
+ corner($g11);corner($a11);corner($g1);corner($a1);corner($g7);
+ corner($a5);
+ z$a2 = (z$a1+3z$a3)/4; z$c2 = (z$c1+3z$c3)/4;
+ z$e2 = (z$e1+3z$e3)/4; z$g2 = (z$g1+3z$g3)/4;
+ z$a10 = (z$a11+3z$a9)/4; z$c10 = (z$c11+3z$c9)/4;
+ z$e10 = (z$e11+3z$e9)/4; z$g10 = (z$g11+3z$g9)/4;
+ fill(arcus($a11d,$g11b) -- z$g11c -- arcus($g9,$a9) -- z$a11c --
+ cycle);
+ fill(arcus($a7,$g7b) -- z$g7c -- arcus($g5,$a5) -- cycle);
+ fill(arcus($a3,$g3) -- z$g1a -- arcus($g1b,$a1d) -- z$a1a --
+ cycle);
+ fill(arcus($c10,$a10) -- arcus($a2,$c2) -- cycle);
+ fill(arcus($g6,$e6) -- arcus($e2,$g2) -- cycle);
+ fill(arcus($g10,$e10) -- arcus($e8,$g8) -- cycle);
+cull currentpicture keeping (1,infinity); enddef;;
+def genchnin(suffix $) =
+ corner($g11);corner($a11);corner($g1);corner($a1);corner($g7);
+ corner($a5);
+ z$a2 = (z$a1+3z$a3)/4; z$c2 = (z$c1+3z$c3)/4;
+ z$e2 = (z$e1+3z$e3)/4; z$g2 = (z$g1+3z$g3)/4;
+ z$a10 = (z$a11+3z$a9)/4; z$c10 = (z$c11+3z$c9)/4;
+ z$e10 = (z$e11+3z$e9)/4; z$g10 = (z$g11+3z$g9)/4;
+ fill(arcus($a11d,$g11b) -- z$g11c -- arcus($g9,$a9) -- z$a11c --
+ cycle);
+ fill(arcus($a7,$g7) -- arcus($g5,$a5d) -- z$a5a -- cycle);
+ fill(arcus($a3,$g3) -- z$g1a -- arcus($g1b,$a1d) -- z$a1a --
+ cycle);
+ fill(arcus($c4,$a4) -- arcus($a2,$c2) -- cycle);
+ fill(arcus($c10,$a10) -- arcus($a6,$c6) -- cycle);
+ fill(arcus($g10,$e10) -- arcus($e2,$g2) -- cycle);
+cull currentpicture keeping (1,infinity); enddef;;
+
diff --git a/fonts/capbas/cmbug.mf b/fonts/capbas/cmbug.mf
new file mode 100644
index 0000000000..242815831f
--- /dev/null
+++ b/fonts/capbas/cmbug.mf
@@ -0,0 +1,21 @@
+% Computer Modern Bugs %%% Example of 'mftools'
+if unknown mag: mag := 1; fi;
+input mftools;
+uu# := 0.1pt#;
+picture groundpattern;
+gentile(0.03/mag,13,14,150uu#,150uu#,50uu#,pensquare,groundpattern)(
+1,2,6,7, 14,15,19,20, 28,29,31,32, 40,43,46, 52,56,60, 65,69,73, 78,82,86,
+91,95,99, 105,108,111, 119,120,121,122,123, 58, 85, 96, 67, 106);
+
+def endchar =
+ scantokens extra_endchar;
+ reversevideo;
+ otilepic(groundpattern,6uu#);
+ xmirror;
+% if proofing>0: makebox(proofrule); fi
+ chardx:=w; % desired width of the character in pixels
+ shipit;
+% if displaying>0: makebox(screenrule); showit; fi
+ endgroup enddef;
+input cmtt10;
+
diff --git a/fonts/capbas/cmbug.tfm b/fonts/capbas/cmbug.tfm
new file mode 100644
index 0000000000..12df934421
--- /dev/null
+++ b/fonts/capbas/cmbug.tfm
Binary files differ
diff --git a/fonts/capbas/cmgray.mf b/fonts/capbas/cmgray.mf
new file mode 100644
index 0000000000..d23b0f4d5e
--- /dev/null
+++ b/fonts/capbas/cmgray.mf
@@ -0,0 +1,21 @@
+% Computer Modern Typewriter Text for use with 10 point
+if unknown mag: mag := 1; fi;
+
+input mftools;
+uu# := 0.1pt#;
+picture groundpattern;
+gentile(0.013/mag,8,8,150uu#,150uu#,50uu#,pensquare,groundpattern)(
+7,14,21,28,35,42,48,56, 6,13,20,27,34,41,48,63)
+
+def endchar =
+ scantokens extra_endchar;
+ reversevideo;reversevideo;
+ tilepic(groundpattern);
+ if proofing>0: makebox(proofrule); fi
+ chardx:=w; % desired width of the character in pixels
+ shipit;
+ if displaying>0: makebox(screenrule); showit; fi
+ clearit;
+ endgroup enddef;
+
+input cmssbx10;
diff --git a/fonts/capbas/cmgray.tfm b/fonts/capbas/cmgray.tfm
new file mode 100644
index 0000000000..ee81c2a148
--- /dev/null
+++ b/fonts/capbas/cmgray.tfm
Binary files differ
diff --git a/fonts/capbas/d7seg.mf b/fonts/capbas/d7seg.mf
new file mode 100644
index 0000000000..75258b3171
--- /dev/null
+++ b/fonts/capbas/d7seg.mf
@@ -0,0 +1,251 @@
+%%% @mffile{
+%%% filename="7seg.mf",
+%%% version="",
+%%% date="",
+%%% filetype="mf fontcreator",
+%%% package="m-capbas.arj"
+%%% author="Phons Bloemen (PhB)",
+%%% address="Eindhoven U. of Technology"
+%%% email="Internet: phons@ei.ele.tue.nl",
+%%% codetable="ISO/ASCII",
+%%% checksumtype="none",
+%%% checksum="0",
+%%% keywords="",
+%%% abstract="
+%%% Input file defining the glyphs for 7 segmet display font.
+%%% The font is drawn onto a fixed 'grid' of points. By
+%%% deformation of this 'square' grid special effects can
+%%% be achieved.
+%%% Part of Capital Baseball package"
+%%% copyright="Copyleft (L) Phons Bloemen (PhB),
+%%% according to GNU public licence version 2 or later.
+%%% (1) Do not change this file (even its name)
+%%% (2) if you do make changes, first rename it to some
+%%% other name, and mark your changes clearly.",
+%%% }
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%if unknown cmbase: input cmbase fi
+%def generate suffix t= enddef;
+%input cmtt10; font_setup;
+%% get some definitions from cmtt10 for proper setup
+%% do not ask why this sequence is used, it works!
+mode_setup;
+if unknown gensize: gensize := 10; fi;
+em# := gensize * 0.5pt#;
+slant := 0.1;
+tpp := 0.05;
+tcr := 0.22;
+font_coding_scheme:="TeX text";
+font_identifier:="D7SEG";
+font_size gensize * 1pt#;
+body_height#:=1.6em#; % height of tallest characters
+asc_height#:=1.6em#; % height of lowercase ascenders
+cap_height#:=1.6em#; % height of caps
+fig_height#:=1.6em#; % height of numerals
+x_height#:=1.6em#; % height of lowercase without ascenders
+math_axis#:=1.6em#; % axis of symmetry for math symbols
+bar_height#:=1.6em#; % height of crossbar in lowercase e
+comma_depth#:=0.1em#; % depth of comma below baseline
+desc_depth#:=0em#; % depth of lowercase descenders
+%% monospace := false;
+%% font_setup;
+font_normal_space 1.5 * em#;
+font_quad 6em#;
+font_extra_space 1.5 * em#;
+
+%%% definitions for the corners of the 7-segment display
+
+def cornern (suffix $) =
+ z$n = z$ + (0,tf) + (0,-tcr *tf) ;
+ z$nl = z$ + (-1*tf,2*tf) + (-tcr * tf, 0);
+ z$nr = z$ + (1*tf,2*tf) + (tcr *tf, 0) ;
+ labels($n);
+enddef;
+def cornere (suffix $) =
+ z$e = z$ + (1*tf,0) + (-tcr *tf,0) ;
+ z$el = z$ + (2*tf,1*tf) + (0,tcr * tf);
+ z$er = z$ + (2*tf,-1*tf) + (0,-tcr *tf) ;
+ labels($e);
+enddef;
+def corners (suffix $) =
+ z$s = z$ + (0,-1*tf) + (0,tcr *tf) ;
+ z$sl = z$ + (1*tf,-2*tf) + (tcr * tf, 0);
+ z$sr = z$ + (-1*tf,-2*tf)+ (-tcr *tf, 0) ;
+ labels($s);
+enddef;
+def cornerw (suffix $) =
+ z$w = z$ + (-1*tf,0) + (tcr *tf,0) ;
+ z$wl = z$ + (-2*tf,-1*tf)+ (0,-tcr * tf);
+ z$wr = z$ + (-2*tf,1*tf) + (0,tcr *tf) ;
+ labels($w);
+enddef;
+
+def seg(expr a) =
+if a = 1 :
+ cornere(1); cornerw(2);
+ fill(z1e -- z1el -- z2wr -- z2w -- z2wl -- z1er -- cycle);
+elseif a = 2 :
+ cornern(1); corners(3);
+ fill(z1n -- z1nl -- z3sr -- z3s -- z3sl -- z1nr -- cycle);
+elseif a = 3 :
+ cornern(3); corners(5);
+ fill(z3n -- z3nl -- z5sr -- z5s -- z5sl -- z3nr -- cycle);
+elseif a = 4 :
+ cornere(5); cornerw(6);
+ fill(z5e -- z5el -- z6wr -- z6w -- z6wl -- z5er -- cycle);
+elseif a = 5 :
+ cornern(4); corners(6);
+ fill(z4n -- z4nl -- z6sr -- z6s -- z6sl -- z4nr -- cycle);
+elseif a = 6 :
+ cornern(2); corners(4);
+ fill(z2n -- z2nl -- z4sr -- z4s -- z4sl -- z2nr -- cycle);
+elseif a = 7 :
+ cornere(3); cornerw(4);
+ fill(z3e -- z3el -- z4wr -- z4w -- z4wl -- z3er -- cycle);
+elseif a = 8 :
+ pickup pencircle scaled (3*tf);
+ z2p = z2 + (2 *tf,0);
+ drawdot(z2p);
+elseif a = 9 :
+ pickup pencircle scaled (3*tf);
+ z2p = z2 + (3 *tf, 0);
+ z2p1 = z2 + (1 *tf, 0);
+ z2p2 = z2 + (3 *tf, -2 * tf);
+ z2p3 = z2 + (0, -5 * tf);
+ fill(z2p1 -- z2p2 -- z2p3 -- cycle);
+ drawdot(z2p);
+fi;
+enddef;
+
+def segchar(expr c)(text t) =
+beginchar((char c), (1+2*slant)*em#, 1.6 * em#,0)
+ clearit;
+ tf := tpp * w;
+ z1 = (tf,tf);
+ z6 = (w-2*slant*w-tf-tf,h-tf);
+ z5 = (slant*w+tf,h-tf);
+ z2-z1 = z6-z5;
+ z3 = 0.5[z1,z5];
+ z4 = 0.5[z2,z6];
+ for a = t:
+ seg(a);
+ endfor;
+endchar;
+enddef;
+
+def segpoint(expr c)(text t) =
+beginchar((char c), 3 * tpp * em#, 2 * tpp * em#, 2 * tpp * em#)
+ clearit;
+ tf := 0.3 * w;
+ z2 = (-2*w,0);
+ for a = t:
+ seg(a);
+ endfor;
+endchar;
+enddef;
+
+%%% The space character is special
+
+beginchar(32,1*em#,2*em#,0);
+endchar;
+
+%%% The 'flychar' characters follow (upper and lower case!)
+
+segchar(33)(5,8);
+segchar(34)(3,5);
+segchar(35)(1,4,7);
+segchar(36)(1,3,7,4,6);
+segchar(37)(1,3,4,6);
+segchar(38)(1,3,4);
+segchar(39)(5);
+segchar(40)(3,4,1);
+segchar(41)(4,5,1);
+segchar(42)(1,3,7,5);
+segchar(43)(2,7,3);
+segpoint(44)(9);
+segchar(45)(7);
+segpoint(46)(8);
+segchar(47)(2,7,5);
+segchar(48)(1,2,3,4,5,6);
+segchar(49)(5,6);
+segchar(50)(4,5,7,2,1);
+segchar(51)(4,5,7,6,1);
+segchar(52)(3,7,5,6);
+segchar(53)(4,3,7,6,1);
+segchar(54)(4,3,7,6,1,2);
+segchar(55)(4,5,6);
+segchar(56)(1,2,3,4,5,6,7);
+segchar(57)(1,6,5,4,3,7);
+segchar(58)(1,8);
+segchar(59)(1,9);
+segchar(60)(4,3,7);
+segchar(61)(4,7);
+segchar(62)(4,5,7);
+segchar(63)(4,5,8);
+segchar(64)(3,4,5,7,1,2);
+segchar(65)(2,3,4,5,6,7);
+segchar(66)(3,2,1,6,7);
+segchar(67)(1,2,7);
+segchar(68)(1,2,5,6,7);
+segchar(69)(1,2,3,4,7);
+segchar(70)(2,3,4,7);
+segchar(71)(1,2,3,4,6);
+segchar(72)(2,3,5,6,7);
+segchar(73)(2,3);
+segchar(74)(1,5,6);
+segchar(75)(1,2,3,5,7);
+segchar(76)(1,2,3);
+segchar(77)(2,3,4,6,7);
+segchar(78)(2,3,4,5,6);
+segchar(79)(1,2,7,6);
+segchar(80)(2,3,4,5,7);
+segchar(81)(3,4,5,6,7);
+segchar(82)(2,7);
+segchar(83)(4,3,7,6,1);
+segchar(84)(1,2,3,7);
+segchar(85)(1,2,3,5,6);
+segchar(86)(2,3,7,5);
+segchar(87)(1,2,3,5,6,7);
+segchar(88)(4,2,7,6);
+segchar(89)(3,5,6,1);
+segchar(90)(4,5,7,2,1);
+segchar(91)(4,3,2,1);
+segchar(92)(3,7,6);
+segchar(93)(4,5,6,1);
+segchar(94)(3,4,5);
+segchar(95)(1,8);
+segchar(96)(3);
+segchar(97)(2,3,4,5,6,7);
+segchar(98)(3,2,1,6,7);
+segchar(99)(1,2,7);
+segchar(100)(1,2,5,6,7);
+segchar(101)(1,2,3,4,7);
+segchar(102)(2,3,4,7);
+segchar(103)(1,2,3,4,6);
+segchar(104)(2,3,5,6,7);
+segchar(105)(2,3);
+segchar(106)(1,5,6);
+segchar(107)(1,2,3,5,7);
+segchar(108)(1,2,3);
+segchar(109)(2,3,4,6,7);
+segchar(110)(2,3,4,5,6);
+segchar(111)(1,2,7,6);
+segchar(112)(2,3,4,5,7);
+segchar(113)(3,4,5,6,7);
+segchar(114)(2,7);
+segchar(115)(4,3,7,6,1);
+segchar(116)(1,2,3,7);
+segchar(117)(1,2,3,5,6);
+segchar(118)(2,3,7,5);
+segchar(119)(1,2,3,5,6,7);
+segchar(120)(4,2,7,6);
+segchar(121)(3,5,6,1);
+segchar(122)(4,5,7,2,1);
+segchar(123)(4,3,2,1);
+segchar(124)(3,2);
+segchar(125)(4,5,6,1);
+segchar(126)(3,5);
+bye.
+
+
diff --git a/fonts/capbas/d7seg.tfm b/fonts/capbas/d7seg.tfm
new file mode 100644
index 0000000000..afcd6e87f0
--- /dev/null
+++ b/fonts/capbas/d7seg.tfm
Binary files differ
diff --git a/fonts/capbas/deseg.mf b/fonts/capbas/deseg.mf
new file mode 100644
index 0000000000..3f4a901938
--- /dev/null
+++ b/fonts/capbas/deseg.mf
@@ -0,0 +1,301 @@
+%%% @mffile{
+%%% filename="deseg.mf",
+%%% version="",
+%%% date="",
+%%% filetype="mf fontcreator",
+%%% package="m-capbas.arj"
+%%% author="Phons Bloemen (PhB)",
+%%% address="Eindhoven U. of Technology"
+%%% email="Internet: phons@ei.ele.tue.nl",
+%%% codetable="ISO/ASCII",
+%%% checksumtype="none",
+%%% checksum="0",
+%%% keywords="",
+%%% abstract="
+%%% Input file defining the glyphs for 14 segment ('star')
+%%% display font.
+%%% The font is drawn onto a fixed 'grid' of points. By
+%%% deformation of this 'square' grid special effects can
+%%% be achieved.
+%%% Part of Capital Baseball package"
+%%% copyright="Copyleft (L) Phons Bloemen (PhB),
+%%% according to GNU public licence version 2 or later.
+%%% (1) Do not change this file (even its name)
+%%% (2) if you do make changes, first rename it to some
+%%% other name, and mark your changes clearly.",
+%%% }
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%if unknown cmbase: input cmbase fi
+%def generate suffix t= enddef;
+%input cmtt10; font_setup;
+%% get some definitions from cmtt10 for proper setup
+%% do not ask why this sequence is used, it works!
+mode_setup;
+
+if unknown gensize: gensize := 10; fi;
+em# := gensize * 0.5pt#;
+slant := 0.1;
+tpp := 0.03;
+tcr := 0.15;
+font_coding_scheme:="TeX text";
+font_identifier:="DESEG";
+font_size gensize * 1pt#;
+body_height#:=1.6em#; % height of tallest characters
+asc_height#:=1.6em#; % height of lowercase ascenders
+cap_height#:=1.6em#; % height of caps
+fig_height#:=1.6em#; % height of numerals
+x_height#:=1.6em#; % height of lowercase without ascenders
+math_axis#:=1.6em#; % axis of symmetry for math symbols
+bar_height#:=1.6em#; % height of crossbar in lowercase e
+comma_depth#:=0.1em#; % depth of comma below baseline
+desc_depth#:=0em#; % depth of lowercase descenders
+%% monospace := false;
+%% font_setup;
+font_normal_space 1.5 * em#;
+font_quad 6em#;
+font_extra_space 1.5 * em#;
+
+%%% definitions for the corners of the 14-segment display
+
+def cornern (suffix $) =
+ z$n = z$ + (0,1*tf) + (0,-tcr *tf) ;
+ z$nl = z$ + (-1*tf,3*tf) + (-tcr * tf, 0);
+ z$nr = z$ + (1*tf,3*tf) + (tcr *tf, 0) ;
+ labels($n);
+enddef;
+def cornere (suffix $) =
+ z$e = z$ + (1*tf,0) + (-tcr *tf,0) ;
+ z$el = z$ + (3*tf,1*tf) + (0,tcr * tf);
+ z$er = z$ + (3*tf,-1*tf) + (0,-tcr *tf) ;
+ labels($e);
+enddef;
+def corners (suffix $) =
+ z$s = z$ + (0,-1*tf) + (0,tcr *tf) ;
+ z$sl = z$ + (1*tf,-3*tf) + (tcr * tf, 0);
+ z$sr = z$ + (-1*tf,-3*tf)+ (-tcr *tf, 0) ;
+ labels($s);
+enddef;
+def cornerw (suffix $) =
+ z$w = z$ + (-1*tf,0) + (tcr *tf,0) ;
+ z$wl = z$ + (-3*tf,-1*tf)+ (0,-tcr * tf);
+ z$wr = z$ + (-3*tf,1*tf) + (0,tcr *tf) ;
+ labels($w);
+enddef;
+def cornerne (suffix $) =
+ z$ne = z$ + (1*tf,1*tf) + (0,-tcr *tf) ;
+ z$nel = z$ + (2*tf,4*tf) + (-tcr * tf, 0);
+ z$ner = z$ + (4*tf,2*tf) + (tcr *tf, 0) ;
+ labels($ne);
+enddef;
+def corneres (suffix $) =
+ z$es = z$ + (1*tf,-1*tf) + (-tcr *tf,0) ;
+ z$esl = z$ + (4*tf,-2*tf) + (0,tcr * tf);
+ z$esr = z$ + (2*tf,-4*tf) + (0,-tcr *tf) ;
+ labels($es);
+enddef;
+def cornersw (suffix $) =
+ z$sw = z$ + (-1*tf,-1*tf) + (0,tcr *tf) ;
+ z$swl = z$ + (-2*tf,-4*tf) + (tcr * tf, 0);
+ z$swr = z$ + (-4*tf,-2*tf)+ (-tcr *tf, 0) ;
+ labels($sw);
+enddef;
+def cornerwn (suffix $) =
+ z$wn = z$ + (-1*tf,1*tf) + (tcr *tf,0) ;
+ z$wnl = z$ + (-4*tf,2*tf)+ (0,-tcr * tf);
+ z$wnr = z$ + (-2*tf,4*tf) + (0,tcr *tf) ;
+ labels($wn);
+enddef;
+
+def seg(expr a) =
+if a = 1 :
+ cornere(1); cornerw(2);
+ fill(z1e -- z1el -- z2wr -- z2w -- z2wl -- z1er -- cycle);
+elseif a = 2 :
+ cornern(1); corners(3);
+ fill(z1n -- z1nl -- z3sr -- z3s -- z3sl -- z1nr -- cycle);
+elseif a = 3 :
+ cornern(3); corners(5);
+ fill(z3n -- z3nl -- z5sr -- z5s -- z5sl -- z3nr -- cycle);
+elseif a = 4 :
+ cornere(5); cornerw(6);
+ fill(z5e -- z5el -- z6wr -- z6w -- z6wl -- z5er -- cycle);
+elseif a = 5 :
+ cornern(4); corners(6);
+ fill(z4n -- z4nl -- z6sr -- z6s -- z6sl -- z4nr -- cycle);
+elseif a = 6 :
+ cornern(2); corners(4);
+ fill(z2n -- z2nl -- z4sr -- z4s -- z4sl -- z2nr -- cycle);
+elseif a = 7 :
+ cornere(3); cornerw(7);
+ fill(z3e -- z3el -- z7wr -- z7w -- z7wl -- z3er -- cycle);
+elseif a = 8 :
+ corneres(5); cornerwn(7);
+ fill(z5es -- z5esl -- z7wnr -- z7wn -- z7wnl -- z5esr -- cycle);
+elseif a = 9 :
+ corners(8); cornern(7);
+ fill(z8s -- z8sl -- z7nr -- z7n -- z7nl -- z8sr -- cycle);
+elseif a = 10 :
+ cornersw(6); cornerne(7);
+ fill(z6sw -- z6swl -- z7ner -- z7ne -- z7nel -- z6swr -- cycle);
+elseif a = 11 :
+ cornerw(4); cornere(7);
+ fill(z4w -- z4wl -- z7er -- z7e -- z7el -- z4wr -- cycle);
+elseif a = 12 :
+ cornerwn(2); corneres(7);
+ fill(z2wn -- z2wnl -- z7esr -- z7es -- z7esl -- z2wnr -- cycle);
+elseif a = 13 :
+ cornern(9); corners(7);
+ fill(z9n -- z9nl -- z7sr -- z7s -- z7sl -- z9nr -- cycle);
+elseif a = 14 :
+ cornerne(1); cornersw(7);
+ fill(z1ne -- z1nel -- z7swr -- z7sw -- z7swl -- z1ner -- cycle);
+elseif a = 15 :
+ pickup pencircle scaled (3*tf);
+ z2p = z2 + (2 *tf,0);
+ drawdot(z2p);
+elseif a = 16 :
+ pickup pencircle scaled (3*tf);
+ z2p = z2 + (3 *tf, 0);
+ z2p1 = z2 + (1 *tf, 0);
+ z2p2 = z2 + (3 *tf, -2 * tf);
+ z2p3 = z2 + (0, -5 * tf);
+ fill(z2p1 -- z2p2 -- z2p3 -- cycle);
+ drawdot(z2p);
+fi;
+enddef;
+
+def segchar(expr c)(text t) =
+beginchar((char c), (1+2*slant)*em#, 1.6 * em#,0)
+ clearit;
+ tf := tpp * w;
+ z1 = (tf,tf);
+ z6 = (w-2*slant*w-tf-tf,h-tf);
+ z5 = (slant*w+tf,h-tf);
+ z2-z1 = z6-z5;
+ z3 = 0.5[z1,z5];
+ z4 = 0.5[z2,z6];
+ z8 = 0.5[z5,z6];
+ z9 = 0.5[z1,z2];
+ z7 = 0.5[z3,z4];
+ for a = t:
+ seg(a);
+ endfor;
+endchar;
+enddef;
+
+def segpoint(expr c)(text t) =
+beginchar((char c), 3 * tpp * em#, 2 * tpp * em#, 2 * tpp * em#)
+ clearit;
+ tf := 0.3 * w;
+ z2 = (-2*w,0);
+ for a = t:
+ seg(a);
+ endfor;
+endchar;
+enddef;
+
+%%% The space character is special
+
+beginchar(32,1*em#,2*em#,0);
+endchar;
+
+%%% The 'flychar' characters follow (upper and lower case!)
+
+segchar(33)(5,15);
+segchar(34)(3,5);
+segchar(35)(1,2,3,4,5,6,7,9,11,13);
+segchar(36)(1,3,7,4,6,9,11,13);
+segchar(37)(1,3,4,6,14,10);
+segchar(38)(1,2,3,6,7,9);
+segchar(39)(10);
+segchar(40)(10,13,1);
+segchar(41)(8,13,1);
+segchar(42)(7,8,9,10,11,12,13,14);
+segchar(43)(7,9,11,13);
+segpoint(44)(15);
+segchar(45)(7,11);
+segpoint(46)(16);
+segchar(47)(14,10);
+segchar(48)(1,2,3,14,10,4,5,6);
+segchar(49)(5,6);
+segchar(50)(4,5,11,14,1);
+segchar(51)(4,10,11,6,1);
+segchar(52)(3,7,5,6,11);
+segchar(53)(4,3,7,12,1);
+segchar(54)(4,3,7,11,6,1,2);
+segchar(55)(4,10,13);
+segchar(56)(1,2,3,4,5,6,7,11);
+segchar(57)(1,6,5,4,3,7,11);
+segchar(58)(11,8);
+segchar(59)(11,9);
+segchar(60)(10,12);
+segchar(61)(4,7,11);
+segchar(62)(8,14);
+segchar(63)(4,5,15);
+segchar(64)(3,4,5,7,9,6,1);
+segchar(65)(2,3,4,5,6,7,11);
+segchar(66)(1,4,5,6,11,9,13);
+segchar(67)(1,2,3,4);
+segchar(68)(1,4,5,6,9,13);
+segchar(69)(1,2,3,4,7);
+segchar(70)(2,3,4,7);
+segchar(71)(1,2,3,4,6,11);
+segchar(72)(2,3,5,6,7,11);
+segchar(73)(4,9,13,1);
+segchar(74)(1,5,6);
+segchar(75)(2,3,7,10,12);
+segchar(76)(1,2,3);
+segchar(77)(2,3,8,10,5,6);
+segchar(78)(2,3,8,12,5,6);
+segchar(79)(1,2,3,4,5,6);
+segchar(80)(2,3,4,5,7,11);
+segchar(81)(1,2,3,4,5,6,12);
+segchar(82)(2,3,4,5,7,11,12);
+segchar(83)(4,8,12,1);
+segchar(84)(4,9,13);
+segchar(85)(1,2,3,5,6);
+segchar(86)(2,3,14,10);
+segchar(87)(2,3,14,12,5,6);
+segchar(88)(8,10,12,14);
+segchar(89)(8,10,13);
+segchar(90)(4,10,14,1);
+segchar(91)(4,3,2,1);
+segchar(92)(8,12);
+segchar(93)(4,5,6,1);
+segchar(94)(14,12);
+segchar(95)(1);
+segchar(96)(8);
+segchar(97)(1,12,7,2);
+segchar(98)(1,12,7,3,2);
+segchar(99)(1,2,7);
+segchar(100)(1,14,11,5,6);
+segchar(101)(1,2,7,14);
+segchar(102)(10,11,7,13);
+segchar(103)(1,5,6,10,11);
+segchar(104)(2,3,6,7,11);
+segchar(105)(7,11,13,1);
+segchar(106)(1,11,6);
+segchar(107)(2,3,7,10,12);
+segchar(108)(1,2);
+segchar(109)(2,3,8,10,5,6);
+segchar(110)(2,7,12);
+segchar(111)(1,2,7,11,6);
+segchar(112)(2,3,4,5,7,11);
+segchar(113)(3,4,5,6,7,11);
+segchar(114)(11,13);
+segchar(115)(11,12,1);
+segchar(116)(3,7,2,1);
+segchar(117)(1,2,6);
+segchar(118)(2,14);
+segchar(119)(2,14,12,6);
+segchar(120)(8,10,12,14);
+segchar(121)(8,10,13);
+segchar(122)(7,14,1);
+segchar(123)(4,8,14,1);
+segchar(124)(9,13);
+segchar(125)(4,10,12,1);
+segchar(126)(14,12);
+bye.
+
+
diff --git a/fonts/capbas/deseg.tfm b/fonts/capbas/deseg.tfm
new file mode 100644
index 0000000000..5fd9dacd08
--- /dev/null
+++ b/fonts/capbas/deseg.tfm
Binary files differ
diff --git a/fonts/capbas/flyspec.mf b/fonts/capbas/flyspec.mf
new file mode 100644
index 0000000000..0d59095136
--- /dev/null
+++ b/fonts/capbas/flyspec.mf
@@ -0,0 +1,184 @@
+%%% @mffile{
+%%% filename="flyspec.mf",
+%%% version="",
+%%% date="",
+%%% filetype="mf fontcreator",
+%%% package="m-capbas.arj"
+%%% author="Phons Bloemen (PhB)",
+%%% address="Eindhoven U. of Technology"
+%%% email="Internet: phons@ei.ele.tue.nl",
+%%% codetable="ISO/ASCII",
+%%% checksumtype="none",
+%%% checksum="0",
+%%% keywords="",
+%%% abstract="
+%%% Generates flyspec font, a 5x5 grid font.
+%%% This is the 'Flyspec 3' font as mentioned in
+%%% 'the Jargon File'. May be even Flyspec 2!
+%%% Part of Capital Baseball package"
+%%% copyright="Copyleft (L) Phons Bloemen (PhB),
+%%% according to GNU public licence version 2 or later.
+%%% (1) Do not change this file (even its name)
+%%% (2) if you do make changes, first rename it to some
+%%% other name, and mark your changes clearly.",
+%%% }
+%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
+%% if unknown cmbase: input cmbase fi
+%% mode_setup;
+%% def generate suffix t= enddef;
+%% input cmtt10; font_setup;
+%% get some definitions from cmtt10 for proper setup
+%% do not ask why this sequence is used, it works!
+
+mode_setup;
+
+if unknown gensize: gensize := 10; fi;
+em# := gensize * 0.3pt#;
+uu# := 0.3 em#;
+font_coding_scheme:="TeX text";
+font_identifier:="FLYSPEC";
+font_size gensize * 1pt#;
+body_height#:=5uu#; % height of tallest characters
+asc_height#:=5uu#; % height of lowercase ascenders
+cap_height#:=5uu#; % height of caps
+fig_height#:=5uu#; % height of numerals
+x_height#:=4uu#; % height of lowercase without ascenders
+math_axis#:=3uu#; % axis of symmetry for math symbols
+bar_height#:=3uu#; % height of crossbar in lowercase e
+comma_depth#:=1uu#; % depth of comma below baseline
+desc_depth#:=1uu#; % depth of lowercase descenders
+%% monospace := false;
+%% font_setup;
+font_normal_space 4uu#;
+font_quad 18uu#;
+font_extra_space 4uu#;
+
+%%% This draws the dot matrix (a generic function, can
+%%% be used for many dot matrix characters).
+%%% Parameters of 'flychar':
+%%% c : character number (decimal)
+%%% k : # dots horizontal ('width') 0 1 2 3
+%%% l : # dots vertical ('height') 4 5 6 7
+%%% m : # dots descender ('depth') 8 9 10 11
+%%% t : sequence of dot numbers to set. 12 13 14 15
+%%% Dot numbering of a 4 x 5 'flychar': 16 17 18 19
+
+def flychar(expr c,k,l,m)(text t) =
+beginchar((char c), (k+1)*uu#, l*uu#, m*uu#);
+ clearit;
+ pickup pensquare xscaled (w/(k+1)) yscaled((h+d)/(l+m));
+ for a = t :
+ drawdot((0.5+(a mod k))*w/(k+1),h-((0.5+floor(a/k))*(h+d)/(l+m)));
+ endfor;
+endchar;
+enddef;
+
+%%% The space character is special
+
+beginchar(32,4*uu#,5*uu#,0);
+endchar;
+
+%%% The 'flychar' characters follow (upper and lower case!)
+
+flychar(33,1,5,0)(0,1,2,4);
+flychar(34,3,3,0)(0,2,3,5);
+flychar(35,5,5,0)(1,3,5,6,7,8,9,11,13,15,16,17,18,19,21,23);
+flychar(36,5,5,0)(1,2,3,4,5,7,11,12,13,17,19,20,21,22,23);
+flychar(37,5,5,0)(0,1,4,5,8,12,16,19,20,23,24);
+flychar(38,5,5,0)(1,5,7,11,15,17,19,21,22,23);
+flychar(39,2,3,0)(1,2);
+flychar(40,2,5,0)(1,2,4,6,9);
+flychar(41,2,5,0)(0,3,5,7,8);
+flychar(42,5,5,0)(2,5,7,9,11,12,13,15,17,19,22);
+flychar(43,5,5,0)(2,7,10,11,12,13,14,17,22);
+flychar(44,2,4,1)(7,8);
+flychar(45,5,5,0)(10,11,12,13,14);
+flychar(46,1,5,0)(4);
+flychar(47,5,5,0)(4,8,12,16,20);
+flychar(48,5,5,0)(1,2,3,5,9,10,14,15,19,21,22,23);
+flychar(49,5,5,0)(1,2,7,12,17,21,22,23);
+flychar(50,5,5,0)(0,1,2,3,9,12,13,16,20,21,22,23,24);
+flychar(51,5,5,0)(0,1,2,3,4,8,12,13,15,19,21,22,23);
+flychar(52,5,5,0)(0,4,5,9,10,11,12,13,14,19,24);
+flychar(53,5,5,0)(0,1,2,3,4,5,10,11,12,13,19,20,21,22,23);
+flychar(54,5,5,0)(1,2,3,4,5,10,11,12,13,15,19,21,22,23);
+flychar(55,5,5,0)(0,1,2,3,4,9,14,19,24);
+flychar(56,5,5,0)(1,2,3,5,9,11,12,13,15,19,21,22,23);
+flychar(57,5,5,0)(1,2,3,5,9,11,12,13,14,19,20,21,22,23);
+flychar(58,1,5,0)(1,3);
+flychar(59,2,4,1)(3,7,8);
+flychar(60,3,5,0)(2,4,6,10,14);
+flychar(61,5,5,0)(5,6,7,8,9,15,16,17,18,19);
+flychar(62,3,5,0)(0,4,8,10,12);
+flychar(63,5,5,0)(1,2,3,5,9,13,22);
+flychar(64,5,5,0)(0,1,2,3,4,5,6,9,10,11,14,19,20,21,22,23,24);
+flychar(65,5,5,0)(1,2,3,5,9,10,11,12,13,14,15,19,20,24);
+flychar(66,5,5,0)(0,1,2,3,5,9,10,11,12,13,15,19,20,21,22,23);
+flychar(67,5,5,0)(0,1,2,3,4,5,10,15,20,21,22,23,24);
+flychar(68,5,5,0)(0,1,2,3,5,9,10,14,15,19,20,21,22,23);
+flychar(69,5,5,0)(0,1,2,3,4,5,10,11,12,13,15,20,21,22,23,24);
+flychar(70,5,5,0)(0,1,2,3,4,5,10,11,12,13,15,20);
+flychar(71,5,5,0)(1,2,3,4,5,10,15,19,21,22,23,24);
+flychar(72,5,5,0)(0,4,5,9,10,11,12,13,14,15,19,20,24);
+flychar(73,3,5,0)(0,1,2,4,7,10,12,13,14);
+flychar(74,3,5,0)(0,1,2,5,8,11,12,13);
+flychar(75,5,5,0)(0,4,5,8,10,11,12,15,18,20,24);
+flychar(76,5,5,0)(0,5,10,15,20,21,22,23,24);
+flychar(77,5,5,0)(0,4,5,6,8,9,10,12,14,15,19,20,24);
+flychar(78,5,5,0)(0,4,5,6,9,10,12,14,15,18,19,20,24);
+flychar(79,5,5,0)(0,1,2,3,4,5,9,10,14,15,19,20,21,22,23,24);
+flychar(80,5,5,0)(0,1,2,3,5,9,10,11,12,13,15,20);
+flychar(81,5,5,0)(0,1,2,3,4,5,9,10,12,14,15,18,20,21,22,24);
+flychar(82,5,5,0)(0,1,2,3,5,9,10,11,12,13,15,18,20,24);
+flychar(83,5,5,0)(1,2,3,4,5,11,12,13,19,20,21,22,23);
+flychar(84,5,5,0)(0,1,2,3,4,7,12,17,22);
+flychar(85,5,5,0)(0,4,5,9,10,14,15,19,21,22,23);
+flychar(86,5,5,0)(0,4,5,9,10,14,16,18,22);
+flychar(87,5,5,0)(0,4,5,9,10,12,14,15,16,18,19,21,23);
+flychar(88,5,5,0)(0,4,6,8,12,16,18,20,24);
+flychar(89,5,5,0)(0,4,6,8,12,17,22);
+flychar(90,5,5,0)(0,1,2,3,4,8,12,16,20,21,22,23,24);
+flychar(91,2,5,0)(0,1,2,4,6,8,9);
+flychar(92,5,5,0)(0,6,12,18,24);
+flychar(93,2,5,0)(0,1,3,5,7,8,9);
+flychar(94,3,5,0)(1,3,5);
+flychar(95,5,4,1)(20,21,22,23,24);
+flychar(96,2,3,0)(1,2);
+flychar(97,4,4,0)(1,2,4,6,8,10,13,14,15);
+flychar(98,4,5,0)(0,4,5,6,8,11,12,15,16,17,18);
+flychar(99,4,4,0)(1,2,3,4,8,13,14,15);
+flychar(100,4,5,0)(3,5,6,7,8,11,12,15,17,18,19);
+flychar(101,4,4,0)(1,2,4,7,8,10,13,14,15);
+flychar(102,4,5,0)(2,3,5,8,9,10,13,17);
+flychar(103,4,4,1)(1,2,3,4,7,9,10,11,15,17,18);
+flychar(104,4,5,0)(0,4,5,6,7,8,11,12,15,16,19);
+flychar(105,1,5,0)(0,2,3,4);
+flychar(106,2,5,1)(1,5,7,9,10);
+flychar(107,4,5,0)(0,4,7,8,10,12,13,16,18);
+flychar(108,2,5,0)(0,2,4,6,8,9);
+flychar(109,5,4,0)(1,3,5,7,9,10,12,14,15,19);
+flychar(110,4,4,0)(0,1,2,4,7,8,11,12,15);
+flychar(111,4,4,0)(1,2,4,7,8,11,13,14);
+flychar(112,4,4,1)(0,1,2,4,7,8,11,12,13,14,16);
+flychar(113,4,4,1)(1,2,3,4,7,8,11,13,14,15,19);
+flychar(114,3,4,0)(1,2,3,6,9);
+flychar(115,4,4,0)(1,2,4,11,13,14);
+flychar(116,3,5,0)(1,3,4,5,7,10,13,14);
+flychar(117,4,4,0)(0,3,4,7,8,11,13,14,15);
+flychar(118,4,4,0)(0,3,4,6,8,9,12);
+flychar(119,5,4,0)(0,4,5,7,9,10,11,13,14,16,18);
+flychar(120,4,4,0)(0,3,5,7,10,12,13,15);
+flychar(121,4,4,1)(0,3,4,7,9,10,11,15,17,18);
+flychar(122,4,4,0)(0,1,2,3,6,9,12,13,14,15);
+flychar(123,3,5,0)(0,1,4,8,10,12,13);
+flychar(124,1,5,0)(0,1,2,3,4);
+flychar(125,3,5,0)(1,2,4,6,10,13,14);
+flychar(126,4,5,0)(1,3,4,6);
+
+bye.
+
+
+
diff --git a/fonts/capbas/flyspec.tfm b/fonts/capbas/flyspec.tfm
new file mode 100644
index 0000000000..5f19fd7060
--- /dev/null
+++ b/fonts/capbas/flyspec.tfm
Binary files differ
diff --git a/fonts/capbas/mftools.mf b/fonts/capbas/mftools.mf
new file mode 100644
index 0000000000..0be43c14e3
--- /dev/null
+++ b/fonts/capbas/mftools.mf
@@ -0,0 +1,223 @@
+%%% @mffile{
+%%% filename="mftools.mf",
+%%% version="",
+%%% date="",
+%%% filetype="mf inputfile",
+%%% package="m-capbas.arj"
+%%% author="Phons Bloemen (PhB)",
+%%% address="Eindhoven U. of Technology,
+%%% Fac. of Electrical Engineering,
+%%% P. O. Box 513, NL-5600 MB Eindhoven
+%%% email="Internet: phons@ei.ele.tue.nl",
+%%% codetable="ISO/ASCII",
+%%% checksumtype="none",
+%%% checksum="0",
+%%% keywords="",
+%%% abstract="Metafont file containing a collection of
+%%% macros to do various funny things to characters.
+%%% Usage: copy a standard font file ('cmtt10.mf') and
+%%% paste a copy of the 'endchar' function from 'plain.mf'
+%%% into it. Edit the 'endchar' function to your wishes
+%%% using these macros. The macros work on the already
+%%% rendered characters before they are stored into the
+%%% font. Let METAFONT run and watch the results!
+%%% Examples of changed 'endchars' in cmbugs.mf and cmgray.mf
+%%% Part of Capital Baseball package"
+%%% copyright="Copyleft (L) Phons Bloemen (PhB),
+%%% according to GNU public licence version 2 or later.
+%%% (1) Do not change this file (even its name)
+%%% (2) if you do make changes, first rename it to some
+%%% other name, and mark your changes clearly.",
+%%% }
+%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% To 'outline' a picture. Only the 'edge' of a picture remains.
+% Thickness of edge controlled by 'th'.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def ooutline (expr th) =
+ save v,n;
+ cull currentpicture keeping (1,infinity);
+ picture v; v:= currentpicture;
+ clearit;
+ for n = 0 step 45 until 359:
+ addto currentpicture also (v shifted ((0,th) rotated n));
+ addto currentpicture also -v;
+ cull currentpicture keeping (-infinity,-1) withweight -1;
+ endfor;
+ cull currentpicture keeping (-infinity,-1);
+enddef;
+
+def outline (expr th) =
+ begingroup;
+ save v,n;
+ cull currentpicture keeping (1,infinity);
+ picture v; v:= currentpicture;
+ clearit;
+ for n = 0 step 24 until 359:
+ addto currentpicture also (v shifted ((0,th) rotated n));
+ endfor;
+ cull currentpicture keeping (1,infinity);
+ addto currentpicture also -v;
+ endgroup;
+enddef;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% To 'double outline' a picture, with a surrounding line.
+% Parameter tha controls the thickness of the surrounding line,
+% parameter thb-tha controls the distance between line and picture
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def douboutline (expr thb,tha) =
+ begingroup;
+ save va,vb;
+ picture va,vb; va:=currentpicture;
+ outline(tha);
+ vb := currentpicture;
+ currentpicture := va;
+ outline(thb);
+ addto currentpicture also va - vb;
+ cull currentpicture keeping (1,infinity);
+ endgroup;
+enddef;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% gentile: generate a tiling pattern
+% A pattern of tiles is generated, large enough to cover any
+% character in the font. One tile is k*l 'units' long. The units
+% are numbered 0 -- (k*l)-1. On the units listed in 't', a dot is
+% put down with the pencil typed by 'potlood'. The parameters
+% 'ww,hh,dd' outline the largest character in the font.
+% Use the gentile macro before doing anything with the font, and
+% save the resulting tiling pattern in a separate 'picture'
+% variable. This picture variable can then be used by 'tilepic'.
+% Parameters:
+% ww: base width of the font (width of letter 'M')
+% hh: base height of font (height of capitals)
+% dd: base depth of font (depth of descenders)
+% k, l: the tile consists of k x l 'pixels'
+% gr: granularity factor. The 'currentpicture' is divided into
+% 1/gr x 1/gr pixels, the pixels are grouped together to tiles.
+% A pixels will be of size (w*gr * (h+d)*gr). Low values
+% mean finer patterns, but they consume a lot of Metafonts
+% resources, and may be subject to 'discretization'
+% problems. A big metafont can handle about gr=0.001.
+% potlood: A pencil type. Usually a circular tip.
+% t: a list of numbers, indicating 0,1,2
+% the dots in a tile. A 3 x 3 3,4,5
+% tile is numbered like this: 6,7,8
+% Other tile sizes have similar numberings.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def gentile(expr gr,k,l,ww,hh,dd,potlood,pict)(text t) =
+begingroup
+ mode_setup;
+ charcode:=0;
+ charwd:=ww;
+ w:=hround(charwd*hppp);
+ charht:=hh;
+ h:=vround(charht*hppp);
+ chardp:=dd;
+ d:=vround(chardp*hppp);
+ charic:=0; clearxy; clearit; clearpen; scantokens extra_beginchar;
+ pickup potlood xscaled (gr*w/1) yscaled(gr*(h+d)/1);
+ for c = t :
+ drawdot((c mod k)*gr*w,floor(c/k)*gr*(h+d)-d);
+ cull currentpicture keeping (1,infinity) withweight 1;
+ endfor;
+ for a=1,2,4,8,16,32,64,128,256,512,1024,2048:
+ exitif ((a * gr * l) > 1);
+ b := (a*gr*l*(h+d));
+ addto currentpicture also currentpicture shifted (0,b);
+ cull currentpicture keeping (1,infinity) withweight 1;
+ endfor;
+ for a=1,2,4,8,16,32,64,128,256,512,1024,2048:
+ exitif ((a * gr * k) > 1);
+ b := (a*gr*k*w);
+ addto currentpicture also currentpicture shifted (b,0);
+ cull currentpicture keeping (1,infinity) withweight 1;
+ endfor;
+ groundpattern := currentpicture;
+ scantokens extra_endchar;
+ chardx:=w; % desired width of the character in pixels
+ pixels_per_inch:=pixels_per_inch/mag;
+ %%% otherwise magnification is squared
+endgroup;
+enddef;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% The current picture is overlaid by a tiling pattern 'til'. The
+% pattern may be generated with 'gentile'
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def tilepic (expr til) =
+ cull currentpicture keeping (1,infinity) withweight 1;
+ addto currentpicture also til shifted (0,-d);
+ cull currentpicture keeping (2,infinity) withweight 1;
+enddef;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% As tilepic, but the current picture is first 'outlined': it
+% will become patterned with tile pattern 'til', and with black
+% edges. The parameter 'th' controls edge thickness
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def otilepic (expr til,th)=
+ save v,n;
+ cull currentpicture keeping (1,infinity);
+ picture v; v:= currentpicture;
+ clearit;
+ for n = 0 step 24 until 359:
+ addto currentpicture also (v shifted ((0,th) rotated n));
+ endfor;
+ cull currentpicture keeping (1,infinity);
+ cull v keeping (1,infinity) withweight -1;
+ addto v also currentpicture;
+ addto currentpicture also til shifted (0,-d);
+ cull currentpicture keeping (2,2);
+ addto currentpicture also v;
+ cull currentpicture keeping (1,infinity);
+enddef;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% xmirror and ymirror
+% Mirrors a picture. This is done around the central vertical
+% (horizontal) axis of the character: the line x=.5w (y=.5h)
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def xmirror =
+ save v,n,t;
+ t := tracingequations;
+ tracingequations := 1;
+ cull currentpicture keeping (1,infinity);
+ picture v; v:= currentpicture;
+ clearit;
+ currentpicture := v reflectedabout ((0,0), (0,h))
+ shifted (w,0);
+enddef;
+
+def ymirror =
+ save v,n,t;
+ t := tracingequations;
+ tracingequations := 1;
+ cull currentpicture keeping (1,infinity);
+ picture v; v:= currentpicture;
+ clearit;
+ currentpicture := v reflectedabout ((0,0), (w,0))
+ shifted (0,h);
+enddef;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% reversevideo
+% Inverts a picture. The outer boundary is assumed to be
+% rectangular. A box of width w (character width) and
+% height h + d. Here w,h,d are defined by 'beginchar'
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def reversevideo =
+ begingroup;
+ save vv,v; picture v,vv;
+ cull currentpicture keeping (1,infinity);
+ v:= currentpicture;
+ clearit;
+ fill (0,h)--(w,h)--(w,-d)--(0,-d)--cycle;
+ cull currentpicture keeping (1,infinity);
+ vv:=currentpicture-v;
+ currentpicture:=vv;
+ endgroup;
+enddef;
diff --git a/fonts/capbas/necker.mf b/fonts/capbas/necker.mf
new file mode 100644
index 0000000000..fbc19202de
--- /dev/null
+++ b/fonts/capbas/necker.mf
@@ -0,0 +1,187 @@
+%%% @mffile{
+%%% filename="necker.mf",
+%%% version="",
+%%% date="",
+%%% filetype="mf fontcreator",
+%%% package="m-capbas.arj"
+%%% author="Phons Bloemen (PhB)",
+%%% address="Eindhoven U. of Technology"
+%%% email="Internet: phons@ei.ele.tue.nl",
+%%% codetable="ISO/ASCII",
+%%% checksumtype="none",
+%%% checksum="0",
+%%% keywords="",
+%%% abstract="
+%%% Generates necker font, a 5x7 grid font.
+%%% This font was used on old terminals (Adm3a, the 'egg')
+%%% It is also used on flip-dot displays on buses, reason
+%%% why i called it 'Necker'. The Eindhoven bus station
+%%% is called 'Neckerspoel', and has futuristic route
+%%% indicators using this font.
+%%% Part of Capital Baseball package"
+%%% copyright="Copyleft (L) Phons Bloemen (PhB),
+%%% according to GNU public licence version 2 or later.
+%%% (1) Do not change this file (even its name)
+%%% (2) if you do make changes, first rename it to some
+%%% other name, and mark your changes clearly.",
+%%% }
+%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
+%% if unknown cmbase: input cmbase fi
+%% mode_setup;
+%% def generate suffix t= enddef;
+%% input cmtt10; font_setup;
+%% get some definitions from cmtt10 for proper setup
+%% do not ask why this sequence is used, it works!
+
+mode_setup;
+
+if unknown gensize: gensize := 10; fi;
+em# := gensize * 0.3pt#;
+uu# := 0.3 em#;
+font_coding_scheme:="TeX text";
+font_identifier:="NECKER";
+font_size gensize * 1pt#;
+body_height#:=5uu#; % height of tallest characters
+asc_height#:=5uu#; % height of lowercase ascenders
+cap_height#:=5uu#; % height of caps
+fig_height#:=5uu#; % height of numerals
+x_height#:=4uu#; % height of lowercase without ascenders
+math_axis#:=3uu#; % axis of symmetry for math symbols
+bar_height#:=3uu#; % height of crossbar in lowercase e
+comma_depth#:=1uu#; % depth of comma below baseline
+desc_depth#:=1uu#; % depth of lowercase descenders
+%% monospace := false;
+%% font_setup;
+font_normal_space 4uu#;
+font_quad 18uu#;
+font_extra_space 4uu#;
+
+%%% This draws the dot matrix (a generic function, can
+%%% be used for many dot matrix characters).
+%%% Parameters of 'flychar':
+%%% c : character number (decimal)
+%%% k : # dots horizontal ('width') 0 1 2 3
+%%% l : # dots vertical ('height') 4 5 6 7
+%%% m : # dots descender ('depth') 8 9 10 11
+%%% t : sequence of dot numbers to set. 12 13 14 15
+%%% Dot numbering of a 4 x 5 'flychar': 16 17 18 19
+
+def flychar(expr c,k,l,m)(text t) =
+beginchar((char c), (k+1)*uu#, l*uu#, m*uu#);
+ clearit;
+ pickup pencircle xscaled (w/(k+1)) yscaled((h+d)/(l+m));
+ for a = t :
+ drawdot((0.5+(a mod k))*w/(k+1),h-((0.5+floor(a/k))*(h+d)/(l+m)));
+ endfor;
+endchar;
+enddef;
+
+%%% The space character is special
+
+beginchar(32,4*uu#,5*uu#,0);
+endchar;
+
+%%% The 'flychar' characters follow (upper and lower case!)
+
+flychar(33,1,7,0)(0,1,2,3,4,6);
+flychar(34,3,7,0)(0,2,3,5);
+flychar(35,5,7,0)(1,3,6,8,10,11,12,13,14,16,18,20,21,22,23,24,26,28,31,33)
+flychar(36,5,7,0)(2,6,7,8,10,12,16,17,18,22,24,26,27,28,32);
+flychar(37,5,7,0)(0,1,5,6,9,13,17,21,25,28,29,33,34);
+flychar(38,5,7,0)(1,5,7,10,12,16,20,22,24,25,28,31,32,34);
+flychar(39,2,7,0)(1,2);
+flychar(40,3,7,0)(2,4,6,9,12,16,20);
+flychar(41,3,7,0)(0,4,8,11,14,16,18);
+flychar(42,5,7,0)(7,10,12,14,16,17,18,20,22,24,27);
+flychar(43,5,7,0)(7,12,15,16,17,18,19,22,27);
+flychar(44,2,2,1)(0,1,3,4);
+flychar(45,5,7,0)(15,16,17,18,19);
+flychar(46,2,2,0)(0,1,2,3);
+flychar(47,5,7,0)(9,13,17,21,25);
+flychar(48,5,7,0)(1,2,3,5,9,10,13,14,15,17,19,20,21,24,25,29,31,32,33);
+flychar(49,3,7,0)(1,3,4,7,10,13,16,18,19,20);
+flychar(50,5,7,0)(1,2,3,5,9,14,18,22,26,30,31,32,33,34);
+flychar(51,5,7,0)(0,1,2,3,4,5,9,13,17,18,24,25,29,31,32,33);
+flychar(52,5,7,0)(3,7,8,11,13,15,18,20,21,22,23,24,28,33);
+flychar(53,5,7,0)(0,1,2,3,4,5,10,11,12,13,19,24,25,29,31,32,33);
+flychar(54,5,7,0)(2,3,6,10,15,16,17,18,20,24,25,29,31,32,33);
+flychar(55,5,7,0)(0,1,2,3,4,9,13,17,22,27,32);
+flychar(56,5,7,0)(1,2,3,5,9,10,14,16,17,18,20,24,25,29,31,32,33);
+flychar(57,5,7,0)(1,2,3,5,9,10,14,16,17,18,19,24,28,31,32);
+flychar(58,2,5,0)(0,1,2,3,6,7,8,9);
+flychar(59,2,5,1)(0,1,2,3,6,7,9,10);
+flychar(60,4,7,0)(3,6,9,12,17,22,27);
+flychar(61,5,7,0)(10,11,12,13,14,20,21,22,23,24);
+flychar(62,4,7,0)(0,5,10,15,18,21,24);
+flychar(63,5,7,0)(1,2,3,5,9,14,17,22,32);
+flychar(64,5,7,0)(1,2,3,5,9,10,12,1,14,15,17,19,20,22,23,24,25,31,32,33,34);
+flychar(65,5,7,0)(1,2,3,5,9,10,14,15,16,17,18,19,20,24,25,29,30,34);
+flychar(66,5,7,0)(0,1,2,3,5,9,10,14,15,16,17,18,20,24,25,29,30,31,32,33);
+flychar(67,5,7,0)(1,2,3,9,5,10,15,20,25,31,32,33,29);
+flychar(68,5,7,0)(0,1,2,3,5,9,10,14,15,19,20,24,25,29,30,31,32,33);
+flychar(69,5,7,0)(0,1,2,3,4,5,10,15,16,17,18,20,25,30,31,32,33,34);
+flychar(70,5,7,0)(0,1,2,3,4,5,10,15,16,17,18,20,25,30);
+flychar(71,5,7,0)(1,2,3,5,9,10,15,18,19,20,24,25,29,31,32,33);
+flychar(72,5,7,0)(0,4,5,9,10,14,15,16,17,18,19,20,24,25,29,30,34);
+flychar(73,3,7,0)(0,1,2,4,7,10,13,16,18,19,20);
+flychar(74,5,7,0)(4,9,14,19,24,25,29,31,32,33);
+flychar(75,5,7,0)(0,4,5,8,10,12,15,16,20,22,25,28,30,34);
+flychar(76,5,7,0)(0,5,10,15,20,25,30,31,32,33,34);
+flychar(77,5,7,0)(0,4,5,6,8,9,10,12,14,15,17,19,20,24,25,29,30,34);
+flychar(78,5,7,0)(0,4,5,9,10,11,14,15,17,19,20,23,24,25,29,30,34);
+flychar(79,5,7,0)(1,2,3,5,9,10,14,15,19,20,24,25,29,31,32,33);
+flychar(80,5,7,0)(0,1,2,3,5,9,10,14,15,16,17,18,20,25,30);
+flychar(81,5,7,0)(1,2,3,5,9,10,14,15,19,20,22,24,25,28,31,32,34);
+flychar(82,5,7,0)(0,1,2,3,5,9,10,14,15,16,17,18,20,22,25,28,30,34);
+flychar(83,5,7,0)(1,2,3,5,9,10,16,17,18,24,25,29,31,32,33);
+flychar(84,5,7,0)(0,1,2,3,4,7,12,17,22,27,32);
+flychar(85,5,7,0)(0,4,5,9,10,14,15,19,20,24,25,29,31,32,33);
+flychar(86,5,7,0)(0,4,5,9,10,14,16,18,21,23,27,32);
+flychar(87,5,7,0)(0,4,5,9,10,14,15,17,19,20,22,24,25,26,28,29,31,33);
+flychar(88,5,7,0)(0,4,5,9,11,13,17,21,23,25,29,30,34);
+flychar(89,5,7,0)(0,4,5,9,11,13,17,22,27,32);
+flychar(90,5,7,0)(0,1,2,3,4,9,13,17,21,25,30,31,32,33,34);
+flychar(91,2,7,0)(0,1,2,4,6,8,10,12,13);
+flychar(92,5,7,0)(5,11,17,23,29);
+flychar(93,2,7,0)(0,1,3,5,7,9,11,12,13);
+flychar(94,3,7,0)(1,3,5);
+flychar(95,5,1,1)(5,6,7,8,9);
+flychar(96,2,7,0)(1,2);
+flychar(97,5,5,0)(1,2,5,8,10,13,15,18,21,22,24);
+flychar(98,5,7,0)(0,5,10,11,12,13,15,19,20,24,25,29,30,31,32,33);
+flychar(99,5,5,0)(1,2,3,5,9,10,15,21,22,23,24);
+flychar(100,5,7,0)(4,9,11,12,13,14,15,19,20,24,25,29,31,32,33,34);
+flychar(101,5,5,0)(1,2,3,5,9,10,11,12,13,15,21,22,23);
+flychar(102,3,7,0)(2,4,7,9,10,11,13,16,19);
+flychar(103,5,5,1)(1,2,3,4,5,9,10,14,16,17,18,19,24,27,28);
+flychar(104,5,7,0)(0,5,10,11,12,13,15,19,20,24,25,29,30,34);
+flychar(105,2,7,0)(1,4,5,7,9,11,13);
+flychar(106,2,7,1)(1,4,5,7,9,11,13,14);
+flychar(107,5,7,0)(0,5,10,14,15,18,20,21,22,25,28,30,34);
+flychar(108,2,7,0)(0,2,4,6,8,10,12,13);
+flychar(109,5,5,0)(1,3,5,7,9,10,12,14,15,19,20,24);
+flychar(110,5,5,0)(0,1,2,3,5,9,10,14,15,19,20,24);
+flychar(111,5,5,0)(1,2,3,5,9,10,14,15,19,21,22,23);
+flychar(112,5,5,1)(1,2,3,5,9,10,14,15,16,17,18,20,25);
+flychar(113,5,5,1)(1,2,3,5,9,10,14,16,17,18,19,24,29);
+flychar(114,5,5,0)(0,2,3,5,6,9,10,15,20);
+flychar(115,5,5,0)(1,2,3,5,11,12,13,19,20,21,22,23);
+flychar(116,3,7,0)(3,6,7,8,9,12,15,17,19);
+flychar(117,5,5,0)(0,4,5,9,10,14,15,19,21,22,23);
+flychar(118,5,5,0)(0,4,5,9,11,13,16,18,22);
+flychar(119,5,5,0)(0,4,5,9,10,12,14,15,16,18,19,21,23);
+flychar(120,5,5,0)(0,4,6,8,12,16,18,20,24);
+flychar(121,5,5,1)(0,4,5,9,10,14,16,17,18,19,24,27,28);
+flychar(122,5,5,0)(0,1,2,3,4,8,12,16,20,21,22,23,24);
+flychar(123,3,7,0)(2,4,7,9,13,16,20);
+flychar(124,1,7,0)(0,1,2,3,4,5,6);
+flychar(125,3,7,0)(0,4,7,11,13,16,18);
+flychar(126,5,7,0)(1,4,5,7,8);
+
+bye.
+
+
+
diff --git a/fonts/capbas/necker.tfm b/fonts/capbas/necker.tfm
new file mode 100644
index 0000000000..051418fa2a
--- /dev/null
+++ b/fonts/capbas/necker.tfm
Binary files differ
diff --git a/fonts/capbas/readme b/fonts/capbas/readme
new file mode 100644
index 0000000000..2ff4d6f876
--- /dev/null
+++ b/fonts/capbas/readme
@@ -0,0 +1,61 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%% package="m-capbas.arj"
+%%% author="Phons Bloemen (PhB)",
+%%% address="Eindhoven U. of Technology"
+%%% email="Internet: phons@ei.ele.tue.nl",
+%%% abstract="
+%%% Capital Baseball
+%%% Part of Capital Baseball package"
+%%% copyright="Copyleft (L) Phons Bloemen (PhB),
+%%% according to GNU public licence version 2 or later.
+%%% (1) Do not change this file (even its name)
+%%% (2) if you do make changes, first rename it to some
+%%% other name, and mark your changes clearly.",
+%%% }
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+Capital Baseball contains a lot of new fonts:
+7-segment, 14-segment, Simple, matrix fonts like Flyspec and
+Neckerspoel, and Capital Baseball itself.
+Capital Baseball contains the folling files (run the 'driver'
+files through Metafont).
+
+capbas.mf 4160 10-06-94 'driver file' for Capital Baseball font.
+capbasd.mf 4384 10-06-94 'driver file' for CapBas DoubleOutline font.
+capfon.mf 15986 10-03-94 Contains character definitions
+cmbug.mf 662 10-06-94 Example of mftools.mf.
+ Creates a 'buggy' version of cmtt10.
+ Create larger magnifications!
+cmgray.mf 572 10-06-94 Example of mftools.mf.
+ Creates a 'grayed' version of cmssbx10.
+d7seg.mf 6863 10-03-94 'driver file' for a seven-segment font.
+deseg.mf 8639 10-03-94 'driver file' for a 14-segment (star) font.
+flyspec.mf 7113 10-03-94 'driver file' for Flyspec (5x5 matrix font).
+ Render this at mag=0.3.
+mftools.mf 8828 10-21-94 This file contains my Metafont toolkit.
+necker.mf 8003 10-03-94 'driver file' for Neckerspoel (5x8 matrix font).
+readme 3272 10-21-94 This file.
+simdefs.mf 5730 10-03-94 Font definitions for Simple.
+simfon.mf 5616 10-03-94 'driver file' for Simple.
+
+The toolkit contains the following functions, which work on the
+'currentpicture' (the character glyph as Metafont has hit in
+memory at the moment of the application of the function)
+
+outline(a) outline a character. 'a' controls thickness of
+ outline, and is a fraction of character width 'w'.
+douboutline(a,b) keep the character, and draw an outline of
+ thickness 'a' at distance 'b' around it.
+gentile generate a tiling pattern. See the mftools.mf
+ file and the example cmbugs.mf for its use.
+ After this, do a 'tilepicture:=currentpicture".
+tilepic(til) apply tiling pattern 'til' to the character
+ glyph in memory (pictures are 'AND'ed).
+otilepic(til,a) apply tiling pattern 'til' to the character, and
+ create an outline of the character. The character
+ and tiling are 'AND'ed, the outline is 'OR'ed.
+xmirror reflect around axis x=0.5w.
+ymirror reflect around axis y=0.5(h+d).
+reversevideo invert the 'currentpicture'. Boundary: (w * (h+d)).
+
+Happy Metafonting,
+Phons.
diff --git a/fonts/capbas/simdefs.mf b/fonts/capbas/simdefs.mf
new file mode 100644
index 0000000000..252fd2bc0d
--- /dev/null
+++ b/fonts/capbas/simdefs.mf
@@ -0,0 +1,158 @@
+%%% @mffile{
+%%% filename="simfon.mf",
+%%% version="",
+%%% date="",
+%%% filetype="mf inputfile",
+%%% package="m-capbas.arj"
+%%% author="Phons Bloemen (PhB)",
+%%% address="Eindhoven U. of Technology,
+%%% Fac. of Electrical Engineering,
+%%% P. O. Box 513, NL-5600 MB Eindhoven
+%%% email="Internet: phons@ei.ele.tue.nl",
+%%% codetable="ISO/ASCII",
+%%% checksumtype="none",
+%%% checksum="0",
+%%% keywords="",
+%%% abstract="
+%%% This file contains the definitions of character glyphs
+%%% for the Simple font. Only capitals and numerals are
+%%% provided.
+%%% Parameters: a: (relative) width of character
+%%% b: (relative) height of character
+%%% s: thickness of drawing pen
+%%% Part of Capital Baseball package"
+%%% copyright="Copyleft (L) Phons Bloemen (PhB),
+%%% according to GNU public licence version 2 or later.
+%%% (1) Do not change this file (even its name)
+%%% (2) if you do make changes, first rename it to some
+%%% other name, and mark your changes clearly.",
+%%% }
+%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+def gensimgrid(suffix $)(expr a,b) =
+ bot lft z$p1 = z$ + (-a,-b); top lft z$p2 = z$ + (-a,b);
+ top rt z$p3 = z$ + (a,b); bot rt z$p4 = z$ + (a,-b);
+ lft z$p5 = z$ + (-a,0); rt z$p6 = z$ + (a,0);
+ top z$p8 = z$ + (0,b); bot z$p7 = z$ + (0,-b);
+ z$p52 = (z$p5+z$p2)/2; z$p51 = (z$p5+z$p1)/2; z$p57 = (z$p5+z$)/2;
+ z$p63 = (z$p6+z$p3)/2; z$p64 = (z$p6+z$p4)/2; z$p67 = (z$p6+z$)/2;
+ labels ($);
+enddef;
+
+def gensima(suffix $)(expr s) =
+ draw z$p1 -- z$p8 -- z$p4 withweight s;
+ draw z$p57 -- z$p67 withweight s;
+enddef;
+def gensimb(suffix $)(expr s) =
+ draw z$p1 -- z$p2 -- z$p8 {right} .. z$p63 .. {left} z$ -- z$p5 withweight s;
+ draw z$p1 -- z$p7 {right} .. z$p64 .. {left} z$ -- z$p5 withweight s; enddef;
+def gensimc(suffix $)(expr s) =
+ draw z$p64 .. z$p7 .. z$p5 .. z$p8 .. z$p63 withweight s;
+enddef;
+def gensimd(suffix $)(expr s) =
+ draw z$p1 -- z$p2 {right} .. z$p6 .. {left} z$p1 withweight s;
+enddef;
+def gensime(suffix $)(expr s) =
+ draw z$p4 -- z$p1 -- z$p2 -- z$p3 withweight s;
+ draw z$p5 -- z$p6 withweight s;
+enddef;
+def gensimf(suffix $)(expr s) =
+ draw z$p1 -- z$p2 -- z$p3 withweight s; draw z$p5 -- z$ withweight s;
+enddef;
+def gensimg(suffix $)(expr s) =
+ draw z$ -- z$p6 -- z$p64 .. z$p7 .. z$p5 .. z$p8 .. z$p63 withweight s;
+enddef;
+def gensimh(suffix $)(expr s) =
+ draw z$p1 -- z$p2 withweight s; draw z$p3 -- z$p4 withweight s;
+ draw z$p5 -- z$p6 withweight s;
+enddef;
+def gensimi(suffix $)(expr s) =
+ draw z$p8 -- z$p7 withweight s;
+enddef;
+
+def gensimj(suffix $)(expr s) =
+ draw z$p3 -- z$p64 {down} .. z$p7 .. {up} z$p51 withweight s;
+enddef;
+def gensimk(suffix $)(expr s) =
+ draw z$p1 -- z$p2 withweight s; draw z$p3 -- z$p5 -- z$p4 withweight s;
+enddef;
+def gensiml(suffix $)(expr s) =
+ draw z$p2 -- z$p1 -- z$p4 withweight s;
+enddef;
+def gensimm(suffix $)(expr s) =
+ draw z$p1 -- z$p2 -- z$ -- z$p3 -- z$p4 withweight s;
+enddef;
+def gensimn(suffix $)(expr s) =
+ draw z$p1 -- z$p2 -- z$p4 -- z$p3 withweight s;
+enddef;
+def gensimo(suffix $)(expr s) =
+ draw z$p5 .. z$p8 .. z$p6 .. z$p7 .. cycle withweight s;
+enddef;
+def gensimp(suffix $)(expr s) =
+ draw z$p1 -- z$p2 -- z$p8 {right} .. z$p63 .. {left} z$ -- z$p5
+withweight s; enddef;
+def gensimq(suffix $)(expr s) =
+ draw z$p5 .. z$p8 .. z$p6 .. z$p7 .. cycle withweight s;
+ draw z$ -- z$p4 withweight s;
+enddef;
+def gensimr(suffix $)(expr s) =
+ draw z$p1 -- z$p2 -- z$p8 {right} .. z$p63 .. {left} z$p57 -- z$p4
+withweight s;
+ draw z$p5 -- z$p57 withweight s; enddef;
+def gensims(suffix $)(expr s) =
+ draw z$p51 {down} .. z$p7 .. z$p64 .. z$p52 .. z$p8 .. {down} z$p63
+ withweight s; enddef;
+def gensimu(suffix $)(expr s) =
+ draw z$p2 -- z$p5 {down} .. z$p7 .. {up} z$p6 -- z$p3 withweight s;
+enddef;
+def gensimt(suffix $)(expr s) =
+ draw z$p2 -- z$p3 withweight s; draw z$p7 -- z$p8 withweight s;
+enddef;
+def gensimv(suffix $)(expr s) =
+ draw z$p2 -- z$p7 -- z$p3 withweight s;
+enddef;
+def gensimw(suffix $)(expr s) =
+ draw z$p2 -- (z$p1+z$p7)/2 -- z$ -- (z$p4+z$p7)/2 -- z$p3 withweight s;
+enddef;
+def gensimx(suffix $)(expr s) =
+ draw z$p1 -- z$p3 withweight s; draw z$p2 -- z$p4 withweight s;
+enddef;
+def gensimy(suffix $)(expr s) =
+ draw z$p2 -- z$ -- z$p3 withweight s; draw z$ -- z$p7 withweight s;
+enddef;
+def gensimz(suffix $)(expr s) =
+ draw z$p2 -- z$p3 -- z$p1 -- z$p4 withweight s;
+enddef;
+def gensimone(suffix $)(expr s) =
+ draw (z$p5+z$p8)/2 -- z$p8 -- z$p7 withweight s;
+enddef;
+def gensimtwo(suffix $)(expr s) =
+ draw z$p52 {up} .. z$p8 .. z$p63 .. z$ .. z$p1 -- z$p4
+ withweight s; enddef;
+def gensimthr(suffix $)(expr s) =
+ draw z$p52 {up} .. z$p8 .. z$p63 .. {left} z$ withweight s;
+ draw z$p51 {down} .. z$p7 .. z$p64 .. {left} z$ withweight s;
+enddef;
+def gensimfou(suffix $)(expr s) =
+ draw (z$p4+z$p7)/2 -- (z$p3+z$p8)/2 -- z$p51 -- z$p64 withweight s;
+enddef;
+def gensimfiv(suffix $)(expr s) =
+ draw z$p3 -- z$p2 -- z$p5 .. (2*z$+z$p8)/3 ..
+ (z$p6+z$p64)/2 .. z$p7 .. z$p51 withweight s; enddef;
+def gensimsix(suffix $)(expr s) =
+ draw (z$p8+z$p3)/2 .. {down} z$p51 .. z$p7 .. z$p64 .. (2*z$+z$p8)/3
+ .. {down} z$p51 withweight s;
+enddef;
+def gensimsev(suffix $)(expr s) =
+ draw z$p2 -- z$p3 .. {down} z$p7 withweight s;
+enddef;
+def gensimeig(suffix $)(expr s) =
+ draw z$p8 .. z$p52 .. z$ .. z$p63 .. cycle withweight s;
+ draw z$p7 .. z$p64 .. z$ .. z$p51 .. cycle withweight s;
+enddef;
+def gensimnin(suffix $)(expr s) =
+ draw (z$p7+z$p1)/2 .. {up} z$p63 .. z$p8 .. z$p52 .. (2*z$+z$p7)/3
+ .. {up} z$p63 withweight s; enddef;
+
+
diff --git a/fonts/capbas/simfon.mf b/fonts/capbas/simfon.mf
new file mode 100644
index 0000000000..d03cb4cc33
--- /dev/null
+++ b/fonts/capbas/simfon.mf
@@ -0,0 +1,160 @@
+%%% @mffile{
+%%% filename="simfon6.mf",
+%%% version="",
+%%% date="",
+%%% filetype="mf fontcreator",
+%%% package="m-capbas.arj"
+%%% author="Phons Bloemen (PhB)",
+%%% address="Eindhoven U. of Technology"
+%%% email="Internet: phons@ei.ele.tue.nl",
+%%% codetable="ISO/ASCII",
+%%% checksumtype="none",
+%%% checksum="0",
+%%% keywords="",
+%%% abstract="
+%%% Generates Simple font.
+%%% Part of Capital Baseball package"
+%%% copyright="Copyleft (L) Phons Bloemen (PhB),
+%%% according to GNU public licence version 2 or later.
+%%% (1) Do not change this file (even its name)
+%%% (2) if you do make changes, first rename it to some
+%%% other name, and mark your changes clearly.",
+%%% }
+%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+te := 5.5;
+rrr := 0;
+em# := 0.33333mm#;
+uuu := 6;
+td := 0.05;
+tf := 0.06;
+scaw := 1;
+revcap := 1;
+if unknown gensize: gensize := 10; fi;
+
+font_coding_scheme:="TeX text";
+font_identifier:="SIMFON";
+body_height#:=6em#; % height of tallest characters
+asc_height#:=6em#; % height of lowercase ascenders
+cap_height#:=6em#; % height of caps
+fig_height#:=4.5em#; % height of numerals
+x_height#:=3em#; % height of lowercase without ascenders
+math_axis#:=3em#; % axis of symmetry for math symbols
+bar_height#:=2em#; % height of crossbar in lowercase e
+comma_depth#:=0em#; % depth of comma below baseline
+desc_depth#:=0em#; % depth of lowercase descenders
+%% monospace := false;
+%% font_setup;
+font_normal_space 6 * em#;
+font_quad 20em#;
+font_extra_space 6 * em#;
+font_size gensize * 1em#;
+
+mode_setup;
+
+def thpen =
+ pencircle scaled (0.008*h);
+enddef;
+
+scaw := 1;
+
+def tupen =
+ pencircle scaled (0.12*h);
+enddef;
+
+input simdefs.mf;
+input mftools.mf;
+
+beginchar(32,0.5*uuu*em#,0.5*uuu*em#,0);
+ z40 =(0.5*w,0.5*h);currenttransform := identity rotatedaround(z40,rrr);
+ z1 = (0.5*w,0.5*h);
+endchar;
+
+te := 5;
+td := 0.05;
+tf := 0.06;
+
+def beginsimichar(expr c, unit) =
+beginchar((char c),unit*uuu*10em#,unit*uuu*12em#,0);
+ z40 =(0.5*w,0.5*h);currenttransform := identity rotatedaround(z40,rrr);
+ z1 = (0.5*w,0.5*h);
+ gensimgrid(1,0.35w,0.35w);
+ thra := 0.025*h;
+ fill z1-0.5(w,w) -- z1-0.5(-w,w) -- z1-0.5(-w,-w) -- z1-0.5(w,-w) -- cycle;
+ pickup tupen;
+enddef;
+
+def beginsimochar(expr c, unit) =
+beginchar((char c),unit*uuu*10*em#,unit*uuu*13.5em#,0);
+ z40 =(0.5*w,0.5*h);currenttransform := identity rotatedaround(z40,rrr);
+ z1 = (0.5w,0.5h);
+ gensimgrid(1,0.4w,0.4*h);
+ thra := 0.025*h;
+ pickup tupen;
+enddef;
+
+beginsimochar( 48,0.075);gensimo(1,1);endchar;
+beginsimochar( 49,0.075);gensimone(1,1);endchar;
+beginsimochar( 50,0.075);gensimtwo(1,1);endchar;
+beginsimochar( 51,0.075);gensimthr(1,1);endchar;
+beginsimochar( 52,0.075);gensimfou(1,1);endchar;
+beginsimochar( 53,0.075);gensimfiv(1,1);endchar;
+beginsimochar( 54,0.075);gensimsix(1,1);endchar;
+beginsimochar( 55,0.075);gensimsev(1,1);endchar;
+beginsimochar( 56,0.075);gensimeig(1,1);endchar;
+beginsimochar( 57,0.075);gensimnin(1,1);endchar;
+beginsimochar( 65,0.1);gensima(1,1);endchar;
+beginsimochar( 66,0.1);gensimb(1,1);endchar;
+beginsimochar( 67,0.1);gensimc(1,1);endchar;
+beginsimochar( 68,0.1);gensimd(1,1);endchar;
+beginsimochar( 69,0.1);gensime(1,1);endchar;
+beginsimochar( 70,0.1);gensimf(1,1);endchar;
+beginsimochar( 71,0.1);gensimg(1,1);endchar;
+beginsimochar( 72,0.1);gensimh(1,1);endchar;
+beginsimochar( 73,0.1);gensimi(1,1);endchar;
+beginsimochar( 74,0.1);gensimj(1,1);endchar;
+beginsimochar( 75,0.1);gensimk(1,1);endchar;
+beginsimochar( 76,0.1);gensiml(1,1);endchar;
+beginsimochar( 77,0.1);gensimm(1,1);endchar;
+beginsimochar( 78,0.1);gensimn(1,1);endchar;
+beginsimochar( 79,0.1);gensimo(1,1);endchar;
+beginsimochar( 80,0.1);gensimp(1,1);endchar;
+beginsimochar( 81,0.1);gensimq(1,1);endchar;
+beginsimochar( 82,0.1);gensimr(1,1);endchar;
+beginsimochar( 83,0.1);gensims(1,1);endchar;
+beginsimochar( 84,0.1);gensimt(1,1);endchar;
+beginsimochar( 85,0.1);gensimu(1,1);endchar;
+beginsimochar( 86,0.1);gensimv(1,1);endchar;
+beginsimochar( 87,0.1);gensimw(1,1);endchar;
+beginsimochar( 88,0.1);gensimx(1,1);endchar;
+beginsimochar( 89,0.1);gensimy(1,1);endchar;
+beginsimochar( 90,0.1);gensimz(1,1);endchar;
+beginsimochar( 97,0.05);gensima(1,1);endchar;
+beginsimochar( 98,0.05);gensimb(1,1);endchar;
+beginsimochar( 99,0.05);gensimc(1,1);endchar;
+beginsimochar(100,0.05);gensimd(1,1);endchar;
+beginsimochar(101,0.05);gensime(1,1);endchar;
+beginsimochar(102,0.05);gensimf(1,1);endchar;
+beginsimochar(103,0.05);gensimg(1,1);endchar;
+beginsimochar(104,0.05);gensimh(1,1);endchar;
+beginsimochar(105,0.05);gensimi(1,1);endchar;
+beginsimochar(106,0.05);gensimj(1,1);endchar;
+beginsimochar(107,0.05);gensimk(1,1);endchar;
+beginsimochar(108,0.05);gensiml(1,1);endchar;
+beginsimochar(109,0.05);gensimm(1,1);endchar;
+beginsimochar(110,0.05);gensimn(1,1);endchar;
+beginsimochar(111,0.05);gensimo(1,1);endchar;
+beginsimochar(112,0.05);gensimp(1,1);endchar;
+beginsimochar(113,0.05);gensimq(1,1);endchar;
+beginsimochar(114,0.05);gensimr(1,1);endchar;
+beginsimochar(115,0.05);gensims(1,1);endchar;
+beginsimochar(116,0.05);gensimt(1,1);endchar;
+beginsimochar(117,0.05);gensimu(1,1);endchar;
+beginsimochar(118,0.05);gensimv(1,1);endchar;
+beginsimochar(119,0.05);gensimw(1,1);endchar;
+beginsimochar(120,0.05);gensimx(1,1);endchar;
+beginsimochar(121,0.05);gensimy(1,1);endchar;
+beginsimochar(122,0.05);gensimz(1,1);endchar;
+end;
+
diff --git a/fonts/capbas/simfon.tfm b/fonts/capbas/simfon.tfm
new file mode 100644
index 0000000000..d37be696a6
--- /dev/null
+++ b/fonts/capbas/simfon.tfm
Binary files differ