summaryrefslogtreecommitdiff
path: root/fonts/vicentino/kraml/local.mf
blob: 92094ec0ade3b2dbaba82e3babfa1b0d29288b75 (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
%
% local.mf
%

%
% Define modes
%
mode_def hplaser =     % HP LaserJet+
 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;           % The LaserJet is black enough
 fillin:=.2;           % and it tends to fill in diagonals
 o_correction:=.6;     % 
 enddef;

mode_def kyocera =     % Kyocera F-1010
 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;           % The Kyocera is black enough
 fillin:=.2;           % and it tends to fill in diagonals
 o_correction:=.6;     %
 enddef;

mode_def epsonfx =     % Epson FX-80
 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:=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;

mode_def epsonmx =     % Epson MX-80
 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:=120;
 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/5;    % 216 dots/inch vertical
 enddef;

mode_def lqhires =     % NEC-P6 high resolution (360x360)
 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:=360;
 blacker:=0;           % don't make the pens any blacker
 fillin:=0;            % and don't compensate for fillin
 o_correction:=.4;     % but suppress most overshoots
 enddef;

mode_def lqmedres =    % LQ-1500, NEC-P6 medium resolution (360x180)
 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:=360;
 blacker:=0;           % 0.3 avoids `holes'
 fillin:=0;            % and don't compensate for fillin
 o_correction:=.1;     % but suppress most overshoots
 aspect_ratio:=1/2;    % 180 dots/inch vertical
 enddef;

mode_def lqmedresl =   % LQ-1500, NEC-P6 medium resolution (180x360)
 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:=0;           % 0.3 avoids `holes'
 fillin:=0;            % and don't compensate for fillin
 o_correction:=.1;     % but suppress most overshoots
 aspect_ratio:=2;      % 360 dots/inch vertical
 enddef;

mode_def lqlores =     % LQ-1500, NEC-P6 low resolution (180x180)
 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:=0;           % don't make the pens any blacker
 fillin:=0;            % and don't compensate for fillin
 o_correction:=.1;     % but suppress most overshoots
 enddef;

mode_def itoh =        % C.ITOH 8510A (160x144)
 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:=160;
 blacker:=0;           % don't make the pens any blacker
 fillin:=0;            % and don't compensate for fillin
 o_correction:=.1;     % but suppress most overshoots
 aspect_ratio:=9/10;   % 144 dots/inch vertical
 enddef;

%
% Select default mode
%
localfont:=hplaser;


%
% 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;


%
% Patch plain base (kill bugs)
%
def drawdot expr z = if unknown currentpen_path: def_pen_path_ fi
 addto_currentpicture contour
  currentpen_path shifted (z.t_) withpen penspeck enddef;

%
% This has been fixed in plain 1.7
%
%vardef cutoff(expr z,theta) =
% interim autorounding := 0; interim smoothing := 0;
% addto pic_ doublepath z.t_ withpen currentpen;
% addto pic_ contour
%  (cut_ scaled (1+max(pen_lft,pen_rt,pen_top/aspect_ratio,pen_bot/aspect_ratio))
%   rotated theta shifted z.t_);
% cull pic_ keeping (2,2) withweight -default_wt_;
% addto currentpicture also pic_;
% pic_:=nullpicture enddef;