% This tries all characters on TEST.MF using six different sets of parameters if unknown cmbase: input cmbase fi % omit if CMMF can be assumed mag=.5; % use the following lines to get rid of DD nonsquareness % aspect_ratio_[proof]:=4/3; % WAITS only! % aspect_ratio_[smoke]:=4/3; % WAITS only! % mag:=3/8; % WAITS only! mode_setup; let mode_setup=\; boolean running; def abort = hide(scrollmode; running:=false) enddef; def pause=stop "done with char "&decimal charcode&". " enddef; let iff=always_iff; def ligtable text t=enddef; def charlist text t=enddef; def extensible text t=enddef; string currenttitle; let semi=;; let echar=endchar; let endchar=enddef; def cmchar expr s = currenttitle:=s; let;=testchar semi quote def chartext=enddef; def testchar = semi let;=semi; % now `chartext echar' will generate the character to be tested running:=true; errorstopmode; for k=1 upto 6: if running: if known params[k]: scantokens params[k]; font_setup; currentwindow:=k; currenttitle & ", " & fontname[k]; chartext echar; fi fi endfor pause; enddef; string params[],fontname[]; params[1]="ital_params"; fontname[1]="cmti10"; params[2]="bold_ital_params"; fontname[2]="cmbxti10"; params[3]="tt_params"; fontname[3]="cmit10"; w_rows=floor 1/2 screen_rows; w_cols=floor 1/3 screen_cols; def open(expr k,i,j)= openwindow k from ((i-1)*w_rows,(j-1)*w_cols) to (i*w_rows,j*w_cols) at (-10,140) enddef; def openit = open(1,1,1); open(2,1,2); open(3,1,3); open(4,2,1); open(5,2,2); open(6,2,3); enddef; begingroup delimiters begintext generate; def WAITSkludge expr s = if length s > 6: substring (0,3) of s & substring(length s-3,infinity) of fi s enddef; numeric Xerox_world; % again, this is WAITS only def makedef(expr s)(text t) = expandafter def scantokens s = t enddef; flushtext enddef; def flushtext suffix t = enddef; for k=1 upto 6: if known params[k]: makedef(params[k]) expandafter expandafter expandafter begintext scantokens ("input "&WAITSkludge fontname[k]); fi endfor endgroup; input test end