summaryrefslogtreecommitdiff
path: root/Master
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2017-11-12 19:14:29 +0000
committerKarl Berry <karl@freefriends.org>2017-11-12 19:14:29 +0000
commit2cf7e10259e746ef84228772d35a37671d90e3e2 (patch)
tree194bebdfe06784290cb4815669e132e2eacf809c /Master
parent6e3b51dd5ee7d740608a1d68ff0334b99087797c (diff)
rm knuthotherfonts (old halftone, mfbook, committee fonts), no license info
git-svn-id: svn://tug.org/texlive/trunk@45757 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master')
-rw-r--r--Master/texmf-dist/fonts/source/public/knuthotherfonts/committee/font1.mf2105
-rw-r--r--Master/texmf-dist/fonts/source/public/knuthotherfonts/committee/font1base.mf113
-rw-r--r--Master/texmf-dist/fonts/source/public/knuthotherfonts/halftone/aphalf.mf3
-rw-r--r--Master/texmf-dist/fonts/source/public/knuthotherfonts/halftone/ddhalf.mf3
-rw-r--r--Master/texmf-dist/fonts/source/public/knuthotherfonts/halftone/ddralf.mf3
-rw-r--r--Master/texmf-dist/fonts/source/public/knuthotherfonts/halftone/halftone.mf45
-rw-r--r--Master/texmf-dist/fonts/source/public/knuthotherfonts/halftone/imhalf.mf3
-rw-r--r--Master/texmf-dist/fonts/source/public/knuthotherfonts/halftone/imralf.mf3
-rw-r--r--Master/texmf-dist/fonts/source/public/knuthotherfonts/mfbook/logobase.mf34
-rw-r--r--Master/texmf-dist/fonts/source/public/knuthotherfonts/mfbook/metafon.mf50
-rwxr-xr-xMaster/tlpkg/libexec/ctan2tds2
-rw-r--r--Master/tlpkg/tlpsrc/collection-fontsextra.tlpsrc1
-rw-r--r--Master/tlpkg/tlpsrc/knuthotherfonts.tlpsrc0
13 files changed, 2 insertions, 2363 deletions
diff --git a/Master/texmf-dist/fonts/source/public/knuthotherfonts/committee/font1.mf b/Master/texmf-dist/fonts/source/public/knuthotherfonts/committee/font1.mf
deleted file mode 100644
index 5c0dadc05a2..00000000000
--- a/Master/texmf-dist/fonts/source/public/knuthotherfonts/committee/font1.mf
+++ /dev/null
@@ -1,2105 +0,0 @@
-input font1base
-proofing:=0; % :=1 for pts/labels, :=.5 for smoke proofs, :=0 for fontmaking!
-fontmaking:=1;
-
-hppp:=722.909/72.27;
-vppp:=hppp;
-designsize:=29;
-
-if known Xerox_world:
- font_family "CLASS";
- coding_scheme "ASCII LETTERS ONLY";
-fi
-
-% A by Ann Lasko-Harvill
-vardef char.A=
- setwidth .6em;
- pos1(1.3 thickwidth,45);
- pos2(1.5 thickwidth,0);
- x1=.3em;
- y1=capheight;
- x2l=.5em;
- y2=0;
- pos3(1.3thinwidth,75);
- pos4(thinwidth,65);
- x3=.1em;
- y3=.55xheight;
- x4=.4em;
- y4=y3;
- pos5(thinwidth,0);
- pos6(thinwidth,-50);
- x5=.1em;
- y5=0;
- x6=x1;
- y6l=y1l;
- stroke(1,2,.75,.3,.1);
- stroke(3,4,.5,.23,.1);
- stroke(5,6,.2,.2,.1);
- labelpos(1,2,3,4,5,6);
-enddef;
-
-% B by William Burley
-vardef char.B =
- setwidth .57em;
- pos1(thinwidth,90);
- pos2(thinwidth,90);
- pos3(.75[thinwidth,thickwidth],0);
- pos4(thinwidth,-90);
- pos5(thinwidth,270);
- pos6(.75[thinwidth,thickwidth],180);
- pos7(thinwidth,90);
- pos8(thinwidth,90);
- pos9(thickwidth,0);
- pos10(thickwidth,0);
- pos11(thinwidth,-90);
- x1=x10l=x9l=x8=.17w;
- x2=x4=.48w;
- x5=x7=.52w;
- x11=x9r;
- x3=x4+.45(y2-y4);
- x6=x7+.45(y5-y7);
- y8l=y7l=0;
- y1r=y2r=capheight;
- y9=y8r;
- y10=y1l;
- y11=y4=y5=.52capheight;
- y3=.5[y4,y2];
- y6=.5[y7,y5];
- dz2=(1,0); dz4=(-1,0);
- dz5=(-1,0); dz7=(1,0);
- stroke(1,2,0,0,0);
- stroke(9,10,0,0,0);
- stroke(8,7,0,0,0);
- stroke(5,11,0,0,0);
- curve(2,3,4);
- curve(7,6,5);
- labelpos(1,2,3,4,5,6,7,8,9,10,11);
-enddef;
-
-% C by Arthur Samuel
-vardef char.C =
- setwidth .7em; % do this first; it sets the character width
- pos1(thickwidth,180);
- pos2(thickwidth,145);
- pos3(thinwidth,90);
- pos4(thinwidth,45);
- pos5(.7thickwidth,0);
- pos6(thickwidth,0);
- pos7(thickwidth,45);
- pos8(thinwidth,90);
- pos9(thinwidth,135);
- pos10(.7thickwidth,180);
- z1=(.15w+.5thickwidth,.5capheight); dz1=(0,1);
-% z2=(.22w+.5thickwidth,.83capheight);
- x2=.72[x3,x1]; y2=.72[y1,y3];
- z3=(.56w,capheight); dz3=(1,0);
- z4=(.650[x3,x5],.300[y3,y5]);
- z5=(.83w,.8capheight); dz5=(1,-2);
- z6=(.15w+.5thickwidth,.5capheight); dz6=(0,-1);
-% z7=(.22w+.5thickwidth,.17capheight);
- x7=.72[x8,x1]; y7=.72[y1,y8];
- z8=(.56w,0); dz8=(1,0);
- z9=(.650[x8,x10],.300[y8,y10]);
- z10=(.83w,.2capheight);
- curve(1,2,3); curve(3,4,5);
- curve(6,7,8); curve(8,9,10);
- labelpos(1,2,3,4,5,6,7,8,9,10);
-enddef;
-
-% D by Dan Mills
-vardef char.D =
- begingroup
-% charcd := 'D;
- save glyphwidth,lsb,rsb,cuthru,baseline;
- numeric glyphwidth,lsb,rsb,cuthrubaseline;
- baseline=0;
-
- glyphwidth = .5em;
- lsb = .2glyphwidth;
- rsb = .1glyphwidth;
- cuthru = .02xheight;
- setwidth( lsb+glyphwidth+rsb );
-
-% positions:
- % 1 is special
- pos2(.55[thinwidth,thickwidth],45);
- pos3(thickwidth,0);
- pos4(.5[thinwidth,thickwidth],-45);
- % 5 is special
-
-% coordinates:
- % 1 is special
- x2 = lsb + .7glyphwidth; y2 = .92capheight;
- x3r = lsb + glyphwidth; y3 = .55capheight;
- x4 = lsb + .7glyphwidth; y4 = .15capheight;
- % 5 is special
-
-% specials:
- x1r = lsb; y1r = capheight;
- x1l = x1r + .85thickwidth; y1l = y1r - thinwidth;
- z1 = .5[z1l,z1r];
-
- x5r = lsb; y5r = baseline;
- x5l = x1r + .85thickwidth; y5l = y5r + thinwidth;
- z5 = .5[z5l,z5r];
-
-% draw straights:
- stroke(1,5,.45,.2,.2);
-
-% add slopes for curves:
- dz1 = (1,0);
- dz3 = (0,-1);
- dz5 = (-1,0);
-
-% draw curves:
- curve(1,2,3);
- curve(3,4,5);
-
- labelpos(1,2,3,4,5);
- endgroup;
-enddef;
-
-% E by Joey Tuttle
-vardef char.E =
- setwidth .63em;
- pos1(1.5thinwidth,45); pos2(1.25thinwidth,135);
- pos3(1.4thinwidth,90); pos4(.9thinwidth,90);
- pos5(1.5thinwidth,-45); pos6(1.25thinwidth,-135);
- pos7(thickwidth,0); pos8(thickwidth,0);
- x1=w-.1em; y1r=capheight; x2=.1em; % fixed points
- y2r=y1r; x3=.95[x7,x1l]; y3=.55[y6,y2]; x4=x7; y4=y3;
- x5=x1; x6=x2; y5r=0; y6r=y5r;
- z7l=z6; z8l=z2;
- stroke(1,2,.1,.2,0); stroke(3,4,.1,.2,.2);
- stroke(5,6,.1,.2,0); stroke(7,8,.5,.15,.05);
- labelpos(1,2,3,4,5,6,7,8);
-enddef;
-
-% F by Pavel Curtis
-vardef char.F =
- setwidth .6em;
-
- numeric len; % clear this value for redefinition
-
- pos0(thickwidth, 0);
- pos1(1.1thickwidth, 0);
- pos2(len, 10); % Length will be set below
- pos3(thinwidth, 90);
- pos4(1.5thinwidth, 120);
- pos5(thinwidth, 90);
- pos6(1.5thinwidth, 90);
-
- x1.l = 0.1em; % Leave 0.1em sidebars
- x4.r = w - 0.1em;
-
- z0.r = (x1.r,xheight);
- y1 = capheight;
- x2.l = x1.l; x2.r = x1.r; % This determines len, above
- y2 = 0;
- z3.r = (x1,capheight);
- y4.r = capheight;
- z5 = (x1,y6);
- z6.r = (.9[x1.r, x4.r], xheight);
-
- % Vertical stroke
- dz0 = (0,1);
- stroke(0, 1, .8, .15, 0);
- stroke(2, 0, .2, .15, 0);
- % Top stroke
- stroke(3, 4, .8, .38, 0);
- % Middle stroke
- stroke(5, 6, .8, .25, .25);
-
- labelpos(0, 1, 2, 3, 4, 5, 6);
-enddef;
-
-% G by Jean-Luc Bonnetain
-vardef char.G =
- setwidth .75em;
- pos1(.5[thinwidth,thickwidth],10); % upper righmost pt of curve
- pos2(.95[thinwidth,thickwidth],45); % intermediary pt for curve
- pos3(1.3[thinwidth,thickwidth],90); % uppermost pt
- pos4(1.3[thinwidth,thickwidth],135); % intermediary pt for curve
- pos5(1.7[thinwidth,thickwidth],180); % lefmost pt
- pos6(1.3[thinwidth,thickwidth],225); % intermediary pt for curve
- pos7(1.3[thinwidth,thickwidth],270); % lowest pt
- pos8(1.1[thinwidth,thickwidth],270); % intermediary pt for curve
- pos9(.6thinwidth/(thickwidth-thinwidth)[thinwidth,thickwidth],270);
- % lower righmost pt of curve
- pos10(.5[thinwidth,thickwidth],10);% junction pt for 2 strokes
- pos11(.5[thinwidth,thickwidth],0); % lowest pt vertical stroke
- pos12(.5[thinwidth,thickwidth],90);
- pos13(.5[thinwidth,thickwidth],80);
-
- x1r = x10r = x12 = w - .1em ; y1 = 8/15[y3,y5];
- x2 = .707[x3,x1]; y2 = .707[y1,y3];
- x3 = x7; y3r = 1.05capheight;
- x4 = x6; y4 = .707[y5,y3];
- x5r = .1em ; y5 = 1/2capheight;
- x6 = .707[x7,x5] ; y6 = .707[y5,y7];
- x7 = 1/2[x5,x1]; y7r = -.05capheight;
- x8 = .53[x7,x1]; y8 = .85[y91,y7]; % .707 --> .5
- y91 = 3/5[y7,y5];
- x9 = x1l + .02w; y9 = 11/16y91;
- y10 = y7r;
- x11 = x10 ; y11 = y12 = y13 = 7/8y5;
- x13 = x12 -.25w;
-
- dz1 = (0,1);
- dz3 = (-1,0);
- dz5 = (0,-1);
- dz7 = (1,0);
-
- curve(1,2,3);
- curve(3,4,5);
- curve(5,6,7);
- curve(7,8,9);
- stroke(10,11,0,0,0);
- stroke(12,13,0,0,0);
-
- labelpos(1,2,3,4,5,6,7,8,9,10,11,12,13);
-
-enddef;
-
-% H by John Hershberger
-vardef char.H =
-
-% The capital H is just not as nice as the small j. It is not very interesting
-% to the eye, and is in fact rather blocky and ugly in some of its
-% incarnations. Sigh.
-
-lwidth := thickwidth; % Left and right verticals are different
-rwidth := .5[thinwidth,thickwidth]; % ...widths
-
-barheight := .8[ xheight, .5capheight]; % Bar is a bit above center
-
-setwidth .68em; %
-
-% Left vertical stroke
-pos1( 1.1lwidth, 10 ); % To match top of U
-pos2( lwidth, 10 ); % and bottom, sort of
-x1l = .1em; y1=capheight;
-x2=x1; y2=0;
-
-% Right vertical stroke
-pos3( 1.1rwidth, 10 ); % Different width than lvertical
-pos4( rwidth, 10 );
-x3r = w-.1em; y3=capheight;
-x4=x3; y4=0;
-
-% Horizontal stroke
-x5=x1; y5=barheight;
-x6=x3; y6= .2[barheight, xheight]; % Gets steeper for bx. May not be right.
-pos5(1.25thinwidth, 70 ); % Thicker thin stroke!
-pos6(1.25thinwidth, 80 ); % getting no wider
-
-% Now draw it
-stroke( 1, 2, .2, .05, .05 ); % Slight taper below the tops of both verticals
-stroke( 3, 4, .2, .05, .05 );
-stroke( 5, 6, .5, .4, .4 ); % Noticeable taper in the horizontal
-
-labelpos(1,2,3,4,5,6);
-enddef;
-
-% I by Nori Tokusue
-vardef char.I =
- setwidth .5em; % temporary value
- pos1(1.4thickwidth,5);
- pos2(thickwidth,0);
- pos3(1.4thickwidth,2.5); % temporary value
- x1=x2=x3; % straight I
- z3=(.5w,0); % the botom of 'I' is at the base line
- % midway between left and right ends.
- y1=capheight;
- y2=.5capheight;
-
- % OK now draw 'I'
- stroke(1,2,.1,.24,.24); % temporary value.
- stroke(2,3,.9,.24,.24); % temporary value (bottom half)
-
- labelpos(1,2,3);
-enddef;
-
-% J by Lynn Ruggles
-vardef char.J = % character 'J'
- setwidth .5em; % width is 1/2 em
- pos1(thickwidth,0);
- z1=(.2w,1/4capheight);
- dz1=(0,-1);
-
- pos2(.7thickwidth,90);
- z2=(.5[x1,x3],.01capheight);
- dz2=(1,0);
-
- pos3(thickwidth,175);
- z3=(.75w,y1);
- dz3=(0,1);
-
- pos4(thickwidth,180);
- z4=(x3,capheight);
-
- curve (1,2,3);
- stroke (3,4,.5,.01,.01);
-
- labelpos(1,2,3,4,5);
-enddef;
-
-% K by Dikran Karagueuzian
-vardef char.K =
- setwidth .65em;
-
- pos1(1.1thickwidth,0); % the pen starts out slightly thick
- pos2(1.1thickwidth,0); % the pen finishes with start thickness
- pos3(0.8thinwidth,-75);
- pos4(1.4thinwidth,0);
- pos5(1.2thickwidth,0);
-
- x1l=x2l=.1em;
- x3r=x1r-.1thickwidth; %l edge of K
- x4r=x5r=w-.1em; %r edges of K
- y1=y4=capheight; %1 and 4 fully defined
- y2=y5=0;
- y3r=.5[y2,y1];
- z7=.33[z3,z4];
- pos7(0.9thickwidth,angle(z4-z3));
- stroke(1,2,.4,.175,.085);
- stroke(4,3,.3,.175,.085);
- stroke(5,7,.3,.175,.085);
- labelpos(1,2,3,4,5,7); % all positions should be listed
-enddef;
-
-% alternate K by Jim Bratnober
-vardef char.?=
- setwidth .8em;
- pos1(1.1thickwidth,10);
- pos2(thickwidth,10);
- pos3(1.4thickwidth,90);
- pos4(1.6thickwidth,190);
- pos5(1.1thickwidth,45);
- pos6(1.3thickwidth,10);
- z1=(.125w+.56thickwidth,capheight);
- z2=(x1-.06thickwidth,0);
- z3=.3[z2,z1];
- z4=(x6-.7thickwidth,capheight);
- z5=.5[z3,z4];
- z6=(.875w-.7thickwidth,0);
- stroke(1,2,.2,.05,.05);
- stroke(4,3,.1,.1,.2);
- stroke(6,5,.1,.1,.1);
- labelpos(1,2,3,4,5,6);
-enddef;
-
-% L by Bruce Leban
-vardef char.L =
- setwidth 0.6em;
-
- bottomslant := 5; % how much slant at bottom of vertical stroke
-
- x1l = 0.1em; % left margin
- y1 = capheight;
- pos1 (1.15thickwidth, 10); % semi-serif at top
-
- x2 = x1; % more or less straight down
- y2 = 0;
- pos2 (1.05thickwidth, bottomslant);
-
- dz3 = (cosd bottomslant, sind bottomslant);
- z3l = 0.5[z2,z2r]; % bottom of strokes align
- pos3 (thinwidth,90);
-
- x4 = w-0.06em; % right margin
- y4l = 0; % bottom of stroke is at baseline
- pos4 (thickwidth, 85); % grows to thickwidth
-
- stroke (1,2,.2,.15,.05); % slight taper on vertical stroke
- stroke (3,4,.8,0,1-thinwidth/thickwidth);
- % extreme taper on horizontal
- % should change to compute based on thick-thin??
- labelpos (1,2,3,4);
-enddef;
-
-% M by Kwang-Chun Park
-vardef char.M = %draw letter "M"
-
- setwidth 0.7em;
- pos1(thinwidth,0);
- pos2(thinwidth,10);
- pos3(1.1thickwidth,0);
- pos4(1.1thickwidth,0);
- pos5(thinwidth,0);
- pos6(thinwidth,0);
- pos7(1.1thickwidth,0);
- pos8(1.1thickwidth,10);
- y1=capheight; x1=x2;
- z2l=(0.1em,0);
- y3=capheight; z4=(0.5w,0);
- x3l=x1;
- y6=capheight; x5l=x4; y5=0;
- x6r=x7; x7r=w - 0.1em;
- y7=capheight;
- y8=0; x8=x7;
- stroke(1,2,0.3,0,0.1);
- stroke(3,4,0.8,0,0.1);
- stroke(5,6,0.2,0.1,0);
- stroke(7,8,0.3,0.1,0);
- labelpos(1,2,3,4,5,6,7,8);
- % end of the fourth brush
-
-enddef;
-
-% N by Dave Siegel
-vardef char.N =
-begingroup
-save side_right, side_left, charwidth, slidex;
-
-side_right = .07em; %left sidebearing.
-side_left = .1em; %right sidebearing.
-
-charwidth = .5em; %width of character.
-
-slidex = .6thinwidth;
-
- setwidth side_left + charwidth + side_right;
-
-
- %DRAW THE LEFT VERTICAL STEM
-
- pos1(1.05thickwidth,10);
- pos2(1.15thickwidth,10);
-
- x1l = side_left; y1 = capheight;
- x2r = x1r; y2 = 0;
-
- stroke(1,2,0.7,0.1,0.1);
-
-
- %DRAW THE DIAGONAL STROKE
-
- pos3(1.05thickwidth,20);
-
- x3r = side_left + charwidth; y3 = y2;
-
- stroke(1,3,.5,0.1,0.1);
-
-
- %DRAW THE RIGHT VERTICAL STEM
-
- pos4(1.2thickwidth,20);
-
- x4l = x3l; y4 = y1;
-
- stroke(4,3,.5,0.1,0.1);
-
-
- %MARK LABELS
-
- labelpos(1,2,3,4);
-endgroup
-enddef;
-
-% O by Bruce Fleischer
-vardef char.O =
-
-% the O is defined by four points, at roughly the top, bottom, left and right.
-%The positions of the thick and thin points are controlled by the pen widths at
-%these points, and by the angles. The simplest case has the pens pointing
-%vertically at the top and bot, and horizontally at the sides. To slant the
-%counter to the left a little, we tilt the top and bottom pens clockwise, and
-%the side pens ccw. This will also tend to tilt the outside shape of the 'O' to
-%right. To make it look more upright, we slide the top point a bit to the left,
-%and the bottom point a bit to the right.
-
- setwidth .8em; %fairly wide - make it nice and round
- ang:=80;
- topwidth := thinwidth;
- sidewidth := thickwidth;
- topedge := .03 capheight;
- sidebar := .07em;
-
- % go clockwise -- r=outside, l=inside
- % z1=top,z2=r,z3=b,z4=l
-
- pos1(topwidth,ang);
- pos2(sidewidth,90-ang);
- pos3(topwidth,ang-180);
- pos4(sidewidth,-90-ang);
-
- y1r = capheight + topedge;
- y3r = -topedge;
- x2r = w - sidebar;
- x4r = sidebar;
-
- x1 = .48w; x3 = w-x1;
- y2 = .5 capheight; y4 = capheight-y2;
-
- dz1=-dz3=z2-z4;
-
- curve(1,2,3); curve(3,4,1);
-
- labelpos(1,2,3,4);
-enddef;
-
-% P by Ed Williams
-vardef char.P =
-setwidth .65em;
-pos1(thickwidth,0);
-pos2(1.05thickwidth,10);
-pos3(thinwidth,-90);
-pos4(.3[thinwidth,thickwidth],-105);
-pos5(.8[thinwidth, thickwidth],-140);
-pos6(thickwidth,180);
-pos7(.5[thickwidth,thinwidth],150);
-pos8(.2[thinwidth,thickwidth],115);
-pos9(thinwidth,90);
-z1l=(.1w,capheight);
-y3l=capheight;
-x3=x2r=x1r;y2=0;dz3=(1,.-.05);
-z9=(x3+.01em,.55xheight);dz9=(-1,-0.05);
-x6l=w-.15em;
-y6=.95xheight;dz6=(0,-1);
-x4=.5[x3,x6];y4l=.99capheight;
-x8=.5[x6,x9];y8=.05[y9,y6];
-x5=.7[x4,x6]; y5=.3[y4,y6];
-x7=.7[x8,x6]; y7=.3[y8,y6];
-
-stroke(1,2,.1,.1,0);
-stroke(3,4,.8,0,.1);
-curve(4,5,6); curve(6,7,8);
-stroke(8,9,.2,0,.05);
-
-labelpos(1,2,3,4,5,6,7,8,9);
-enddef;
-
-% Q by Neenie Billawala
-vardef char.Q=
- setwidth.8em;
- %numeric a; %numeric b;
- pos1(.85thinwidth,90-10 ); dz1=(-1,0);
- pos2(.5[thinwidth,thickwidth],135+10 );
- pos3(1.13thickwidth,180+10 ); dz3=(0,-1);
- pos4(.5[thickwidth,thinwidth],225-10 );
- pos5(.85thinwidth,270-10 ); dz5=(1,0);
- pos6(.5[thinwidth,thickwidth],315+10 );
- pos7(1.13thickwidth,0+10 ); dz7=(0,1);
- pos8(.5[thickwidth,thinwidth],45-10 );
- x1=.5w; y1=capheight;
- x2=.71[x1,x3]; y2=.71[y3,y1];
- x3r=.08w; y3=.49capheight;
- x4=.71[x3,x5]; y4=.71[y5,y3];
- x5=w-x1; y5=0;
- x6=.71[x5,x7]; y6=.71[y7,y5];
- x7=w-x3; y7=capheight-y3;
- x8=.71[x7,x1]; y8=.71[y1,y7];
- curve(1,3,5);
- curve(5,7,1);
- %curve(1,2,3);
- %curve(3,4,5);
- %curve(5,6,7);
- %curve(7,8,1);
- labelpos(1,2,3,4,5,6,7,8);
-
- pos9(.7thickwidth,60);
- pos10(.85thinwidth,90); %dz10=(z12-z9);
- pos11(.8[thinwidth,thickwidth],60);
- pos12(1.05thickwidth,60);
- pos13(thickwidth,60);
- x9l=x3l; y9r=y5r;
- z10=(x5-.05w,y5);
- x11r=.5[x12,x10]; y11l=.5[y12l,y10l];
- x12r=.97w; y12r=y10l;
- z12=z13r;
- %curve(9,10,11);
- %stroke(10,13,.9,.1,0);
- dz9=(1,.4);
- %dz10=(1,0);
- dz12=(1,.7);
- curve(9,10,12);
- labelpos(9,10,11,12,13);
-
-enddef;
-
-% R by Renata Byl
-vardef char.R =
- setwidth .75em;
- pos1(1.1thickwidth,10);
- pos2(1.05thickwidth,10);
- x1=.15em;
- y1=capheight;
- x2=.15em;
- y2=0;
- pos3(thickwidth,90);
- pos4(thickwidth,75);
- pos5(.5[thickwidth,thinwidth],40);
- pos6(.5[thickwidth,thinwidth],0);
- pos7(.5[thickwidth,thinwidth],320);
- pos8(thinwidth,285);
- pos9(thinwidth,270);
- x3r=x9=x1;
- y3r=capheight;
-
- x4r=x8r=.3em;
- y4=.95capheight;
- dz4=(1,0);
-
- x5=.71[x4,x6];
- y5=.71[y6,y4];
- dz5=(1,-1);
-
- x6r=.45em;
- y6=.80capheight;
- dz6=(0,-1);
-
- x7=.71[x8,x6];
- y7=.71[y6,y8];
- dz7=(-1,-1);
-
- y8=.60capheight;
- dz8=(-1,0);
-
- y9=.58capheight;
-
- pos10(1.05thinwidth,45);
- pos11(1.2thickwidth,10);
- x10=.2em;
- y10=.59capheight;
- x11=.47em;
- y11=.02capheight;
-
- stroke(1,2,.1,.2,0);
- stroke(3,4,0,0,0);
- curve(4,5,6);
- curve(6,7,8);
- stroke(8,9,0,0,0);
- stroke(10,11,.9,0,.2);
- labelpos(1,2,3,4,5,6,7,8,9,10,11);
-enddef;
-
-% S by pinch-hitter Joey Tuttle
-%
-%
-% Don,
-% If you look at this, please don't pay too much attention to it...
-% As it turns out, after dredging up a copy of font1base, the version
-% Metafont available (-87) doesn't execute test. functions -- so I have
-% been totally unable to look at the S and I've no idea whether my
-% "tricks" will make anything other than a big mess!!
-%
-% I'll try to get back in tomorrow to see if someone has fixed things up.
-%
-% Joey
-%1984-5-26 21:50:00
-%
-%1984-5-27 20:30:00 -- Situation unchanged. We'll keep trying....
-%1984-5-29 00:20:00 -- Finally - as I expected, it was a mess... However,
-% I'll at least get something that I'm not too ashamed of.
-%
-%1984-5-29 01:05:00 -- OK, it's not perfect (especially the bold) but
-% I'm happy. (and It's too late)
-%
-vardef char.S =
- setwidth .56em;
- x2=.5[x4r,x5r]; y1=.54[0,capheight]; % the center of S
- x3=x1=w/2; % top and bottom also at center
- y3r=1.05capheight; y2l=-.05capheight; % centers slightly extended
- x4l=.1w; y4=.6[y1,0]; % lower left
- x5r=.9w; y5=.6[y1,capheight]; % upper right
- x6l=x5r; y6=y4; % center of lower curve
- x7r=x4; y7=y5; % center of top curve
-% This character goes 5..3..7..1..6..2..4 (top to bottom)
- pos5(1.3thinwidth,45); pos3(.7thinwidth,90);
- pos7(1.2thinwidth,180); pos1(1.1thickwidth,270);
- pos6(1.2thinwidth,180); pos2(.7thinwidth,90);
- pos4(1.3thinwidth,45);
- dz3=(-1,0);dz7=(0,-1);
- dz1=(3,-2); % this one is important!
- dz6=(0,-1);dz2=(-1,0);
- curve(5,3,7); curve(7,1,6); curve(6,2,4);
- labelpos(1,2,3,4,5,6,7);
-enddef;
-
-% T by Tuan Pham
-vardef char.T=
-setwidth .75em;
-pos1(1.5thickwidth,45);
-pos2(1.2thickwidth,60);
-pos3(1.2thickwidth,0);
-pos4(1.1thickwidth,10);
-x1=0.125em; x2=w-0.125em;
-y1=y2=capheight-0.5thickwidth;
-x3=x4=0.5w; y3=capheight-0.5thickwidth;
-y4=0;
-stroke (1,2,.2,.3,.2);
-stroke (3,4,.6,.3,.2);
-labelpos(1,2,3,4);
-enddef;
-
-% alternate T by Theresa-Marie Rhyne
-vardef char.exclamation=
- charcode:=ASCII"!";
- setwidth .75em;
- pos1(1.5thickwidth,10);
- pos2(1.1thickwidth,45);
- pos3(1.1thickwidth,45);
- pos4(1.1thickwidth,45);
- z1=(.5w,0);%y1=0;
- y2r=capheight; x1r=x2r;
- y3r=y4r=capheight; x3r=w-x4r=.1em;
- stroke(1,2,.2,.05,.05);
- stroke(3,4,.2,.05,.05);
- labelpos(1,2,3,4);
-enddef;
-
-% U by Don Knuth
-vardef char.U =
- setwidth .75em;
- pos1(1.1thickwidth,10);
- pos2(thickwidth,10);
- pos3(thickwidth,40);
- pos4(.5[thickwidth,thinwidth],75);
- pos5(.9[thickwidth,thinwidth],130);
- pos6(thinwidth,180);
- pos7(1.1thinwidth,190);
- x1l=.1em; x7l=w-.1em;
- y1=y7=capheight;
- x2=x1; y2=.3capheight; dz2=(0,-1);
- x3=.75[x4,x2]; y3=.75[y2,y4];
- x4r=.5[x2r,x6r]; y4l=-.05capheight; dz4=(1,0);
- x5=.71[x4,x6]; y5=.71[y6,y4];
- x6=x7; y6=1/3capheight; dz6=(0,1);
- stroke(1,2,.2,.05,.05);
- curve(2,3,4); curve(4,5,6);
- stroke(6,7,.8,.05,.05);
- labelpos(1,2,3,4,5,6,7);
-enddef;
-
-% V by Kanchi Gopinath
-vardef char.V=
- setwidth .75em;
-
- pos1(1.6thickwidth,10);
- pos2(1.5thickwidth,65);
- pos3(thinwidth,0);
- pos4(1.1thinwidth,10);
-
- x1l=.1em;
- x4l=w-.1em;
- y1=y4=capheight;
-
- y2l=0;
- x2l=w/2;
-
- x3l=x2l;
- y3l=y2l;
-
- stroke(1,2,.1,.4,.1);
- stroke(4,3,.1,.4,.1);
- stroke(2,3,0,0,0);
- labelpos(1,2,3,4);
-enddef;
-
-% W by Stan Osborne
-vardef char.W =
- setwidth .9em; % set up our char width and variables
-
- pos1(2thickwidth,-30); % position upper left vector vec(1)
- y1 = capheight; % don't set height as tall as an "h"
- x1l = .02w; % all the way to the left
-
- pos2(1.0thickwidth,-4); % position lower left vector vec(2)
- z2 = (0.325w,0); % at baseline, center is at .3w
-
- stroke(1,2,.3,.2,.1); % left most stroke
-
- pos3(.5[2thickwidth,2thinwidth],-88);% position middle vector vec(3)
- z3l = (0.51w,1.07xheight); % in the middle, top as high as "x"
-
- stroke(2,3,.4,.2,0); % center left stroke
-
- pos4(.5[2thickwidth,2thinwidth],92);% position other middle vector vec(4)
- z4r = z3l; % vec(4) is a 180 of vec(3)
- z4l = z3r; %
-
- pos5(1.0thickwidth,0); % position lower left vector vec(5)
- z5 = (0.70w,0); % at baseline, ceter is at .7w
-
- stroke(4,5,.6,0,.1); % center right stroke
-
- pos6(1.5thickwidth,30); % position upper right vector vec(6)
- y6 = capheight; % don't set height as tall as an "h"
- x6r = 1.0w; % all the way to the right
-
- stroke(5,6,.7,.1,.2); % right most stroke
-
- labelpos(1,2,3,4,5,6); % label the vectors (1,2,3,4,5, and 6)
-
-enddef;
-
-% X by Alan Spragens
-vardef char.X =
-setwidth .8em;
-pos1(1.5 thickwidth,10);
-pos2(1.8 thickwidth,10);
-pos3(1.5 thinwidth,10);
-pos4(1.8 thinwidth,10);
-y1=capheight;
-x1l=.1em;
-x4r=w-.1em;
-y4=capheight;
-y3=0;
-y2=0;
-x3=x1;
-x2=x4;
-stroke(1,2,.1,.1,.3);
-stroke(3,4,.9,.2,0);
-labelpos(1,2,3,4);
-enddef;
-
-% Y by Arnie Olds
-vardef char.Y = setwidth .75em; pos1(1.2thickwidth,10);
-pos2(1.1thickwidth,10); pos3(2thinwidth,10);
-pos4(thinwidth,-5); pos5(1.5thickwidth,10);
-x2=.5w; x1r=x2r; z4r=z2r; x3r=w-.05em; x5l=.03em;
-y1=0; y2r=.75xheight; y3=y5=capheight; stroke(1,2,.3,.1,0);
-stroke(3,4,.1,.1,0); stroke(5,2,.1,.1,0); labelpos(1,2,3,4,5);
-enddef;
-
-% Z by Malcolm Brown
-% This `Z' uses the Helvetica Z as its basis.
-% It also departs from the Helvetica design in the
-% hopes of creating a more interesting letter.
-%
-vardef char.Z =
- setwidth .8em; % same proportion as in Helvetica
- pos1(1.5thickwidth,75); % stroke 1 goes from 1 to 2
- pos2(.6thickwidth,90); % (top horizontal stroke)
-%
- pos3(1.5thickwidth,-10); % stroke 2 goes from 3 to 4
- pos4(1.5thickwidth,-10); % (diagonal stroke)
-%
- pos5(.65thickwidth,90); % stroke 3 goes from 5 to 6
- pos6(1.5thickwidth,75); % (bottom horizontal)
-%
- x1=.125w; % determing position 1
- y1r = capheight;
-%
- x2=w - x1; % determines position 2
- y2r = capheight;
-%
- x3r=x2l; % positions 2 and 3 share a point
- y3r=y2l;
-%
- x4l=x5r; % positions 4 and 5 share a point
- y4l=y5r;
-%
- x5=.5x1; % determines 5
- y5l=0;
-%
- x6=w-x5; % determines 6
- y6l=0;
-% %
- stroke(1,2,.3,.6,0); % top horizontal stroke
- stroke(5,6,.7,0,.6); % bottom horizontal stroke
- stroke(3,4,0,0,0); % diagonal stroke
-%
- labelpos(1,2,3,4,5,6);
-enddef;
-
-% a by Ann Lasko-Harvill
-vardef char.a=setwidth .5em;% NOTE TO GRADER: THIS ISN'T AS
- pos1(1.1thickwidth,10);% FINISHED AS I WOULD LIKE IT.
- x1l=.12em;
- y1l=.75xheight;
- dz1=(0.2,1);
- pos2(.5[1.1thickwidth,.75thinwidth],-30);
- x2=.24[x1,x3];
- y2=.76[y1,y3];
-% dz2=(1,1);
- pos3(.75thinwidth,-90);
- x3=.27em;
- y3=xheight;
- dz3=(1,0);
- pos4(.25[thickwidth,.75thinwidth],-155);
- x4l=.75[x3l,x5l];
- y4l=.75[y5l,y3l];
- dz4=(1,-1);
- pos5(thickwidth,-180);
- x5=.42em;
- y5=y1;
- dz5=(0,-1);
-
- pos6(thickwidth,-180);
- x6=x5;
- y6=y7l;
- dz6=(0,-1);
- pos7(1.2thickwidth,-135);
- x7l=x6l;
- y7r=0;
- dz7=(1,-1);
- pos8(1.5thickwidth,-135);
- x8r=x6l;
- y8l=y6;
- dz8=(1,0);
- pos9(thinwidth,-90);
- x9=x5r+1;
- y9=.65xheight;
- dz9=(-1,-.05);
- pos10(.5[thickwidth,thinwidth],-45);
- x10=.2[x11,x9];
- y10=.2[y9,y11];
- dz10=(-1,-1);
- pos11(thickwidth,0);
- x11=.5[x1l,x1];
- y11=.45[y10,y12];
- dz11=(0,-1);
- pos12(.35[thickwidth, thinwidth],55);
- x12=.4[x11,x13];
- y12l=-.01;
- dz12=(1,0);
- pos13(thinwidth,90);
- x13=x6r+1;
- y13=y6;
- dz13=(1,1);
- curve(1,2,3);curve(3,4,5);
- stroke(5,6,.5,0,.05);curve(6,7,8);
- curve(9,10,11);curve(11,12,13);
- labelpos(1,2,3,4,5,13,6,7,8,9,10,11,12);
-enddef;
-
-% b by Dave Siegel
-vardef char.b =
-begingroup
-save side_right, side_left, charwidth, slidex;
-save zero_width, thinner_width, half_width, corner_width;
-
-side_right = .07em; %left sidebearing.
-side_left = .1em; %right sidebearing.
-
-charwidth = .4em; %width of character.
-
-
-
-zero_width = .01thinwidth;
-thinner_width = .6thinwidth;
-half_width = .9thinwidth;
-corner_width = .6[thinwidth,thickwidth];
-
-slidex = .6thinwidth;
-
-
- setwidth side_left + charwidth + side_right;
-
- %DEFINE HEADINGS AT ALL POINTS ON CURVES
-
- dz3 = (0,-1);
- dz4 = (1,-1);
- dz5 = (1,0);
- dz6 = (1,1);
- dz7 = (0,1);
- dz8 = (-1,1);
- dz9 = (-1,0);
- dz10 = (-1,-1);
- dz11 = (0,-1);
-
- %DEFINE PEN RELATIONSHIPS FOR BOTH STROKES
-
- pos1(1.5thickwidth,45);
- pos2(1.05thickwidth,10);
- pos3(zero_width,0);
- pos4(thinner_width,45);
- pos5(.9half_width,90);
- pos6(corner_width,150);
- pos7(thickwidth,180);
- pos8(.9corner_width,225);
- pos9(half_width,270);
- pos10(thinner_width,315);
- pos11(zero_width,0);
-
- %DEFINE COORDINATES
- x1r = x2r; y1 = hheight;
- x2l = side_left; y2 = 0;
- x3 = x2 + slidex + .2slidex;y3 = .32xheight;
- x4 = .22[x3,x5]; y4 = .28[y5,y3];
- x5l = .4[x3,x7]; y5 = y2r;
- x6 = .65[x5,x7]; y6 = .18[y5,y7];
- x7r = charwidth + slidex; y7 = .5[y5,y9];
- x8 = .65[x9,x7]; y8 = .18[y9,y7];
- x9 = .45[x3,x7]; y9 = .98[0,xheight];
- x10 = .3[x11,x9]; y10 = .2[y9,y11];
- x11 = x3; y11 = .5xheight;
-
-
- %DRAW STEM
-
- stroke(1,2,0.1,0.2,0);
-
- %DRAW BOWL
-
- curve(3,4,5);
- curve(5,6,7);
- curve(7,8,9);
- curve(9,10,11);
- curve(11,3,3);
-
- %MARK LABELS
-
- labelpos(1,2,3,4,5,6,7,8,9,10,11);
-endgroup
-enddef;
-
-% c by Alan Spragens
-vardef char.c =
-setwidth .5em;
-pos1(thickwidth,90);
-pos2(.8[thickwidth,thinwidth],90);
-pos3(1.1 thickwidth,180);
-pos4(.2[thickwidth,thinwidth],220);
-pos5(1.1thickwidth,260);
-z1=(w-.075em,.85 xheight);
-z2=(.5w,xheight);
-y3=.5 xheight;
-x3l=.1em;
-x4=.5w;
-y4=0;
-x5=w-.05em;
-y5=.2xheight;
-dz2=(-1,0);dz3=(0,-1);dz4=(1,0);
-curve(1,2,3);curve(3,4,5);
-labelpos(1,2,3,4,5);
-enddef;
-
-% d by Jean-Luc Bonnetain
-vardef char.d =
- setwidth .6em;
- pos1(1.5[thinwidth,thickwidth],45); % top of stem
- pos2(.7[thinwidth,thickwidth],10); % bottom of stem
- pos3(.9(thinwidth/(thickwidth - thinwidth))[thinwidth,thickwidth],90);
- % junction upper part of bowl / stem
- % this is a trick here, to make sure that the junction does not
- % become too black with bold versions.
-% but actually the formula gives 1.9thinwidth in all cases!
- % in the normal version, thindwidth/(thickwidth-thinwidth) = 11/4
- % while in the bolder version the value is 14/10 < 11/4
- % this way the width of the curve when it joins the stem will
- % be relatively smaller in bold version (less far of the way from
- % thinwidth and thickwidth).
- % there is a small problem due to the digitization process here:
- % in the small size / 3 together test, the bold extended version
- % has its stem widened just after the upper junction of the bowl
- % and the stem, which creates an ugly white recess (this does not
- % appear in the large size tests). Since this depends on the size
- % on the letter and on the digitizing algorithm, a solution for
- % one size will look terrible at another one, so i haven't tried
- % to fix that problem (i don't know what will happen in the actual
- % size that will be used for typesetting text with font1(version
- % -1000) ).
-
- pos4(.8[thinwidth,thickwidth],90); % uppermost pt upper part bowl
- pos5(thickwidth,180); % leftmost pt of bowl
- pos6(.8[thinwidth,thickwidth],270); % lowermost pt bottom part bowl
- pos7(.4(thinwidth/(thickwidth - thinwidth))[thinwidth,thickwidth],270);
- % junction lower part of bowl / stem
-
- x1r = x2r ; y1 = hheight;
- z2r = (w - .1em , 0);
- x3 = x2l + .05w; y3 = 7.55/10y4 ;
- x4 = x6 = 1/2[x2,x5] ; y4 = xheight;
- x5r = .1em; y5 = 1/2y4;
- y6r = -.02capheight;
- x7 = x2l + .02w; y7 = 3/10y4;
-
- dz3 = (-1,50); % avoids possible loop at z3l
- dz4 = (-1,0);
- dz5 = (0,-1);
- dz6 = (1,0);
-
- stroke(1,2,.1,.2,0);
- curve(3,4,5);
- curve(5,6,7);
-
- labelpos(1,2,3,4,5,6,7);
-
-enddef;
-
-% e by Dan Mills
-vardef char.e =
- begingroup
-% charcd := 'e;
- save glyphwidth,lsb,rsb,cuthru;
- numeric glyphwidth,lsb,rsb,cuthru;
-
- glyphwidth = .45em;
- lsb = rsb = .2glyphwidth;
- cuthru = .02xheight;
- setwidth( lsb+glyphwidth+rsb );
-
-% positions:
- pos1(thinwidth,-90);
- pos2(.1[thinwidth,thickwidth],-100);
- pos3(thickwidth,-180);
- pos4(thinwidth,-270);
- % 5 is special
- pos6(thinwidth,-90);
-
-% coordinates:
- x1 = lsb + .97glyphwidth; y1 = .2xheight;
- x2 = lsb + .55glyphwidth; y2r = -cuthru;
- x3r = lsb; y3 = y6;
- x4 = lsb + .5glyphwidth; y4r = xheight + cuthru;
- % 5 is special
- x6 = x3; y6 = .52 xheight;
-
-% specials:
- x5r = lsb + glyphwidth; y5r = y6r;
- x5l = x5r - thickwidth; y5l = y6l;
- x5 = .5[x5l,x5r]; y5 = .5[y5l,y5r];
-
- dz1 = z2 - z1 + (0,1.5(y2-y1));
- dz2 = (-1,0);
- dz3 = (0,1);
- dz4 = (1,0);
-
-% draw straights:
- stroke(5,6,0,0,0);
-
-% add a slope for the curves:
- dz5 = .999[(z5-z4),(0,-1)];
-
-% draw curves:
- curve(1,2,3);
- curve(3,4,5);
-
- labelpos(1,2,3,4,5,6);
- endgroup;
-enddef;
-
-% f by Malcolm Brown
-vardef char.f =
- setwidth .35em; % roughly the same as Helvetica f
- pos1(1.05thickwidth,190); % R's start on the left!
- pos2(.15[thickwidth,thinwidth],180);
-%
- pos5(.80[thickwidth,thinwidth],95);
- pos7(.75[thickwidth,thinwidth],45);
-%
- pos8(1.1thinwidth,80); % stroke 8 to 9 is the crossbar
- pos9(thinwidth,80);
-%
- y1=0; % determines 1
- x1=.35w;
-%
- x2=x1; % determines 2
- y2=xheight;
- dz2=(0,1); % heading north
-%
- y5=.33[hheight,capheight];
- x5=.2[x2,x7];
-%
- y7=.125[capheight,xheight];
- x7=.82w;
-%
-% Crossbar
-%
- y8r=xheight; % determines 8
- x8=.33[0,x2r];
-%
- y9r=xheight; % determines 9
- x9=w-1.67x8;
-%
- stroke(1,2,0,0,0);
- curve(2,5,7);
- stroke(8,9,0,0,0);
-%
- labelpos(1,2,5,7,8,9);
-enddef;
-
-% g by Bruce Leban
-
-def down = (0,-1) enddef;
-def up = (0,1) enddef;
-def right = (1,0) enddef;
-def left = (-1,0) enddef;
-vardef circle@# (expr xc,yc,xrad,yrad,adjustpen,tilt,pentilt) =
-
- z[@#] = (xc,yc);
- z[@#+1] = (xc+xrad*cosd (180-tilt), yc+yrad*sind (180-tilt));
- z[@#+2] = (xc+xrad*cosd (90-tilt), yc+yrad*sind (90-tilt));
- z[@#+3] = (xc+xrad*cosd (0-tilt), yc+yrad*sind (0-tilt));
- z[@#+4] = (xc+xrad*cosd (-90-tilt), yc+yrad*sind (-90-tilt));
-
- dz[@#+1] = z[@#+2] - z[@#+4];
- dz[@#+3] = z[@#+4] - z[@#+2];
-
- pos[@#+1] (adjustpen*thinwidth, 180-tilt+pentilt);
- pos[@#+2] (adjustpen*thickwidth, 90-tilt-pentilt);
- pos[@#+3] (adjustpen*thinwidth, 0-tilt+pentilt);
- pos[@#+4] (adjustpen*thickwidth,-90-tilt-pentilt);
-
- curve ([@#+1],[@#+2],[@#+3]);
- curve ([@#+3],[@#+4],[@#+1]);
-enddef;
-
-vardef char.g =
- setwidth 0.5em;
-
- pentilt := 20; % degree of "tilt" for pens
-
- circle10 (
- .47w,.55xheight, % center of circle
- (w - 0.22em)/2, % "radius" in x direction
- .4xheight, % and y direction
- 1, % pen width multiplier
- 0, % don't rotate control points
- pentilt
- );
-
- xadjust := 1/3thinwidth; % move the down stroke over xadjust
-
- % top of downstroke
- x2r = x13r + xadjust;
- y2 = xheight;
- pos2 (1.2thickwidth, 45);
-
- % bottom of down stroke and right side of descender
- x3r = x2r; % position below pen 2
- y3 = .10xheight; % just above base line
- pos3 (.5[thinwidth,thickwidth],pentilt);
-
- dz3 = down; % going down at this point
-
- % bottom of descender
- x4 = .65[x5,x3]; % closer to right side of g
- y4r = -ydepth; % positioned at -ydepth
- pos4 (thinwidth,-90+pentilt);
-
- % left side of descender
- x5r = x11r; % x5r and x11r are really on left side
- y5 = .8[-ydepth,0]; % ends below base line
- pos5 (thickwidth,180+pentilt);
-
- stroke (2,3,0.5,0.5,0);
-
- curve (3,4,5);
-
- labelpos (2,3,4,5,10,11,12,13,14);
-enddef;
-
-% I had hoped to do a tradional style g, but I didn't have enough time.
-%
-% vardef char.var.g = etc
-
-% h by Arnie Olds
-vardef char.h = setwidth .6em; pos1(1.5thickwidth,45);
-pos2(1.05thickwidth,10); x2l=.1em; x8l=w-.1em;
-x1=x2; x3r=x2r; x7=x8; y1=hheight; y2=0; y8=0; y3=.55xheight;
-y7=.7xheight; pos3(.8thinwidth,-45);
-pos4(thinwidth,-55);
-pos5(.25[thickwidth,thinwidth],-110); pos6(thickwidth,-150);
-pos7(thickwidth,-170); pos8(1.05thickwidth,-170);
-x5=.75[x3,x7]; y5l=1.05xheight; x4=.5[x3,x5]; y4=.85[y3,y5];
-x6=.75[x5,x7]; y6=.33[y5,y7]; stroke(1,2,.1,.2,0);
-curve(3,4,5); curve(5,6,7); dz3=(0,1); dz7=(0,-1);
-dz5=(1,0); stroke(7,8,.3,0,.1); labelpos(1,2,3,4,5,6,7,8); enddef;
-
-% i by Bruce Fleischer
-vardef char.i =
- setwidth 1/3em; %same width as 'l'
- botangle:=10; %same angle at bottom of stroke
- pos1(1.15thickwidth, botangle); %stroke of 'i' very much like 'l',
- pos2(1.05thickwidth, botangle); %only top has same angle as bottom
- z2=(.5w,0);
- y1=xheight;
- x1r=x2r;
- stroke(1, 2, .2, .2, 0);
-
- pos3(1.15thickwidth, botangle); %top and bottom of dot are parallel to
- pos4(1.15thickwidth, botangle); %and same length as top of stroke
- .4[x3r,x4r] = x2r; %keep dot from falling off to the left
- x3r=x4r-.07(hheight-xheight); %slant sides of dot
- y4=.25[xheight,hheight]; %space dot between xheight and hheight
- y3=.55[xheight,hheight];
- stroke(3,4, 0, 0, 0); %make it a parallelogram
-
- labelpos(1,2,3,4);
-enddef;
-
-% j by John Hershberger
-vardef char.j =
-
-lspace := .08em; % How much space at left of j; adjust to look right
-jwidth := .34em + lspace; % Total width of character and whitespace
-lcurve := .71; % Fairly round curve at end of bottom loop
-rcurve := .73; % Squarish round curve at start of bottom loop
-
-% Dot parameters should be coordinated with 'i' dot.
-dotdy := .4*(hheight-xheight); % Height of dot
-dotwidth := 1.3thickwidth; % Width of dot
-lswell := -.1; % Reverse taper for left of dot
-rswell := -.05; % Reverse taper for right of dot
-eps := -.3rswell*thickwidth; % Amount to move dot left to make it look
- % more centered. Try to make right side of
- % j's vertical stroke ~ bisect dot's swell.
- % We're at the level of single pixels, so it's
- % hard to make it right.
-
-setwidth jwidth;
-pos1( 1.5thickwidth, 45 ); % As in 'l'
-pos2( thickwidth, 10 );
-pos3( .7[thinwidth, thickwidth], -35 );
-pos4( .3[thinwidth, thickwidth], -80 );
-pos5( .15[thinwidth, thickwidth], -120 );
-pos6( thinwidth, -135 ); % No slight flare at the end of j stroke
- % Slope matches top of j stroke--unimportant?
-y1=xheight; x1r = w-.1em; % Right side straight and .1 em in.
- % It would be tempting to put the top of the
- % stroke a little bit to the left so that the
- % "j" doesn't look like it's falling over
- % backward. (See next line.)
-fudge:= .005em; % This was originally used to move the bottom
- % of the stroke right to achieve an equivalent
- % effect. Setting fudge to .005em works fairly
- % nicely, except that the pixel-jagged right
- % edge of the
- % stroke is then a little disconcerting.
-x2r=x1r+fudge; y2r = .3[-ydepth,xheight]; % Top of curve
-dz2=(0,-1); % Heading down
-x3= rcurve[x4,x2]; y3 = rcurve[y2,y4]; % See below
-y4r=-ydepth -.05capheight; x4l= .5[x6l,x2l];
- % Inside of curve is flat in center
-dz4=(-1,0); % Heading left
-x5 = lcurve[x4,x6]; y5 = lcurve[y6,y4];
-x6r = lspace; y6l = .8[-ydepth, y2r]; % Pen is flipped, curve ends just
- % below where it starts on other side.
-
-% Dot definition
-x7r = x1r-eps; y7 = y1+ 1.7dotdy ; % Start 1.7dotdy above j-stroke
-x8r = x7r-eps; y8 = y7 - dotdy; % And come down dotdy.
-pos7( dotwidth, 45 ); % Same slope as top of stroke
-pos8( dotwidth, 45 ); % Same slope as top of stroke
-
-% Draw the thing
-stroke( 1, 2, .1, .2, 0 ); % To match top of 'l'
-curve(2,3,4); curve(4,5,6);
-
-stroke( 7, 8, .5, lswell, rswell); % Swell out a little on the dot
-
-labelpos( 1,2,3,4,5,6,7,8 );
-enddef;
-
-% k by Renata Byl
-vardef char.k =
- setwidth .6em;
- pos1(1.5thickwidth,45);
- pos2(1.05thickwidth,10);
- z2=(.1667em,0);
- y1=hheight; x1r=x2r;
- pos3(1.5thickwidth,90);
- pos4(1.05thickwidth,90);
- y3=.5hheight;
- y4=.75hheight;
- z3=(x2r,y3);
- z4=(.45em,y4);
- pos5(1.00thickwidth,45);
- pos6(1.05thickwidth,10);
- y5=.5hheight;
- y6=.02capheight;
- z5=(.25em,y5);
- z6=(.45em,y6);
-
- stroke(1,2,.1,.2,0);
- stroke(3,4,.9,0,.2);
- stroke(5,6,.9,.2,0);
- labelpos(1,2,3,4,5,6);
-enddef;
-
-% l by Don Knuth
-vardef char.l =
- setwidth 1/3em;
- pos1(1.5thickwidth,45);
- pos2(1.05thickwidth,10);
- z2=(.5w,0);
- y1=hheight; x1r=x2r;
- stroke(1,2,.1,.2,0);
- labelpos(1,2);
-enddef;
-
-% m by Jim Bratnober
-vardef char.m =
-%offset:=(.3333em-thickwidth)/2;
- offset:=(.3em-thickwidth)/2;
-%setwidth 1em+2offset;
- setwidth .95em;
- chwid:=w-2offset;
- pos1(1.5thickwidth,45); % upper left nub
- pos2(.9thickwidth,10); % moving down the left vertical
- pos3(1.05thickwidth,10); % at the bottom
- pos4(.9[thickwidth,thinwidth],-50); % left hump
- pos5(.5[thickwidth,thinwidth],-105);
- pos6(thickwidth,-140);
- pos7(thickwidth,-170); % middle vertical, top
- pos8(thickwidth,10); % duplicate since directions of pen differ
- pos9(1.1thickwidth,-170); % bottom
- pos10(.9[thickwidth,thinwidth],-50); % right hump
- pos11(.5[thickwidth,thinwidth],-105);
- pos12(thickwidth,-140);
- pos13(thickwidth,-170); % top of right vertical
- pos14(1.05thickwidth,-170); % bottom
-
-numeric xxheight;
- y1=1.02xheight;
- x1r=x2r=x3r=offset+thickwidth;
- y2=.55xxheight;
- dz2=(0,1);
- y3=0;
- x4=x2+.054chwid;
- y4=.95xxheight;
- z5=(.287chwid+offset,1.05xxheight); dz5=(1,0); y5l=1.03xheight;
- z6=(.46chwid+offset,y4);
- humpwid:=(chwid-(x3r-x3l))/2;
- z7=(x9,y2+.1xxheight); dz7=(0,-1);
- x9l=x3r+humpwid;
- y9=0;
- z8=z7; dz8=(0,1);
-% Note: instead of humpwid, better to say `x9l-x3r=x14l-x9l; x14l-x3l=chwid'!
- z10=(x7+x4-x2,y4);
- z11=(x7+x5-x2,y5); dz11=(1,0);
- z12=(x7+x6-x2,y4);
- z13=(x14,y2+.1xxheight); dz13=(0,-1);
- x14l=x9l+humpwid;
- y14=0;
-
- stroke(1,3,.1,.3,0);
- curve(2,4,5);
- curve(5,6,7);
- stroke(7,9,0,0,0);
- curve(8,10,11);
- curve(11,12,13);
- stroke(13,14,0,0,0);
- labelpos(1,2,3,4,5,6,7,8,9,10,11,12,13,14);
-enddef;
-
-% n by Lynn Ruggles
-vardef char.n = % character 'n'
- setwidth .6em; % width is slightly larger than 1/2 em
- x1=.25w; y1=xheight;
- pos1(2thickwidth,0); % pen is thick and 0 degree angle
-
- x2=.3w; y2=y1;
- pos2(thickwidth,15); % pen is thick and 15 degree angle
-
- pos3(1.2thickwidth,0); % ditto
- x3=.3w; y3=0;
-
- x4=x3; y4=2/3xheight-thinwidth;
- pos4(thickwidth,75);
- dz4=(10,11);
-
- x5=.6w; y5=xheight-.5thinwidth;
- pos5(thickwidth,60);
- dz5=(1,0);
-
- x6=.8w; y6=y4;
- pos6(1.1thickwidth,30);
- dz6=(0,-1);
-
- pos7(1.5thickwidth,0);
- x7=.85w; y7=y3;
-
-% stroke (1,2,.2,0,.30;
- stroke (1,3,.2,.8,0);
- curve (4,5,6);
- stroke (6,7,.7,0,.5);
- labelpos(1,2,3,4,5,6,7);
-enddef;
-
-% o by Stan Osborne
-vardef char.o =
- setwidth .6em; % make the "o" 60% of an em
-numeric mythin,mymid[],mythick;
- mythin = thinwidth;
- mymid1 = .27[thinwidth,thickwidth];
- mymid2 = .75[thinwidth,thickwidth];
- mythick = thickwidth;
-
- pos1(mythin,-92); % vertical and thin for vec(1)
- z1l = (.5w,1.05xheight); % in the middle and top at xheight
-
- pos2(mymid1,-48); % getting flatter for vec(2)
- x2l = .27w; % moved over to the left
- y2l = .91y1l; % it is near xheight
-
- pos3(mythick,0); % flat and thicker for vec(3)
- z3 = (.22w,.65y1l); % moved to the left and down
-
- curve(1,2,3); % draw the upper left curve
-
- pos4(mythick,0); % same as vec(3) for vec(4)
- z4 = (x3,.35[y6l,y1l]); % symetrical with z3
-y6l=-.05xheight;
- stroke(3,4,.5,-.1,.1); % left center stroke
-
- pos5(mymid1,45); % lifting up for vec(5)
- x5l = x2l; % moved over to the right
- y5l-y6l = y1l-y2l; % it is near the bottom
-
- pos6(mythin,88); % vertical and thin for vec(6)
- z6l = (.5w,-.05xheight); % in the middle and bottom at baseline
-dz6=(1,0);
- curve(4,5,6); % draw the lower left curve
-
- pos7(mythin,-92); % vec(7) is a 180 of vec(6)
- z7r = z6l; % must match with vec(6)
-
- pos8(mymid1,-50); % lifting up for veck(8)
- x8r = .97w-x5l; % mirror image of vec(5)
- y8r = y5l; % same height
-
- pos9(mymid2,0); % flat and thicker for vec(9)
- z9 = (.97w-x3,y4); % mirror of vec(4)
-dz7=(1,0);
- curve(7,8,9); % draw the lower right curve
-
- pos10(mymid2,0); % same as vec(9)
- z10 = (x9,y3); % mirror of vec(3)
-
- stroke(9,10,.5,.1,-.1); % right center stroke
-
- pos11(mymid1,48); % lifting up for vec(11)
- x11r = x8r; % same as vec(8)
- y11r = y2l; % same height as vec(2)
-
- pos12(mythin,88); % vertical and thicker for vec(12)
- x12r = x1l; % a 180 of vec(1)
- y12r = y1l; % same height as vec(1)
-
- curve(10,11,12); % draw the upper right curve
-
- labelpos(1,2,3,4,5,6,7,8,9,10,11,12); % label the vectors
-
-enddef;
-
-% p by Theresa-Marie Rhyne
-vardef char.p=
- setwidth .55em;
- pos1(1.5thickwidth,45);
- pos2(1.05thickwidth,10);
- pos3(.9thinwidth,80);
- pos4(thinwidth,80);
- pos5(thinwidth,135);
- pos6(thickwidth,180);
- pos7(thickwidth,215);
- pos8(thinwidth,250);
- pos9(.5thinwidth,270);
- z2=(.1em,xheight);
- y1=-ydepth;
- x1r=x2r; x3=x9r=.1em;
- y3=.1xheight; y9=.9xheight;
- y4=0; x4=x8=.4w;
- dz4=(1,0);
-
- y8=xheight;
- x6r=.7w; y6l=.5xheight;
- dz6=(0,1);
- x5r=.75[x4r,x6r]; y5r=.75[y6r,y4r];
- x7=.75[x8,x6]; y7=.75[y6,y8];
-
- dz8=(-1,0);
- stroke(1,2,.1,.2,0);
- stroke(3,4,.5,-.4,.2);
- curve(4,5,6); curve(6,7,8);
- stroke(8,9,.5,-.4,.2);
- labelpos(1,2,3,4,5,6,7,8,9);
-enddef;
-
-% q by Pavel Curtis
-vardef char.q =
-% setwidth .5em;
- setwidth .6em;
- cw := .75[thinwidth,thickwidth]; % Corner pen width
- cp := .72; % Corner positioning coeff.
-
-
- pos1(1.5thickwidth, 45);
- pos2(thickwidth, 0);
- pos3(cw, 45);
- pos4(thinwidth, 90);
- pos5(cw, 135);
- pos6(thickwidth, 180);
- pos7(cw, 225);
- pos8(thinwidth, 270);
- pos9(cw, 315);
-
- x6.r = 0.1em; % Again .1em sidebars
- x2.r = w - 0.1em;
-
- x1.l = x2.l;
- y1 = -ydepth;
- y2 = xheight/2;
- x4 = 1/2[x6, x2];
- y4.r = 1.05xheight;
- y6 = y2;
- x8 = x4;
- y8.r = -.05xheight;
- x3 = x9 = cp[x4, x2];
- x5 = x7 = cp[x4, x6];
- y3 = y5 = cp[y2, y4];
- y7 = y9 = cp[y2, y8];
- dz2 = (0,1);
- dz4 = (-1,0);
- dz6 = (0,-1);
- dz8 = (1,0);
-
- % Stem
- stroke(1, 2, .1, 0, .2);
- % Bowl
- curve(2, 3, 4);
- curve(4, 5, 6);
- curve(6, 7, 8);
- curve(8, 9, 2);
-
- labelpos(1, 2, 3, 4, 5, 6, 7, 8, 9);
-enddef;
-
-% r by Arthur Samuel
-vardef char.r =
- setwidth .5em; % do this first; it sets the character width
- pos1(1.5thickwidth,45); % the pen is "thicker than thick" at the top
- pos2(1.05thickwidth,10); % and also slightly flared at the bottom
- pos3(.8thinwidth,90); % The starting place for the right branch
- pos4(.65[.8thinwidth,thickwidth],90);
- pos5(1.2thickwidth,90); % Joining point of two curves
- pos6(.85[thinwidth,thickwidth],45); % at point with slope for line 5,7
- z2=(.2w+.5thickwidth,0);
- y1=xheight; x1r=x2r; % at the hheight, aligned at the right
- x3=x2+.5thickwidth; y3=.65xheight; dz3=(1,2);
- x4=.5[x3,x5]; y4=.83[y3,y5];
- z5=(.8w,xheight-.3thickwidth); dz5=(1,0);
-
-
- stroke(1,2,.1,.2,0); % taper at the left but not the right
- curve(3,4,5);
- labelpos(1,2,3,4,5);
-enddef;
-
-% s by Kwang-Chun Park
-vardef char.s =
-
- setwidth 0.4em;
- pos1(thickwidth,-100);
- pos2(.5[thickwidth,thinwidth],-95);
- pos3(thinwidth,-90);
- pos4(.375[thinwidth,thickwidth],-40);
- pos5(.75[thinwidth,thickwidth],0);
- pos6(thickwidth,45);
- pos7(1.1thickwidth,75);
- pos8(thickwidth,45);
- pos9(.75[thinwidth,thickwidth],0);
- pos10(.375[thinwidth,thickwidth],-40);
- pos11(thinwidth,-90);
- pos12(.5[thinwidth,thickwidth],-95);
- pos13(thickwidth,-100);
-
- y3l=1.03xheight; y1=0.85xheight;
- y5=.75xheight; y7= 0.5xheight; y9= 0.25xheight;
- y11r= -0.03xheight; y13=y9;
- x3 = 0.5w; x1r=w-.05em;
- x5l=x3-0.5w; x7 = x3; x9r = w;
- x11 = x3; x13= x5l;
-
- x2l = 0.71[x3l,x1l];
- y2l = 0.71[y1l,y3l];
- dz3= (-1,0);
- x4l = 0.75[x3l,x5l];
- y4l = 0.75[y5l,y3l];
- dz5=(0,-1);
- x6 = 0.29[x5,x7];
- y6 = 0.29[y7,y5];
- dz7=(1,0);
- x8 = 0.29[x9,x7];
- y8 = 0.71[y9,y7];
- dz9=(0,-1);
- x10= 0.75[x11,x9];
- y10= 0.25[y11,y9];
- dz11=(-1,0);
- x12= 0.35[x13,x11];
- y12= 0.29[y11,y13];
-
- curve(1,2,3); curve(3,4,5);
- curve(5,6,7); curve(7,8,9);
- curve(9,10,11); curve(11,12,13);
- labelpos(1,2,3,4,5,6,7,8,9,10,11,12,13);
-
-enddef;
-
-% t by Tuan Pham
-vardef char.t=
-setwidth .6em;
-pos1(1.1thickwidth,45);
-pos2(thickwidth,10);
-pos3(thickwidth,40);
-pos4(.5[thickwidth,thinwidth],75);
-pos5(.9[thickwidth,thinwidth],130);
-pos6(thinwidth,200);
-pos7(1.2thinwidth,80);
-pos8(1.5thinwidth,45);
-x1l=0.15em;y1=.5[xheight,hheight];
-x2=x1;y2=0.25xheight;dz2=(0,-1);
-x3=.71[x4,x2];y3=.71[y2,y4];
-x4r=.5[x2r,x6r];y4l=-.05xheight;dz4=(1,0);
-x5=.7[x4,x6];y5=.7[y6,y4];
-x6l=w-0.15em;y6=0.3xheight;
-x7=.1em;x8=w-.18em;
-y7r=y8r=xheight;
-stroke(1,2,.2,.05,.05);
-curve(2,3,4);curve(4,5,6);
-stroke(7,8,.8,0,.3);
-labelpos(1,2,3,4,5,6,7,8);
-enddef;
-
-% u by Nori Tokusue
-vardef char.u =
- setwidth .50em; %temp value
- pos1(1.05thickwidth,10);
- pos2(thickwidth,10);
- pos3(.65[thickwidth,thinwidth],40);
- pos4(.80[thickwidth,thinwidth],75);
- pos5(.95[thickwidth,thinwidth],130);
- pos6(thickwidth,180);
- pos7(thickwidth,190);
- pos8(1.1thickwidth,190);
- % coordinate information
-
- x1l=.075em;
- x7=w-x1l;
- y1=y7=xheight;
- x1=x2;
- x6=x7;x6r=x8r;
-
- % left curve
- y2=.30xheight; dz2=(0,-1); % going down at z2
- x3=.75[x4,x2]; y3=.75[y2,y4];
- x4r=.5[x2r,x6r]; y4l=-.05xheight;
- dz4=(1,0); % rightward
-
- % right curve
- x5=.70[x4,x6]; y5=.3[y4,y6];
- y6=.33xheight; dz6=(0,1); % upward at z6
- y8=0;
- % now draw the line
- stroke(1,2,.3,.05,0); % temp values.
- curve(2,3,4);
-
- curve(4,5,6);
- stroke(6,7,.7,0,.05);
- dy6:=-1;
- stroke(6,8,.5,.05,.05);
-
- labelpos(1,2,3,4,5,6,7,8);
-enddef;
-
-% v by Ed Williams
-vardef char.v =
-setwidth .55em;
-pos1(1.1thickwidth,05); z1=(.2w,xheight);
-pos5(1.3thinwidth, -170); z5=(.85w,xheight);
-pos3(1.8thickwidth,87); x3l=.5[x1,x5]; y3l=-.02w;
-pos2(.9thickwidth, 25);z2=.5[z1,z3];
-pos4(1.1thinwidth,155); z4=.5[z5,z3];
-
-stroke (1,2,.2,.05,.05); stroke(2,3,.8,0,0);
-stroke(5,4,.2,.05,.05); stroke(4,3,.8,.02,0);
-labelpos(1,2,3,4,5);
-enddef;
-
-% w by Joey Tuttle
-vardef char.w =
- setwidth .74em; % this from "average character width table" TSS
- pos1(1.5thickwidth,30);
- pos2(1.05thickwidth,10);
- pos21(thinwidth,10);
- pos3(thinwidth,30);
- pos31(thickwidth,30);
- pos4(1.05thickwidth,10);
- pos41(thinwidth,10);
- pos5(1.5thinwidth,30);
- y1=xheight; x1l=.1em; x5r=w-.1em; % some fixed points
- x2=.45[x1,x3]; x3=.5[x1,x5]; x4=.45[x3,x5]; % relating corners
- z21r=z2r; z31l=z3l; z41r=z4r; % tie corners of strokes
- y31r=y1; y5=y1; % the tops of the strokes
- y2=0; y4=y2; % the baseline
- stroke(1,2,.1,.2,0);
- stroke(21,3,.2,.0,.2);
- stroke(31,4,.1,.2,.2);
- stroke(41,5,.9,.2,0);
- labelpos(1,21,2,31,3,41,4,5);
-enddef;
-
-% x by William Burley
-vardef char.x =
- setwidth .45em;
- pos1(1.4thickwidth,0);
- pos2(.9thickwidth,45);
- pos3(1.4thickwidth,0);
- pos4(1.4thinwidth,0);
- pos5(.9thinwidth,-45);
- pos6(1.4thinwidth,0);
- x1l=x4l=.1w;
- x3r=x6r=.9w;
- y1=y6=xheight;
- y3=y4=0;
- x2=x5=.5w;
- y2=y5=.5xheight;
- stroke(1,2,.15,0,.25);
- stroke(2,3,.85,.25,0);
- stroke(4,5,.15,0,.25);
- stroke(5,6,.85,.25,0);
- labelpos(1,2,3,4,5,6);
-enddef;
-
-% y by Neenie Billawala
-vardef char.y=
- setwidth .57em;
- pos1(1.4thickwidth,15); dz2=z2r-z1r;
- pos2(1.25thickwidth,60);
- pos3(1.65thinwidth,15);
- pos4(.85thinwidth,-45);
- pos5(1.65thinwidth,10);
- pos6(1.23thickwidth,50);
- pos7(1.5thinwidth,15);
- pos8(1.4thinwidth,0);
- y1=y3=xheight;
- z2=z4; y4r=0; x4l=.5w;
- numeric a;
- y5=-ydepth;
- x1l=.07w;
- x3r=w-.09x1l-.02em;
- z5=a[z3,z4];
- dz4=(z5-z3);
- z6r=.02[z1r,z2r];
- dz6=z2l-z1l; curve(1,6,2);
- %z7r=.08[z3r,z4r];
- %dz7=z4l-z3l; curve(3,7,4);
- %z8l=.92[z3l,z4l];
- %dz8=z4r-z3r; %curve(4,8,5);
- stroke(3,4,.2,.4,0);
- stroke(4,5,.8,0,.4);
- labelpos(1,2,3,4,5,6,7,8);
-enddef;
-
-% z by Kanchi Gopinath
-vardef char.z=
- setwidth .43em;
-
- pos1(thickwidth,80);
- pos2(2thickwidth,30);
- pos3(2thickwidth,30);
- pos4(thickwidth,90); % 90 is changed to 110 in his other file...
-
- x1l=0;
- y1l=xheight-thickwidth;
-
-
- y2r=xheight;
- x2r=w;
-
- x3l=0;
- y3l=0;
-
- x4l=w;
- y4l=0;
-
- stroke(1,2,.4,.3,.2);
- stroke(2,3,.5,.5,.5);
- stroke(3,4,0.6,0.2,0.3);
- labelpos(1,2,3,4);
-enddef;
-
-% - by Dan Mills
-vardef char.hyphen =
- begingroup charcode:=ASCII"-";
-% charcd := '-;
- save glyphwidth,lsb,rsb;
- numeric glyphwidth,lsb,rsb;
-
- glyphwidth = .25em;
- lsb = .1glyphwidth;
- rsb = .1glyphwidth;
- setwidth( lsb+glyphwidth+rsb );
-
-% positions:
- pos1(thinwidth,90);
- pos2(thinwidth,90);
-
-% coordinates:
- x1 = lsb; y1 = .55xheight;
- x2 = lsb + glyphwidth; y2 = y1;
-
-% specials:
- % none
-
-% draw stroke:
- stroke(1,2,0,0,0);
-
- labelpos(1,2);
- endgroup;
-enddef; % char.hyphen
-
-
-% . by Dan Mills
-vardef char.period =
- begingroup charcode:=ASCII".";
-% charcd := '.;
- save glyphwidth,lsb,rsb;
- numeric glyphwidth,lsb,rsb;
-
- glyphwidth = thickwidth;
- lsb = .6glyphwidth;
- rsb = .6glyphwidth;
- setwidth( lsb+glyphwidth+rsb );
-
-% positions:
- pos1(thickwidth,90);
- pos2(thickwidth,90);
-
-% coordinates:
- x1 = lsb; y1l = 0;
- x2 = lsb + glyphwidth; y2l = y1l;
-
-% specials:
- % none
-
-% draw stroke:
- stroke(1,2,0,0,0);
-
- labelpos(1,2);
- endgroup;
-enddef; % char.period
-
-
-% , by Dan Mills
-vardef char.comma =
- begingroup charcode:=ASCII",";
-% charcd := ',;
- save glyphwidth,lsb,rsb;
- numeric glyphwidth,lsb,rsb;
-
- glyphwidth = thickwidth;
- lsb = .6glyphwidth;
- rsb = .6glyphwidth;
- setwidth( lsb+glyphwidth+rsb );
-
-% positions:
- pos1(thickwidth,90);
- pos2(thickwidth,90);
- pos3(.7thickwidth,0);
- pos4(.3thickwidth,0);
-
-% coordinates:
- x1 = lsb; y1l = 0;
- x2 = lsb + glyphwidth; y2l = y1l;
- x3r = x2; y3 = y1l;
- x4l = x1; y4 = -1.5thickwidth;
-
-% specials:
- % none
-
-% draw stroke:
- stroke(1,2,0,0,0);
- stroke(3,4,0,0,0);
-
- labelpos(1,2,3,4);
- endgroup;
-enddef; % char.comma
-
-% now we generate the font
-% SELECT THE CORRECT init.... STATEMENT!
-
-openwindow 0 from (0,0) to (420,500) at (-40,310);
-window:=0;
-%init.normal(1.618033);
-%init.bold(1.618033);
-init.boldx(1.618033);
-vardef init.wierd(expr f) =
- begingroup
- numeric thinwidth,thickwidth,capheight,xheight,hheight,ydepth,em;
- thinwidth = 13f; thickwidth = 13f; em = 180f;
- capheight = 170f; xheight = 90f; hheight = 180f; ydepth = 60f;
- endgroup
-enddef;
-%init.wierd(sqrt2);
-
-
-vardef make@#(expr ls,rs)=begingroup clear; charcode:=ASCII str@#;
- "the character "&str @#; char@#; chardx:=w+ls+rs; charwd:=chardx/hppp;
-if proofing>.5: shipit;
-else:
-proofrule((0,hheight),(w+ls+rs,hheight));
-proofrule((0,-ydepth),(w+ls+rs,-ydepth));
-proofrule((0,-ydepth),(0,hheight));
-proofrule((w+ls+rs,-ydepth),(w+ls+rs,hheight));
-proofrule((0-10,0),(0+10,0));
-proofrule((w+ls+rs-10,0),(w+ls+rs+10,0));
- shipout (currentpicture shifted (ls,0)); fi
-endgroup enddef;
-
-
-tracingtitles:=1;
-make.A(-.025em,.05em);
-make.B(0,-.025em);
-make.C(-.02em,-.02em);
-make.D(-.02em,0);
-make.E(0,-.05em);
-make.F(0,-.05em);
-make.G(0,0);
-make.H(0,0);
-make.I(-.05em,-.05em);
-make.J(0,0);
-make.K(0,-.05em);
-make.?(0,0);
-make.L(0,-.02em);
-make.M(0,0);
-make.N(0,0);
-make.O(0,0);
-make.P(.05em,-.075em);
-make.Q(0,0);
-make.R(0,-.275em+thickwidth);
-make.S(0,0);
-make.T(-.05em,-.075em);
-make.exclamation(0,-.075em);
-make.U(0,0);
-make.V(-.075em,0);
-make.W(0,0);
-make.X(-.05em,0);
-make.Y(0,0);
-make.Z(0,0);
-make.a(-.05em,.5thickwidth);
-make.b(0,-.025em);
-make.c(.05em,0);
-make.d(-.025em,0);
-make.e(0,0);
-make.f(0,0);
-make.g(0,.01em);
-make.h(0,0);
-make.i(0,0);
-make.j(-.05em,0);
-make.k(-.02em,-.05em);
-make.l(0,0);
-make.m(0,0);
-make.n(-.05em,.01em);
-make.o(0,0);
-make.p(.05em,0);
-make.q(-.02em,0);
-make.r(0,-.07em);
-make.s(.05em,.05em);
-make.t(-.025em,-.1em);
-make.u(0,.04em);
-make.v(-.025em,-.025em);
-make.w(-.05em,-.05em);
-make.x(0,0);
-make.y(0,0);
-make.z(.05em,.05em);
-make.hyphen(0,0);
-make.period(0,0);
-make.comma(0,0);
-fontdimen 1: 0, 1/3em/hppp, 1/6em/hppp, 1/9em/hppp, xheight/vppp,
- em/hppp, 1/9em/hppp;
-end
diff --git a/Master/texmf-dist/fonts/source/public/knuthotherfonts/committee/font1base.mf b/Master/texmf-dist/fonts/source/public/knuthotherfonts/committee/font1base.mf
deleted file mode 100644
index ecf5f91c319..00000000000
--- a/Master/texmf-dist/fonts/source/public/knuthotherfonts/committee/font1base.mf
+++ /dev/null
@@ -1,113 +0,0 @@
-delimiters ();
-smoothing:=1; autorounding:=2; % this adjusts curves to the raster
-turningcheck:=2; % this will warn about a "strange path"
-
-vardef z@# = (x@#,y@#) enddef;
-vardef dz@# = (dx@#,dy@#) enddef;
-
-picture currentpicture;
-currentpicture=nullpicture; % this initializes an empty set of pixels
-
-def fill expr c = addto currentpicture contour c enddef;
-def shipit = shipout currentpicture enddef;
-def showit = display currentpicture inwindow window enddef;
-
-def unknown = not known enddef;
-
-vardef pos@#(expr length,theta) =
- z@#=.5[z@#l,z@#r];
- z@#r-z@#l=(length,0) rotated theta enddef;
-def stroke(suffix $,$$)(expr t,lt,rt) =
- fill z$l
- if known dz$: {dz$} fi
- if t<>0: ..lt[ t[z$l,z$$l],t[z$,z$$] ]{z$$l-z$l} fi
- .. z$$l
- if known dz$$: {dz$$} fi
- & z$$l..z$$r
- & z$$r
- if known dz$$: {-dz$$} fi
- if t<>0: ..rt[ t[z$r,z$$r],t[z$,z$$] ]{z$r-z$$r} fi
- .. z$r
- if known dz$: {-dz$} fi
- & z$r..z$l & cycle;
- showit; enddef;
-def curve(suffix $,$$,$$$) =
- fill z$l
- if known dz$: {dz$} fi
- .. z$$l{if known dz$$: dz$$ else: z$$$l-z$l fi}
- .. z$$$l
- if known dz$$$: {dz$$$} fi
- & z$$$l..z$$$r
- & z$$$r
- if known dz$$$: {-dz$$$} fi
- .. z$$r{if known dz$$: -dz$$ else: z$r-z$$$r fi}
- .. z$r
- if known dz$: {-dz$} fi
- & z$r..z$l & cycle;
- showit; enddef;
-
-def proofrule(expr a,b) =
- special "rule"; numspecial xpart a; numspecial ypart a;
- numspecial xpart b; numspecial ypart b enddef;
-string lcode_;
-lcode_=" 0"; % change to " /" to avoid listing in overflow column
-def makelabel(expr s,z) = % puts string s at point z
- if known z: special lcode_ & s;
- numspecial xpart z; numspecial ypart z fi enddef;
-def labelpos(text t) =
- if proofing>.5:
- forsuffixes $$=l,,r: forsuffixes $=t:
- makelabel(str $.$$, z$.$$); endfor endfor fi enddef;
-
-
-def clear =
- numeric x[],y[],x[]l,y[]l,x[]r,y[]r,dx[],dy[];
- currentpicture:=nullpicture;
-enddef;
-
-def setwidth expr x =
- chardx:=x;
- numeric w; w=chardx;
- if proofing>.5:
- for n:=0 step .1em until chardx-1:
- proofrule((n,-ydepth),(n,hheight)); endfor
- proofrule((chardx,-ydepth),(chardx,hheight));
- proofrule((0,-ydepth),(chardx,-ydepth));
- proofrule((0,0),(chardx,0));
- proofrule((0,xheight),(chardx,xheight));
- proofrule((0,capheight),(chardx,capheight));
- proofrule((0,hheight),(chardx,hheight));
- fi
-enddef;
-
-vardef init.normal(expr f) =
- begingroup
- numeric thinwidth,thickwidth,capheight,xheight,hheight,ydepth,em;
- thinwidth = 11f; thickwidth = 15f; em = 200f;
- capheight = 130f; xheight = 90f; hheight = 140f; ydepth = 40f;
- endgroup
-enddef;
-
-vardef init.bold(expr f) =
- init.normal(f); thinwidth:= 14f; thickwidth:= 24f;
-enddef;
-
-vardef init.boldx(expr f) =
- init.bold(f); xheight:=95f; em:= 220f;
-enddef;
-
-
-vardef test@#(text #)=
- begingroup
- if str @# = "": % test all three
- openwindow 1 from (0,0) to (420,167) at (-20,310);
- openwindow 2 from (0,167) to (420,333) at (-20,310);
- openwindow 3 from (0,333) to (420,500) at (-20,310);
- window:=1; init.normal(1); clear; #; "normal"; shipit;
- window:=2; init.bold(1); clear; #; "bold"; shipit;
- window:=3; init.boldx(1); clear; #; "boldx"; shipit;
- else: openwindow 0 from (0,0) to (420,500) at (-40,310);
- window:=0; init@#(2); clear; #; str @#; shipit;
- fi;
- endgroup
-enddef;
diff --git a/Master/texmf-dist/fonts/source/public/knuthotherfonts/halftone/aphalf.mf b/Master/texmf-dist/fonts/source/public/knuthotherfonts/halftone/aphalf.mf
deleted file mode 100644
index 6f386e63da1..00000000000
--- a/Master/texmf-dist/fonts/source/public/knuthotherfonts/halftone/aphalf.mf
+++ /dev/null
@@ -1,3 +0,0 @@
-% Halftone font for APS
-mode:=aps;
-input halftone
diff --git a/Master/texmf-dist/fonts/source/public/knuthotherfonts/halftone/ddhalf.mf b/Master/texmf-dist/fonts/source/public/knuthotherfonts/halftone/ddhalf.mf
deleted file mode 100644
index 70bb1a8f923..00000000000
--- a/Master/texmf-dist/fonts/source/public/knuthotherfonts/halftone/ddhalf.mf
+++ /dev/null
@@ -1,3 +0,0 @@
-% Halftone font for Datadisk
-mode:=DD;
-input halftone
diff --git a/Master/texmf-dist/fonts/source/public/knuthotherfonts/halftone/ddralf.mf b/Master/texmf-dist/fonts/source/public/knuthotherfonts/halftone/ddralf.mf
deleted file mode 100644
index a754ee9774a..00000000000
--- a/Master/texmf-dist/fonts/source/public/knuthotherfonts/halftone/ddralf.mf
+++ /dev/null
@@ -1,3 +0,0 @@
-% Halftone font for Datadisk
-mode:=DD;
-input ralftone
diff --git a/Master/texmf-dist/fonts/source/public/knuthotherfonts/halftone/halftone.mf b/Master/texmf-dist/fonts/source/public/knuthotherfonts/halftone/halftone.mf
deleted file mode 100644
index d93a540e5ee..00000000000
--- a/Master/texmf-dist/fonts/source/public/knuthotherfonts/halftone/halftone.mf
+++ /dev/null
@@ -1,45 +0,0 @@
-% halftone font with 65 levels of gray, characters "0" (white) to "p" (black)
-
-pair p[]; % the pixels in order (first p0 becomes black, then p1, etc)
-p0=(1,1);
-p8=(2,0);
-p16=(1,0);
-p24=(0,0);
-p32=(3,-1);
-p40=(2,-1);
-p48=(1,-1);
-p56=(2,-2);
-transform r; r=identity rotatedaround ((1.5,1.5),90);
-
-for i=0 step 8 until 56:
- p[i+2]=p[i] transformed r;
- p[i+6]=p[i+2] transformed r;
- p[i+5]=p[i+6] transformed r;
- p[i+1]=p[i] shifted (4,4);
- p[i+3]=p[i+2] shifted (4,4);
- p[i+7]=p[i+6] shifted (4,4);
- p[i+4]=p[i+5] shifted (4,4);
- endfor
-
-for i=32 step 1 until 63:
- p[i] := (xpart p[i] mod 8, ypart p[i] mod 8);
-endfor
-
-mode_setup;
-designsize:=64/pt; % that's 64 pixels
-
-def makebox(text t)= enddef; % shut off boxes
-
-picture prevchar;
-
-prevchar=nullpicture;
-for i=0 upto 64:
- beginchar(i+ASCII"0",designsize/8,designsize/8,0);
- currentpicture:=prevchar;
- if i>0: fill unitsquare shifted p[i-1]; fi
- prevchar:=currentpicture;
- endchar;
- endfor
-
-font_quad=designsize/8;
-end
diff --git a/Master/texmf-dist/fonts/source/public/knuthotherfonts/halftone/imhalf.mf b/Master/texmf-dist/fonts/source/public/knuthotherfonts/halftone/imhalf.mf
deleted file mode 100644
index 1cd246f8d5a..00000000000
--- a/Master/texmf-dist/fonts/source/public/knuthotherfonts/halftone/imhalf.mf
+++ /dev/null
@@ -1,3 +0,0 @@
-% Halftone font for Imagen
-mode:=imagen;
-input halftone
diff --git a/Master/texmf-dist/fonts/source/public/knuthotherfonts/halftone/imralf.mf b/Master/texmf-dist/fonts/source/public/knuthotherfonts/halftone/imralf.mf
deleted file mode 100644
index b2ef9b1b750..00000000000
--- a/Master/texmf-dist/fonts/source/public/knuthotherfonts/halftone/imralf.mf
+++ /dev/null
@@ -1,3 +0,0 @@
-% Halftone font for Imagen
-mode:=imagen;
-input ralftone
diff --git a/Master/texmf-dist/fonts/source/public/knuthotherfonts/mfbook/logobase.mf b/Master/texmf-dist/fonts/source/public/knuthotherfonts/mfbook/logobase.mf
deleted file mode 100644
index 4a728758654..00000000000
--- a/Master/texmf-dist/fonts/source/public/knuthotherfonts/mfbook/logobase.mf
+++ /dev/null
@@ -1,34 +0,0 @@
-% Base file for the METAFONT logo
-logobase:=1; % when logobase is known, this file has been input
-
-def font_setup =
- if unknown slant: slant:=0 else: currenttransform:=
- identity slanted slant yscaled aspect_ratio fi;
-
- ygap#:=(ht#/13.5u#)*xgap#; % vertical adjustment
- ho#:=o#; % horizontal overshoot
- leftstemloc#:=2.5u#+s#; % position of left stem
- barheight#:=.45ht#; % height of bar lines
- py#:=.9px#; % vertical pen thickness
-
- define_pixels(s,u);
- define_whole_pixels(xgap);
- define_whole_vertical_pixels(ygap);
- define_blacker_pixels(px,py);
- pickup pencircle xscaled px yscaled py;
- logo_pen:=savepen;
- define_good_x_pixels(leftstemloc);
- define_good_y_pixels(barheight);
- define_corrected_pixels(o);
- define_horizontal_corrected_pixels(ho); enddef;
-
-def beginlogochar(expr code, unit_width) =
- beginchar(code,unit_width*u#+2s#,ht#,0);
- pickup logo_pen enddef;
-
-def super_half(suffix i,j,k) =
- draw z.i{0,y.j-y.i}
- ... (.8[x.j,x.i],.8[y.i,y.j]){z.j-z.i}
- ... z.j{x.k-x.i,0}
- ... (.8[x.j,x.k],.8[y.k,y.j]){z.k-z.j}
- ... z.k{0,y.k-y.j} enddef;
diff --git a/Master/texmf-dist/fonts/source/public/knuthotherfonts/mfbook/metafon.mf b/Master/texmf-dist/fonts/source/public/knuthotherfonts/mfbook/metafon.mf
deleted file mode 100644
index aeb1764b885..00000000000
--- a/Master/texmf-dist/fonts/source/public/knuthotherfonts/mfbook/metafon.mf
+++ /dev/null
@@ -1,50 +0,0 @@
-beginlogochar("M",18);
-x1=x2=leftstemloc; x4=x5=w-x1; x3=w-x3;
-y1=y5; y2=y4; bot y1=-o;
-top y2=h+o; y3=y1+ygap;
-draw z1--z2--z3--z4--z5;
-labels(1,2,3,4,5); endchar;
-
-beginlogochar("E",14);
-x1=x2=x3=leftstemloc;
-x4=x6=w-x1+ho; x5=x4-xgap;
-y1=y6; y2=y5; y3=y4;
-bot y1=0; top y3=h; y2=barheight;
-draw z6--z1--z3--z4; draw z2--z5;
-labels(1,2,3,4,5,6); endchar;
-
-beginlogochar("T",13);
-italcorr ht#*slant + .5u#;
-if .5w<>good.x .5w: change_width; fi
-lft x1=-eps; x2=w-x1; x3=x4=.5w;
-y1=y2=y3; top y1=h; bot y4=-o;
-draw z1--z2; draw z3--z4;
-labels(1,2,3,4); endchar;
-
-beginlogochar("A",15);
-x1=.5w; x2=x4=leftstemloc; x3=x5=w-x2;
-top y1=h+o; y2=y3=barheight;
-bot y4=bot y5=-o;
-draw z4--z2--z3--z5; super_half(2,1,3);
-labels(1,2,3,4,5); endchar;
-
-beginlogochar("F",14);
-x1=x2=x3=leftstemloc;
-x4=w-x1+ho; x5=x4-xgap;
-y2=y5; y3=y4; bot y1=-o;
-top y3=h; y2=barheight;
-draw z1--z3--z4; draw z2--z5;
-labels(1,2,3,4,5); endchar;
-
-beginlogochar("O",15);
-x1=x4=.5w; top y1=h+o; bot y4=-o;
-x2=w-x3=good.x(1.5u+s); y2=y3=barheight;
-super_half(2,1,3); super_half(2,4,3);
-labels(1,2,3,4); endchar;
-
-beginlogochar("N",15);
-x1=x2=leftstemloc; x3=x4=x5=w-x1;
-bot y1=bot y4=-o;
-top y2=top y5=h+o; y3=y4+ygap;
-draw z1--z2--z3; draw z4--z5;
-labels(1,2,3,4,5); endchar;
diff --git a/Master/tlpkg/libexec/ctan2tds b/Master/tlpkg/libexec/ctan2tds
index 5bbd58175ab..5284b13f867 100755
--- a/Master/tlpkg/libexec/ctan2tds
+++ b/Master/tlpkg/libexec/ctan2tds
@@ -261,6 +261,7 @@ chomp ($Build = `cd $Master/../Build/source && pwd`);
'comicsans', "die 'skipping, Comic Sans is nonfree'",
'comfortaa', "&MAKEcopy",
'comment_io', "die 'skipping, await request i guess'",
+ 'committee-font', "die 'skipping, noinfo license, old Knuthian font'",
'compact', "die 'skipping, nonfree license'",
'computer-typesetting-using-latex', "die 'skipping, nosource'",
'concmath-fonts', "&MAKEflatten",
@@ -1171,6 +1172,7 @@ chomp ($Build = `cd $Master/../Build/source && pwd`);
'uppunctlm', "&MAKEflatten",
'urcls', "&MAKEflatten",
'uspatent', "&MAKEflatten",
+ 'util-half', "die 'skipping, noinfo license, old Knuthian font'",
'utorontothesis', "die 'skipping, noinfo license, 1997'",
'utthesis', "die 'skipping, await request, 1995'",
'variablelm', "&MAKEflatten",
diff --git a/Master/tlpkg/tlpsrc/collection-fontsextra.tlpsrc b/Master/tlpkg/tlpsrc/collection-fontsextra.tlpsrc
index ed1e6f58e61..54c5686c6c1 100644
--- a/Master/tlpkg/tlpsrc/collection-fontsextra.tlpsrc
+++ b/Master/tlpkg/tlpsrc/collection-fontsextra.tlpsrc
@@ -156,7 +156,6 @@ depend jablantile
depend jamtimes
depend junicode
depend kixfont
-depend knuthotherfonts
depend kpfonts
depend kurier
depend lato
diff --git a/Master/tlpkg/tlpsrc/knuthotherfonts.tlpsrc b/Master/tlpkg/tlpsrc/knuthotherfonts.tlpsrc
deleted file mode 100644
index e69de29bb2d..00000000000
--- a/Master/tlpkg/tlpsrc/knuthotherfonts.tlpsrc
+++ /dev/null