Category : EmTeX is a TeX/LaTeX document editor
Archive   : MF2.ZIP
Filename : WAITS.MF

 
Output of file : WAITS.MF contained in archive : MF2.ZIP

% This file can be loaded after PLAIN.MF.
% It introduces conventions that are commonly used at WAITS.
base_version:=base_version&"/WAITS";

% The WAITS implementation allows an extended character set;
% characters :=, <=, <>, and >= are put into the class with <, =, >, :, and |;
% character ^^L (form feed) is in a class by itself, and is like an "outer" \.
% Files containing these special characters should not be expected to work
% elsewhere unless the following replacements are made:
let <= = <=;
let <> = <>;
let >= = >=;
let := = :=;

% Say "boise_proof" on the command line, to get proofmode on boise
def boise_proof = lcode_:=" /";
extra_setup:=extra_setup&"grayfont grbois;" enddef;

screen_rows:=400; screen_cols:=480;

% Here are conventions for local output devices:

mode_def dover = % dover mode: for the Xerox Dover
proofing:=0; % no, we're not making proofs
fontmaking:=1; % yes, we are making a font
tracingtitles:=0; % no, don't show titles in the log

pixels_per_inch:=384;
blacker:=1.2; % make pens somewhat blacker
fillin:=0; % no compensation for fillin
o_correction:=.6; % but don't overshoot as much
enddef;

mode_def imagen = % imagen mode: for the Imagen 8/300 (Canon engine)
proofing:=0; % no, we're not making proofs
fontmaking:=1; % yes, we are making a font
tracingtitles:=0; % no, don't show titles in the log
pixels_per_inch:=300;
blacker:=0; % Canon engine is black enough
fillin:=.2; % and it tends to fill in diagonals
o_correction:=.6; %
enddef;

mode_def qms = % qms mode: for the QMS (Xerox engine)
proofing:=0; % no, we're not making proofs
fontmaking:=1; % yes, we are making a font
tracingtitles:=0; % no, don't show titles in the log
pixels_per_inch:=300;
blacker:=.75; % (this value is conjectural)
fillin:=0; % (ditto)
o_correction:=.5; % (ditto)
enddef;

mode_def aps = % aps mode: for the Autologic APS-Micro5
proofing:=0; % no, we're not making proofs
fontmaking:=1; % yes, we are making a font
tracingtitles:=1; % yes, show titles online
pixels_per_inch:=722.909; % that's roughly 10 per pt
blacker:=.2; % make pens a teeny bit blacker
fillin:=.2; % but compensate for diagonal fillin
o_correction:=1; % and keep the full overshoot
enddef;

mode_def crs = % crs mode: for the Alphatype CRS
proofing:=0; % no, we're not making proofs
fontmaking:=1; % yes, we are making a font
tracingtitles:=1; % yes, show titles online
begingroup interim warningcheck:=0; % (we need to go past 4096)
pixels_per_inch:=4000+4000/3 endgroup; % HIGH res
blacker:=4; % make pens a lot blacker
fillin:=0; % but don't compensate for fillin
o_correction:=1; % and keep the full overshoot
enddef;

mode_def boise = % boise mode: for the HP 2680A
proofing:=0; % no, we're not making proofs
fontmaking:=1; % yes, we are making a font
tracingtitles:=0; % no, don't show titles in the log
pixels_per_inch:=180;
blacker:=.55; % make pens a bit blacker
fillin:=.1; % and compensate for diagonal fillin
o_correction:=.3; % but don't overshoot much
enddef;

mode_def DD = % DD mode: for the DataDisc (usually with mag=magstep 2=1.44)
proofing:=0; % no, we're not making proofs
fontmaking:=1; % yes, we are making a font
tracingtitles:=0; % no, don't show titles in the log
pixels_per_inch:=70; % really lowres
blacker:=0; % don't make the pens any blacker
fillin:=0; % and don't compensate for fillin
o_correction:=.2; % but suppress most overshoots
enddef;

mode_def canon = % canon mode: for the old Imagen (Canon LBP10)
proofing:=0; % no, we're not making proofs
fontmaking:=1; % yes, we are making a font
tracingtitles:=0; % no, don't show titles in the log
pixels_per_inch:=240;
blacker:=.2; % make pens a wee bit blacker
fillin:=.2; % and compensate for fillin
o_correction:=.4; % but don't overshoot as much
enddef;

mode_def newDD = % newDD mode: for DataDisc with special aspect ratio
proofing:=0; % no, we're not making proofs
fontmaking:=1; % yes, we are making a font
tracingtitles:=0; % no, don't show titles in the log
pixels_per_inch:=70; % really lowres
blacker:=0; % don't make the pens any blacker
fillin:=0; % and don't compensate for fillin
o_correction:=.2; % but suppress most overshoots
aspect_ratio:=4/3; % this is the new feature...
enddef;

mode_def cg = % cg mode: for the Compugraphic 8600
proofing:=0; % no, we're not making proofs
fontmaking:=1; % yes, we are making a font
tracingtitles:=1; % yes, show titles online
pixels_per_inch:=1301.5; % a bit less than 20 per pt
blacker:=.2; % make pens a teeny bit blacker
fillin:=.2; % but compensate for diagonal fillin
o_correction:=1; % and keep the full overshoot
aspect_ratio:=1569/1301.5; % strange, no?
enddef;

mode_def epson = % Epson
proofing:=0; % no, we're not making proofs
fontmaking:=1; % yes, we are making a font
tracingtitles:=0; % no, don't show titles in the log
pixels_per_inch:=240; % lowres
blacker:=0; % don't make the pens any blacker
fillin:=0; % and don't compensate for fillin
o_correction:=.2; % but suppress most overshoots
aspect_ratio:=9/10; % 216 dots/inch vertical
enddef;


localfont:=imagen;

% Finally, here are macros for Xerox-world font info:

def font_family expr s = % string s names the font family, e.g., "CMR"
headerbyte 49: BCPL_string(s,20);
special "identifier "&s enddef;
def coding_scheme expr s = % string s names the scheme, e.g. "TEX TEXT"
headerbyte 9: BCPL_string(s,40);
special "codingscheme "&s enddef;
def font_face_byte expr x = % integer x gives the family member number,
headerbyte 72: x; % which should be between 0 and 255
special "fontfacebyte"; numspecial x enddef;

def BCPL_string(expr s,n)= % string s becomes an n-byte BCPL string
for l:=if length(s)>=n: n-1 else: length(s) fi: l
for k:=1 upto l: , substring (k-1,k) of s endfor
for k:=l+2 upto n: , 0 endfor endfor enddef;

Xerox_world:=1; % users can say `if known Xerox_world:...fi'

inner end;
def bye=
if fontmaking>0: font_family font_identifier_;
coding_scheme font_coding_scheme_;
font_face_byte max(0,254-round 2designsize); fi
tracingstats:=1; % at least for now we want this
end
enddef;

outer bye,end;