summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/fonts/source/public/knuthotherfonts/committee/font1base.mf
diff options
context:
space:
mode:
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.mf113
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;