%%% shade/shade.mf %%% shade font for use with shade.tex/sty %%% see README for licensing and contact information. mode_setup; magnification=1000; font_identifier "Shade"; font_coding_scheme "Shade Style Matrix"; font_size 10pt#; %%% a = side of smallest shaded square (3x3 pixels) a#:=(3/pixels_per_inch)*1in#; define_pixels(a); %%% greybox produces a shaded rectangle: %%% height 2^H*a %%% width 2^W*a %%% ... %%% it consists of WxH `unit squares': .*. %%% ... %%% its character code is 10*W + H %%% i.e., the first digit corresponds to the width and %%% the second digit corresponds to the height of the character def greybox (expr H, W) = HH:=2**H; WW:=2**W; beginchar(10*W+H, WW*a#, HH*a#, 0); pickup pencircle scaled 1; fill (1,1)--(1,3*HH)--(3*WW,3*HH)--(3*WW,1)--cycle; pickup pencircle scaled 2; for x = 0 step 3 until 3*HH : undraw (0,x)--(3*WW,x); endfor; for x = 0 step 3 until 3*WW : undraw (x,0)--(x,3*HH); endfor; endchar; enddef; %%% produce characters for H and W from 0 to 5 for ww = 0 upto 5 : for hh = 0 upto 5 : greybox (hh,ww); endfor; endfor; bye;