DataMuseum.dk

Presents historical artifacts from the history of:

DKUUG/EUUG Conference tapes

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about DKUUG/EUUG Conference tapes

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - metrics - download
Index: T U

⟦b7f072af9⟧ TextFile

    Length: 11640 (0x2d78)
    Types: TextFile
    Names: »U_Wash.mf«

Derivation

└─⟦060c9c824⟧ Bits:30007080 DKUUG TeX 2/12/89
    └─⟦this⟧ »./utilityfonts/bases/U_Wash.mf« 

TextFile

% File:       MF Inputs U_Wash.mf
% Author:     Pierre A. MacKay
% Internet:   mackay@cs.washington.edu
% Date:       November 27, 1988
%
% This is the University of Washington collection of |mode_defs|
% together with the macros to provide font-wide specials describing the
% |mode_def| that is used for each generated font, and the Xerox-world
% comments in the tfm file.  If a "?" is typed as the first response
% to the "*" prompt after this or a derived base file is loaded,
% a list of all current |mode_def|s will be given.
%
% This file follows a convention that has emerged in the discussion
% of |mode_def|s in TUGboat.  
%    1.  The print engine is identified wherever possible, rather than
%        the printer which incorporates that print-engine.
%    2.  Because |mode_def| names may not contain digits, each digit is
%        given its full name, as in RicohFourZeroEightZero.
%
% WARNING: Some of the modes have never actually been tested

base_version:=base_version&"/U_Wash";

input white_setup               

% if a mode_def includes the statement: let font_setup = white_setup,
% it will replace the cmbase.mf font_setup with this corrected version

mode_def help =               % What modes exist in this preload?
 for i=1 upto number_of_modes:
   message mode_name[i];
 endfor; 
 save ?; % only use this once.  it doesn't make sense to repeat
enddef;

let ? = help_;

% Canon CX mode: for the Laser-writer (same as WAITS.MF Imagen)
mode_def CanonCX =
 proofing:=0;                   % no, we're not making proofs
 fontmaking:=1;                 % yes, we are making a font
 tracingtitles:=0;              % no, don't show titles at all
 pixels_per_inch:=300;          % the new Canon engine at 300/inch
 blacker:=0;                    % Canon engine is black enough
 fillin:=.2;                    % very small compensation for diagonal fillin
 o_correction:=.6;              % but don't overshoot as much
 enddef;

% Ricoh 4080: for the TI Omnilaser (Stan Osborne's values TUGboat 8,2,134)
mode_def RicohFourZeroEightZero =
 let font_setup=white_setup;    % use the write-white font_setup
 proofing:=0;                   % no, we're not making proofs
 fontmaking:=1;                 % yes, we are making a font
 tracingtitles:=0;              % no, don't show titles at all
 pixels_per_inch:=300;          % Ricoh write-white engine.
 blacker:=.2;                   % Don't overblack the small fonts
 fillin:=-.2;                   % reverse compensation for diagonal fillin
 o_correction:=.5;              % but don't overshoot as much
 enddef;

% Varityper 600: for the Varityper Laser 600.
mode_def VarityperSixZeroZero =
 proofing:=0;                   % no, we're not making proofs
 fontmaking:=1;                 % yes, we are making a font
 tracingtitles:=0;              % no, don't show titles at all
 pixels_per_inch:=600;          % Good but not perfect
 blacker:=0;                    % Seems black enough. Lighter than 300dpi
 fillin:=0;                     % but it ought to be.  Closer to true
 o_correction:=0;               % Modern proportions.  Real problem is
 enddef;                        % toner irregularity

% Canon LBP 10: for the Symbolics LGP-10 (same as WAITS.MF canon)
mode_def CanonLBP =
 proofing:=0;                   % no, we're not making proofs
 fontmaking:=1;                 % yes, we are making a font
 tracingtitles:=0;              % no, don't show titles at all
 pixels_per_inch:=240;          % the old Canon engine at 240/inch
 blacker:=.2;                   % make pens a wee bit blacker
 fillin:=.2;                    % compensate for diagonal fillin
 o_correction:=.4;              % but don't overshoot as much as lowres
 enddef;

mode_def crs =                  % crs mode: for the Alphatype CRS (WAITS.MF)
  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 OneTwoZero=            % Micro-TeX, (maybe bitgraph and sun)
 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;          % for the 120pxl fonts
 blacker:=.35;                  % make pens a bit blacker (Karl Berry's value)
 fillin:=.1;                    % and compensate for diagonal fillin
 o_correction:=.3;              % but don't overshoot much
 enddef;

mode_def bitgraph =             % bitgraph and sun (the original settings)
 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:=118;          % for the oversize *.590pxl fonts
 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 sun =                  % bitgraph and sun screens (true size)
 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:=100;          % try it to see if it will do
 blacker:=.35;                  % make pens a bit blacker (Karl Berry's value)
 fillin:=.1;                    % and compensate for diagonal fillin
 o_correction:=.3;              % but don't overshoot much
 enddef;

% Three Macintosh values -- Pure guesswork, since no conversion
% program available.

mode_def truemac=
screens (true size)
 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:=72;           % too small to be really useful
 blacker:=.35;                  % make pens a bit blacker (Who knows?)
 fillin:=.1;                    % and compensate for diagonal fillin
 o_correction:=.3;              % but don't overshoot much
 enddef;

mode_def bettermac =            % same as a magstep up from preceding
 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:=86.4;         % Considerable improvement at this resolution
 blacker:=.35;                  % make pens a bit blacker (Karl Berry's value)
 fillin:=.1;                    % and compensate for diagonal fillin
 o_correction:=.3;              % but don't overshoot much
 enddef;

mode_def imagewriter =          % could be reached by magsteps from 100 or 120
 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:=144;          % Image-writer is twice screen density
 blacker:=0;                    % assume same as Epson owing to ink flow
 fillin:=0.3;                   % try correcting fillin at this resolution
 o_correction:=.2;              % don't overshoot much
 enddef;

% End of Macintosh values

mode_def epson =  % Epson (Charles Karney's values TUGboat 8,2 p. 133)
 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;

% This pair is hopeful, that maybe Ultre*setter may become
% usable one day

mode_def ultre =                % Ultre*setter normal 1200dpi good fonts.
 proofing:=0;                   % no, we're not making proofs
 fontmaking:=1;                 % yes, we are making a font
 tracingtitles:=0;              % no, don't show titles at all
 pixels_per_inch:=1200;         % the normal 1200 dot/inch font
 blacker:=0;                    % probably unnecessary at this resolution
 fillin:=0;                     % This unneeded too
 o_correction:=0;               % keep an eye on this
 enddef;

mode_def supre =                % Ultre*setter 2400dpi for super fonts.
 proofing:=0;                   % no, we're not making proofs
 fontmaking:=1;                 % yes, we are making a font
 tracingtitles:=0;              % no, don't show titles at all
 pixels_per_inch:=2400;         % 
 blacker:=0;                    % probably unnecessary at this resolution
 fillin:=0;                     % This unneeded too
 o_correction:=0;               % keep an eye on this
 enddef;


localfont:=CanonCX;             % the mode most commonly used to make fonts

% It is customary to input another file to supplement the PLAIN base.
% This supplementary file adds analogous modes, corresponding to
% local output devices, and it redefines `localfont' as appropriate.
% The values of screen_rows and screen_cols should also be updated.
% The auxiliary file should set base_version:=base_version&"/localname".
% Remember that the present file PLAIN.MF should not be changed;
% all local changes should be confined to a separate file.

% Macros to add mode information specials to fonts.

def mode_special(suffix $) =
  string s,d;
  s:=str$; d:=decimal scantokens s;
  special s&":="&d&";" enddef;

def font_mode_specials =
 p_p_i=pixels_per_inch/mag; 
 if fontmaking > 0:
 begingroup; save d,s,p; save pixels_per_inch;
  string p;
  pixels_per_inch:=p_p_i;
  special jobname;
  mode_special(mag);
  if string mode: p:=mode;
  else: p:=substring(0,length(mode_name[mode])-1) of mode_name[mode]; fi
  special "mode:="&p&";";
  mode_special(pixels_per_inch);
  mode_special(blacker);
  mode_special(fillin);
  mode_special(o_correction);
 endgroup;
 fi
enddef;

% Finally, here are macros for Xerox-world font info.
% These can be useful even if you never use a Xerox printer.
% For instance, crudetype uses the |coding_scheme|
% and it is nice to have the font family on record.  Some
% of this goes into the TFM, rather than the GF file.

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); 
  font_mode_specials; fi
 end
 enddef;

outer bye,end;