metafont
clone your own copy | download snapshot

Snapshots | iceberg

Inside this repository

local.mf
text/plain

Download raw (5.5 KB)

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