From 2cf7e10259e746ef84228772d35a37671d90e3e2 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Sun, 12 Nov 2017 19:14:29 +0000 Subject: rm knuthotherfonts (old halftone, mfbook, committee fonts), no license info git-svn-id: svn://tug.org/texlive/trunk@45757 c570f23f-e606-0410-a88d-b1316a301751 --- .../public/knuthotherfonts/committee/font1.mf | 2105 -------------------- .../public/knuthotherfonts/committee/font1base.mf | 113 -- .../public/knuthotherfonts/halftone/aphalf.mf | 3 - .../public/knuthotherfonts/halftone/ddhalf.mf | 3 - .../public/knuthotherfonts/halftone/ddralf.mf | 3 - .../public/knuthotherfonts/halftone/halftone.mf | 45 - .../public/knuthotherfonts/halftone/imhalf.mf | 3 - .../public/knuthotherfonts/halftone/imralf.mf | 3 - .../public/knuthotherfonts/mfbook/logobase.mf | 34 - .../public/knuthotherfonts/mfbook/metafon.mf | 50 - Master/tlpkg/libexec/ctan2tds | 2 + Master/tlpkg/tlpsrc/collection-fontsextra.tlpsrc | 1 - Master/tlpkg/tlpsrc/knuthotherfonts.tlpsrc | 0 13 files changed, 2 insertions(+), 2363 deletions(-) delete mode 100644 Master/texmf-dist/fonts/source/public/knuthotherfonts/committee/font1.mf delete mode 100644 Master/texmf-dist/fonts/source/public/knuthotherfonts/committee/font1base.mf delete mode 100644 Master/texmf-dist/fonts/source/public/knuthotherfonts/halftone/aphalf.mf delete mode 100644 Master/texmf-dist/fonts/source/public/knuthotherfonts/halftone/ddhalf.mf delete mode 100644 Master/texmf-dist/fonts/source/public/knuthotherfonts/halftone/ddralf.mf delete mode 100644 Master/texmf-dist/fonts/source/public/knuthotherfonts/halftone/halftone.mf delete mode 100644 Master/texmf-dist/fonts/source/public/knuthotherfonts/halftone/imhalf.mf delete mode 100644 Master/texmf-dist/fonts/source/public/knuthotherfonts/halftone/imralf.mf delete mode 100644 Master/texmf-dist/fonts/source/public/knuthotherfonts/mfbook/logobase.mf delete mode 100644 Master/texmf-dist/fonts/source/public/knuthotherfonts/mfbook/metafon.mf delete mode 100644 Master/tlpkg/tlpsrc/knuthotherfonts.tlpsrc (limited to 'Master') 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 -- cgit v1.2.3