summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/fonts/source/public/knuth-lib/waits.mf
blob: 4d23e0a00d53d2699ecbef48dd7c71783569d191 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
% 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;