home *** CD-ROM | disk | FTP | other *** search
- % 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/G_Hessmann";
-
- 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;
-
- % redefined for Passauer TeX, new definition below
- %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;
-
- % There might be other uses for this, but for now the only obvious
- % use is to provide precise glyph positioning for gftodvi proofs
- % on a Sun display. To get a tfm file of the right size, use
- % the mode for the targeted driver, and rename the gf(pk) file produced by
- % this operation so that it matches that tfm. DO NOT use the
- % tfm generated by this sun mode_def, and do not use the gf(pk) file
- % generated by the <driver> mode_def..
- mode_def sun = % Sun CRT true size, for gray fonts.
- 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:=82; % Resolution reported in the man 4 page.
- aspect_ratio:=19/20; % 78 dots/inch vertical
- blacker:=0.; %
- fillin:=0.; %
- o_correction:=0.; %
- 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;
-
- % Begin of my definition section (Georg Hessmann)
-
- % First, epsonDraft (120/72)
-
- mode_def epsonDraft = % epsonDraft
- 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; % 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:=3/5; % 72 dots/inch vertical
- enddef;
-
- % Epson LQ high quality
- % epsonLQHQ (360/180)
-
- mode_def epsonLQHQ = % Epson LQ HQ (360/180)
- 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:=.1; %
- o_correction:=.3; % but suppress most overshoots
- aspect_ratio:=1/2; % 180 dots/inch vertical
- enddef;
-
- % Now, NEC Pinwriter
- % necHQ (360/360)
-
- mode_def necHQ = % necHQ (360/360)
- 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:=.1; %
- o_correction:=.3; % but suppress most overshoots
- enddef;
-
- % necDraft (180/180)
-
- mode_def necDraft = % necDraft (180/180)
- 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:=.1; %
- o_correction:=.2; % but suppress most overshoots
- enddef;
-
- % and now the previewer fonts
-
- % FourFour (44/44) [really low-res :-) ]
-
- mode_def FourFour =
- 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:=44; % too small to be really useful
- blacker:=.05; % make pens a bit blacker (Who knows?)
- fillin:=.1; % and compensate for diagonal fillin
- o_correction:=.2; % but don't overshoot much
- enddef;
-
- % EightThree (83/83)
-
- mode_def EightThree =
- 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:=83; % very small
- blacker:=0; %
- fillin:=0; %
- o_correction:=.2; % but don't overshoot much
- enddef;
-
- % NineOne (91/91)
-
- mode_def NineOne =
- 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:=91; %
- blacker:=0; %
- fillin:=0; %
- o_correction:=.2; % but don't overshoot much
- enddef;
-
- % OneZeroZero (100/100)
-
- mode_def OneZeroZero =
- 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; %
- blacker:=0; %
- fillin:=0; %
- o_correction:=.2; % but don't overshoot much
- enddef;
-
- % OneTwoZero (120/120)
-
- mode_def OneTwoZero =
- 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; % screen fonts are black enough
- fillin:=0; % no compensation for diagonals
- o_correction:=.2; % don't overshoot much (watch this value)
- enddef;
-
- % End of my section (Georg Hessmann)
-
- localfont:=OneTwoZero; % 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;
-