diff options
Diffstat (limited to 'Master/texmf-dist/fonts/source/public/knuthotherfonts/committee/font1base.mf')
-rw-r--r-- | Master/texmf-dist/fonts/source/public/knuthotherfonts/committee/font1base.mf | 113 |
1 files changed, 113 insertions, 0 deletions
diff --git a/Master/texmf-dist/fonts/source/public/knuthotherfonts/committee/font1base.mf b/Master/texmf-dist/fonts/source/public/knuthotherfonts/committee/font1base.mf new file mode 100644 index 00000000000..ecf5f91c319 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/knuthotherfonts/committee/font1base.mf @@ -0,0 +1,113 @@ +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; |