summaryrefslogtreecommitdiff
path: root/fonts/utilities/mff-29/dkalpha.mf
diff options
context:
space:
mode:
Diffstat (limited to 'fonts/utilities/mff-29/dkalpha.mf')
-rw-r--r--fonts/utilities/mff-29/dkalpha.mf351
1 files changed, 351 insertions, 0 deletions
diff --git a/fonts/utilities/mff-29/dkalpha.mf b/fonts/utilities/mff-29/dkalpha.mf
new file mode 100644
index 0000000000..72085e0f33
--- /dev/null
+++ b/fonts/utilities/mff-29/dkalpha.mf
@@ -0,0 +1,351 @@
+%{{{ dkalpha.mf - alphabetic characters for Ditko
+% Copyright (C) 1990 Damian Cugley
+% - pdc Tue. 25 Sept. 1990
+
+%{{{ Macros
+% Macros to allow me to read this file twice, the second time filling in
+% any uppercase letters that aren't already defined.
+% pdc - 13-Dec-90
+
+% Given a character number or one-character string, return a
+% single-character string that is its uppercase equivalent:
+vardef toupper primary ch =
+ save __ch; __ch = byte ch;
+ if (__ch > 96) and (__ch < 123):
+ char(__ch - 32)
+ else:
+ char(__ch)
+ fi
+enddef;
+
+% The first time this file is read, force all letters created to be
+% uppercase. In the second pass, lowercase and/or uppercase will be
+% produced: any uppercase will override the glyph produced in the first
+% pass.
+if testing or (known __stalpha_loaded):
+ vardef uch primary ch = ch enddef;
+else:
+ vardef uch primary ch = toupper ch enddef;
+ __stalpha_loaded = 1;
+fi
+%}}} Macros
+
+%{{{ u
+
+stdchar(uch "u", 12 + jut#/u#, 1, 0);
+ pickup round_pen;
+ istem_pts.stem(r - 2jut - penw, h, -d);
+ ubowl_pts.bowl(l, r - jut);
+ cutdraw ubowl_path.bowl;
+ pickup square_pen;
+ draw z.stem.top -- z.stem.bot -- top lft (r, baseline);
+ %%%% draw ujut_path.bowl;
+endchar;
+
+%}}}
+
+if testing: endinput fi
+
+% - pdc Tue. 25 Sept. 1990
+%{{{ t
+
+stdchar(uch "t", 12, 1/2, 1/2);
+ pickup square_pen;
+ if 1/2[l,r] <> good.x 1/2[l,r]: change_width; fi
+ top y1 = top y2 = top y10 = h;
+ bot y0 = bot y3 = bot y10 - dip_dp;
+ lft x0 = lft x1 = l; rt x2 = rt x3 = r;
+ x10 = x11 = 1/2[x1, x2];
+ bot y11 = -d;
+ draw z0 -- z1 -- z2 -- z3;
+ draw z10 -- z11;
+ labels(0,1,2,3,10,11)
+endchar;
+%}}}
+% - pdc Wed. 26 Sept. 1990
+%{{{ s
+
+talldipchar(uch "s", 12, 1, 1);
+ save superosity; superosity = 0.8;
+ pickup round_pen;
+ top y1 = cap_ht; top y0 = h;
+ bot y5 = baseline; bot y6 = -d;
+ rt x1 = rt x0 = hround(r - 1/2u); % top right
+ lft x5 = lft x6 = hround(l + 1/2u); % bottom left
+ z3 = 1/2[z1, z5]; % middle
+ y2 = 1/2[y1, y3]; lft x2 = l;
+ y4 = 1/2[y3, y5]; rt x4 = r;
+ x1a = x5a = x3; y1a = y1; y5a = y5;
+ draw z1 --- curve_vhalf_path(z1a, z2, z3)
+ & curve_vhalf_path(z3, z4, z5a) --- z5;
+ pickup square_pen; draw z0 -- z1; draw z5 -- z6;
+ labels(0, 1, 1a, 2, 3, 4, 5a, 5, 6);
+endchar;
+%}}}
+%{{{ o
+stdchar(uch "o", 12, 1/2, 1/2);
+ pickup round_pen;
+ top y1 = h + o; bot y3 = -d - o;
+ y0 = y2 = 1/2[y1,y3];
+ lft x2 = l - o; rt x0 = r + o;
+ x1 = x3 = 1/2[x0,x2];
+ draw curve_cycle(z0, z1, z2, z3);
+ labels(0,1,2,3)
+endchar;
+%}}}
+%{{{ n
+stdchar(uch "n", 12 + jut#/u#, 0, 1);
+ pickup round_pen;
+ istem_pts.stem(l, h, -d);
+ nbowl_pts.bowl(l + jut, r);
+ cutdraw nbowl_path.bowl;
+ pickup square_pen; draw istem_path.stem;
+endchar;
+%}}}
+%{{{ m
+stdchar(uch "m", 16, 1, 1);
+ pickup round_pen;
+ if 1/2[l,r] <> good.x 1/2[l,r]: change_width; fi
+ nbowl_pts.bowl(1/2[l,r] - 1/2penw, r);
+ bot z.foot = (1/2[l,r], baseline);
+ cutdraw nbowl_path.bowl;
+ cutdraw nbowl_path.bowl reflectedabout (z.foot, z.bowl.j);
+ pickup square_pen; draw z.foot -- z.bowl.j;
+ labels(foot);
+endchar;
+%}}}
+%{{{ h
+tallchar(uch "h", 12 + jut#/u#, 0, 1);
+ pickup round_pen;
+ istem_pts.stem(l, h, -d);
+ nbowl_pts.bowl(l + jut, r);
+ cutdraw nbowl_path.bowl;
+ pickup square_pen; draw istem_path.stem;
+endchar;
+%}}} h
+%{{{ i
+stdchar(uch "i", (penw# + jut#)/u#, 0, 1);
+ pickup square_pen;
+ istem_pts(l, h, -d);
+ draw istem_path;
+endchar;
+%}}} i
+%{{{ c
+stdchar(uch "c", 11, 2/3, 1/2);
+ pickup round_pen;
+ cbowl_pts(l,r); cutdraw cbowl_path;
+endchar;
+%}}} c
+%{{{ e
+dipchar(uch "e", 11 + 1/2jut#/u#, 1/2, 1/2);
+ pickup round_pen;
+ cbowl_pts.curve(l + 1/2jut, r); cutdraw cbowl_path.curve;
+ pickup square_pen;
+ lft z1 = (l, 1/2[baseline, cap_ht]);
+ y2 = y1; x2 = x.curve1 - 2 * xpart pen_adj;
+ draw z1 -- z2;
+ labels(1,2);
+endchar;
+%}}}
+% - pdc 27th Sept. 1990.
+%{{{ j
+Dipchar(uch "j", (jut# + penw#)/u#, 0, 1);
+ pickup square_pen;
+ istem_pts(l, h, baseline); jtail_attach();
+ draw jstem_path;
+ pickup round_pen; cutdraw jtail_path;
+endchar;
+%}}}
+%{{{ g
+Dipchar(uch "g", 11, 1/2, 1/2);
+ pickup round_pen;
+ cbowl_pts(l,r); cutdraw cbowl_path;
+ istem_pts(r - jut - penw, vround(1/2[baseline,cap_ht]), -dip_dp);
+ jtail_attach(); cutdraw jtail_path;
+ pickup square_pen; draw jstem_path;
+endchar;
+%}}}
+%{{{ p
+stdchar(uch "p", 11 + jut#/u#, 0, 1);
+ pickup square_pen;
+ istem_pts.stem(l, h, -d); draw istem_path.stem;
+ pickup round_pen;
+ pbowl_pts.bowl(l + jut, r, 0.333[baseline, cap_ht]);
+ pbowl_draw.bowl;
+endchar;
+%}}}
+%{{{ d
+stdchar(uch "d", 11 + jut#/u#, 0, 1);
+ pickup square_pen;
+ istem_pts.stem(l, h, -d); draw istem_path.stem;
+ pickup round_pen;
+ pbowl_pts.bowl(l + jut, r, top baseline - o);
+ pbowl_draw.bowl;
+endchar;
+%}}}
+% - pdc Sun. 30 Sept. 1990
+%{{{ f
+Dipchar(uch "f", 10 + jut#/u#, 0, 1/2);
+ pickup square_pen;
+ istem_pts(l, h, -d); jtail_attach();
+ % Define points at right of top bar:
+ y1 = y.jut; rt x1 = rt x2 = r; bot y2 = bot y1 - dip_dp;
+ % Define points for bottom bar:
+ y3 = y4 = good.y 0.4cap_ht; bot y5 = bot y4 - dip_dp;
+ lft x3 = hround(lft x.top - 1/2jut); rt x4 = rt x5 = hround(r - jut);
+ draw jstem_path; draw z.jut -- z1 -- z2;
+ % draw z3 -- z4 -- z5;
+ draw z3 -- z4;
+ pickup round_pen; cutdraw jtail_path;
+ labels(range 1 thru 5);
+endchar;
+%}}}
+%{{{ L
+talldipchar("L", 12 + jut#/u#, 0, 1/2);
+ pickup square_pen;
+ istem_pts(l, h, baseline);
+ y1 = y.bot; rt x1 = rt x2 = r; bot y2 = -d;
+ draw istem_path -- z1 -- z2;
+ labels(1,2);
+endchar;
+%}}}
+%{{{ l
+tallchar(uch "l", 12 + jut#/u#, 0, 1/2);
+ pickup square_pen;
+ istem_pts(l, h, baseline);
+ y1 = y.bot; rt x1 = rt x2 = r; top y2 = top y1 + dip_dp;
+ draw istem_path -- z1 -- z2;
+ labels(1,2);
+endchar;
+%}}}
+% - pdc Sun. 30 Sept. 1990
+
+%{{{ a
+% Trying to get the spine to work in odd situations took some work:
+stdchar(uch "a", (15u# - agap# + jut#)/u#, 1, 0);
+ z1r = (l + agap, h); % where top corner goes
+ z2c = (r - jut, baseline + penh); % used to get angles right
+ z1l - z1r = z2l - z2r = 2 * penoffset (z2c - z1r) of currentpen;
+ z1 = 1/2[z1l, z1r]; z2 = 1/2[z2l, z2r];
+ z2r = z1r + whatever * (z1r - z2c); % where bot corner goes
+ y2l = baseline;
+ fill z1r -- z2r -- z2l -- z1l -- cycle; % draw spine
+
+ pickup round_pen;
+ z.centre = z.centre' + jut*right = 1/2[z1, z2];
+ bot lft z.botleft = bot lft z.botleft' - jut*right = (l, baseline);
+ draw curve_qtr_path(z.centre', z.botleft) ---
+ curve_qtr_path(z.botleft', z.centre) --- cycle;
+ pickup square_pen;
+ drawdot z.botleft;
+
+ top lft z1b + ajut*right = top rt z1a = z1r;
+ bot rt z2b = (r, baseline); bot lft z2a = z2l;
+ draw z1a -- z1b; draw z2a -- z2b;
+ labels(2c, forsuffixes $ = 1,2: $a, $b, $, $l, $r, endfor
+ centre, centre', botleft, botleft');
+endchar;
+%}}}
+%{{{ oo
+ifcode oo:
+ vardef circ@#(expr leftx, topy) =
+ top y@#h = vround topy + o; bot y@#hh = vround (topy - 9u) - o;
+ lft x@#v = hround leftx - o; rt x@#vv = hround (leftx + 9u) + o;
+ y@#v = y@#vv = 1/2[y@#h, y@#hh];
+ x@#h = x@#hh = 1/2[x@#v, x@#vv];
+ draw curve_cycle(z@#v, z@#h, z@#vv, z@#hh);
+ enddef;
+
+ stdchar(code.oo, 18 + 1/2space#/u#, 1/2, 1/2); "oo ligature";
+ pickup round_pen;
+ circ1(l, h); circ2(l + 9u + 1/2space, 9u);
+ endchar;
+fi
+%}}}
+%{{{ ll
+ifcode ll:
+ vardef elle@#(expr leftx) =
+ istem_pts@#(hround leftx, h, -d);
+ y@#a = y@#bot; rt x@#a = hround(leftx + 9u);
+ draw istem_path@# -- z@#a;
+ labels(@#a)
+ enddef;
+
+ tallchar(code.ll, 18 + (space# - jut#)/u#, 0, 1/2); "ligature LL";
+ pickup square_pen;
+ elle1(l); elle2(l + 9u + space - jut);
+ endchar;
+fi
+%}}}
+
+%{{{ R
+% I need a quick-&-dirty "R" to do the Fred & Daniel banner
+% Will do a better-looking one later
+% - pdc Mon. 8 Oct. 1990
+stdchar(uch "r", 12 + jut#/u#, 1/2, 1); "Hackjob R";
+ pickup square_pen;
+ istem_pts.stem(l, h, -d); draw istem_path.stem;
+ pickup round_pen;
+ pbowl_pts.t(l + jut, r - u, 0.5[baseline, cap_ht]);
+ pbowl_draw.t;
+ bot rt z.tail = (r, baseline); lft z.tj = lft z.tail + jut*left;
+ cutdraw z.t.hh -- z.tj -- rt z.tail;
+ labels(tj,tail);
+endchar;
+%}}}
+% - pdc Tue. 16 Oct. 1990
+%{{{ y
+Dipchar(uch "y", 12, 1/2, 1);
+ pickup round_pen;
+ z.t = (l + nindent, h); % top
+ y.v = 1/2h; y.j = h - njoin;
+ lft x.v = l; rt x.j = r;
+ bot y.h = baseline - o; x.h = 1/2[x.j,x.v]; % bot of bowl
+ labels(j, h, v, t);
+ cutdraw z.j{(z.h - z.j) yscaled 2} ... {(z.h - z.j) yscaled 0}z.h
+ & curve_qtr_path(z.h,z.v) .. z.t;
+ pickup square_pen;
+ top rt z.tl.t = (r, h);
+ bot rt z.tl.b = (r, -d);
+ bot lft z.tl.f = (1/2[r,l],-d);
+ draw z.tl.t -- z.tl.b -- z.tl.f;
+ labels(tl.t,tl.b,tl.f);
+endchar;
+%}}}
+
+%{{{ v
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% - pdc Sat. 12 Jan. 1991
+stdchar(uch "v", 12 + jut#/u#, 0, 1/2);
+ numeric mid; mid = l + 5.5u;
+
+ % points of the topleft serif:
+ z0 = z1 + penh*up = (l, h);
+ z2 = z1 + penw * right;
+ z5 = z0 + whatever * right;
+
+ % points on the diagonal:
+ z3 = (hround (mid - u), 0);
+ numeric theta; theta = angle(z2 - z3);
+ z5 - z5a = z3a - z3 = 1/2[penh, penw] * dir (theta - 90);
+ z5 - z3a = z5a - z3 = whatever * dir theta;
+
+ % points on curve to right:
+ z10 = z11 + penw * right = (r, h);
+ z13 = z13a + penh * down = (mid, 0);
+ numeric sup; sup = 0.7;
+ z14 = sup[(x13a, y11), (x11, y13a)];
+ z15 = sup[(x13, y10), (x10, y13)];
+
+ pickup pencircle scaled 2;
+ fill z5 -- z0 -- z1 -- z2 -- z3 -- z13 -- z3a -- cycle;
+ fill z10 -- z11{down} ... z14{z13a - z11} ... {left}z13a
+ -- z13{right} ... z15{z10 - z13} ... {up}cycle;
+ labels(0, 1, 2, 3, 3a, 5, 5a, 10, 11, 12, 13, 13a, 14, 15);
+endchar;
+%}}}
+%}}} dkalpha.mf
+
+%Local variables:
+%fold-folded-p:t
+%End: