From af8548120c959b3300b82d56734b8259ab0808ce Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Tue, 28 Jan 2020 22:36:40 +0000 Subject: modes (28jan20) git-svn-id: svn://tug.org/texlive/trunk@53585 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/doc/fonts/modes/ChangeLog | 518 ++++ Master/texmf-dist/doc/fonts/modes/GNUmakefile | 132 + Master/texmf-dist/doc/fonts/modes/README | 20 + Master/texmf-dist/doc/fonts/modes/modedpicheck | 18 + Master/texmf-dist/doc/fonts/modes/modelist.txt | 163 ++ Master/texmf-dist/doc/fonts/modes/modenames.txt | 163 ++ Master/texmf-dist/doc/fonts/modes/modes.pdf | Bin 0 -> 265103 bytes .../texmf-dist/fonts/source/public/modes/modes.mf | 2621 ++++++++++++++++++++ Master/texmf-dist/metafont/misc/modes.mf | 2577 ------------------- 9 files changed, 3635 insertions(+), 2577 deletions(-) create mode 100644 Master/texmf-dist/doc/fonts/modes/ChangeLog create mode 100644 Master/texmf-dist/doc/fonts/modes/GNUmakefile create mode 100644 Master/texmf-dist/doc/fonts/modes/README create mode 100755 Master/texmf-dist/doc/fonts/modes/modedpicheck create mode 100644 Master/texmf-dist/doc/fonts/modes/modelist.txt create mode 100644 Master/texmf-dist/doc/fonts/modes/modenames.txt create mode 100644 Master/texmf-dist/doc/fonts/modes/modes.pdf create mode 100644 Master/texmf-dist/fonts/source/public/modes/modes.mf delete mode 100644 Master/texmf-dist/metafont/misc/modes.mf (limited to 'Master/texmf-dist') diff --git a/Master/texmf-dist/doc/fonts/modes/ChangeLog b/Master/texmf-dist/doc/fonts/modes/ChangeLog new file mode 100644 index 00000000000..d59acbdc718 --- /dev/null +++ b/Master/texmf-dist/doc/fonts/modes/ChangeLog @@ -0,0 +1,518 @@ +2020-01-28 Karl Berry + + * version 4.0 (skipping 3.9). First normal upload to CTAN. + + * modes.mf (mode_include_extra_info): new macro to arrange + for the Xerox-world information to be included, by redefining end. + This is now invoked by mktextfm if the envvar MF_MODE_EXTRA_INFO + is set; still not done by default, per Knuth. + Save and restore end and bye to make the definition, + including inner/outer-ness. + + This stems from a report to tex-k by Julian Gilbey: + https://tug.org/pipermail/tex-k/2019-October/003048.html + + * modes.mf: typos, other doc fixes and updates. + +2008-02-20 Karl Berry + + * version 3.8. + * modes.mf: no trailing _ on mode_extra_info. + * modes.mf: remove redefinition of the end primitive per DEK. + * modes.mf: dpdfezzz: use 4000 * 2, since 8000 is too large. + +2005-01-17 Karl Berry + + * version 3.7. + * modes.mf (dpdfezzz): 8000, not 2400. + +2004-03-30 Karl Berry + + * modes.mf: remove trailing whitespace. + * modes.mf (bjtzzl): need to call bjtzzs. + (newddl, epstypml, lviewl, phasertl): new modes + from "Hippocrates Sendoukas" for dviwin. + * modes.mf: 2004 + +2004-03-19 Karl Berry + + * modes.mf (xpstzz): new mode. + +2002-02-26 + + * modes.mf: version 3.5. + (epsmed[l], epslo[l]): new modes. + correct email addresses. + +2001-04-06 + + * modes.mf: 0 not .0 + +Mon Aug 10 14:29:36 1998 Karl Berry + + * modes.mf: Remove trailing spaces. + + * modes.mf: Add new phaserfs mode for Phaser 560, from + metod.kozelj@rzs-hm.si. + +Wed Jul 29 17:49:07 1998 Karl Berry + + * modes.mf (mode_common_setup_): Only set tracingtitles if dpi > 1200. + (lexmarks): New mode, Klaus Guntermann. + (ljfzzfr): New mode, Nicolai Langfeldt. + (pixpt): New mode, Aries Arditi. + (stylewr): Correct name to stylewri. + + * modes.mf: stylewr -> stylewri. From: akt@netspace.net.au + (Andrew Trevorrow) + +Fri Jan 16 16:10:19 1998 Karl Berry + + * Version 3.3. + * modes.mf: Fix indentation of list items. + +Thu Nov 7 14:56:14 1996 Karl Berry + + * Version 3.2. + + * Include dpi comments in various modes. From Thomas. + + * (EpsonStylusPro, EpsonStyleProLow, EpsonStylusProMed): These + aliases were defined to old (undefined) names. + From: Giuseppe Ghibo' . + + * (esphi): Change o_correction to 1. + + * (lnotr): New name for LNOthreR (retain as an alias). + From Thomas. + + * Verbatim fix from Ulrik. + +Sat Oct 12 15:10:25 1996 Karl Berry + + * Version 3.1. + + * Many changes for TeX prettiness. + +Thu Oct 10 14:34:44 1996 Karl Berry + + * modes.mf (onezz, OneZeroZero): Aliases for amiga. From ghibo. + (epsonseq, epstypro, epstyplo, epstypmd, esphi): New modes. + (LNOthreR): New mode. + (qmstftf): New mode. + (stylewr): New mode. + (lqmedres): Correct typo from lqmredres. + +Sat Jun 1 15:22:50 1996 Karl Berry + + * modes.mf: Use kb@mail.tug.org. + +Mon Jan 8 14:22:56 1996 Karl Berry + + * Version 3.0. + * New modetest.tex from Matt. + +Sat Dec 30 17:32:22 1995 Karl Berry + + * modes.mf: (FourFour, EightThree, OneZeroZero, OneTwoZero): New + modes for the ShowDVI Amiga previewer. From + ghibo@galileo.polito.it}, for the Amiga ShowDVI + Improve formatting. From Ulrik. + * modetest.tex: New file. From: swift@acs.bu.edu. + +Wed Dec 27 14:47:30 1995 Karl Berry + + * modes.mf (localfont): Change to ljfour. + (screen_rows, screen_cols): Interchange values to match plain.mf. + From: Christian Jonsson . + (modes_mf): Define this to the version, and avoid reading twice. + From: wgs@maths.ucd.ie (Wayne G. Sullivan). + (agfatzz): New mode. From: "Eric Picheral- CRI/CICB Rennes + 99.84.71.23" . + (lexmarkr): New mode. From: Michael Covington . + (canonbjc): New mode. From: Yves Arrouye . + (ljfive): New mode. From: swift@acs.bu.edu. + (highfax): New mode. From: ron@mlfarm.com (Ronald Florence). + (pcprevw, neclm, nectzo): New modes. + From: FUKUI Rei + +Sun Apr 16 07:43:01 1995 Karl Berry + + * Version 2.3. (The 2.2 release was confused.) + +Tue Feb 14 13:44:45 1995 Karl Berry + + * lwpro: New mode, from Pierre.Soille@ipk.fhg.de. + +Thu Feb 9 15:57:26 1995 Karl Berry + + * modes.mf (epstylus): New mode, from Tobias.Guenzler@uni-konstanz.de. + +Sun Nov 6 15:52:35 1994 Karl Berry + + * modes.mf (sparcptr): Fix sample code, example for config.ps from + simpson@math.psu.edu. + +Tue Aug 30 11:01:19 1994 Karl Berry (karl@cs.umb.edu) + + * Version 2.1. + + * Add landscape modes for nonsquare aspect ratios, rename to <8 + chars as necessary. + + * Add Xerox 4700 == Xerox 4050 from Bart. + +Sat Aug 27 12:15:19 1994 Karl Berry (karl@cs.umb.edu) + + * linosuper, linothreee, LinotypeThree...: Make aliases + for the new real name, linotzzh. + * aselect: new mode, same as ljfour. + +Wed Jul 20 15:01:42 1994 Karl Berry (karl@cs.umb.edu) + + * Version 2.0. + +Tue Jul 19 15:01:42 1994 Karl Berry (karl@cs.umb.edu) + + * modes.mf: Change primary names to <= 8 chars, and lowercase. + +Sun Jun 5 14:01:29 1994 Karl Berry (karl@cs.umb.edu) + + * modes.mf (nullmode): Set pixels_per_inch to 101. + +Tue May 24 13:35:47 1994 Karl Berry (karl@cs.umb.edu) + + * Version 1.3. + + * modes.mf (gtfaxhi): Change resolution to 204x196. + (gtfaxlo): New mode. + These from dak@pool.informatik.rwth-aachen.de. + +Sun Feb 13 11:12:28 1994 Karl Berry (karl@cs.umb.edu) + + * modes.mf (bjtenex): New mode from sjwright@cix.compulink.co.uk. + +Sat Dec 18 12:57:06 1993 Karl Berry (karl@cs.umb.edu) + + * modes.mf (CanonEX): New values from ajcarr@ccvax.ucd.ie. + +Thu Dec 2 16:26:06 1993 Karl Berry (karl@cs.umb.edu) + + * EpsonAction: New mode (renamed to epsonact). + +Thu Nov 25 17:27:04 1993 Karl Berry (karl@cs.umb.edu) + + * Version 1.2. + + * laserjetfour: Really install the new values. + +Fri Nov 19 13:37:32 1993 Karl Berry (karl@cs.umb.edu) + + * Version 1.1. + +Thu Nov 4 14:59:41 1993 Karl Berry (karl@cs.umb.edu) + + * modes.mf (IBMFourZeroOneNine): New mode. + +Thu Oct 28 17:53:05 1993 Karl Berry (karl@cs.umb.edu) + + * laserjetfour: New values from mbr@research.nj.nec.com. + +Tue Oct 19 11:37:09 1993 Karl Berry (karl@cs.umb.edu) + + * Changes so it again runs through TeX. + +Sun Sep 26 13:32:47 1993 Karl Berry (karl@cs.umb.edu) + + * Version 1.0. + + * Define eight-character or less abbreviations for all modes. + + * HPrugged: New mode. + * QMS 1725: New mode. + + * QMS 1700: Use o_correction=1, not 0. + + * IBMFourZeroOneNine: Define after RicohA. + +Fri Aug 27 09:25:00 1993 Karl Berry (karl@cs.umb.edu) + + * Mention ftp.cs.umb.edu as canonical location. + +Fri Aug 20 16:37:38 1993 Karl Berry (karl@cs.umb.edu) + + * HPLaserJetIIISi: New mode from stsmith@ll.mit.edu. + + * deskjet: Synonym for HDeskJet. + +Thu May 27 17:40:25 1993 Karl Berry (karl@cs.umb.edu) + + * Version 0.13. + +Wed May 26 05:57:25 1993 Karl Berry (karl@cs.umb.edu) + + * XeroxDocutech: No write/white. + +Thu May 13 14:40:09 1993 Karl Berry (karl@cs.umb.edu) + + * XeroxDocutech: New mode from smith@phoneme.harvard.edu. + +Fri Apr 30 14:30:12 1993 Karl Berry (karl@cs.umb.edu) + + * null: New mode from Jurgen Botz. + +Thu Apr 15 19:40:25 1993 Karl Berry (karl@cs.umb.edu) + + * CanonEX: New mode from swartz@cs.wisc.edu. + +Tue Apr 6 19:47:04 1993 Karl Berry (karl@cs.umb.edu) + + * Doc fix. + +Thu Mar 25 16:51:05 1993 Karl Berry (karl@cs.umb.edu) + + * QMS1700: New mode from queinnec@geant.cenatls.cena.dgac.fr. + +Sun Feb 14 11:28:27 1993 Karl Berry (karl@cs.umb.edu) + + * (laserjetfour): Rename from laserjetIV. + +Tue Feb 2 12:52:53 1993 Karl Berry (karl@cs.umb.edu) + + * (LPSTwoZero): New mode from hammond@jila.Colorado.EDU. + +Fri Jan 15 14:11:52 1993 Karl Berry (karl@cs.umb.edu) + + * Version 0.12. + + * (lasermaster): New mode, from Pierre. + +Thu Jan 14 07:57:35 1993 Karl Berry (karl@cs.umb.edu) + + * (laserjetIV, ljiv): New mode. + +Wed Jan 13 09:16:56 1993 Karl Berry (karl@cs.umb.edu) + + * (phaser): New mode. + +Wed Dec 30 17:07:46 1992 Karl Berry (karl@cs.umb.edu) + + * (DECsmall, DEClarge): New modes. + +Sun Dec 27 10:59:51 1992 Karl Berry (karl@cs.umb.edu) + + * (NCD): New mode. + +Sat Dec 5 10:10:57 1992 Karl Berry (karl@cs.umb.edu) + + * (epsdraft, epsfast): New defns from metcalf. + (epsonlo): Make vertical dpi 216. + +Sun Nov 22 11:18:58 1992 Karl Berry (karl@cs.umb.edu) + + * (SparcPrinter): Doc fix. + +Mon Oct 26 17:27:10 1992 Karl Berry (karl@cs.umb.edu) + + * Remove mode_write_white_setup from high-resolution mode_def's, + as it doesn't have any effect. + + * (SparcPrinter): Add more comments, from carlos. + +Tue Oct 6 08:37:50 1992 Karl Berry (karl@cs.umb.edu) + + * Version 0.11. + +Thu Aug 20 10:13:34 1992 Karl Berry (karl@hayley) + + * (SparcPrinterWhite): remove. + (SparcPrinterBlack): rename to just `SparcPrinter'. + +Fri Jul 31 19:25:33 1992 Karl Berry (karl@hayley) + + * Change `name=' to `jobname=', and change `identifier ' and + `codingscheme ' to `fontid=' and `codingscheme=', for + semi-consistency. + +Sat Jun 6 08:34:09 1992 Karl Berry (karl@hayley) + + * Don't append a ; to the special with the mode name; prepend + `name=' to the jobname. + +Fri Jun 5 11:42:07 1992 Karl Berry (karl@hayley) + + * Mention Pierre's RIDT article, and README.WRITE-W. + +Sat May 16 07:24:14 1992 Karl Berry (karl@hayley) + + * (IBM 4019): synonym for RicohA. + + * (Varityper 4300P): blacker now 3.5. + +Wed May 13 10:32:29 1992 Karl Berry (karl@hayley) + + * Version 0.10. + +Thu Apr 30 07:22:18 1992 Karl Berry (karl@hayley) + + * (Local variables): lose the form feed, since some gateways + mangle it. + +Sun Apr 19 10:08:36 1992 Karl Berry (karl@hayley) + + * (mode_output_specials_): as below, for `mode'. + +Wed Mar 18 14:58:52 1992 Karl Berry (karl at hayley) + + * (mode_special_): in fact, use `=', not `:='. + +Sat Mar 14 09:00:01 1992 Karl Berry (karl at hayley) + + * IBM 4029: change o_correction to .85 (from + plotkin@theory.stanford.edu). + + * ibm_a: new mode, an alternative to rocky's IBMD. + + * Compugraphic 9600: new mode, from wagman%muse.hepnet@Csa2.LBL.Gov. + +Fri Mar 6 09:09:02 1992 Karl Berry (karl at hayley) + + * (Varityper 4300{Lo,Hi}): new modes from mjm@as.arizona.edu. + + * (IBM 4029-30): same as IBM 4250. + + * (AtariNineFive): new mode. May as well provide all three + resolutions that people use for the Atari. + +Sat Feb 22 12:48:50 1992 Karl Berry (karl at hayley) + + * (mode_special_): omit spaces and semicolon from the special we + output, to save a little space. + +Thu Feb 20 13:36:09 1992 Karl Berry (karl at claude.cs.umb.edu) + + * Version 0.9. + + * These changes from issue@vax.oxford.ac.uk: + + * (Prism): synonym for ultre. + (LPSFourZero): new mode. + +Thu Feb 13 07:36:33 1992 Karl Berry (karl at hayley) + + * These changes from issue@vax.oxford.ac.uk: + + * (qms, LN01): make write-white. + + * (OCE6750PS): make fillin zero. + + * (lqrores): had two definitions. + + * (linothree, linosuper): define as LinotypeThreeZeroZeroHi. + + * (landscape): call fix_units. + +Fri Dec 13 09:03:13 1991 Karl Berry (karl at hayley) + + * (IBMSixOneFiveFour): change `pixels_per_inch' to 118. From + erikjan@icce.rug.nl. + +Sun Dec 8 08:20:34 1991 Karl Berry (karl at hayley) + + * (EpsonLQFiveZeroZero{Lo,Med}): add mode_common_setup_. From + schwab@ls5.informatik.uni-dortmund.de. + + * (SparcPrinterWhite): ok, let's have both. + (SparcPrinter): rename to SparcPrinterBlack. + + * (AtariNineSix): new mode from w.spit@fys.ruu.nl. + +Tue Nov 19 06:45:39 1991 Karl Berry (karl at hayley) + + * (LinotypeOneZeroZero): change o_correction to 1 (from + jcb@dcs.edinburgh.ac.uk). + +Thu Nov 7 10:15:49 1991 Karl Berry (karl at hayley) + + * (IBMThreeOne{SevenNine,NineThree}): new modes from + schoepf@sc.zib-berlin.de. + +Wed Oct 30 07:22:11 1991 Karl Berry (karl at hayley) + + * Version 0.8. + +Thu Oct 24 11:29:12 1991 Karl Berry (karl at hayley) + + * (IBMEGA): new mode, from melvin@math.psu.edu. + +Thu Sep 5 08:46:24 1991 Karl Berry (karl at hayley) + + * (EpsonFiveZeroZero): new modes from emtex via + cudat@csv.warwick.ac.uk. + + * (SparcPrinter): better values, from andy@vlsi.cs.caltech.edu. + +Mon Aug 26 17:01:04 1991 Karl Berry (karl at hayley) + + * (VarityperFourTwoZeroZero): new mode, from erikjan again. + +Fri Aug 16 06:17:43 1991 Karl Berry (karl at hayley) + + * (IBMProPrinter, IBMSixOneFiveFour): new definitions, from + erikjan@icce.rug.nl. + +Sat Aug 10 08:33:25 1991 Karl Berry (karl at hayley) + + * (mode_write_white_setup_): let itself = to relax at the end of + the definition, so that mode_setup can be called more than once + without harm (reported by he@stollmann.de). + +Sun Aug 4 09:55:04 1991 Karl Berry (karl at hayley) + + * Change rocky@ibm.com to rocky@watson.ibm.com throughout. + +Thu Aug 1 13:36:27 1991 Karl Berry (karl at hayley) + + * (CItoh8510A): new definition from local.mf via + cudat@cu.warwick.ac.uk. + + * (hplaser, kyocera): synonyms for CanonCX. + * (epsonfx): synonym for EpsonMXFX. + * (lqhires): synonym for NEChi. + * (lqlores): synonym for NEC. + + * (DataDiscNew, epsonlo, LinotypeOneZeroZeroLo, NEChi, Newgen, + NeXTprinter): do the mode_param first, since otherwise it's + ignored. From schwab@julien.informatik.uni-dortmund.de, et al. + (linethreelo, truemac): correct synonym names. + +Thu Jul 25 12:01:32 1991 Karl Berry (karl at hayley) + + * (CanonSX): remove. Use CanonCX. From ogawa@orion.arc.nasa.gov. + + * (PrintwareSevenTwoZeroIQ): remove nonsquare aspect ratio. From + mis@apsedoff.bitnet. + +Tue Jul 23 13:44:31 1991 Karl Berry (karl at hayley) + + * Version 0.7. + + * logo.mf: copy standard one, but include a title. + + * (CanonCX): additional printers apply. From + ogawa@orion.arc.nasa.gov. + + * (mode_write_write_setup_): remove the `save black_setup', so + that this works again. From ramey@csc.ti.com. + +Thu Jul 18 08:01:03 1991 Karl Berry (karl at hayley) + + * Version 0.6. + + * (mode_common_setup_): fix typo. Sigh. + + * (Varityper5060W): new entry, from rocky@watson.ibm.com. + +Sun Jul 7 09:19:08 1991 Karl Berry (karl at hayley) + + * Version 0.5. diff --git a/Master/texmf-dist/doc/fonts/modes/GNUmakefile b/Master/texmf-dist/doc/fonts/modes/GNUmakefile new file mode 100644 index 00000000000..b7efb2baade --- /dev/null +++ b/Master/texmf-dist/doc/fonts/modes/GNUmakefile @@ -0,0 +1,132 @@ +# $Id: GNUmakefile,v 1.3 2020/01/28 19:13:52 karl Exp $ +# Makefile for the mode_def collection. Public domain. + +version = 4.0 + +default: check + +testfonts = cmr5 cmtt8 cmti7 cmr10 cmti10 cmtt10 cmtt12 cmr17 +%.600pk: %.600gf + gftopk $< + +%.tfm %.600gf: modes.base + mf '&./modes \mode:=ljfour; nonstopmode; input $*' + +test.ps: $(addsuffix .600pk,$(testfonts)) test.dvi + dvips test -o + +test.dvi: $(addsuffix .tfm, $(testfonts)) test.tex + tex test + +# Upload in directory modes/ per CTAN. +distdir = modes +distname = $(distdir)/modes.mf +dist: badnames + test -z `rcslocks` + rm -rf $(distdir) && mkdir $(distdir) + expand $(distname) +# ensure no trailing spaces crept into the source (sigh): + diff modes.mf $(distname) +# these three commands are tiny shell scripts, not distributed (better to +# start with the versioned file). + add-version $(version) $(distname) + add-date $(distname) + fix-checksum $(distname) +# + cp -p ChangeLog GNUmakefile README $(distdir)/ + cp -p modedpicheck $(distdir)/ + cp -p list $(distdir)/modelist.txt + cp -p shortlist $(distdir)/modenames.txt + cd $(distdir) && mft ./modes.mf && pdftex ./modes.tex && rm -f *.log modes.tex + rm -f modes.zip; zip -r modes.zip modes + +# old stuff for karl. +# mv $$HOME/mail/2modes $(archive)/$(version).mail && gzip $(archive)/$(version).mail +# cp -p $(distname) $(archive) && gzip -f $(archive)/$(distname) && rooo +# cp -p $(distname) $(mfsys)/modes.mf +#archive = $(HOME)/misc/archive/modes + +list: modes.mf + grep \^mode_def modes.mf | grep -v help | sed 's/\\\[//' >list + +shortlist: list + sed 's/^mode_def \(.*\) =.*$$/\1/' list >$@ + +badnames: shortlist + sort $< | uniq -d + gawk '{if (length ($$0) > 8) {print $0; count++} } END {exit count}' $< + +dvi: modes.dvi +modes.dvi: modes.tex + tex '\scrollmode \input modes.tex' + +pdf: modes.pdf +modes.pdf: modes.tex + texfot pdftex '\nonstopmode \input modes.tex' + +modes.tex: modes.mf + mft modes.mf + +modes.base: modes.mf + mf -ini plain input modes\; dump + mv plain.base $@ + +# systematically check all modes, and some known past problems. +check: badnames modes.dvi checkx check-primitives check-modedpi \ +cmr10.300pk logo10.2540gf test.ps cmbsy7.1200gf + +# Check that Xerox info is included if requested. Must use -ini because +# mf.base includes modes.mf by default, and it intentionally stops +# itself from being read twice. So, for development convenience, do it +# all by hand (instead of depending on modes.base and dumping a new one +# every time). +# +checkx: + -mf -ini '\input plain; nonstopmode; input modes; mode:=cx; mode_include_extra_info; input logo10' + tftopl ./plain.tfm | fgrep CODING + +check-mktextfm: + rm -f logo10.tfm + mktextfm --destdir=`pwd` logo10 +# no xerox info by default: + ! (tftopl ./logo10.tfm | fgrep CODING) +# + rm -f logo10.tfm + env MF_MODE_EXTRA_INFO=1 mktextfm --destdir=`pwd` logo10 +# xerox info if requested: + tftopl ./logo10.tfm | fgrep CODING +# This will fail unless the new mktextfm is in PATH, and +# unless the correct modes.mf is compiled into mf.base,. +# It seems like overkill to have a new option to mktextfm so we can +# specify a fake mf, something like "inimf \input plain \input modes ...". +# We'll just test after installation. + +check-primitives: modes.base +# test for knuth: primitives work as designed, no Xerox info by default. + mf "&./modes \fontmaking:=1; end" + ! (tftopl ./mfput.tfm | fgrep CODING) + +check-modedpi: + modedpicheck + +gft: cmr10.600gf + gftype -m -i ./$< >cmr10.600gft +cmr10.600gf: modes.base + mf '&./modes \mode:=ricoh; mag:=2; input cmr10' + +# Make sure write-white works. +cmr10.300pk: modes.base + mf "&./modes \mode:=ricoh; scrollmode; input cmr10" + +# cmbsy7 fails with blacker >= 3 and pixels_per_inch >= 1200. +cmbsy7.1200gf: modes.base + mf "&./modes \mode:=lexmarkr; scrollmode; input cmbsy7" + +logo10.2540gf: shortlist modes.base + for f in `cat shortlist`; do echo $${f}; \ + mf "&./modes \mode:=$${f}; scrollmode; input logo10"; \ + done + +realclean distclean clean mostlyclean: + rm -f *gf *.gft *pk *.tfm *.pl *.ps *.log *.base *.dvi + rm -f modes.dvi list shortlist modes.tex modes.pdf diff --git a/Master/texmf-dist/doc/fonts/modes/README b/Master/texmf-dist/doc/fonts/modes/README new file mode 100644 index 00000000000..f6beb73857f --- /dev/null +++ b/Master/texmf-dist/doc/fonts/modes/README @@ -0,0 +1,20 @@ +$Id: README,v 1.2 2020/01/28 19:17:03 karl Exp $ +This is the modes.mf distribution. This Metafont file defines all known +modes, and some useful macros. In TeX Live, it is compiled into the +default mf.base. + +The source contains extensive comments about usage, defining new modes +(still welcome), and more. + +modedpicheck - a little script to ensure correct dpi setting for all + modes, as arithmetic must be used for large values. + (See the check target in ./GNUmakefile for running this and more.) +modelist.txt - list of all modes, with long name included. +modenames.txt - just the mode names. +GNUmakefile - support various development activities. + +Originally created decades ago. Released to the public domain. + +Compiler and maintainer: Karl Berry +Discussion list: tex-fonts@math.utah.edu +Home page: https://ctan.org/pkg/modes diff --git a/Master/texmf-dist/doc/fonts/modes/modedpicheck b/Master/texmf-dist/doc/fonts/modes/modedpicheck new file mode 100755 index 00000000000..3a2fb070b07 --- /dev/null +++ b/Master/texmf-dist/doc/fonts/modes/modedpicheck @@ -0,0 +1,18 @@ +#!/bin/sh +# $Id: modedpicheck,v 1.2 2020/01/28 18:57:25 karl Exp $ +# Check that the resolution of all defined modes is as intended, +# and that landscape works. Public domain. + +modes=modes.mf + +for j in `grep '^mode_def' $modes | awk '$2 != "help" {print $2}'`; do + mf_bdpi=`mf '\mode:='$j';mode_setup;message"BDPI= "&decimal round pixels_per_inch;end.' /dev/null 2>&1 || + echo $j + else + grep "^mode_def $j.*(${mf_bdpi}x$mf_lbdpi dpi)" $modes >/dev/null 2>&1 || + echo $j + fi +done diff --git a/Master/texmf-dist/doc/fonts/modes/modelist.txt b/Master/texmf-dist/doc/fonts/modes/modelist.txt new file mode 100644 index 00000000000..ab239332e24 --- /dev/null +++ b/Master/texmf-dist/doc/fonts/modes/modelist.txt @@ -0,0 +1,163 @@ +mode_def agfafzz = % AGFA 400PS (406dpi) +mode_def agfatfzz = % AGFA P3400PS (400dpi) +mode_def amiga = % Commodore Amiga (100dpi) +mode_def aps = % Autologic APS-Micro5 (723dpi) +mode_def apssixhi = % Autologic APS-Micro6 (1016dpi) +mode_def atariezf = % Atari ST SLM 804 printer (300dpi) +mode_def atarinf = % Atari previewer (95dpi) +mode_def atarins = % Atari previewer (96dpi) +mode_def atariotf = % Atari ST SM 124 screen (101dpi) +mode_def bitgraph = % BBN Bitgraph (118dpi) +mode_def bjtenex = % Canon BubbleJet 10ex (360dpi) +mode_def bjtzzex = % Canon BubbleJet 200ex (360 dpi) +mode_def bjtzzs = % Canon BubbleJet 200 (720x360dpi) +mode_def bjtzzl = % BubbleJet 200 landscape (360x720 dpi) +mode_def boise = % HP 2680A (180dpi) +mode_def canonbjc = % Canon BJC-600 (360dpi) +mode_def canonex = % LaserWriter Pro 630 (600dpi) +mode_def canonlbp = % Symbolics LGP-10 (240dpi) +mode_def cg = % Compugraphic 8600 (1301x1569dpi) +mode_def cgl = % Compugraphic 8600 landscape (1569x1302dpi) +mode_def cgnszz = % Compugraphic 9600 (1200dpi) +mode_def crs = % Alphatype CRS (5333dpi) +mode_def cx = % Canon CX, SX, LBP-LX (300dpi) +mode_def datadisc = % DataDisc (70dpi) +mode_def newdd = % DataDisc (70x93dpi) +mode_def newddl = % DataDisc landscape (93x70dpi) +mode_def declarge = % DEC 19-inch, 1280 x 1024 (100dpi) +mode_def decsmall = % DEC 17-inch, 1024 x 768 (82dpi) +mode_def deskjet = % HP DeskJet 500 (300dpi) +mode_def docutech = % Xerox 8790 or 4045 (600dpi) +mode_def dover = % Xerox Dover (384dpi) +mode_def dpdfezzz = % dvips -Ppdf (8000dpi) +mode_def eighthre = % EightThree (83dpi) +mode_def epscszz = % Epson Stylus Color 600 (720 dpi) +mode_def epsdrft = % Epson (120x72dpi) +mode_def epsdrftl = % Epson (72x120dpi) +mode_def epsfast = % Epson fast (60x72dpi) +mode_def epsfastl = % Epson fast landscape (72x60dpi) +mode_def epsmed = % Epson med MX/FX 9-pin (240x144dpi) +mode_def epsmedl = % Epson med MX/FX 9-pin landscape (144x240dpi) +mode_def epson = % Epson MX/FX 9-pin (240x216dpi) +mode_def epsonl = % Epson MX/FX 9-pin landscape (216x240dpi) +mode_def epsonact = % Epson Action Laser 1500 (300dpi) +mode_def epsonlo = % Epson (120x216dpi) +mode_def epsonlol = % Epson landscape (216x120dpi) +mode_def epsonsq = % Epson SQ 870 (360dpi) +mode_def epstypro = % Epson Stylus Pro (360dpi) +mode_def epstyplo = % Epson Stylus Pro (180dpi) +mode_def epstypmd = % Epson Stylus Pro (720x360dpi) +mode_def epstypml = % Epson Stylus Pro landscape (360x720dpi) +mode_def epswlo = % Epson low MX/FX 9-pin (120x144dpi) +mode_def epswlol = % Epson low MX/FX 9-pin landscape (144x120dpi) +mode_def esphi = % Epson Stylus Pro (720dpi) +mode_def epstylus = % Epson Stylus (360dpi) +mode_def fourfour = % FourFour (44dpi) +mode_def gtfax = % G3fax (204x196dpi) +mode_def gtfaxl = % G3fax landscape (196x204dpi) +mode_def gtfaxlo = % G3fax (204x98dpi) +mode_def gtfaxlol = % G3fax landscape (98x204dpi) +mode_def highfax = % G3fax (200dpi) +mode_def hprugged = % HP RuggedWriter 480 (180dpi) +mode_def ibm_a = % IBM 38xx (240dpi) +mode_def ibmd = % IBM 38xx (240dpi) +mode_def ibmega = % IBM EGA monitor (96x81dpi) +mode_def ibmegal = % IBM EGA monitor landscape (81x96dpi) +mode_def ibmfzon = % IBM 4019 (300dpi) +mode_def ibmfztn = % IBM 4029-30-39, 4250 (600dpi) +mode_def ibmpp = % IBM ProPrinter (240x216dpi) +mode_def ibmppl = % IBM ProPrinter (216x240dpi) +mode_def ibmsoff = % IBM 6154 display (118dpi) +mode_def sherpa = % IBM 6670 (Sherpa) (240dpi) +mode_def ibmteot = % IBM 3812 (240dpi) +mode_def ibmtetz = % IBM 3820 (240dpi) +mode_def ibmtont = % IBM 3193 screen (100dpi) +mode_def ibmtosn = % IBM 3179 screen (87x65dpi) +mode_def ibmtosnl = % IBM 3179 screen landscape (65x87dpi) +mode_def ibmvga = % IBM VGA monitor (110dpi) +mode_def ibx = % Chelgraph IBX (9600dpi) +mode_def itoh = % CItoh 8510A (160x144dpi) +mode_def itohl = % CItoh 8510A landscape (144x160dpi) +mode_def itohtoz = % CItoh 310 (240x144dpi) +mode_def itohtozl = % CItoh 310 landscape (144x240dpi) +mode_def iw = % Apple ImageWriter (144dpi) +mode_def jetiiisi = % HP Laser Jet IIISi (300dpi) +mode_def lasf = % DEC LA75 (144dpi) +mode_def lexmarkr = % Lexmark Optra R 4049 (1200dpi) +mode_def lexmarks = % Lexmark Optra S 1250/1650/2450 (1200dpi) +mode_def lexmarku = % Lexmark Optra R+ 4049 (600dpi) +mode_def linolo = % Linotype Linotronic [13]00 (635dpi) +mode_def linolttz = % Linotronic L-300 with RIP-50 (3386dpi) +mode_def linoone = % Linotronic [13]00 (1270dpi) +mode_def linotzzh = % Linotype Linotronic 300 (2540dpi) +mode_def ljfive = % HP LaserJet 5 (600dpi) +mode_def ljfivemp = % HP LaserJet 5MP (600 dpi) +mode_def ljfour = % HP LaserJet 4 (600dpi) +mode_def ljfzzz = % LaserJet 4000N, ProRes mode (1200dpi) +mode_def ljfzzzfr = % HP LaserJet 4000 FastRes (600dpi) +mode_def ljlo = % HP LaserJet (150dpi) +mode_def ljtozz = % HP LaserJet 2100T/TN (1200dpi) +mode_def ljtozzfr = % HP LaserJet 2100T/TN (600dpi) +mode_def lmaster = % LaserMaster (1000dpi) +mode_def lnotr = % DEC LN03R Scriptprinter (300dpi) +mode_def lnzo = % DEC LN01 (300dpi) +mode_def lpstz = % DEC lps20 (300dpi) +mode_def lqlores = % Epson LQ-500 (180dpi) +mode_def lqmed = % Epson LQ-500 (360x180dpi) +mode_def lqmedl = % Epson LQ-500 landscape (180x360dpi) +mode_def lview = % Sigma L-View monitor (118x109dpi) +mode_def lviewl = % Sigma L-View monitor landscape (109x118dpi) +mode_def lwpro = % Apple LaserWriterPro 810 (800dpi) +mode_def macmag = % Mac screens at magstep 1 (86dpi) +mode_def mactrue = % Mac screen (72dpi) +mode_def ncd = % NCD 19-inch (95dpi) +mode_def nec = % NEC (180dpi) +mode_def nechi = % NEC-P6 (360dpi) +mode_def neclm = % NEC PC-PR406LM (320dpi) +mode_def nectzo = % NEC PC-PR201 series (160dpi) +mode_def nexthi = % NeXT Newgen (400dpi) +mode_def nextscrn = % NeXT monitor (100dpi) +mode_def nineone = % NineOne (91x91) (91dpi) +mode_def nullmode = % TFM files only (101dpi) +mode_def onetz = % OneTwoZero (120/120) (120dpi) +mode_def ocessfz = % OCE 6750-PS (508dpi) +mode_def okidata = % Okidata (240x288dpi) +mode_def okidatal = % Okidata landscape (288x240dpi) +mode_def okifte = % Okidata 410e in 600DPI mode (600dpi) +mode_def pcscreen = % also, e.g., high-resolution Suns (118dpi) +mode_def pcprevw = % PC screen preview (118dpi) +mode_def phaser = % Tektronix Phaser PXi (300dpi) +mode_def phaserfs = % Tektronix Phaser 560 (1200dpi) +mode_def phasertf = % Tektronix Phaser 350 (600x300dpi) +mode_def phasertl = % Tektronix Phaser 350 landscape (300x600) +mode_def pixpt = % one pixel per point (72.27dpi) +mode_def prntware = % Printware 720IQ (1200dpi) +mode_def qms = % QMS (Xerox engine) (300dpi) +mode_def qmsostf = % QMS 1725 (600dpi) +mode_def qmsoszz = % QMS 1700 (600dpi) +mode_def qmstftf = % QMS 2425 (1200dpi) +mode_def ricoh = % e.g., TI Omnilaser (300dpi) +mode_def ricoha = % e.g., IBM 4216 (300dpi) +mode_def ricohlp = % e.g., DEC LN03 (300dpi) +mode_def ricohsp = % Ricoh sp10ps/lp7200-ux (600dpi) +mode_def sparcptr = % Sun SPARCprinter (400dpi) +mode_def starnlt = % Star NL-10 (240x216dpi) +mode_def starnltl = % Star NL-10 landscape (216x240dpi) +mode_def styletwo = % Apple StyleWriter II (360dpi) +mode_def stylewri = % Apple StyleWriter (360dpi) +mode_def sun = % Sun and BBN Bitgraph (85dpi) +mode_def supre = % Ultre*setter (2400dpi) +mode_def toshiba = % Toshiba 13XX, EpsonLQ (180dpi) +mode_def ultre = % Ultre*setter (1200dpi) +mode_def vs = % VAXstation monitor (78dpi) +mode_def vtftzz = % Varityper 4200 B-P (1800dpi) +mode_def vtftzzhi = % Varityper 4300P (2400dpi) +mode_def vtftzzlo = % Varityper 4300P (1200dpi) +mode_def vtfzszw = % Varitype 5060W, APS 6 (600dpi) +mode_def vtszz = % Varityper Laser 600 (600dpi) +mode_def xpstzz = % Xerox Phaser 6200DP (2400x600dpi) +mode_def xpstzzl = % Xerox Phaser 6200DP landscape (600x2400dpi) +mode_def xrxesnz = % Xerox 8790 or 4045 (300dpi) +mode_def xrxfzfz = % Xerox 4050/4075/4090/4700 (300dpi) +mode_def xrxnszz = % Xerox 9700 (300dpi) +mode_def xrxtszz = % Xerox 3700 (300dpi) diff --git a/Master/texmf-dist/doc/fonts/modes/modenames.txt b/Master/texmf-dist/doc/fonts/modes/modenames.txt new file mode 100644 index 00000000000..3a9cfcc80e0 --- /dev/null +++ b/Master/texmf-dist/doc/fonts/modes/modenames.txt @@ -0,0 +1,163 @@ +agfafzz +agfatfzz +amiga +aps +apssixhi +atariezf +atarinf +atarins +atariotf +bitgraph +bjtenex +bjtzzex +bjtzzs +bjtzzl +boise +canonbjc +canonex +canonlbp +cg +cgl +cgnszz +crs +cx +datadisc +newdd +newddl +declarge +decsmall +deskjet +docutech +dover +dpdfezzz +eighthre +epscszz +epsdrft +epsdrftl +epsfast +epsfastl +epsmed +epsmedl +epson +epsonl +epsonact +epsonlo +epsonlol +epsonsq +epstypro +epstyplo +epstypmd +epstypml +epswlo +epswlol +esphi +epstylus +fourfour +gtfax +gtfaxl +gtfaxlo +gtfaxlol +highfax +hprugged +ibm_a +ibmd +ibmega +ibmegal +ibmfzon +ibmfztn +ibmpp +ibmppl +ibmsoff +sherpa +ibmteot +ibmtetz +ibmtont +ibmtosn +ibmtosnl +ibmvga +ibx +itoh +itohl +itohtoz +itohtozl +iw +jetiiisi +lasf +lexmarkr +lexmarks +lexmarku +linolo +linolttz +linoone +linotzzh +ljfive +ljfivemp +ljfour +ljfzzz +ljfzzzfr +ljlo +ljtozz +ljtozzfr +lmaster +lnotr +lnzo +lpstz +lqlores +lqmed +lqmedl +lview +lviewl +lwpro +macmag +mactrue +ncd +nec +nechi +neclm +nectzo +nexthi +nextscrn +nineone +nullmode +onetz +ocessfz +okidata +okidatal +okifte +pcscreen +pcprevw +phaser +phaserfs +phasertf +phasertl +pixpt +prntware +qms +qmsostf +qmsoszz +qmstftf +ricoh +ricoha +ricohlp +ricohsp +sparcptr +starnlt +starnltl +styletwo +stylewri +sun +supre +toshiba +ultre +vs +vtftzz +vtftzzhi +vtftzzlo +vtfzszw +vtszz +xpstzz +xpstzzl +xrxesnz +xrxfzfz +xrxnszz +xrxtszz diff --git a/Master/texmf-dist/doc/fonts/modes/modes.pdf b/Master/texmf-dist/doc/fonts/modes/modes.pdf new file mode 100644 index 00000000000..1fa9fa297db Binary files /dev/null and b/Master/texmf-dist/doc/fonts/modes/modes.pdf differ diff --git a/Master/texmf-dist/fonts/source/public/modes/modes.mf b/Master/texmf-dist/fonts/source/public/modes/modes.mf new file mode 100644 index 00000000000..d308608f1d8 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/modes/modes.mf @@ -0,0 +1,2621 @@ +% {\tt\catcode`\$=12 $Id: modes.mf,v 1.26 2020/01/28 19:14:12 karl Exp $ } +%%\font\tenlogosl=logosl10 +%%\def\logofont{\ifdim\fontdimen1\font>0pt \tenlogosl\else\tenlogo\fi} +%%\def\MF{{\logofont META}\-{\logofont FONT}} +%%\def\9{${\rm\%}}% print initial comments ragged right +%%\let\origunderscore=\_ % use character from tt font: +%%\def\_{\ifdim\fontdimen3\font=0pt \char`\_\else\origunderscore\fi} +%%\vbadness=10000 % all-code-example page +%%%% +%%% input generate +%%% def mode_def +%%% end bye primitive_end_ +%%% addto define_whole_vertical_blacker_pixels %%%% missing in plain.mft +%%% addto coding_scheme font_face_byte font_family %%%% like font_size +%%% addto BCPL_string mode_param mode_special_ mode_output_specials_ +%%% true mode_common_setup_ mode_write_white_setup_ %%%% like mode_setup +%%% true mode_include_extra_info +%%% true landscape landscape_ +%%% good mode_guard_ %%%% variable that take suffixes +%%%% +% +% Compiled 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 2002, 2004, +% 2005, 2008, 2020 by Karl Berry. This file is not copyrighted and may +% be used freely. You can retrieve the latest version from {\tt +% https://ctan.org/pkg/modes}, among other places. +% +% Feel free to change the definitions of |localfont|, |screen_cols|, +% and |screen_rows| at the end of file (see explanations below). +% +% If you make a new |mode_def|, please send it to +% {\tt tex-fonts@math.utah.edu} (explanations below also). +% +% The mode definitions start at `Here are the modes', several hundred +% lines down. The companion files {\tt modelist.txt} and {\tt +% modenames.txt} list the modes one per line, with and without comments. +% +% A common use for modes nowadays is to make high-resolution bitmaps from +% \MF-only fonts to include in PDF output or for autotracing. The +% |dpdfezzz| mode is an 8000$\,$dpi mode with canonical parameter values, +% intended for this purpose. (Running {\tt dvips -Ppdf} will use this.) +% If you want a lower resolution, similar canonical modes are |supre| +% at 2400$\,$dpi mode and |ultre| at 1200$\,$dpi. +% +% This file can be run through {\tt mft} and \TeX\ to produce a nice +% pretty-printed listing; the resulting {\tt modes.pdf} file is included +% in the distribution. +% +%%\begingroup \tt \catcode`\{=12 \catcode`\}=12 \obeyspaces +% @mffile{ +% author = "The Metafont community", +% version = "4.0", +% date = "Tue Jan 28 11:17:07 PST 2020" +% filename = "modes.mf", +% email = "tex-fonts@math.utah.edu" +% checksum = "2621 13018 95640", +% codetable = "ISO/ASCII", +% supported = "yes", +% docstring = " +%%\endgroup +% +% This file is a collection of putatively all extant \MF\ modes. +% +% If you have a device which is not mentioned in this file, the best +% thing to do is try to find a device with similar resolution (search +% for the appropriate lines), and see if that suits (a list of fonts to +% try is given above). Otherwise, methods for fiddling with the +% parameters are described in detail below. +% +% Unfortunately, the number of modes eats up a lot of memory; if your +% \MF\ has not increased the table sizes, you may need to remove +% some of the modes from this file (please rename it to something else then, +% e.g., {\tt local.mf}). If you can suggest a way to redefine |mode_def| +% and/or |mode_setup|, even better; right now, the amount of memory +% used is approximately four times the length of the |mode_def| names. +% +% The primary names are intentionally all eight characters or less, and +% strictly lowercase. This makes it feasible to use them for portable +% directory names, and the \TeX\ Directory Structure standard recommends +% doing so. The synonyms are historical equivalents. +% +% It also makes definitions to put specials identifying the mode in +% the \MF\ GF output, and to put the coding scheme and +% other so-called Xerox-world information in the TFM output. This can +% be made to happen by calling |mode_include_extra_info|. +% +% It also defines a macro |landscape| that inverts |aspect_ratio| and +% changes |pixels_per_inch|, so you can say {\tt mode := whatever; +% landscape; ...} to get landscape fonts. But I can't think of any +% reasonable way to reflect the |landscape| in the directory name, so +% there are also |mode_def|'s for the devices with non-square aspect +% ratios in landscape mode. +% +% Finally, it has some code to handle write-white devices better; this +% code comes into play if a |mode_def| includes the statement +% |mode_write_white_setup_;|. Such |mode_def|s should also define +% |blacker_min|. For further discussion of write/white and white/black +% devices, see Pierre MacKay's article in the proceedings of the +% 1991 Raster Imaging and Digital Typography conference: +% +%%\begingroup \tt \catcode`\{=12 \catcode`\}=12 \obeyspaces +% @String{proc-RIDT91 = "Raster Imaging and Digital Typography II"} +% @String{pub-CUP = "Cambridge University Press"} +% +% @Inproceedings{Mackay:RIDT91-205, +% author = "Pierre A. MacKay", +% title = "Looking at the Pixels: Quality Control for 300 dpi +% Laser Printer Fonts, especially {\MF}s ", +% pages = "205--215", +% crossref = "Morris:RIDT91", +% } +% +% @Proceedings{Morris:RIDT91, +% title = proc-RIDT91, +% booktitle = proc-RIDT91, +% year = "1991", +% editor = "Robert A. Morris and Jacques Andr{\'e}", +% publisher = pub-CUP, +% address = pub-CUP:adr, +% acknowledgement = ack-kb, +% } +%%\endgroup +% +% This file is typically loaded when making a \MF\ base; \TeX\ Live does +% this by default, but to do it manually, for example, the command line +%%\begingroup \tt \obeyspaces +% inimf plain input modes dump +%%\endgroup +% makes a file {\tt plain.base} (or {\tt plain.bas}, or something like that) +% with all the modes herein defined (plain itself defines modes called +% |proof|\kern-.12em, |smoke|, and |lowres|.) +% +% You can make the Computer Modern base with the command line: +%%\begingroup \tt \obeyspaces +% inimf plain input modes input cmbase dump +%%\endgroup +% It's generally best to avoid doing this, since it's +% easy to forget to update them. Just using {\tt plain.base} is simplest. +% +% On Unix systems, you then install the base file in the system directory +% as {\tt mf.base}. \MF\ uses the name it was invoked as to determine +% the format or base file to read; thus running {\tt mf} reads {\tt +% mf.base}, running {\tt cmmf} reads {\tt cmmf.base}, and so on. {\tt +% plain.base} and {\tt mf.base} should be the same file (either a hard +% or soft link is ok), so the examples in {\sl The \MF book\/} work. +% +% A user selects a particular mode when running \MF +% by assigning to the variable |mode|. For example: +%%\begingroup \tt \obeyspaces +% mf \char`\\mode:=cx; input cmr10 +%%\endgroup +% sets up values appropriate for the CanonCX engine. +% +% If no mode is assigned, the default is |proof| mode, as stated in {\sl +% The \MF book}. This is the cause of the ``{\tt .2602gf}'' files which +% are the subject of periodic questions. The remedy is simply to assign +% a different mode---|localfont|, for example. +% +% Every site should define the mode |localfont| to be a synonym for the +% mode most commonly used. This file defines |localfont| to be |ljfour|. +% The values for |screen_rows| and |screen_cols|, which determine how big +% \MF's window for online output is, should perhaps also be +% changed; certainly individual users should change them to their +% own tastes. +% +% This file defines {\tt ?} to type out a list of all the known +% |mode_def|s (once only). +% +% Technically, a |mode_def| is a \MF\ definition that typically +% consists of a series of assignments to various device-specific variables, +% either primitive or defined in plain. These variables include the +% following (page numbers refer to {\sl The \MF book\/}: +% +% |aspect_ratio|: the ratio of the vertical resolution to the horizontal +% resolution (page 94). +% +% |blacker|: a correction added to the width of stems and similar +% features, to account for devices which would otherwise make them +% too light (page 93). (Write-white devices are best handled by a more +% sophisticated method than merely adding to |blacker|, as explained +% above.) Compare your results with a good high-resolution example, +% such as one of the volumes of {\sl Computers \& Typesetting}. +% If you compare against the output of a typical write-black 300$\,$dpi +% engine, you will almost certainly wind up with something too dark. +% |blacker| should never be negative, the EC fonts do not compile with +% such a value. +% +% |fillin|: a correction factor for diagonals and other features which +% would otherwise be ``filled in'' (page 94). An ideal device would +% have |fillin=0| (page 94). Negative values for |fillin| typically +% have either gross effects or none at all, and should be avoided. +% Positive values lighten a diagonal line, negative values darken it. +% Changes in the |fillin| value tend to have abruptly non-linear effects +% on the various design-sizes and magnifications of a typeface. +% +% |fontmaking|: if nonzero at the end of the job, \MF\ writes +% a TFM file (page 315). +% +% |o_correction|: a correction factor for the ``overshoot'' of curves +% beyond the baseline or x-height. High resolution curves look better +% with overshoot, so such devices should have |o_correction=1|; but +% at low resolutions, the overshoot appears to simply be a distortion +% (page 93). Here some additional comments about |o_correction|, +% courtesy of Pierre MacKay (edited by Karl): +% +% At present, I find that |o_correction| works nicely at 80 pixels per +% em, and gets increasingly disturbing as you move down towards 50 +% pixels per em. Below that I do not think it ought to happen at all. +% +% The problem, of course, is that full |o_correction| is supposed to +% occur only at the zenith and nadir of the curve of `o', which is +% a small region at high resolution, but may be a long line of +% horizontal pixels at medium resolution. The full |o_correction| +% does not change a 300$\,$dpi {\tt cmr10}, but it changes a 21-pixel +% high {\tt cmr12} to be 23 pixels high. The extra height and depth +% is seen along a line of seven pixels at the bottom and five at +% the top. This is a pronounced overshoot indeed. +% +% For high-resolution devices, such as phototypesetters, the values +% for |blacker|, |fillin|, and |o_correction| don't matter all that much, +% so long as the values are within their normal ranges: between +% 0 and 1, with the values approaching 0, 0, and 1 respectively. +% +% |pixels_per_inch|: the horizontal resolution; the \MF\ primitive +% |hppp| (which is what determines the extension on the GF filename, +% as among other things) is computed from this (page 94). (An ``inch'' +% is 72.27$\,$pt in the \TeX\ world.) +% +% To be more precise, you can determine the resolution of a font given +% a |mode_def| and a magnification |m| by simply multiplying +% |pixels_per_inch| for that |mode_def| by |m|. (Your results may differ +% from \MF's if you don't use equivalent fixed-point arithmetic.) +% Then you can determine the number used in the name of the GF font +% output by rounding. For example, a font generated at |magstep(.5)| +% (which is $\sqrt{1.2}$, which \MF\ computes as 1.09544) for a printer +% with |pixels_per_inch=300| will have a resolution of 328.63312 dots +% per inch, and the GF filename will include the number {\tt 329}. +% +% |proofing|: says whether to put additional specials in the GF file for +% use in making proofsheets via, e.g., the utility program {\tt GFtoDVI} +% (page 323--4). +% +% |tracingtitles|: if nonzero, strings that appear as \MF\ statements +% are typed on the terminal (page 187). +% +% Pierre MacKay {\tt mackay@cs.washington.edu} has a collection of Unix +% tools to make up a minifont of indicator characters to help in testing. +% +% Neenie Billawala's article in the April 1987 issue of {\sl TUGboat} +% describes how to test your printer for the best set of values for the +% magic numbers above. Here are some brief comments on the subject, +% courtesy of Rocky Bernstein and Paul Abrahams: +% +% For medium-to-low resolution devices, you can first set the |blacker| +% and |o_correction| to~0 and decide on a |fillin| value by looking at +% the diagonal of a lowercase `z' in {\tt cmtt10}, or various lines in +% LaTeX's {\tt line10} font. The diagonal should be the same thickness +% as the horizontal bars of the `z'. Then I decide on the |blacker| +% value, generally by checking the smaller fonts for too much filling +% in. Finally, you can set the |o_correction| using the guidelines +% suggested above. +% +% The easiest way to make a new |mode_def| is not by modifying this file +% and rebuilding your base file every time. Instead, use a separate file +% that contains the appropriate values for the mode parameters and read +% it in when running \MF. If you're using Dvips or another utility +% that calls {\tt MakeTeXPK} to make PK files, remember you'll have to call +% \MF\ explicitly to make fonts until you've rebuilt the base files. +% +% To use a separate mode file with \MF, use the following +% command line: +%%\begingroup \tt \obeyspaces +% mf \char`\\smode:="newmode.mf"; mag:=magstep (2.0); input cmr10 +%%\endgroup +% substituting whatever font and magnification you wish, or omitting +% the magnification altogether. +% +% The file {\tt newmode.mf} should contain lines like this (with no +% |mode_def| or |enddef|): +%%\begingroup \tt \catcode`\_=12 \obeyspaces +% mode_param (pixels_per_inch, 100); +% mode_param (blacker, 0); +% mode_param (fillin, 0); +% mode_param (o_correction, 1); +% mode_common_setup_; +%%\endgroup +% changing the values as appropriate, of course. Once you're satisfied +% with the parameters, use inimf as described below to rebuild and +% install the plain (and any other) base files. +% +% For more information on the use of |smode|, see page 269 of +% {\sl The \MF book}. +% +% Matt Swift has contributed a short \TeX\ file to help in testing new +% modes. Remember to remove a leading |"%% "| from each line after +% extracting it. (Only a single \% is shown in the printed version.) +% If you don't use this file for testing, please mention what fonts +% at what sizes you tested your new mode on. This will help other +% people wondering where particular values came from. Ideally, +% you would try normal, bold, and italic variants, at sizes around +% 5$\,$pt, 10$\,$pt and 15$\,$pt. +% +%%%% It seems too difficult to get the verbatim stuff right with MFT alone, +%%%% so why not quote the lines with `%%' and leave the processing to TeX? +%%%% The only drawback is that comment lines have to start with a blank, +%%%% since we have two stop MFT from interpreting them as `%%%' comments. +%%%% Therefore it seems best to quote every line with `%% ' consistently +%%%% to make it easier to extract them. +%%%% +%%%% This verbatim mode is from webman.tex, it assumes that no `?' appears +%%%% in the text being copied. I've hacked it to insert a single `%' at +%%%% the start of each line, so that it looks like normal MFT comments. +%%%% +%%\def\verbatim{\begingroup \def\9{{\rm\%}} +%% \def\do##1{\catcode`##1=12 } \dospecials +%% \parskip 0pt \parindent 0pt +%% \catcode`\ =13 \catcode`\^^M=13 +%% \tt \catcode`\?=0 \verbatimdefs \verbatimgobble} +%%{\catcode`\^^M=13{\catcode`\ =13\gdef\verbatimdefs{\def^^M{\ \par\9}\let =\ }} % +%% \gdef\verbatimgobble#1^^M{\9}} +%%%% +%%\verbatim +%% % modetest.tex -- a file to test a METAFONT mode +%% % +%% % by Matt Swift +%% % +%% % This file is in the public domain. +%% % +%% % \def\fileversion{v1.2} +%% % \def\filedate{1995/12/31} +%% % +%% % This LaTeX 2e file generates a test page useful for finding a good +%% % METAFONT mode for your printer. It includes the most sensitive +%% % letters in three sizes and all standard CMR font shapes. +%% % +%% % I've made the macros abstract, and I think this file could easily +%% % be adapted to test modes for other METAFONT fonts, or simply font +%% % appearance in general. +%% % +%% % If you want to adapt this to a non-LaTeX format, the LaTeX-specific +%% % commands below that must be altered are \documentclass, +%% % \begin{document}, \end{document}, \makeatletter, \makeatother, +%% % \@for, \@setfontsize, \encodingdefault, \pagestyle, \normalfont, +%% % \rmfamily, \sffamily, \ttfamily, \mdseries, \bfseries, \upshape, +%% % \itshape, \scshape, and \slshape. +%% +%% \def\encodingdefault{T1} % New "Cork" font encoding (dc fonts). +%% \def\encodingdefault{OT1} % Old font encoding (cm fonts). +%% +%% \documentclass{article} +%% \begin{document} +%% +%% % This line can be replaced (by, e.g., sed) to contain a mode name. +%% +%% ::Mode:: +%% +%% \def\makesize#1#2#3{ +%% \expandafter\def\csname ptsize#1\endcsname{#2} +%% \expandafter\def\csname blsize#1\endcsname{#3} +%% } +%% +%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% % DEFINE HERE THE POINT SIZES with baselineskips you would like to test. % +%% % With the defaults of 5, 10, and 14 point sizes, everything will fit on % +%% % one page very easily. Twocolumn would allow several more sizes. % +%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% +%% \makesize {A}{5}{6} +%% \makesize {B}{10}{12} +%% \makesize {C}{14}{18} +%% +%% \def\sizelist{A,B,C} +%% +%% \def\letters{% +%% MoOzZffii-a\"egsS [/$\backslash$\par +%% } +%% +%% \makeatletter +%% \let\setfontsize\@setfontsize +%% \let\for\@for +%% \parindent\z@ +%% \makeatother +%% +%% \pagestyle{empty} +%% +%% \def\showfonts{% +%% % +%% % The groups prevent warnings when intermediate fonts are not available. +%% % +%% {\rmfamily \mdseries \upshape \letters} % allow no space before this +%% {\rmfamily \mdseries \slshape \letters} +%% {\rmfamily \mdseries \itshape \letters} +%% {\rmfamily \mdseries \scshape \letters} +%% +%% {\rmfamily \bfseries \upshape \letters} +%% {\rmfamily \bfseries \slshape \letters} +%% {\rmfamily \bfseries \itshape \letters} +%% +%% {\sffamily \mdseries \upshape \letters} +%% {\sffamily \mdseries \slshape \letters} +%% +%% {\sffamily \bfseries \upshape \letters} +%% +%% {\ttfamily \mdseries \upshape \letters} +%% {\ttfamily \mdseries \slshape \letters} +%% {\ttfamily \mdseries \itshape \letters} +%% {\ttfamily \mdseries \scshape \letters} +%% } +%% +%% % The \expandafters expand \sizelist. +%% % +%% \expandafter \for +%% \expandafter \sizename +%% \expandafter :% +%% \expandafter =% +%% \sizelist +%% \do {\setfontsize {\sizename} +%% {\csname ptsize\sizename\endcsname} +%% {\csname blsize\sizename\endcsname}% +%% \vskip 1ex\noindent +%% \llap{\normalfont\csname ptsize\sizename \endcsname\,pt\quad}% +%% \showfonts} +%% +%% \end{document} +%% % end of modetest.tex +%%?endgroup\par +%%%% +%%%% Not that anyone would recognize this as the end of the docstring... +%%\begingroup \tt \catcode`\{=12 \catcode`\}=12 \obeyspaces +%" +% } +%%\endgroup + +% Don't let ourselves be processed twice. +if known modes_mf: endinput; fi; +modes_mf := 4.0; + +% Identify ourselves in the format file. +base_version := base_version & "/modes 4.0"; + +% Here are useful macros (also called definitions) we use throughout. + +% First, some comments about how the |mode_defs| are constructed (from +% {\tt rocky@panix.com}). In the past, |mode_defs| unconditionally +% assigned a value to the various mode-dependent parameters. +% For example, they contained an assignment |fontmaking:=1|, which +% tells \MF\ to write a TFM file. +% +% But suppose you want to generate a font using all of the setup for +% some mode |m|, but do not want to generate a TFM? One could create +% another mode that doesn't have the assignment, but this seems a bit +% wasteful since the rest of the code in the mode would be duplicated. +% Furthermore, given the way the mode definitions were written, it was +% not possible to change the mode parameters. To see why, I review how +% a \MF\ run typically works. +% +% First, \MF\ is invoked with some base file to load. Then you might +% want give additional instructions, such as |scrollmode|, or |mode:=cx|. +% Next, you input a parameter file, say {\tt cmr10}. The parameter file +% calls a driver file such as {\tt roman.mf} with the command +% |generate roman |. Finally, the driver finishes with |bye| or |end|. +% Thus, any additional commands you give after the input of the +% parameter file are ignored. +% +% Usually, one of the first things a driver file does is to call +% |mode_setup|. It is here that the mode parameters are set. (In our +% hypothetical mode, it would be here that |fontmaking| is assigned.) +% +% To allow a flexible setting of |fontmaking|, we can make a simple +% change: in the |mode_def|, first test to see if a value has been +% defined prior and only make the assignment if not. That is: +% |if unknown fontmaking: fontmaking := 1; fi|. +% +% Alas, this doesn't work. Primitives, like |fontmaking|, are always +% |known|. So instead we create ``guard'' variables, specifically, +% |mode_guard_.fontmaking|; we set the guard when we assign the +% parameter. Then we test whether the guard is |known| before we +% actually do an assignment. This allows more flexible definitions: you +% can specify some of the parameters, and keep the defaults for others. +% +% It is also possible to write a program that creates a |mode_def| +% on the fly. Although useful, this has a slightly different focus +% than starting with an existing |mode_def| and changing a couple +% of parameters. In particular, one still has to peek inside the +% file to see what the old values were and set them again (in the +% new context). Also, such on-the-fly |mode_def| generation programs +% are inherently less machine-independent than a scheme that does +% everything in \MF\ itself. +% +% The upshot of all this is the following: we say, e.g., +% |mode_param (fontmaking, 1)| below, instead of using the assignment +% primitive directly. The name (``|mode_param|'') is kept somewhat +% short because you can also use this to override a mode assignment +% on the command line or in response to the {\tt **} prompt. + +def mode_param (suffix v) (expr e) = + if unknown mode_guard_.v: + v := e; + mode_guard_.v := 1; + fi +enddef; + +% This macro is invoked by all the modes, after |pixels_per_inch| +% has been defined, thus saving some space and time. +def mode_common_setup_ = + mode_param (proofing, 0); + mode_param (fontmaking, 1); + mode_param (tracingtitles, if pixels_per_inch > 1200: 1 else: 0 fi); +enddef; + + +% In a similar spirit, here are definitions to change to ``landscape'' +% mode. You just say {\tt mode := whatever; landscape; ...}, +% and when |mode_setup| is executed, the |aspect_ratio| will be +% inverted, and |pixels_per_inch| changed. +def landscape = + extra_setup := extra_setup & "landscape_;" +enddef; + +def landscape_ = + begingroup + interim warningcheck := 0; + pixels_per_inch := aspect_ratio * pixels_per_inch; + aspect_ratio := 1 / aspect_ratio; + fix_units; % Too bad we can't do this after any |extra_setup|. + endgroup +enddef; + + +% Here are macros to add specials with mode information to the GF file. +% +% Specifically, we add the |pixels_per_inch|, |o_correction|, +% |aspect_ratio| (if not 1), |mag|, |fillin|, and |mode_def| name. This +% information can be used to automatically verify that a font file name +% matches the specification within the file. For example, you could +% check that the number in the filename matches |mag*pixels_per_inch|. +% Or, if the |mode_def| name is part of the font directory path +% (e.g., you put fonts in {\tt .../texmf/fonts/pk/cx}), that all of the +% bitmap files in the directory have the expected |mode_def| name. +def mode_special_ (suffix $) = + string s, d; + s := str $; + d := decimal scantokens s; + special s & "=" & d; +enddef; + +def mode_output_specials_ = + begingroup + save d, s, p, p_p_i; + string p; + + interim warningcheck := 0; % In case |pixels_per_inch>4096|. + + % We need the old |pixels_per_inch| to compute + % the true device resolution. + p_p_i = pixels_per_inch / mag; + + % But now we want to change |pixels_per_inch|, + % so |save| the old value. + save pixels_per_inch; + pixels_per_inch := p_p_i; + + special "jobname=" & jobname; + mode_special_ (mag); + + p := if string mode: + mode + else: + substring (0, length (mode_name[mode]) - 1) of mode_name[mode] + fi; + special "mode=" & p; + + mode_special_ (pixels_per_inch); + if aspect_ratio <> 1: + mode_special_ (aspect_ratio); + fi; + mode_special_ (blacker); + mode_special_ (fillin); + mode_special_ (o_correction); + endgroup +enddef; + + +% Here are macros for Xerox-world font info, which can be useful even +% if you never use a Xerox printer. For instance, {\tt crudetype} uses +% the |coding_scheme| and it is nice to have the font family on record. +% This goes into both the TFM file (as |headerbyte| information), and +% into the GF file (as a |special|). + +% Make the string |s| be |n| bytes long. +def BCPL_string (expr s, n) = + 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; + +% The string |s| names the encoding scheme, e.g., {\tt TeX text}. +def coding_scheme expr s = + headerbyte 9: BCPL_string (s, 40); + special "codingscheme=" & s +enddef; + +% The string |s| names the font family, e.g., {\tt CMR}. +def font_family expr s = + headerbyte 49: BCPL_string (s, 20); + special "fontid=" & s +enddef; + +% The integer |x| gives the family member number, which should be +% between 0 and 255. +def font_face_byte expr x = + headerbyte 72: x; + special "fontfacebyte"; + numspecial x +enddef; + +% So users can say |if known Xerox_world: ... fi|, per {\sl The \MF book}. +Xerox_world := 1; + +% For users who want extra information in the output file. +% This used to be done automatically by redefining end, but DEK reported +% that as a serious bug on 19 February 2008 to tex-implementors. +% +def mode_extra_info = + if fontmaking > 0: + font_family font_identifier_; + coding_scheme font_coding_scheme_; + font_face_byte max (0, 254 - round 2designsize); + mode_output_specials_; + fi; +enddef; + +% This macro |mode_include_extra_info| will insert the above extra +% information, most importantly the |coding_scheme|, upon |end|. +% This is called from the {\tt mktextfm} and {\tt mktexpk} scripts if +% the environment variable {\tt MF\_MODE\_EXTRA\_INFO} is set; the {\tt +% mftrace} program ({\tt https://ctan.org/pkg/mftrace}) can use this. +% +% We need to redefine |end| in the macro to output the information, so +% save the primitive meaning. And we must make both |end| and |bye| +% |inner| tokens, so we can define them in the macro. +% +let original_end_ = end; +inner end, bye; +% +def mode_include_extra_info = + def end = + mode_extra_info; + original_end_; + enddef; + + % {\sl The \MF book} gives |bye| two different definitions (on pages\] + % 278 and 321). The first is used in {\tt plain.mf} and is merely\] + % a synoynym for the primitive |end|. The second, which is not part\] + % of {\tt plain.mf}, is similar to the code given above. We want the\] + % extra information to get into the output files regardless of whether\] + % the \MF\ source used |end| or |bye|. We just changed |end|;\] + % now we have to redefine |bye| again (as on page 278).\] + let bye = end; +enddef; + +% Now make |end| and |bye| |outer| again; it seems |let| does not +% restore this attribute. +% +outer end, bye; + +% Here are macros to handle write-white devices. +% +% The basic correction for write-white fonts occurs in the definition +% of |font_setup|. This can be used to extend or change the write-black +% definition in Computer Modern's {\tt cmbase.mf} or other base files +% based on CM, such as {\tt dxbase.mf}. This has no effect at 1200$\,$dpi. +def mode_write_white_setup_ = + newinternal blacker_min; + def define_whole_blacker_pixels(text t) = + forsuffixes $=t: $:=hround($.#*hppp+blacker); + if $ <=blacker_min-1: $:=blacker_min; fi endfor enddef; + + def define_whole_vertical_blacker_pixels(text t) = + forsuffixes $=t: $:=vround($.#*hppp+blacker); + if $ <=blacker_min-1: $:=blacker_min _o_; fi endfor enddef; + + % Only do the above once, in case a font file (unnecessarily) + % calls |mode_setup| more than once. + let mode_write_white_setup_ = relax +enddef; + + +%%%% Continue to print block comments ragged right, but also check +%%%% if comments start with \[ indicating lines to be set flush right. +%% +%%\def\9{$\futurelet\next\doit} +%%\let\[=\relax +%%\def\doit{\ifx\next\[% +%% \def\next{\hfill{\rm\%}}\else\def\next{{\rm\%}}\fi\next} +%%%% +%%\vfill\eject +% Here are the modes, given mostly in alphabetical order. + +% From {\tt J.Hicks@warwick.ac.uk}. +mode_def agfafzz = %\[ AGFA 400PS (406dpi) + mode_param (pixels_per_inch, 406); + mode_param (blacker, .2); + mode_param (fillin, 0); + mode_param (o_correction, .6); + mode_common_setup_; +enddef; +AgfaFourZeroZero := agfafzz; + +% From {\tt picheral@univ-rennes1.fr}. +mode_def agfatfzz = %\[ AGFA P3400PS (400dpi) + mode_param (pixels_per_inch, 400); + cx_; +enddef; +AgfaThreeFourZeroZero := agfatfzz; + +% From {\tt rokicki@neon.stanford.edu}. +mode_def amiga = %\[ Commodore Amiga (100dpi) + mode_param (pixels_per_inch, 100); + mode_param (blacker, 0); + mode_param (fillin, 0); + mode_param (o_correction, .2); + mode_common_setup_; +enddef; +onezz := amiga; +OneZeroZero := amiga; + +mode_def aps = %\[ Autologic APS-Micro5 (723dpi) + mode_param (pixels_per_inch, 722.909); + mode_param (blacker, .2); + mode_param (fillin, .2); + mode_param (o_correction, 1); + mode_common_setup_; +enddef; + +% From {\tt rocky@panix.com}. Tested on the single APS-6 at IBM Research. +mode_def apssixhi = %\[ Autologic APS-Micro6 (1016dpi) + mode_param (pixels_per_inch, 1016); + mode_param (blacker, 0); + mode_param (fillin, 0); + mode_param (o_correction, 1); + mode_common_setup_; +enddef; + +% From {\tt ee@dacth51.bitnet}. +mode_def atariezf = %\[ Atari ST SLM 804 printer (300dpi) + mode_param (pixels_per_inch, 300); + mode_param (blacker, 0); + mode_param (fillin, .5); + mode_param (o_correction, 0); + mode_param (blacker_min, 2); + mode_common_setup_; + mode_write_white_setup_; +enddef; +AtariSLMEightZeroFour := atariezf; + +% From {\tt W.Spit@fys.ruu.nl}. {\tt N.Poppelier@elsevier.nl} says that +% different previewers use different resolutions (95$\,$dpi, 96$\,$dpi, +% or 101$\,$dpi), but no one seems to know what the real resolution is. +mode_def atarinf = %\[ Atari previewer (95dpi) + mode_param (pixels_per_inch, 95); + mode_param (blacker, 0); + mode_param (fillin, 0); + mode_param (o_correction, 0.1); + mode_common_setup_; +enddef; +AtariNineFive := atarinf; + +mode_def atarins = %\[ Atari previewer (96dpi) + mode_param (pixels_per_inch, 96); + mode_param (blacker, 0); + mode_param (fillin, 0); + mode_param (o_correction, 0.1); + mode_common_setup_; +enddef; +AtariNineSix := atarins; + +% From {\tt ee@dacth51.bitnet}. +mode_def atariotf = %\[ Atari ST SM 124 screen (101dpi) + mode_param (pixels_per_inch, 101); + mode_param (blacker, 0); + mode_param (fillin, 0); + mode_param (o_correction, .4); + mode_common_setup_; +enddef; +AtariSMOneTwoFour := atariotf; + +mode_def bitgraph = %\[ BBN Bitgraph (118dpi) + mode_param (pixels_per_inch, 118); + mode_param (blacker, .55); + mode_param (fillin, .1); + mode_param (o_correction, .3); + mode_common_setup_; +enddef; + +% From {\tt sjwright@cix.compulink.co.uk}, 9 February 1994. +mode_def bjtenex = %\[ Canon BubbleJet 10ex (360dpi) + mode_param (pixels_per_inch, 360); + mode_param (blacker, .6); + mode_param (fillin, 0); + mode_param (o_correction, .6); + mode_common_setup_; +enddef; + +% {\tt cgweav@eskimo.com} (Clayton Weaver), 4 February 1997. +% Might want to recheck |o_correction|, which could vary per unit. +mode_def bjtzzex = %\[ Canon BubbleJet 200ex (360 dpi) + mode_param (pixels_per_inch, 360); + mode_param (blacker, 1.2); + mode_param (fillin, .2); + mode_param (o_correction, 0); + mode_common_setup_; +enddef; + +% {\tt Alastair.Jenkins@nrsc.no}, 30 January 1997. +mode_def bjtzzs = %\[ Canon BubbleJet 200 (720x360dpi) + mode_param (pixels_per_inch, 720); + mode_param (aspect_ratio , 0.5); + mode_param (blacker, 0.0); + mode_param (fillin, 0); + mode_param (o_correction, 1.0); + mode_common_setup_; +enddef; + +% {\tt Alastair.Jenkins@nrsc.no}, 30 January 1997. +mode_def bjtzzl = %\[ BubbleJet 200 landscape (360x720 dpi) + bjtzzs_; + landscape; +enddef; + +mode_def boise = %\[ HP 2680A (180dpi) + mode_param (pixels_per_inch, 180); + mode_param (blacker, .55); + mode_param (fillin, .1); + mode_param (o_correction, .3); + mode_common_setup_; +enddef; + +% From {\tt Yves.Arrouye@imag.fr}. +mode_def canonbjc = %\[ Canon BJC-600 (360dpi) + mode_param (pixels_per_inch, 360); + mode_param (blacker, 0); + mode_param (fillin, 0); + mode_param (o_correction, .8); + mode_common_setup_; +enddef; +CanonBJCSixZeroZero := canonbjc; + +% From {\tt swartz@cs.wisc.edu}, 8 April 1993. The straightforward +% mode with |blacker=0|, |fillin=0|, |o_correction=1| seems to +% work fine for the Canon EX engine inside Apple's LaserWriter Pro 630. +% It produces light, clear lines and type. But {\tt ajcarr@ccvax.ucd.ie} +% sent in the revised values below on 12 December 1993, tested on +% the major CM fonts at 5, 7, and 10$\,$pt and producing slightly +% better results. +mode_def canonex = %\[ LaserWriter Pro 630 (600dpi) + mode_param (pixels_per_inch, 600); + mode_param (blacker, .2); + mode_param (fillin, .1); + mode_param (o_correction, .85); + mode_common_setup_; +enddef; +CanonEX := canonex; + +mode_def canonlbp = %\[ Symbolics LGP-10 (240dpi) + mode_param (pixels_per_inch, 240); + mode_param (blacker, .2); + mode_param (fillin, .2); + mode_param (o_correction, .4); + mode_common_setup_; +enddef; +CanonLBPTen := canonlbp; + +% This is really 1301.5; MF produces 1301, so use that. +mode_def cg = %\[ Compugraphic 8600 (1301x1569dpi) + mode_param (pixels_per_inch, 1301); + mode_param (aspect_ratio, 1569 / pixels_per_inch); + mode_param (blacker, .2); + mode_param (fillin, .2); + mode_param (o_correction, 1); + mode_common_setup_; +enddef; +CompugraphicEightSixZeroZero := cg; + +mode_def cgl = %\[ Compugraphic 8600 landscape (1569x1302dpi) + cg_; + landscape; +enddef; + +% These values from Linotype Linotronic [13]00 modified to 1200$\,$dpi. +% From {\tt wagman\%muse.hepnet@Csa2.LBL.Gov}. +mode_def cgnszz = %\[ Compugraphic 9600 (1200dpi) + mode_param (pixels_per_inch, 1200); + mode_param (blacker, .65); + mode_param (fillin, -.1); + mode_param (o_correction, .5); + mode_common_setup_; +enddef; +CompugraphicNineSixZeroZero := cgnszz; + +% This has a resolution of |5333 + 1/3| pixels per inch. +mode_def crs = %\[ Alphatype CRS (5333dpi) + mode_param (pixels_per_inch, 4000 + 4000/3); + mode_param (blacker, 4); + mode_param (fillin, 0); + mode_param (o_correction, 1); + mode_common_setup_; +enddef; + +% This applies to the LaserWriter Plus, HP LaserJet, HP LaserJet Plus, +% and also the Canon LBP-LX engine, in the LaserJet IIP, QMS 410, +% and Apple Personal LaserWriter, and also to the CanonSX engine, +% in the LaserWriter II family. And {\tt hammond@jila02.Colorado.EDU} +% says it works well for the ``enhanced-resolution'' LaserJet III. +% {\tt swartz@cs.wisc.edu} is developing a mode for the Canon EX engine +% inside an Apple Pro 630 printer. +mode_def cx = %\[ Canon CX, SX, LBP-LX (300dpi) + mode_param (pixels_per_inch, 300); + mode_param (blacker, 0); + mode_param (fillin, .2); + mode_param (o_correction, .6); + mode_common_setup_; +enddef; +CanonCX := cx; +corona := cx; +dp := cx; % some kind of DataProducts +hplaser := cx; +imagen := cx; +kyocera := cx; +laserwriter := cx; +% I have seen a claim the LaserJet II was the Canon SX +% write-white engine, but I don't think that's right. +laserjethi := cx; +laserjet := cx; +% {\tt ogawa@orion.arc.nasa.gov} says that this is definitely not a +% write-white engine, despite earlier versions of this file claiming +% the contrary. Thus, probably the same parameters as |cx| will do. +CanonSX := cx; +CanonLBPLX := cx; + +% At least magstep 2 is recommended at this low resolution. +mode_def datadisc = %\[ DataDisc (70dpi) + mode_param (pixels_per_inch, 70); + mode_param (blacker, 0); + mode_param (fillin, 0); + mode_param (o_correction, .2); + mode_common_setup_; +enddef; +DD := datadisc; + +mode_def newdd = %\[ DataDisc (70x93dpi) + mode_param (aspect_ratio, 4/3); + datadisc_; +enddef; +DataDiscNew := newdd; + +mode_def newddl = %\[ DataDisc landscape (93x70dpi) + newdd_; + landscape; +enddef; + +% From {\tt mcgrant@rascals.stanford.edu}. True resolution is 98.2236 +% by 102.4. See comments for |DECsmall| just above. +mode_def declarge = %\[ DEC 19-inch, 1280 x 1024 (100dpi) + mode_param (pixels_per_inch, 100); + mode_param (blacker, 0); + mode_param (fillin, 0); + mode_param (o_correction, 0); + mode_common_setup_; +enddef; +DEClarge := declarge; +elvira := declarge; + +% From {\tt mcgrant@rascals.stanford.edu}. True resolution is 78.1069 +% by 86.0612, but a square aspect ratio works better; furthermore, +% Computer Modern isn't prepared to deal with fractional pixel values. +mode_def decsmall = %\[ DEC 17-inch, 1024 x 768 (82dpi) + mode_param (pixels_per_inch, 82); + mode_param (blacker, 0); + mode_param (fillin, 0); + mode_param (o_correction, 0); + mode_common_setup_; +enddef; +DECsmall := decsmall; + +% From {\tt fieberjr@whitman.bitnet}. +mode_def deskjet = %\[ HP DeskJet 500 (300dpi) + mode_param (pixels_per_inch, 300); + mode_param (blacker, 0); + mode_param (fillin, 0); + mode_param (o_correction, .6); + mode_common_setup_; +enddef; +HPDeskJet := deskjet; + +% From {\tt stsmith@ll.mit.edu}, 10 May 93. +% With |fillin=0|, the diagonal of {\tt cmtt10}'s `z' is too thin. +% |blacker=.8| too thin, 2 too thick. +mode_def docutech = %\[ Xerox 8790 or 4045 (600dpi) + mode_param (pixels_per_inch, 600); + mode_param (blacker, 1); + mode_param (fillin, .1); + mode_param (o_correction, 0.9); + mode_common_setup_; +enddef; +XeroxDocutech := docutech; + +% From {\tt waits.mf}. +mode_def dover = %\[ Xerox Dover (384dpi) + mode_param (pixels_per_inch, 384); + mode_param (blacker, 1.2); + mode_param (fillin, 0); + mode_param (o_correction, .6); + mode_common_setup_; +enddef; + +% Reported by Silas Brown, 4 April 2003, via Debian bug 184875. +% {\tt dvips -Ppdf} wants 8000$\,$dpi fonts, so define a mode for that. +mode_def dpdfezzz = %\[ dvips -Ppdf (8000dpi) + mode_param (pixels_per_inch, 4000 * 2); + mode_param (blacker, 0); + mode_param (fillin, 0); + mode_param (o_correction, 1); + mode_common_setup_; +enddef; + +% {\tt ghibo@galileo.polito.it}, for the Amiga ShowDVI previewer. +mode_def eighthre = %\[ EightThree (83dpi) + mode_param (pixels_per_inch, 83); + mode_param (blacker, 0); + mode_param (fillin, 0); + mode_param (o_correction, .2); + mode_common_setup_; +enddef; +EightThree := eighthre; + +% {\tt arno.wagner@acm.org}, 25 November 1997. To print in 360dpi (much +% faster, but lower quality) use the |epstylus| mode instead. This +% printer seems to make smaller dots when printing at 720$\,$dpi and +% larger ones when printing at 360$\,$dpi. I tried 720x1440 resolution +% as well, but found it not worth the additional time. If you use +% Ghostscript, you need at least version 5.03 to support 720$\,$dpi on +% this printer. This mode may work with the Epson Stylus color 800 as +% well. I tested this mode with Matt Swift's test, found above. +% With |fillin| set to zero, the test had no `\' at 5$\,$pt. +% +mode_def epscszz = %\[ Epson Stylus Color 600 (720 dpi) + mode_param (pixels_per_inch, 720); + mode_param (blacker, .25); + mode_param (fillin, 0.5); + mode_param (o_correction, .8); + mode_common_setup_; +enddef; + +% From {\tt metcalf@catfish.LCS.MIT.EDU}, 5 Dec 1992. +mode_def epsdrft = %\[ Epson (120x72dpi) + mode_param (pixels_per_inch, 120); + mode_param (aspect_ratio, 72 / pixels_per_inch); + epson_; +enddef; +epsdraft := epsdrft; + +mode_def epsdrftl = %\[ Epson (72x120dpi) + epsdrft_; + landscape; +enddef; + +% From {\tt metcalf@catfish.LCS.MIT.EDU}, 5 Dec 1992. +mode_def epsfast = %\[ Epson fast (60x72dpi) + mode_param (pixels_per_inch, 60); + mode_param (aspect_ratio, 72 / pixels_per_inch); + epson_; +enddef; + +mode_def epsfastl = %\[ Epson fast landscape (72x60dpi) + epsfast_; + landscape; +enddef; + +% From Hippocrates Sendoukas {\tt }, 17 April 1999. +mode_def epsmed = %\[ Epson med MX/FX 9-pin (240x144dpi) + mode_param (pixels_per_inch, 240); + mode_param (aspect_ratio, 144 / pixels_per_inch); + epson_; +enddef; + +mode_def epsmedl = %\[ Epson med MX/FX 9-pin landscape (144x240dpi) + epsmed_; + landscape; +enddef; + +% These values from Charles Karney, {\sl TUGboat} 8(2), page 133. This +% is for the Epson MX/FX family (-85, -286), which are 9-pin printers. +% The 24-pin LQ family have higher resolutions; no one has sent me +% definitions for them yet. Ditto for Epson's laser printer. +% (Thanks to {\tt cargo@escargot.cray.com} for all this information.) +mode_def epson = %\[ Epson MX/FX 9-pin (240x216dpi) + mode_param (pixels_per_inch, 240); + mode_param (aspect_ratio, 216 / pixels_per_inch); + mode_param (blacker, 0); + mode_param (fillin, 0); + mode_param (o_correction, .2); + mode_common_setup_; +enddef; +EpsonMXFX := epson; +epshi := epson; +epsonfx := epson; + +mode_def epsonl = %\[ Epson MX/FX 9-pin landscape (216x240dpi) + epson_; + landscape; +enddef; + +% From {\tt sdh@po.cwru.edu}, 6 September 93. +% The modes |cx| and |HPLaserJetIIISi| are too spindly. +% This works (not awesome, o's and e's are slightly taller than +% they should be in large pt. fonts) on my Epson Action Laser 1500 +% with LaserJetIIIsi emulation and RITech (Epson's Resolution +% Enhancement). It might work for the model 1000 or some HP's. +mode_def epsonact = %\[ Epson Action Laser 1500 (300dpi) + mode_param (pixels_per_inch, 300); + mode_param (blacker, .8); + mode_param (fillin, 0); + mode_param (o_correction, 0.95); + mode_common_setup_; +enddef; +EpsonAction := epsonact; + +% Corrected to 216$\,$dpi vertically, 5 Dec 1992. +% From {\tt metcalf@catfish.LCS.MIT.EDU}. +mode_def epsonlo = %\[ Epson (120x216dpi) + mode_param (pixels_per_inch, 120); + mode_param (aspect_ratio, 216 / pixels_per_inch); + epson_; +enddef; +epslo := epsonlo; + +mode_def epsonlol = %\[ Epson landscape (216x120dpi) + epsonlo_; + landscape; +enddef; + +% From {\tt Sebastian\_Kirsch@kl.maus.de}, 19 April 1996. In comparison +% to some postscript fonts, the characters seemed to light with blacker +% 0, but much too heavy with a blacker greater than 1. I tried blacker +% .6 and finally settled for .7. All the other values are rather +% fictional, I didn't really test them out. +mode_def epsonsq = %\[ Epson SQ 870 (360dpi) + mode_param (proofing, 0) + mode_param (pixels_per_inch, 360); + mode_param (blacker, .7); + mode_param (fillin, .2); + mode_param (o_correction, .9); + mode_common_setup_; +enddef; +EpsonSQEightSevenZero := epsonsq; + +% Following three modes from {\tt marc@mpi.nl} (Marc Fleischeuers). +% I could not quite get the `z' diagonal to get as thin as the +% horizontal lines, even pushing |fillin| up to 0.8. This printer tends +% to make things lighter on lower resolutions so I compensate a little +% with increasing |blacker|. But not all the way, as this would fill in +% the little holes in the `e' and `s' at 5$\,$pt. Otherwise it's pretty +% cool, not as crisp as an |ljfour| but better than most inkjets I've seen. +mode_def epstypro = %\[ Epson Stylus Pro (360dpi) + mode_param (pixels_per_inch, 360); + mode_param (blacker, 0.2); + mode_param (fillin, 0.8); + mode_param (o_correction, 0); + mode_common_setup_; +enddef; +EpsonStylusPro := epstypro; + +mode_def epstyplo = %\[ Epson Stylus Pro (180dpi) + mode_param (pixels_per_inch, 180); + mode_param (blacker, .35); + mode_param (fillin, 0.8); + mode_param (o_correction, 0); + mode_common_setup_; +enddef; +EpsonStylusProLow := epstyplo; + +% Good time saver, almost as good as 720x720 but a lot faster. +mode_def epstypmd = %\[ Epson Stylus Pro (720x360dpi) + mode_param (pixels_per_inch, 720); + mode_param (aspect_ratio, 360 / pixels_per_inch); + mode_param (blacker, 0); + mode_param (fillin, 0.8); + mode_param (o_correction, 0); + mode_common_setup_; +enddef; +EpsonStylusProMed := epstypmd; + +mode_def epstypml = %\[ Epson Stylus Pro landscape (360x720dpi) + epstypmd_; + landscape; +enddef; +epstypmdl := epstypml; + +mode_def epswlo = %\[ Epson low MX/FX 9-pin (120x144dpi) + mode_param (pixels_per_inch, 120); + mode_param (aspect_ratio, 144 / pixels_per_inch); + epson_; +enddef; + +mode_def epswlol = %\[ Epson low MX/FX 9-pin landscape (144x120dpi) + epswlo_; + landscape; +enddef; + +mode_def esphi = %\[ Epson Stylus Pro (720dpi) + mode_param (pixels_per_inch, 720); + mode_param (blacker, 0); + mode_param (fillin, 0.8); + mode_param (o_correction, 1); + mode_common_setup_; +enddef; +EpsonStylusProHigh := esphi; + +% From {\tt Tobias.Guenzler@uni-konstanz.de}, 8 December 1994. +% +% The |blacker| parameter is the most critical; changing |o_correction| +% has lesser effect, and may also be increased or decreased somewhat. +% I tested this by comparing output with printouts of a HP LaserJet +% printer using the LJ fonts. This printer had the fancy resolution +% enhancement feature (RET) which makes the pixel steps almost +% invisible. I did most of the comparison with {\tt cmr12}, {\tt cmbx12}, +% {\tt cmr12} magstep2 and {\tt cmss9}. +% +% The Stylus printer is a ink printer, but it works with a piezo drive +% instead of a bubble jet. This may be the reason why it draws its lines +% very tiny and thin. At least the pixel diameters are very sharp and +% they are far away from that bulky dots produced by the needles of +% a NEC P6. +mode_def epstylus = %\[ Epson Stylus (360dpi) + mode_param (pixels_per_inch, 360); + mode_param (blacker, .35); + mode_param (fillin, 0); + mode_param (o_correction, .8); + mode_common_setup_; +enddef; + +% {\tt ghibo@galileo.polito.it}, for the Amiga ShowDVI previewer. +mode_def fourfour = %\[ FourFour (44dpi) + mode_param (pixels_per_inch, 44); + mode_param (blacker, 0.05); + mode_param (fillin, .1); + mode_param (o_correction, .2); + mode_common_setup_; +enddef; +FourFour := fourfour; + +% From {\tt drstrip@intvax.uucp}. +% Revised by {\tt dak@pool.informatik.rwth-aachen.de}, 24 May 1994. +mode_def gtfax = %\[ G3fax (204x196dpi) + mode_param (pixels_per_inch, 204); + mode_param (aspect_ratio, 196 / pixels_per_inch); + mode_param (blacker, 0); + mode_param (fillin, .2); + mode_param (o_correction, .2); + mode_common_setup_; +enddef; +GThreefax := gtfax; +gtfaxhi := GThreefax; + +mode_def gtfaxl = %\[ G3fax landscape (196x204dpi) + gtfax_; + landscape; +enddef; + +% From {\tt dak@pool.informatik.rwth-aachen.de}, 24 May 1994. +mode_def gtfaxlo = %\[ G3fax (204x98dpi) + mode_param (pixels_per_inch, 204); + mode_param (aspect_ratio, 98 / pixels_per_inch); + gtfax_; +enddef; + +mode_def gtfaxlol = %\[ G3fax landscape (98x204dpi) + gtfaxlo_; + landscape; +enddef; + +% {\tt ron@mlfarm.com}, 30 October 1995. +mode_def highfax = %\[ G3fax (200dpi) + mode_param (pixels_per_inch, 200); + mode_param (blacker, 0); + mode_param (fillin, .2); + mode_param (o_correction, .2); + mode_common_setup_; +enddef; +hifax := highfax; + +% {\tt brumski+@osu.edu}, 27 August 1993. +mode_def hprugged = %\[ HP RuggedWriter 480 (180dpi) + mode_param (pixels_per_inch, 180); + mode_param (blacker, .55); + mode_param (fillin, .1); + mode_param (o_correction, .3); + mode_common_setup_; +enddef; + +% Some general comments on the IBM printers, courtesy of {\tt rocky@panix.com}. +% +% IBM 3820's, 3825's, 3827's and 3835's have some sort of corner imaging +% or shading that the IBM 3812's and 3816's don't. The latter two models +% may get this feature in the future. +% +% The IBM 3827 is made by Kodak, the rest are IBM engines. +% +% Some of the other printers have a knob that allows a service engineer +% to set one of up to ten levels of darkness. At IBM Research, we run +% very black. The service engineer sets the level by running a completely +% black page and then two completely blank ones. The black page +% must be black and the following two must be completely white. +% +% Thanks to Jim Hafner ({\tt hafner@ibm.com}) for experimenting with +% |blacker|, and Paul Dantzig for information about these printers. +% +% From {\tt ARNALDO@RIOSC.bitnet}. This is for the 3820, but can be used +% for 3812, 3816, 3825, 3837 3800 and 3827 printers (these are all +% 240$\,$pels IBM printers that use the same font format when driven +% by PSF/VM). +mode_def ibm_a = %\[ IBM 38xx (240dpi) + mode_param (pixels_per_inch, 240); + mode_param (blacker, .35); + mode_param (fillin, -.2); + mode_param (o_correction, .2); + mode_common_setup_; +enddef; + +% From {\tt rocky@panix.com}. For the typewriter, slanted, and italic +% fonts, |blacker=0| makes the `M's and `W's more legible. But then +% the weight of the font does not match the others. +mode_def ibmd = %\[ IBM 38xx (240dpi) + mode_param (pixels_per_inch, 240); + mode_param (blacker, .3); + mode_param (fillin, .4); + mode_param (o_correction, .75); + mode_common_setup_; +enddef; + +% These values from {\tt melvin@math.psu.edu}. +mode_def ibmega = %\[ IBM EGA monitor (96x81dpi) + mode_param (pixels_per_inch, 96); + mode_param (aspect_ratio, .841); + mode_param (blacker, .3); + mode_param (fillin, 0); + mode_param (o_correction, 0); + mode_common_setup_; +enddef; + +mode_def ibmegal = %\[ IBM EGA monitor landscape (81x96dpi) + ibmega_; + landscape; +enddef; + +% From {\tt sperber@provence.informatik.uni-tuebingen.de}, 30 October 1993. +% The difference of 0.1 in |blacker| really does make a difference. +mode_def ibmfzon = %\[ IBM 4019 (300dpi) + mode_param (pixels_per_inch, 300); + mode_param (blacker, .1); + mode_param (fillin, 0); + mode_param (o_correction, .75); + mode_param (blacker_min, 2); + mode_common_setup_; + mode_write_white_setup_; +enddef; +IBMFourZeroOneNine := ibmfzon; + +% From {\tt rocky@panix.com}. The print engine is made by Lexmark. The +% printing person I asked, Paul Dantzig, says that the print quality of +% the 4019 is fairly regular. Unlike the IBM 4216's, to his knowledge +% only there is only one print engine by Lexmark has been ever used in +% the 4019. And unlike the IBM 4029, there are not knobs on the inside +% that would permit one to adjust the blacker to ones taste. +% +% While both RicohA and cx modes settings are acceptable, it looks +% to me that the RicohA fonts are superior. I base this judgement on +% tops and bottoms of curves on {\tt cmr10} such as `S', `U' `e' `o' and +% the apostrophes. This effect is especially noticeable in a small font +% like {\tt cmr6}. +% +% If you want to experiment with another setting, I'd start with |RicohA| +% and set |blacker| to .1 or 0 instead of .2 but definitely keep +% |mode_write_white_setup_|; I'd leave |fillin| and |o_correction| unchanged. +% +% From {\tt vumalki\%weizmann.weizmann.ac.il@taunivm.tau.ac.il} +% and {\tt plotkin@theory.stanford.edu}. +% +% {\tt hafner@almaden.ibm.com} (Jim Hafner) reports that this works fine +% for the Lexmark 4039, a.k.a.\ IBM 4039, as along as the ``Printer +% Darkness'' control is set to ``darker''. +% +mode_def ibmfztn = %\[ IBM 4029-30-39, 4250 (600dpi) + mode_param (pixels_per_inch, 600); + mode_param (blacker, .05); + mode_param (fillin, 0); + mode_param (o_correction, .75); + mode_common_setup_; +enddef; +IBMFourZeroTwoNine := ibmfztn; +IBMFourTwoThreeZero := ibmfztn; +IBMFourTwoFiveZero := ibmfztn; +IBMFourZeroThreeNine := ibmfztn; +LexmarkFourZeroThreeNine := ibmfztn; + +% From Rick Simpson via {\tt erikjan@icce.rug.nl}. +mode_def ibmpp = %\[ IBM ProPrinter (240x216dpi) + mode_param (pixels_per_inch, 240); + mode_param (aspect_ratio, 216 / pixels_per_inch); + mode_param (blacker, 0); + mode_param (fillin, .2); + mode_param (o_correction, 1); + mode_common_setup_; +enddef; +IBMProPrinter := ibmpp; +proprinter := IBMProPrinter; + +mode_def ibmppl = %\[ IBM ProPrinter (216x240dpi) + ibmpp_; + landscape; +enddef; + +% From Rick Simpson via {\tt erikjan@icce.rug.nl}. Also gave values +% of zero for |blacker|, |fillin|, and |o_correction|. +mode_def ibmsoff = %\[ IBM 6154 display (118dpi) + mode_param (pixels_per_inch, 118); + mode_param (blacker, .8); + mode_param (fillin, .2); + mode_param (o_correction, 1); + mode_common_setup_; +enddef; +IBMSixOneFiveFour := ibmsoff; + +% From {\tt rocky@panix.com}. This is an old, untested definition. +mode_def sherpa = %\[ IBM 6670 (Sherpa) (240dpi) + mode_param (pixels_per_inch, 240); + mode_param (blacker, 1); + mode_param (blacker_min, 2); + mode_param (fillin, 1); + mode_param (o_correction, .5); + mode_common_setup_; + mode_write_white_setup_; +enddef; +IBMSixSixSevenZero := sherpa; + +% From {\tt vumalki\%weizmann.weizmann.ac.il@taunivm.tau.ac.il}. +mode_def ibmteot = %\[ IBM 3812 (240dpi) + mode_param (pixels_per_inch, 240); + mode_param (blacker, .6); + mode_param (blacker_min, 2); + mode_param (fillin, .4); + mode_param (o_correction, 0); + mode_common_setup_; + mode_write_white_setup_; +enddef; +IBMThreeEightOneTwo := ibmteot; +IBMUlfHolleberg := IBMThreeEightOneTwo; + +% These values from {\tt d\_webb@chcc.harwell.aea-technology.uk}. +mode_def ibmtetz = %\[ IBM 3820 (240dpi) + mode_param (pixels_per_inch, 240); + mode_param (blacker, .78); + mode_param (fillin, .25); + mode_param (o_correction, .5); + mode_common_setup_; +enddef; +IBMThreeEightTwoZero := ibmtetz; + +% From {\tt x92@vm.urz-uni-heidelberg.de} via {\tt schoepf@sc.zib-berlin.de}. +mode_def ibmtont = %\[ IBM 3193 screen (100dpi) + mode_param (pixels_per_inch, 100); + mode_param (blacker, 0); + mode_param (fillin, 0); + mode_param (o_correction, 0); + mode_common_setup_; +enddef; +IBMThreeOneNineThree := ibmtont; + +% From {\tt x92@vm.urz-uni-heidelberg.de} via {\tt schoepf@sc.zib-berlin.de}. +mode_def ibmtosn = %\[ IBM 3179 screen (87x65dpi) + mode_param (pixels_per_inch, 87); + mode_param (aspect_ratio, 0.75); + mode_param (blacker, 0); + mode_param (fillin, 0); + mode_param (o_correction, 0); + mode_common_setup_; +enddef; +IBMThreeOneSevenNine := ibmtosn; + +mode_def ibmtosnl = %\[ IBM 3179 screen landscape (65x87dpi) + ibmtosn_; + landscape; +enddef; + +% These values from {\tt d\_webb@chcc.harwell.aea-technology.uk}. +% {\tt melvin@math.psu.edu} thinks |pixels_per_inch=96| might be better. +mode_def ibmvga = %\[ IBM VGA monitor (110dpi) + mode_param (pixels_per_inch, 110); + mode_param (blacker, .3); + mode_param (fillin, 0); + mode_param (o_correction, 0); + mode_common_setup_; +enddef; + +% The Chelgraph IBX is the machine introduced to North American \TeX\ +% users by Type~2000 in Mill Valley, California; telephone (415)~388-8873. +% Since the machine's stated output resolution is only 2000$\,$dpi +% this truly spectacular 9600$\,$dpi must be used for translation to +% an outline font description. This has been tested and used in a +% publication of the University of Washington Press. These values +% from Pierre MacKay, based on Lance Carnes' crs values, at magstep~1.8. +mode_def ibx = %\[ Chelgraph IBX (9600dpi) + mode_param (pixels_per_inch, 4000 + 4000 + 1600); + mode_param (blacker, 4); + mode_param (fillin, 0); + mode_param (o_correction, 1); + mode_common_setup_; +enddef; +ChelgraphIBX := ibx; + +% From {\tt local.mf} via {\tt cudat@cu.warwick.ac.uk}. +mode_def itoh = %\[ CItoh 8510A (160x144dpi) + mode_param (pixels_per_inch, 160); + mode_param (aspect_ratio, 144 / pixels_per_inch); + mode_param (blacker, 0); + mode_param (fillin, 0); + mode_param (o_correction, .1); + mode_common_setup_; +enddef; +CItohEightFiveOneZero := itoh; + +mode_def itohl = %\[ CItoh 8510A landscape (144x160dpi) + itoh_; + landscape; +enddef; + +% From {\tt rokicki@cs.umb.edu}. +mode_def itohtoz = %\[ CItoh 310 (240x144dpi) + mode_param (pixels_per_inch, 240); + mode_param (aspect_ratio, 144 / pixels_per_inch); + mode_param (blacker, 0); + mode_param (fillin, 0); + mode_param (o_correction, .2); + mode_common_setup_; +enddef; +citohtoz := itohtoz; +CItohThreeOneZero := itohtoz; +cthreeten := itohtoz; + +mode_def itohtozl = %\[ CItoh 310 landscape (144x240dpi) + itohtoz_; + landscape; +enddef; + +% Perhaps the value for |fillin| should be 0. +mode_def iw = %\[ Apple ImageWriter (144dpi) + mode_param (pixels_per_inch, 144); + mode_param (blacker, 0); + mode_param (fillin, 0.3); + mode_param (o_correction, .2); + mode_common_setup_; +enddef; +imagewriter := iw; + +% From {\tt stsmith@ll.mit.edu}, 20 August 93. +% The mode |cx| is too spindly. +mode_def jetiiisi = %\[ HP Laser Jet IIISi (300dpi) + mode_param (pixels_per_inch, 300); + mode_param (blacker, .2); + mode_param (fillin, 0); + mode_param (o_correction, .7); + mode_common_setup_; +enddef; +HPLaserJetIIISi := jetiiisi; + +% From John Sauter. +mode_def lasf = %\[ DEC LA75 (144dpi) + mode_param (pixels_per_inch, 144); + mode_param (blacker, .3); + mode_param (fillin, -.1); + mode_param (o_correction, 0); + mode_common_setup_; +enddef; +LASevenFive := lasf; + +% Michael Covington's ({\tt mcovingt@ai.uga.edu}) definition for the +% Lexmark Optra R (4049), reflecting a taste for a heavier than +% normal rendition of the Computer Modern fonts. +% +% You may prefer a lesser value of blacker (down to maybe 1.0). +% Initially tested on 10, 12, 17-point CMR and 10-point math italic. +% +% While we're talking about the Optra R, here's another useful fact: +% it takes 32-bit-wide 72-pin SIMMs, 70 or 80 ns. Contrary to the +% documentation, you do not have to use IBM's special SIMMs. +% +% The resolution of 1200 and the |blacker| value of 3 causes {\tt cmbsy7} +% to be generated with incorrect arrows and radical sign. The +% |vtftzzlo| mode also fails. Decreasing |blacker| to 2 works around. +% From {\tt infovore@xs4all.nl} (Olaf Weber) and Henrik Schmiediche. +% +mode_def lexmarkr = %\[ Lexmark Optra R 4049 (1200dpi) + mode_param (pixels_per_inch, 1200); + mode_param (blacker, 2); % used to be 3; works around {\tt cmbsy7} bug + mode_param (fillin, 0); + mode_param (o_correction, 1); + mode_common_setup_; +enddef; +LexmarkOptraR := lexmarkr; + +% Klaus Guntermann {\tt }. +% 19 January 1998. Mode for a Lexmark Optra S laser printer in true +% 1200dpi mode. This printer model seems to be the successor of the +% Optra R series above. +% +mode_def lexmarks = %\[ Lexmark Optra S 1250/1650/2450 (1200dpi) + mode_param (pixels_per_inch, 1200); + mode_param (blacker, 1); + mode_param (fillin, 0); + mode_param (o_correction, 1); + mode_common_setup_; +enddef; +LexmarkOptraS := lexmarks; + +% {\tt uri@watson.ibm.com} (Uri Blumenthal), 9 March 1997. +% This is really a 1200$\,$dpi printer, but it can be operated in 600dpi mode. +mode_def lexmarku = %\[ Lexmark Optra R+ 4049 (600dpi) + mode_param (pixels_per_inch, 600); + mode_param (blacker, .5); + mode_param (fillin, 0); + mode_param (o_correction, .75); + mode_param (tracingtitles, 0); + mode_common_setup_; +enddef; + +mode_def linolo = %\[ Linotype Linotronic [13]00 (635dpi) + mode_param (pixels_per_inch, 635); + linoone_; +enddef; +LinotypeOneZeroZeroLo := linolo; +linohalf := LinotypeOneZeroZeroLo; + +% Mode for Linotype Linotronic L-330 with a RIP-50 raster. +% From: Steven T. Smith {\tt stsmith@ll.mit.edu}, 26 October 95. +mode_def linolttz = %\[ Linotronic L-300 with RIP-50 (3386dpi) + mode_param (pixels_per_inch, 3386); + mode_param (blacker, 0); + mode_param (o_correction, 1); + mode_param (fillin, 0); + mode_common_setup_; +enddef; +LinotypeLThreeThreeZero := linolttz; + +% These values from {\tt d\_webb@chcc.harwell.aea-technology.uk}. +% The `a' in {\tt cmr5} looks better with |blacker=.3|. Values of .2 +% for both |blacker| and |fillin| have also been used. +mode_def linoone = %\[ Linotronic [13]00 (1270dpi) + mode_param (pixels_per_inch, 1270); + mode_param (blacker, .65); + mode_param (o_correction, 1); + mode_param (fillin, -.1); + mode_common_setup_; +enddef; +LinotypeOneZeroZero := linoone; +linohi := LinotypeOneZeroZero; +linothreelo := LinotypeOneZeroZero; + +% These values from {\tt d\_webb@chcc.harwell.aea-technology.uk}. +mode_def linotzzh = %\[ Linotype Linotronic 300 (2540dpi) + mode_param (pixels_per_inch, 2540); + mode_param (blacker, .2); % Copied from |aps|---conjectural. + mode_param (fillin, .2); % (ditto) + mode_param (o_correction, 1); % (ditto) + mode_common_setup_; +enddef; +linothree := linotzzh; +LinotypeThreeZeroZeroHi := linotzzh; +linosuper := linotzzh; + +% (From Matt Swift {\tt swift@alum.mit.edu}, 1 Jan 1996.) This is a mode for +% the HP LaserJet 5P, using dvipsk-5.58f and gs-2.6.2. I tuned it using +% the file modetest.tex. The first sweep was (b,f,o) = (0, {0, .3, .6}, +% 0). The diagonal of 10$\,$pt lowercase z was too thin at .6, too thick +% at 0. The second sweep was ({.4, .5, .6, .7}, .3, 0). At .6, the 5$\,$pt +% small-cap lower-case A was on the verge of being filled in, but .6 is +% a reasonable value. Blacker .4 looked a little spindly for many of +% the 5$\,$pt fonts, especially italic and small-cap. The next sweep was +% (.5, .3, {0, .4, .7, 1}). The sides of the 14$\,$pt upper-case O +% (especially roman and small-cap) are relatively fatter with +% o-correction 0 as opposed to 1. Almost every other mode for 600$\,$dpi +% printers has 1, so I'm going with that. +% +mode_def ljfive = %\[ HP LaserJet 5 (600dpi) + mode_param (pixels_per_inch, 600); + mode_param (blacker, .75); + mode_param (fillin, .3); + mode_param (o_correction, 1); + mode_common_setup_; +enddef; +laserjetfive := ljfive; + +% From Michael Neuhauser {\tt neuhauser@eiunix.tuwien.ac.at}. This is a +% mode for HP LaserJet 5MP. I started with ljfive and found the Computer +% Modern fonts much too black. Therefore I experimented with different +% values of |blacker| to find .4 to be best. +mode_def ljfivemp = %\[ HP LaserJet 5MP (600 dpi) + mode_param (pixels_per_inch, 600); + mode_param (blacker, .4); + mode_param (fillin, .3); + mode_param (o_correction, 1); + mode_common_setup_; +enddef; +laserjetfivemp := ljfivemp; +% There have been many modes for the LaserJet 4. The current values were +% found by {\tt kb@tug.org} to be reasonable on a LaserJet 4MP +% (at the default density setting, with resolution enhancement enabled). +% I don't intend to change them again (unless someone convinces me +% that they are truly mistaken in some way), although I would consider adding +% different modes for other LaserJet 4 printers, if people contribute them. +% +% ({\tt cthiele@ccs.carleton.ca} gets better results with the density +% setting on the printer at 4, instead of 3.) +% +% The first LaserJet 4 mode came from {\tt tonnie@ctrl.phys.tue.nl}, +% 13 January 1993, with |blacker=0|, |fillin=0|, and |o_correction=.6|. +% (This definition was forwarded to me by Barbara Beeton, and was +% intended to be preliminary.) +% +% {\tt fj@iesd.auc.dk} says that |IBMFourZeroTwoNine| works fine. +% +% {\tt mbr@research.nj.nec.com} supplied another set of values: +% |blacker=.6|, |fillin=0|, and |o_correction=1|. He writes: +% I've tested it extensively at 10$\,$pt and 12$\,$pt in both roman, italic, +% and bold, and I've checked all the standard smaller sizes (5, 6, 7, 8, +% and 9$\,$pt). Works reasonably well on both the LaserJet 4 and the 4si, +% although characters come out somewhat lighter on the 4si. Assumes +% that the density controls are set to their default values and that the +% resolution enhancement feature is enabled. The |blacker| value was +% chosen to make 12$\,$pt text look good; for 10$\,$pt text, set |blacker=.66|. +% +% I felt the output with |blacker=.6| was too dark; Computer Modern +% was never intended to be as dark as it appears on 300$\,$dpi printers. +% So I've decreased |blacker| to the value below. The other parameters +% don't seem to matter much. (Even |blacker| doesn't matter all +% {\it that} much.) +% +% Works for a 600$\,$dpi Accel-a-Writer {\tt mackay@cs.washington.edu}, +% 16 August 95. +% +% Possibly also usable for the LaserJet 6 family. +% From {\tt chj@lin.foa.se} (Christian Jvnsson), 29 January 1997. +% +mode_def ljfour = %\[ HP LaserJet 4 (600dpi) + mode_param (pixels_per_inch, 600); + mode_param (blacker, .25); + mode_param (fillin, 0); + mode_param (o_correction, 1); + mode_common_setup_; +enddef; +laserjetfour := ljfour; +% {\tt fn@junior.mathtok.polymtl.ca} uses this for the QMS-860. +qmsesz := ljfour; +% {\tt pete@lovelace.thi.informatik.uni-frankfurt.de} uses this for the +% Apple LaserWriter Select 360, with a Fuji Xerox Xerographic engine. +aselect := ljfour; + +% {\tt jrenkema@worldonline.nl}, 2 January 1998. The LaserJet 5M +% |mode_def|, |blacker=.35|, had very light output on the 4000. The +% |blacker=2| setting results in output comparable to the LaserJet 5M +% with |blacker=.35|. It is also noteworthy that in the ProRes 1200 mode +% HP's resolution enhancement technology (RET) is not used, thus output +% is exactly according to \MF. But perhaps |blacker=2| is too much, as +% Computer Modern is supposed to be pretty light. +mode_def ljfzzz = %\[ LaserJet 4000N, ProRes mode (1200dpi) + mode_param (pixels_per_inch, 1200); + mode_param (blacker, 1); + mode_param (fillin, .1); + mode_param (o_correction, 1); + mode_common_setup_; +enddef; +laserjetfourzerozerozero := ljfzzz; +laserjetfourthousand := ljfzzz; + +% {\tt Nicolai Langfeldt }, 16 May 1998. +% This is for the default 16ppm 600dpi mode. +% +mode_def ljfzzzfr = %\[ HP LaserJet 4000 FastRes (600dpi) + mode_param (pixels_per_inch, 600); + mode_param (blacker, 0); + mode_param (fillin, .2); + mode_param (o_correction, 1); + mode_common_setup_; +enddef; + +% From {\tt ST-TeX.MF} via {\tt braams@pttrnl.nl}. (The 300dpi LaserJet +% is another |cx|.) +mode_def ljlo = %\[ HP LaserJet (150dpi) + mode_param (pixels_per_inch, 150); + mode_param (blacker, 0); + mode_param (fillin, .1); + mode_param (o_correction, 1); + mode_common_setup_; +enddef; +laserjetlo := ljlo; + +% {\tt Niko Sauer }, 11 October 2000. +% Here are modes developed for and tested on the HP LaserJet 2100T/TN. +% Mode ljtozz is for a resolution of 1200dpi, and ljtozzfr for 600dpi +% Tradeoffs between |fillin| and |blacker| resulted in very clear, +% sharp renderings of Computer Modern fonts which appears to be +% preferable to what the modes ljfzzz ljfzzzfr for HP LaserJet 4000 +% yield on this printer. Preferences were tested by scrutiny of the +% results by sample of people in the vicinity. +% +mode_def ljtozz = %\[ HP LaserJet 2100T/TN (1200dpi) + mode_param (pixels_per_inch, 1200); + mode_param (blacker, .7); + mode_param (fillin, .15); + mode_param (o_correction, 1); + mode_common_setup_; +enddef; +laserjettwoonezerozero:=ljtozz; +% +mode_def ljtozzfr = %\[ HP LaserJet 2100T/TN (600dpi) + mode_param (pixels_per_inch, 600); + mode_param (blacker, .25); + mode_param (fillin, .3); + mode_param (o_correction, 1); + mode_common_setup_; +enddef; +laserjettwoonezerozerofastres:=ljtozzfr; + +% From {\tt mackay@cs.washington.edu}, 13 January 1993. The actual +% machine resolution of this machine is $1000 \times 400$, but it is +% adjusted with the aid of software so that a $1000 \times 1000$ PK file +% is used. The |o_correction|, however, seems grossly overdone if +% the expected value of at or near unity is applied (on the grounds +% that a 1000$\,$dpi font should be able to do full o-correction). +% Apparently the 400$\,$dpi physical resolution has some effect here. +% In any case, |o_correction=0.4| looks better, and lines up with +% about the right optical adjustment on curves. Tested at American +% School of Classical Studies Publications on 18 July, 1992. +mode_def lmaster = %\[ LaserMaster (1000dpi) + mode_param (pixels_per_inch, 1000); + mode_param (blacker, 0.2); + mode_param (fillin, 0.0); + mode_param (o_correction, 0.4); + mode_common_setup_; +enddef; +lasermaster := lmaster; + +% From {\tt fran@hexamon.demon.co.uk}, 10 March 1996. I tried the entry +% in modes.mf for a DEC LN03. This turned out much too dark---everything +% looks bold. I did try sending write-black fonts to this printer, the +% hairlines disappear. I don't know if these printers have a +% blackness knob $\ldots$ +mode_def lnotr = %\[ DEC LN03R Scriptprinter (300dpi) + mode_param (pixels_per_inch, 300); + mode_param (blacker, 0); + mode_param (blacker_min, 2); + mode_param (fillin, -.6); + mode_param (o_correction, .5); + mode_common_setup_; + mode_write_white_setup_; +enddef; +LNOthreR := lnotr; + +% From Richard Watson at the Queensland Institute of Technology. This +% printer is said to have some kind of Xerox engine, but I don't know which. +mode_def lnzo = %\[ DEC LN01 (300dpi) + mode_param (pixels_per_inch, 300); + mode_param (blacker, .9); + mode_param (blacker_min, 2); + mode_param (fillin, 0); + mode_param (o_correction, .5); + mode_common_setup_; + mode_write_white_setup_; +enddef; +LNZeroOne := lnzo; +lps := lnzo; +LPSFourZero := lnzo; + +% From {\tt hammond@jila.Colorado.EDU}, 21 January 1993. Modified from +% |qms|. Prints exactly like the QMS fonts from Northlake Software. +mode_def lpstz = %\[ DEC lps20 (300dpi) + mode_param (pixels_per_inch, 300); + mode_param (blacker, .6); + mode_param (fillin, -.3); + mode_param (o_correction, .6); + mode_common_setup_; +enddef; +LPSTwoZero := lpstz; + +mode_def lqlores = %\[ Epson LQ-500 (180dpi) + mode_param (pixels_per_inch, 180); + mode_param (blacker, 0); + mode_param (fillin, 0); + mode_param (o_correction, .1); + mode_common_setup_; +enddef; +EpsonLQFiveZeroZeroLo := lqlores; + +% This and |EpsonLQFiveZeroZeroLo| also work for a Mannesmann 300 +% (from {\tt cudat@csv.warwick.ac.uk}, 4 September 1991). The $360\times360$ +% modes for these printers fails for {\tt cudat}, however. +mode_def lqmed = %\[ Epson LQ-500 (360x180dpi) + mode_param (pixels_per_inch, 360); + mode_param (aspect_ratio, 180 / pixels_per_inch); + mode_param (blacker, 0); % 0.3 avoids `holes'. + mode_param (fillin, 0); + mode_param (o_correction, .1); + mode_common_setup_; +enddef; +lqmedres := lqmed; +EpsonLQFiveZeroZeroMed := lqmed; + +mode_def lqmedl = %\[ Epson LQ-500 landscape (180x360dpi) + lqmed_; + landscape; +enddef; + +% These values from {\tt karl@cs.umb.edu}. |blacker = .8| or more +% thickens dots, to their detriment. |blacker = .6| produces two-pixel +% stems, which looks pretty good for {\tt cmr}, but it's a little dark +% for {\tt cmti}, and {\tt cmbx} and {\tt cmr} then turn out the same. +% |o_correction = 1| made no difference. |fillin = 1| made no +% difference. +mode_def lview = %\[ Sigma L-View monitor (118x109dpi) + mode_param (pixels_per_inch, 118.06); + mode_param (aspect_ratio, 109.25 / pixels_per_inch); + mode_param (blacker, 0); + mode_param (fillin, 0); + mode_param (o_correction, 0); + mode_common_setup_; +enddef; + +mode_def lviewl = %\[ Sigma L-View monitor landscape (109x118dpi) + lview_; + landscape; +enddef; + +% From {\tt Pierre.Soille@ipk.fhg.de}, 13 February 1995. +% This printer also runs at 300$\,$dpi (try |cx|), 400$\,$dpi (|next|), +% and 600$\,$dpi (|ljfour|). +mode_def lwpro = %\[ Apple LaserWriterPro 810 (800dpi) + mode_param (pixels_per_inch, 800); + mode_param (blacker, 0); + mode_param (fillin, 0); + mode_param (o_correction, 1); + mode_common_setup_; +enddef; + +% This is untested. +mode_def macmag = %\[ Mac screens at magstep 1 (86dpi) + mode_param (pixels_per_inch, 86.4); + mode_param (blacker, .35); + mode_param (fillin, .1); + mode_param (o_correction, .3); + mode_common_setup_; +enddef; + +% From the VMS distribution tape (except {\tt karl@cs.umb.edu} changed +% the |o_correction| to zero). +mode_def mactrue = %\[ Mac screen (72dpi) + mode_param (pixels_per_inch, 72); + mode_param (blacker, 0); + mode_param (fillin, 0); + mode_param (o_correction, 0); + mode_common_setup_; +enddef; +MacTrueSize := mactrue; + +% From {\tt mcgrant@rascals.stanford.edu}, 17 December 1992. +% Various other values made little difference. +mode_def ncd = %\[ NCD 19-inch (95dpi) + mode_param (pixels_per_inch, 95); + mode_param (blacker, 0); + mode_param (fillin, 0); + mode_param (o_correction, 0); + mode_common_setup_; +enddef; + +% From {\tt rokicki@neon.stanford.edu}. +mode_def nec = %\[ NEC (180dpi) + mode_param (pixels_per_inch, 180); + mode_param (blacker, 0); + mode_param (fillin, 0); + mode_param (o_correction, .2); + mode_common_setup_; +enddef; + +% This is the same as |cx|, except for the resolution. +mode_def nechi = %\[ NEC-P6 (360dpi) + mode_param (pixels_per_inch, 360); + cx_; +enddef; +lqhires := nechi; + +% {\tt fkr@tooyoo1.l.u-tokyo.ac.jp}, 7 June 1995. +mode_def neclm = %\[ NEC PC-PR406LM (320dpi) + mode_param (pixels_per_inch, 320); + mode_param (blacker, .1); + mode_param (fillin, 0); + mode_param (o_correction, .6); + mode_common_setup_; +enddef; + +% {\tt fkr@tooyoo1.l.u-tokyo.ac.jp}, 7 June 1995. +mode_def nectzo = %\[ NEC PC-PR201 series (160dpi) + mode_param (pixels_per_inch, 160); + mode_param (blacker, 0); + mode_param (fillin, 0); + mode_param (o_correction, .2); + mode_common_setup_; +enddef; +NecTwoZeroOne := nectzo; + +% From {\tt rokicki@neon.stanford.edu}. +mode_def nexthi = %\[ NeXT Newgen (400dpi) + mode_param (pixels_per_inch, 400); + cx_; +enddef; +NeXTprinter := nexthi; +Newgen := nexthi; % From {\tt lambert@silver.cs.umanitoba.ca}. + +% From {\tt rokicki@neon.stanford.edu}. +mode_def nextscrn = %\[ NeXT monitor (100dpi) + mode_param (pixels_per_inch, 100); + mode_param (blacker, 0); + mode_param (fillin, 0); + mode_param (o_correction, 0); + mode_common_setup_; +enddef; +NeXTscreen := nextscrn; +nextscreen := nextscrn; + +% {\tt ghibo@galileo.polito.it}, for the Amiga ShowDVI previewer. +mode_def nineone = %\[ NineOne (91x91) (91dpi) + mode_param (pixels_per_inch, 91); + mode_param (blacker, 0); + mode_param (fillin, 0); + mode_param (o_correction, .2); + mode_common_setup_; +enddef; +NineOne := nineone; + +% From {\tt jbotz@mtholyoke.edu}, 21 April 1993. +% Make TFM files only. +mode_def nullmode = %\[ TFM files only (101dpi) + % The resolution is irrelevant, but \MF\ always ships out + % characters, so don't use the default huge |proof| resolution. + mode_param (pixels_per_inch, 101); + mode_param (proofing, -1); + mode_param (fontmaking, 1); +enddef; + +% {\tt ghibo@galileo.polito.it}, for the Amiga ShowDVI previewer. +mode_def onetz = %\[ OneTwoZero (120/120) (120dpi) + mode_param (pixels_per_inch, 120); + mode_param (blacker, 0); + mode_param (fillin, 0); + mode_param (o_correction, .2); + mode_common_setup_; +enddef; +OneTwoZero := onetz; + +% From {\tt deby@cs.utwente.nl} and {\tt issue@vax.oxford.ac.uk}. +mode_def ocessfz = %\[ OCE 6750-PS (508dpi) + mode_param (pixels_per_inch, 508); + mode_param (blacker, 0); + mode_param (fillin, 0); + mode_param (o_correction, .7); + mode_common_setup_; +enddef; +OCESixSevenFiveZeroPS := ocessfz; + +% From {\tt rokicki@neon.stanford.edu}. +mode_def okidata = %\[ Okidata (240x288dpi) + mode_param (pixels_per_inch, 240); + mode_param (aspect_ratio, 288 / pixels_per_inch); + mode_param (blacker, 0); + mode_param (fillin, 0); + mode_param (o_correction, .2); + mode_common_setup_; +enddef; +okihi := okidata; + +mode_def okidatal = %\[ Okidata landscape (288x240dpi) + okidata_; + landscape; +enddef; + +% {\tt roussel@henri.chem.uleth.ca}. For the dark smoothing mode. +mode_def okifte = %\[ Okidata 410e in 600DPI mode (600dpi) + mode_param (pixels_per_inch, 600); + mode_param (blacker, .6); + mode_param (fillin, .1); + mode_param (o_correction, .85); + mode_common_setup_; +enddef; +okifourten := okifte; + +% From {\tt AMSmodes.def}. +mode_def pcscreen = %\[ also, e.g., high-resolution Suns (118dpi) + mode_param (pixels_per_inch, 118); + mode_param (blacker, .5); + mode_param (fillin, .1); + mode_param (o_correction, .3); + mode_common_setup_; +enddef; + +% {\tt fkr@tooyoo1.l.u-tokyo.ac.jp}, 7 June 1995. With the existing +% |bitgraph| and |pcscreen| modes, `m' looks bad: a long vertical +% line extends higher than the letter itself. +mode_def pcprevw = %\[ PC screen preview (118dpi) + mode_param (pixels_per_inch, 118); + mode_param (blacker, .2); + mode_param (fillin, 0); + mode_param (o_correction, .2); + mode_common_setup_; +enddef; + +% Tektronix Color PostScript printer, from {\tt craig@sunspot@noao.edu} +% on 14 January 1993. He writes: This is a thermal wax paper printer. +% The values were determined using the {\tt cmr10} and {\tt cmti10} fonts. +% The generated fonts look reasonable, although vertical lines and +% things like the {\tt [}, {\tt ]}, and {\tt /} characters are pretty thin. +mode_def phaser = %\[ Tektronix Phaser PXi (300dpi) + mode_param (pixels_per_inch, 300); + mode_param (blacker, 1.1); + mode_param (fillin, 0); + mode_param (o_correction, 1); + mode_common_setup_; +enddef; + +% From {\tt metod.kozelj@rzs-hm.si} (Metod Kozelj), 30 July 1998. +% Parameters other than |blacker| have little effect. +mode_def phaserfs = %\[ Tektronix Phaser 560 (1200dpi) + mode_param (pixels_per_inch, 1200); + mode_param (blacker, 0); + mode_param (fillin, 0); + mode_param (o_correction, 1); + mode_common_setup_; +enddef; +phaserfivesixzero := phaserfs; + +% Tektronix Phaser 350 is a 600-by-300 colour wax printer. +% From {\tt dag@ifi.uio.no} (Dag Langmyhr), 10 January 1997. +% Perhaps too fat at small sizes (5$\,$pt) but looks OK for 8$\,$pt and more. +mode_def phasertf = %\[ Tektronix Phaser 350 (600x300dpi) + mode_param (pixels_per_inch, 600); + mode_param (aspect_ratio, 300/pixels_per_inch); + mode_param (blacker, 0); + mode_param (fillin, 0); + mode_param (o_correction, .6); + mode_common_setup_; +enddef; + +mode_def phasertl = %\[ Tektronix Phaser 350 landscape (300x600) + phasertf_; + landscape; +enddef; +phasertfl := phasertl; + +% From Aries Arditi {\tt }, 3 February 1998. +% This definition makes one pixel one point, which is convenient when +% you want to image-process the letter images after rendering, and don't +% want to add any device corrections. If you want to grab the images off +% the screen, it's useful to add lines to the definition, as well: +% +%%\begingroup \tt \catcode`\_=12 \obeyspaces +% |mode_param (proofing, 1); +% extra_endchar:=extra_endchar\&"showit"; +% extra_setup := extra_setup\&"def openit = openwindow currentwindow from +% origin to (screen_rows,screen_cols) at (0,50) enddef"; +%%\endgroup +mode_def pixpt = %\[ one pixel per point (72.27dpi) + mode_param (pixels_per_inch, 72.27); + mode_param (blacker, 0); + mode_param (fillin, 0); + mode_param (o_correction, 1); + mode_common_setup_; +enddef; + +% This is a write-white PostScript laser-setter, made by a Xerox +% subsidiary. Its true aspect ratio is 1200$\,$dpi horizontally and +% 600$\,$dpi vertically, but {\tt mis@apsedoff.bitnet} says that the +% printer hides this, and PostScript programs should treat it as having +% a square aspect ratio. But {\tt george@trevnx.bio.dfo.ca} says that +% using the nonsquare aspect ratio produces identical output and uses +% only half the disk space. He also says the fonts are much too dark +% in general, and produce invisible diagonals in the CM typewriter +% fonts---but other changes either produce errors or dark output. +% +% Printware's headquarters is in Minnesota; telephone (612) 456-1400. +mode_def prntware = %\[ Printware 720IQ (1200dpi) + mode_param (pixels_per_inch, 1200); + mode_param (blacker, 0); + mode_param (fillin, 0); + mode_param (o_correction, 1); + mode_common_setup_; +enddef; +PrintwareSevenTwoZeroIQ := prntware; +printware := prntware; + +% From John Gourlay. See {\sl TUGboat} 8(2), page 133. +mode_def qms = %\[ QMS (Xerox engine) (300dpi) + mode_param (pixels_per_inch, 300); + mode_param (blacker, .6); + mode_param (blacker_min, 2); + mode_param (fillin, -.3); + mode_param (o_correction, .6); + mode_common_setup_; + mode_write_white_setup_; +enddef; + +% From {\tt Boris.Hemkemeier@HRZ.Uni-Bielefeld.De}, 24 June 1993. +% With the QMSOneSevenZeroZero mode, the left stem of `M' +% in {\tt cmr10} vanishes completely. +mode_def qmsostf = %\[ QMS 1725 (600dpi) + mode_param (pixels_per_inch, 600); + mode_param (blacker, 1); + mode_param (blacker_min, 2); + mode_param (fillin, 0); + mode_param (o_correction, 1); + mode_common_setup_; + mode_write_white_setup_; +enddef; +QMSOneSevenTwoFive := qmsostf; + +% From {\tt queinnec@geant.cenatls.cena.dgac.fr}, 24 March 1993. +% {\tt k316670@aearn.bitnet} says this print has a CanonNX engine +% switchable between 300 and 600$\,$dpi. +% +% From {\tt mimi@scri.fsu.edu} (Mimi Burbank), 12 September 1996: +% $\ldots$ When I found the note about the left stem of the `M' +% disappearing I was concerned. +% +% The error, I believe, is due to the fact that the font is generated at +% 600$\,$dpi, and was most likely printed on a QMS printer with 300$\,$dpi +% resolution. I just had the same thing happen to me, but with our QMS +% 860 set at 600dpi (the default for only one of our printers) the +% output was beautiful! (I printed the same ps file on a QMS 2000 with +% 300$\,$dpi resolution, and on a QMS 860 with 600$\,$dpi resolution.) +mode_def qmsoszz = %\[ QMS 1700 (600dpi) + mode_param (pixels_per_inch, 600); + mode_param (blacker, .2); + mode_param (blacker_min, 2); + mode_param (fillin, 0); + mode_param (o_correction, 1); + mode_common_setup_; + mode_write_white_setup_; +enddef; +QMSOneSevenZeroZero := qmsoszz; + +% From {\tt teddy@fukt.hk-r.se}, 28 September 1996. +mode_def qmstftf = %\[ QMS 2425 (1200dpi) + mode_param (pixels_per_inch, 1200); + mode_param (blacker, .3); + mode_param (fillin, .5); + mode_param (o_correction, 1); + mode_common_setup_; +enddef; +QMSTwoFourTwoFive := qmstftf; + +% These values from Stan Osborne, {\sl TUGboat} 8(2), page 134. +mode_def ricoh = %\[ e.g., TI Omnilaser (300dpi) + mode_param (pixels_per_inch, 300); + mode_param (blacker, .2); + mode_param (blacker_min, 2); + mode_param (fillin, -.2); + mode_param (o_correction, .5); + mode_common_setup_; + mode_write_white_setup_; +enddef; +RicohFourZeroEightZero := ricoh; +RicohFortyEighty := ricoh; + +% From {\tt Martin.Ward@durham.ac.uk}. Apparently the engine is +% different from the Ricoh 4080. With a larger value of |blacker|, +% characters like the `e' in {\tt cmtt8} look bad. +mode_def ricoha = %\[ e.g., IBM 4216 (300dpi) + mode_param (pixels_per_inch, 300); + mode_param (blacker, .2); + mode_param (blacker_min, 2); + mode_param (fillin, 0); + mode_param (o_correction, .75); + mode_common_setup_; + mode_write_white_setup_; +enddef; +RicohA := ricoha; +IBMFourTwoOneSix := ricoha; + +% From John Sauter. +mode_def ricohlp = %\[ e.g., DEC LN03 (300dpi) + mode_param (pixels_per_inch, 300); + mode_param (blacker, .65); + mode_param (blacker_min, 2); + mode_param (fillin, -.2); + mode_param (o_correction, .5); + mode_common_setup_; + mode_write_white_setup_; +enddef; +RicohLP := ricohlp; +LNOthree := ricohlp; +LNZeroThree := ricohlp; + +% From {\tt nishida@src.ricoh.co.jp} (Akihiro Nishida), 30 August 1996. +% These printers are available only in Japan. +mode_def ricohsp = %\[ Ricoh sp10ps/lp7200-ux (600dpi) + mode_param (pixels_per_inch, 600); + mode_param (blacker, 0); + mode_param (fillin, 0.2); + mode_param (o_correction, .6); + mode_common_setup_; +enddef; + +% From {\tt dickson@eeserv.ee.umanitoba.ca}. {\tt gil.cc.gatech.edu} +% has different values; {\tt img@ai.edinburgh.ac.uk} sets |blacker=.1|. +% Corrected by {\tt andy@vlsi.cs.caltech.edu}, 28 August 1991. +% The darkness knob on the printer has a much larger effect than +% any of these parameters. {\tt carlos@snfep1.if.usp.br} points out +% that the printer can operate at either 300$\,$dpi or 400$\,$dpi, and +% if your fonts don't match the setting, naturally they won't look +% very good. He says the following works in Dvips' {\tt config.ps} file +% to set 400$\,$dpi: +%%\begingroup \tt \catcode`\%=12 \catcode`\{=12 \catcode`\}=12 \obeyspaces +% /SetResolution { +% /setres where { +% /setres get exec +% }{ +% pop +% } ifelse +% } def +% %%BeginFeature *SetResolution 400 +% 400 SetResolution +% %%EndFeature +% %%EndSetup +%%\endgroup +% +% (This is the file {\tt resolution400.ps} supplied with NeWSprint.) +% {\tt simpson@math.psu.edu} only got this work by downloading the code +% via an extra header file, i.e., having this in the Dvips config file: +%%\begingroup \tt \obeyspaces +% M sparcptr +% D 400 +% h resolution400.ps +%%\endgroup +% +mode_def sparcptr = %\[ Sun SPARCprinter (400dpi) + mode_param (pixels_per_inch, 400); + mode_param (blacker, .25); + mode_param (fillin, .2); + mode_param (o_correction, .6); + mode_common_setup_; +enddef; +SparcPrinter := sparcptr; + +% From {\tt ee@dacth51.bitnet}. +mode_def starnlt = %\[ Star NL-10 (240x216dpi) + mode_param (pixels_per_inch, 240); + mode_param (aspect_ratio, 216 / pixels_per_inch); + mode_param (blacker, 0); + mode_param (fillin, .2); + mode_param (o_correction, .4); + mode_common_setup_; +enddef; +StarNLOneZero := starnlt; + +mode_def starnltl = %\[ Star NL-10 landscape (216x240dpi) + starnlt_; + landscape; +enddef; + +% From {\tt alejolo@sue.ideam.gov.co}, 26 November 1998. I have tested +% the default stylewriter mode in modes.mf v3.4 with Oz\TeX\ and my +% StyleWriter II, and still output is too light, particularly the serifs +% and thin cusps such as in CMR's small e, c, t, b and d. Thus I cooked +% up this mode that prints output similar to a standard system font (I +% compared text output with Minion Web as it comes with Internet +% Explorer 4). In general I'd suggest that this mode definition is +% appropriate for all inkjet printers using a BJC-02 ink cartridge. +mode_def styletwo = %\[ Apple StyleWriter II (360dpi) + mode_param (pixels_per_inch, 360); + mode_param (blacker, 0.25); + mode_param (fillin, 0); + mode_param (o_correction, 0.6); + mode_common_setup_; +enddef; +swtwo := styletwo; + +% |stylewriter| mode added by Andrew Trevorrow +% {\tt } for Oz\TeX\ users. All +% parameters (except |pixels_per_inch|) are the same as the |cx| mode so +% that PK files can be shared by both types of printers. +% +% With |blacker=0|, hbar is indistinguishable for h, i.e., the bar +% disappears. Thus 0.1. From Wulf Hofbauer {\tt }, +% 5 June 1998. +mode_def stylewri = %\[ Apple StyleWriter (360dpi) + mode_param (pixels_per_inch, 360); + mode_param (blacker, 0.1); + mode_param (fillin, .2); + mode_param (o_correction, .6); + mode_common_setup_; +enddef; +stylewriter := stylewri; +stylewr := stylewri; +% From {\tt px@fct.unl.pt (Joaquim Baptista [pxQuim])}. I find +% |epstylus| far too dark. It seems to me that plain values of 0 to +% |blacker| and |fillin| work perfectly with values of |o_correction| in +% the range of .6 to .8. I ended up using [this mode:] +epstylwr := stylewri; +% Andrew defines |sw| as well, but I am reluctant to use such a +% potentially common identifier --{\tt kb@cs.umb.edu}, 8 October 1996. + +% From {\tt grunwald@foobar.colorado.edu}. Sun monitors have several +% different resolutions, but this seems the most common of the lot. +% Use |pcscreen| for high-resolution monitors. +mode_def sun = %\[ Sun and BBN Bitgraph (85dpi) + mode_param (pixels_per_inch, 85); + mode_param (blacker, .35); + mode_param (fillin, .1); + mode_param (o_correction, .3); + mode_common_setup_; +enddef; + +mode_def supre = %\[ Ultre*setter (2400dpi) + mode_param (pixels_per_inch, 2400); + mode_param (blacker, 0); + mode_param (fillin, 0); + mode_param (o_correction, 1); + mode_common_setup_; +enddef; + +mode_def toshiba = %\[ Toshiba 13XX, EpsonLQ (180dpi) + mode_param (pixels_per_inch, 180); + mode_param (blacker, 0); + mode_param (fillin, 0); + mode_param (o_correction, .2); + mode_common_setup_; +enddef; +epsonlq := toshiba; + +mode_def ultre = %\[ Ultre*setter (1200dpi) + mode_param (pixels_per_inch, 1200); + mode_param (blacker, 0); + mode_param (fillin, 0); + mode_param (o_correction, 1); + mode_common_setup_; +enddef; +Prism := ultre; + +% From {\tt Martin.Ward@durham.ac.uk}. +mode_def vs = %\[ VAXstation monitor (78dpi) + mode_param (pixels_per_inch, 78); + mode_param (blacker, 0); + mode_param (fillin, 0); + mode_param (o_correction, 0); + mode_common_setup_; +enddef; +VAXstation := vs; +gpx := vs; + +% From {\tt erikjan@icce.rug.nl}, 23 August 1991. +mode_def vtftzz = %\[ Varityper 4200 B-P (1800dpi) + mode_param (pixels_per_inch, 1800); + mode_param (blacker, 0); + mode_param (fillin, 0); + mode_param (o_correction, 1); + mode_common_setup_; +enddef; +VarityperFourTwoZeroZero := vtftzz; + +% From {\tt mjm@as.arizona.edu}, 26 February 1992. +mode_def vtftzzhi = %\[ Varityper 4300P (2400dpi) + mode_param (pixels_per_inch, 2400); + mode_param (blacker, 0); + mode_param (fillin, 0); + mode_param (o_correction, 1); + mode_common_setup_; +enddef; +VarityperFourThreeZeroZeroHi := vtftzzhi; + +% From {\tt mjm@as.arizona.edu}, 26 February 1992. +mode_def vtftzzlo = %\[ Varityper 4300P (1200dpi) + mode_param (pixels_per_inch, 1200); + mode_param (blacker, 2); % used to be 3.5, see |lexmarkr| comments. + mode_param (fillin, 0); + mode_param (o_correction, 1); + mode_common_setup_; +enddef; +VarityperFourThreeZeroZeroLo := vtftzzlo; + +% From {\tt rocky@panix.com}. This can also be used for the Autologic's +% APS6 cut sheet dry process printer. For that printer, perhaps +% |blacker=0.8| is better. For the Varityper, though, at |blacker=0.8| +% the dots of the umlaut start to fill in. For |blacker<0.6|, the tops +% and bottoms of lowercase g's and s's in {\tt cmr5} drop out. +mode_def vtfzszw = %\[ Varitype 5060W, APS 6 (600dpi) + mode_param (pixels_per_inch, 600); + mode_param (blacker, .7); + mode_param (fillin, 0); + mode_param (o_correction, 1); + mode_common_setup_; +enddef; +VarityperFiveZeroSixZeroW := vtfzszw; +APSSixMed := vtfzszw; + +% The worst problem is toner irregularity. This may be the same printer +% as the IBM 4250. +mode_def vtszz = %\[ Varityper Laser 600 (600dpi) + mode_param (pixels_per_inch, 600); + mode_param (blacker, 0); + mode_param (fillin, 0); + mode_param (o_correction, 1); + mode_common_setup_; +enddef; +VarityperSixZeroZero := vtszz; +VTSix := vtszz; +varityper := vtszz; + +% Some information about Xerox printers, from {\tt siemsen@barnard.usc.edu}: +% The Docutech system and the 4135 have the same engine. +% The 4050, 4075 and 4090 have the same engine. +% The 4650 has a unique engine. +% The 4850 has a unique engine. + +% From {\tt SamuelKey@comcast.net}, for enhanced resolution mode. In +% 600x600 mode, |ljfour| works ok. +mode_def xpstzz = %\[ Xerox Phaser 6200DP (2400x600dpi) + mode_param (pixels_per_inch, 2400); + mode_param (aspect_ratio, 600 / pixels_per_inch); + mode_param (blacker, 0); + mode_param (fillin, 0); + mode_param (o_correction, 1); + mode_common_setup_; +enddef; +XeroxPhaserSixTwoZeroZeroDP := xpstzz; + +mode_def xpstzzl = %\[ Xerox Phaser 6200DP landscape (600x2400dpi) + xpstzz_; + landscape; +enddef; + + +% From {\tt u12570@uicvm.uic.edu}. These values are mostly guesses. +mode_def xrxesnz = %\[ Xerox 8790 or 4045 (300dpi) + mode_param (pixels_per_inch, 300); + mode_param (blacker, 0.4); + mode_param (blacker_min, 2); + mode_param (fillin, 0); + mode_param (o_correction, 0.2); + mode_common_setup_; + mode_write_white_setup_; +enddef; +XeroxEightSevenNineZero := xrxesnz; + +% From {\tt u12570@uicvm.uic.edu}. Many variations for different fonts. +% {\tt bart@cs.tamu.edu} says this works for the Xerox 4700, also. +mode_def xrxfzfz = %\[ Xerox 4050/4075/4090/4700 (300dpi) + mode_param (pixels_per_inch, 300); + mode_param (blacker, .7); + mode_param (fillin, 0); + mode_param (o_correction, .5); + mode_common_setup_; +enddef; +XeroxFourZeroFiveZero := xrxfzfz; + +% From {\tt u12570@uicvm.uic.edu}. He sent many variations of this, +% for different fonts. I don't know a reasonable way to put them in +% yet, so this is just the basic entry. +mode_def xrxnszz = %\[ Xerox 9700 (300dpi) + mode_param (pixels_per_inch, 300); + mode_param (blacker, .7); + mode_param (fillin, 0); + mode_param (o_correction, .5); + mode_common_setup_; +enddef; +XeroxNineSevenZeroZero := xrxnszz; + +% From {\tt lee@sq.com}. These values may be improvable. +mode_def xrxtszz = %\[ Xerox 3700 (300dpi) + mode_param (pixels_per_inch, 300); + mode_param (blacker, .85); + mode_param (blacker_min, 2); + mode_param (fillin, -.1); + mode_param (o_correction, .5); + mode_common_setup_; + mode_write_white_setup_; +enddef; +XeroxThreeSevenZeroZero := xrxtszz; + +mode_def help = %\[ What modes are available? + for i = 1 upto number_of_modes: + message mode_name[i]; + endfor; + % Doesn't make sense to be able to do this twice, so forget this + % definition after it's been used. + save ?; +enddef; + +let mode_help = help_; + +% These variables determine the size of \MF's (window system) +% window for online output. These numbers should match whatever +% the window system is told, or bizarre positioning of the output +% in the window results. Properly implemented online device drivers +% will use these values as the default size. The defaults here are +% from {\tt plain.mf}. +screen_rows := 400; +screen_cols := 500; + +% The mode most commonly used to make fonts here. +localfont := ljfour; + +%%\bye +%%%% Local variables: +%%%% page-delimiter: "^% here are" +%%%% End: diff --git a/Master/texmf-dist/metafont/misc/modes.mf b/Master/texmf-dist/metafont/misc/modes.mf deleted file mode 100644 index 5e3b3cfbd4d..00000000000 --- a/Master/texmf-dist/metafont/misc/modes.mf +++ /dev/null @@ -1,2577 +0,0 @@ -%%\font\tenlogosl=logosl10 -%%\def\logofont{\ifdim\fontdimen1\font>0pt \tenlogosl\else\tenlogo\fi} -%%\def\MF{{\logofont META}\-{\logofont FONT}} -%%\def\9{${\rm\%}}% print initial comments ragged right -%%%% -%%% input generate -%%% def mode_def -%%% end bye primitive_end_ -%%% addto define_whole_vertical_blacker_pixels %%%% missing in plain.mft -%%% addto coding_scheme font_face_byte font_family %%%% like font_size -%%% addto BCPL_string mode_param mode_special_ mode_output_specials_ -%%% true mode_common_setup_ mode_write_white_setup_ %%%% like mode_setup -%%% true landscape landscape_ -%%% good mode_guard_ %%%% variable that take suffixes -%%%% -% -% Compiled 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 2002, 2004, -% 2005, 2008 by Karl Berry. This file is not copyrighted and may be used -% freely. You can retrieve the latest version from {\tt -% ftp://ftp.tug.org/tex/modes.mf}, among other places. -% -% Feel free to change the definitions of |localfont|, |screen_cols|, -% and |screen_rows| at the end of file (see explanations below). -% -% If you make a new |mode_def|, please send it to -% {\tt tex-fonts@tug.org}. See further discussion below. -% -% The mode definitions start at `Here are the modes', several hundred -% lines down. -% -% This file can be run through {\tt MFT} and \TeX\ to produce a nice -% pretty-printed listing, which currently runs to some 41 pages. -% -%%\begingroup \tt \catcode`\{=12 \catcode`\}=12 \obeyspaces -% @mffile{ -% author = "The Metafont community", -% version = "3.8", -% date = "Wed Feb 20 16:33:57 PST 2008" -% filename = "modes.mf", -% email = "tex-fonts@tug.org" -% checksum = "2577 12670 93478", -% codetable = "ISO/ASCII", -% supported = "yes", -% docstring = " -%%\endgroup -% -% This file is a collection of putatively all extant \MF\ modes. -% -% If you have a device which is not mentioned in this file, the best -% thing to do is try to find a device with similar resolution (search -% for the appropriate lines), and see if that suits (a list of fonts to -% try is given above). Otherwise, methods for fiddling with the -% parameters are described in detail below. -% -% Unfortunately, the number of modes eats up a lot of memory; if your -% \MF\ has not increased the table sizes, you may need to remove -% some of the modes from this file (please name it something else then, -% e.g., {\tt local.mf}). If you can suggest a way to redefine |mode_def| -% and/or |mode_setup|, even better; right now, the amount of memory -% used is approximately four times the length of the |mode_def| names. -% -% The primary names are intentionally all eight characters or less, and -% strictly lowercase. This makes it feasible to use them for portable -% directory names, and the \TeX\ Directory Structure standard recommends -% doing so. The synonyms are historical equivalents. -% -% It also makes definitions to put specials identifying the mode in -% the \MF\ GF output, and to put the coding scheme and -% other so-called Xerox-world information in the TFM output. -% -% It also defines a macro |landscape| that inverts |aspect_ratio| and -% changes |pixels_per_inch|, so you can say {\tt mode := whatever; -% landscape; ...} to get landscape fonts. But I can't think of any -% reasonable way to reflect the |landscape| in the directory name, so -% there are also |mode_def|'s for the devices with non-square aspect -% ratios in landscape mode. -% -% Finally, it has some code to handle write-white devices better; this -% code comes into play if a |mode_def| includes the statement -% |mode_write_white_setup_;|. Such |mode_def|s should also define -% |blacker_min|. For further discussion of write/white and white/black -% devices, see the file {\tt ftp://ftp.tug.org/tex/write-white}, -% and also Pierre MacKay's article in the proceedings of the -% 1991 Raster Imaging and Digital Typography conference: -% -%%\begingroup \tt \catcode`\{=12 \catcode`\}=12 \obeyspaces -% @String{proc-RIDT91 = "Raster Imaging and Digital Typography II"} -% @String{pub-CUP = "Cambridge University Press"} -% -% @Inproceedings{Mackay:RIDT91-205, -% author = "Pierre A. MacKay", -% title = "Looking at the Pixels: Quality Control for 300 dpi -% Laser Printer Fonts, especially {\MF}s ", -% pages = "205--215", -% crossref = "Morris:RIDT91", -% } -% -% @Proceedings{Morris:RIDT91, -% title = proc-RIDT91, -% booktitle = proc-RIDT91, -% year = "1991", -% editor = "Robert A. Morris and Jacques Andr{\'e}", -% publisher = pub-CUP, -% address = pub-CUP:adr, -% acknowledgement = ack-kb, -% } -%%\endgroup -% -% This file is typically loaded when making a \MF\ base; for example, -% the command line -%%\begingroup \tt \obeyspaces -% inimf plain input modes dump -%%\endgroup -% makes a file {\tt plain.base} (or {\tt plain.bas}, or something like that) -% with all the modes herein defined (plain itself defines modes called -% |proof|, |smoke|, and |lowres|.) -% -% You can make the Computer Modern base with the command line: -%%\begingroup \tt \obeyspaces -% inimf plain input modes input cmbase dump -%%\endgroup -% It's generally best to avoid doing this, since it's -% easy to forget to update them. Just using {\tt plain.base} is simplest. -% -% On Unix systems, you then install the base file in the system directory -% ({\tt /usr/local/share/texmf/web2c} as distributed) as {\tt mf.base}. -% \MF\ uses the name it was invoked as to determine the format -% or base file to read; thus running {\tt mf} reads {\tt mf.base}, running -% {\tt cmmf} reads {\tt cmmf.base}, and so on. {\tt plain.base} and -% {\tt mf.base} should be the same file (either a hard or soft link -% is ok), so the examples in {\sl The \MF book\/} work. -% -% A user selects a particular mode when running \MF -% by assigning to the variable |mode|. For example: -%%\begingroup \tt \obeyspaces -% mf \char`\\mode:=cx; input cmr10 -%%\endgroup -% sets up values appropriate for the CanonCX engine. -% -% If no mode is assigned, the default is |proof| mode, as stated in {\sl -% The \MF book}. This is the cause of the ``{\tt .2602gf}'' files which -% are the subject of periodic questions. The remedy is simply to assign -% a different mode---|localfont|, for example. -% -% Every site should define the mode |localfont| to be a synonym for the -% mode most commonly used. This file defines |localfont| to be |ljfour|. -% The values for |screen_rows| and |screen_cols|, which determine how big -% \MF's window for online output is, should perhaps also be -% changed; certainly individual users should change them to their -% own tastes. -% -% This file defines {\tt ?} to type out a list of all the known -% |mode_def|s (once only). -% -% Technically, a |mode_def| is a \MF\ definition that typically -% consists of a series of assignments to various device-specific variables, -% either primitive or defined in plain. These variables include the -% following (page numbers refer to {\sl The \MF book\/}: -% -% |aspect_ratio|: the ratio of the vertical resolution to the horizontal -% resolution (page 94). -% -% |blacker|: a correction added to the width of stems and similar -% features, to account for devices which would otherwise make them -% too light (page 93). (Write-white devices are best handled by a more -% sophisticated method than merely adding to |blacker|, as explained -% above.) Compare your results with a good high-resolution example, -% such as one of the volumes of {\sl Computers \& Typesetting}. -% If you compare against the output of a typical write-black 300$\,$dpi -% engine, you will almost certainly wind up with something too dark. -% |blacker| should never be negative, the EC fonts do not compile with -% such a value. -% -% |fillin|: a correction factor for diagonals and other features which -% would otherwise be ``filled in'' (page 94). An ideal device would -% have |fillin=0| (page 94). Negative values for |fillin| typically -% have either gross effects or none at all, and should be avoided. -% Positive values lighten a diagonal line, negative values darken it. -% Changes in the |fillin| value tend to have abruptly non-linear effects -% on the various design-sizes and magnifications of a typeface. -% -% |fontmaking|: if nonzero at the end of the job, \MF\ writes -% a TFM file (page 315). -% -% |o_correction|: a correction factor for the ``overshoot'' of curves -% beyond the baseline or x-height. High resolution curves look better -% with overshoot, so such devices should have |o_correction=1|; but -% at low resolutions, the overshoot appears to simply be a distortion -% (page 93). Here some additional comments about |o_correction|, -% courtesy of Pierre MacKay (edited by Karl): -% -% At present, I find that |o_correction| works nicely at 80 pixels per -% em, and gets increasingly disturbing as you move down towards 50 -% pixels per em. Below that I do not think it ought to happen at all. -% -% The problem, of course, is that full |o_correction| is supposed to -% occur only at the zenith and nadir of the curve of `o', which is -% a small region at high resolution, but may be a long line of -% horizontal pixels at medium resolution. The full |o_correction| -% does not change a 300$\,$dpi {\tt cmr10}, but it changes a 21-pixel -% high {\tt cmr12} to be 23 pixels high. The extra height and depth -% is seen along a line of seven pixels at the bottom and five at -% the top. This is a pronounced overshoot indeed. -% -% For high-resolution devices, such as phototypesetters, the values -% for |blacker|, |fillin|, and |o_correction| don't matter all that much, -% so long as the values are within their normal ranges: between -% 0 and 1, with the values approaching 0, 0, and 1 respectively. -% -% |pixels_per_inch|: the horizontal resolution; the \MF\ primitive -% |hppp| (which is what determines the extension on the GF filename, -% as among other things) is computed from this (page 94). (An ``inch'' -% is 72.27$\,$pt in the \TeX\ world.) -% -% To be more precise, you can determine the resolution of a font given -% a |mode_def| and a magnification |m| by simply multiplying -% |pixels_per_inch| for that |mode_def| by |m|. (Your results may differ -% from \MF's if you don't use equivalent fixed-point arithmetic.) -% Then you can determine the number used in the name of the GF font -% output by rounding. For example, a font generated at |magstep(.5)| -% (which is $\sqrt{1.2}$, which \MF\ computes as 1.09544) for a printer -% with |pixels_per_inch=300| will have a resolution of 328.63312 dots -% per inch, and the GF filename will include the number {\tt 329}. -% -% |proofing|: says whether to put additional specials in the GF file for -% use in making proofsheets via, e.g., the utility program {\tt GFtoDVI} -% (page 323--4). -% -% |tracingtitles|: if nonzero, strings that appear as \MF\ statements -% are typed on the terminal (page 187). -% -% Pierre MacKay {\tt mackay@cs.washington.edu} has a collection of Unix -% tools to make up a minifont of indicator characters to help in testing. -% -% Neenie Billawala's article in the April 1987 issue of {\sl TUGboat} -% describes how to test your printer for the best set of values for the -% magic numbers above. Here are some brief comments on the subject, -% courtesy of Rocky Bernstein and Paul Abrahams: -% -% For medium-to-low resolution devices, you can first set the |blacker| -% and |o_correction| to~0 and decide on a |fillin| value by looking at -% the diagonal of a lowercase `z' in {\tt cmtt10}, or various lines in -% LaTeX's {\tt line10} font. The diagonal should be the same thickness -% as the horizontal bars of the `z'. Then I decide on the |blacker| -% value, generally by checking the smaller fonts for too much filling -% in. Finally, you can set the |o_correction| using the guidelines -% suggested above. -% -% The easiest way to make a new |mode_def| is not by modifying this file -% and rebuilding your base file every time. Instead, use a separate file -% that contains the appropriate values for the mode parameters and read -% it in when running \MF. If you're using Dvips or another utility -% that calls {\tt MakeTeXPK} to make PK files, remember you'll have to call -% \MF\ explicitly to make fonts until you've rebuilt the base files. -% -% To use a separate mode file with \MF, use the following -% command line: -%%\begingroup \tt \obeyspaces -% mf \char`\\smode:="newmode.mf"; mag:=magstep (2.0); input cmr10 -%%\endgroup -% substituting whatever font and magnification you wish, or omitting -% the magnification altogether. -% -% The file {\tt newmode.mf} should contain lines like this (with no -% |mode_def| or |enddef|): -%%\begingroup \tt \catcode`\_=12 \obeyspaces -% mode_param (pixels_per_inch, 100); -% mode_param (blacker, 0); -% mode_param (fillin, 0); -% mode_param (o_correction, 1); -% mode_common_setup_; -%%\endgroup -% changing the values as appropriate, of course. Once you're satisfied -% with the parameters, use inimf as described below to rebuild and -% install the plain (and any other) base files. -% -% For more information on the use of |smode|, see page 269 of -% {\sl The \MF book}. -% -% Matt Swift has contributed a short \TeX\ file to help in testing new -% modes. Remember to remove a leading |"%% "| from each line after -% extracting it. (Only a single \% is shown in the printed version.) -% If you don't use this file for testing, please mention what fonts -% at what sizes you tested your new mode on. This will help other -% people wondering where particular values came from. Ideally, -% you would try normal, bold, and italic variants, at sizes around -% 5$\,$pt, 10$\,$pt and 15$\,$pt. -% -%%%% It seems too difficult to get the verbatim stuff right with MFT alone, -%%%% so why not quote the lines with `%%' and leave the processing to TeX? -%%%% The only drawback is that comment lines have to start with a blank, -%%%% since we have two stop MFT from interpreting them as `%%%' comments. -%%%% Therefore it seems best to quote every line with `%% ' consistently -%%%% to make it easier to extract them. -%%%% -%%%% This verbatim mode is from webman.tex, it assumes that no `?' appears -%%%% in the text being copied. I've hacked it to insert a single `%' at -%%%% the start of each line, so that it looks like normal MFT comments. -%%%% -%%\def\verbatim{\begingroup \def\9{{\rm\%}} -%% \def\do##1{\catcode`##1=12 } \dospecials -%% \parskip 0pt \parindent 0pt -%% \catcode`\ =13 \catcode`\^^M=13 -%% \tt \catcode`\?=0 \verbatimdefs \verbatimgobble} -%%{\catcode`\^^M=13{\catcode`\ =13\gdef\verbatimdefs{\def^^M{\ \par\9}\let =\ }} % -%% \gdef\verbatimgobble#1^^M{\9}} -%%%% -%%\verbatim -%% % modetest.tex -- a file to test a METAFONT mode -%% % -%% % by Matt Swift -%% % -%% % This file is in the public domain. -%% % -%% % \def\fileversion{v1.2} -%% % \def\filedate{1995/12/31} -%% % -%% % This LaTeX 2e file generates a test page useful for finding a good -%% % METAFONT mode for your printer. It includes the most sensitive -%% % letters in three sizes and all standard CMR font shapes. -%% % -%% % I've made the macros abstract, and I think this file could easily -%% % be adapted to test modes for other METAFONT fonts, or simply font -%% % appearance in general. -%% % -%% % If you want to adapt this to a non-LaTeX format, the LaTeX-specific -%% % commands below that must be altered are \documentclass, -%% % \begin{document}, \end{document}, \makeatletter, \makeatother, -%% % \@for, \@setfontsize, \encodingdefault, \pagestyle, \normalfont, -%% % \rmfamily, \sffamily, \ttfamily, \mdseries, \bfseries, \upshape, -%% % \itshape, \scshape, and \slshape. -%% -%% \def\encodingdefault{T1} % New "Cork" font encoding (dc fonts). -%% \def\encodingdefault{OT1} % Old font encoding (cm fonts). -%% -%% \documentclass{article} -%% \begin{document} -%% -%% % This line can be replaced (by, e.g., sed) to contain a mode name. -%% -%% ::Mode:: -%% -%% \def\makesize#1#2#3{ -%% \expandafter\def\csname ptsize#1\endcsname{#2} -%% \expandafter\def\csname blsize#1\endcsname{#3} -%% } -%% -%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% % DEFINE HERE THE POINT SIZES with baselineskips you would like to test. % -%% % With the defaults of 5, 10, and 14 point sizes, everything will fit on % -%% % one page very easily. Twocolumn would allow several more sizes. % -%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% -%% \makesize {A}{5}{6} -%% \makesize {B}{10}{12} -%% \makesize {C}{14}{18} -%% -%% \def\sizelist{A,B,C} -%% -%% \def\letters{% -%% MoOzZffii-a\"egsS [/$\backslash$\par -%% } -%% -%% \makeatletter -%% \let\setfontsize\@setfontsize -%% \let\for\@for -%% \parindent\z@ -%% \makeatother -%% -%% \pagestyle{empty} -%% -%% \def\showfonts{% -%% % -%% % The groups prevent warnings when intermediate fonts are not available. -%% % -%% {\rmfamily \mdseries \upshape \letters} % allow no space before this -%% {\rmfamily \mdseries \slshape \letters} -%% {\rmfamily \mdseries \itshape \letters} -%% {\rmfamily \mdseries \scshape \letters} -%% -%% {\rmfamily \bfseries \upshape \letters} -%% {\rmfamily \bfseries \slshape \letters} -%% {\rmfamily \bfseries \itshape \letters} -%% -%% {\sffamily \mdseries \upshape \letters} -%% {\sffamily \mdseries \slshape \letters} -%% -%% {\sffamily \bfseries \upshape \letters} -%% -%% {\ttfamily \mdseries \upshape \letters} -%% {\ttfamily \mdseries \slshape \letters} -%% {\ttfamily \mdseries \itshape \letters} -%% {\ttfamily \mdseries \scshape \letters} -%% } -%% -%% % The \expandafters expand \sizelist. -%% % -%% \expandafter \for -%% \expandafter \sizename -%% \expandafter :% -%% \expandafter =% -%% \sizelist -%% \do {\setfontsize {\sizename} -%% {\csname ptsize\sizename\endcsname} -%% {\csname blsize\sizename\endcsname}% -%% \vskip 1ex\noindent -%% \llap{\normalfont\csname ptsize\sizename \endcsname\,pt\quad}% -%% \showfonts} -%% -%% \end{document} -%% % end of modetest.tex -%%?endgroup\par -%%%% -%%%% Not that anyone would recognize this as the end of the docstring... -%%\begingroup \tt \catcode`\{=12 \catcode`\}=12 \obeyspaces -%" -% } -%%\endgroup - -% Don't let ourselves be processed twice. -if known modes_mf: endinput; fi; -modes_mf := 3.8; - -% Identify ourselves in the format file. -base_version := base_version & "/modes 3.8"; - - -%%\vfill\eject -% Here are useful macros (also called definitions) we use throughout. - -% First, some comments about how the |mode_defs| are constructed (from -% {\tt rocky@panix.com}). In the past, |mode_defs| unconditionally -% assigned a value to the various mode-dependent parameters. -% For example, they contained an assignment |fontmaking:=1|, which -% tells \MF\ to write a TFM file. -% -% But suppose you want to generate a font using all of the setup for -% some mode |m|, but do not want to generate a TFM? One could create -% another mode that doesn't have the assignment, but this seems a bit -% wasteful since the rest of the code in the mode would be duplicated. -% Furthermore, given the way the mode definitions were written, it was -% not possible to change the mode parameters. To see why, I review how -% a \MF\ run typically works. -% -% First, \MF\ is invoked with some base file to load. Then you might -% want give additional instructions, such as |scrollmode|, or |mode:=cx|. -% Next, you input a parameter file, say {\tt cmr10}. The parameter file -% calls a driver file such as {\tt roman.mf} with the command -% |generate roman |. Finally, the driver finishes with |bye| or |end|. -% Thus, any additional commands you give after the input of the -% parameter file are ignored. -% -% Usually, one of the first things a driver file does is to call -% |mode_setup|. It is here that the mode parameters are set. (In our -% hypothetical mode, it would be here that |fontmaking| is assigned.) -% -% To allow a flexible setting of |fontmaking|, we can make a simple -% change: in the |mode_def|, first test to see if a value has been -% defined prior and only make the assignment if not. That is: -% |if unknown fontmaking: fontmaking := 1; fi|. -% -% Alas, this doesn't work. Primitives, like |fontmaking|, are always -% |known|. So instead we create ``guard'' variables, specifically, -% |mode_guard_.fontmaking|; we set the guard when we assign the -% parameter. Then we test whether the guard is |known| before we -% actually do an assignment. This allows more flexible definitions: you -% can specify some of the parameters, and keep the defaults for others. -% -% It is also possible to write a program that creates a |mode_def| -% on the fly. Although useful, this has a slightly different focus -% than starting with an existing |mode_def| and changing a couple -% of parameters. In particular, one still has to peek inside the -% file to see what the old values were and set them again (in the -% new context). Also, such on-the-fly |mode_def| generation programs -% are inherently less machine-independent than a scheme that does -% everything in \MF\ itself. -% -% The upshot of all this is the following: we say, e.g., -% |mode_param (fontmaking, 1)| below, instead of using the assignment -% primitive directly. The name (``|mode_param|'') is kept somewhat -% short because you can also use this to override a mode assignment -% on the command line or in response to the {\tt **} prompt. - -def mode_param (suffix v) (expr e) = - if unknown mode_guard_.v: - v := e; - mode_guard_.v := 1; - fi -enddef; - -% This macro is invoked by all the modes, after |pixels_per_inch| -% has been defined, thus saving some space and time. -def mode_common_setup_ = - mode_param (proofing, 0); - mode_param (fontmaking, 1); - mode_param (tracingtitles, if pixels_per_inch > 1200: 1 else: 0 fi); -enddef; - - -% In a similar spirit, here are definitions to change to ``landscape'' -% mode. You just say {\tt mode := whatever; landscape; ...}, -% and when |mode_setup| is executed, the |aspect_ratio| will be -% inverted, and |pixels_per_inch| changed. -def landscape = - extra_setup := extra_setup & "landscape_;" -enddef; - -def landscape_ = - begingroup - interim warningcheck := 0; - pixels_per_inch := aspect_ratio * pixels_per_inch; - aspect_ratio := 1 / aspect_ratio; - fix_units; % Too bad we can't do this after any |extra_setup|. - endgroup -enddef; - - -% Here are macros to add specials with mode information to the GF file. -% -% Specifically, we add the |pixels_per_inch|, |o_correction|, -% |aspect_ratio| (if not 1), |mag|, |fillin|, and |mode_def| name. This -% information can be used to automatically verify that a font file name -% matches the specification within the file. For example, you could -% check that the number in the filename matches |mag*pixels_per_inch|. -% Or, if the |mode_def| name is part of the font directory path -% (e.g., you put fonts in {\tt .../texmf/fonts/pk/cx}), that all of the -% bitmap files in the directory have the expected |mode_def| name. -def mode_special_ (suffix $) = - string s, d; - s := str $; - d := decimal scantokens s; - special s & "=" & d; -enddef; - -def mode_output_specials_ = - begingroup - save d, s, p, p_p_i; - string p; - - interim warningcheck := 0; % In case |pixels_per_inch>4096|. - - % We need the old |pixels_per_inch| to compute - % the true device resolution. - p_p_i = pixels_per_inch / mag; - - % But now we want to change |pixels_per_inch|, - % so |save| the old value. - save pixels_per_inch; - pixels_per_inch := p_p_i; - - special "jobname=" & jobname; - mode_special_ (mag); - - p := if string mode: - mode - else: - substring (0, length (mode_name[mode]) - 1) of mode_name[mode] - fi; - special "mode=" & p; - - mode_special_ (pixels_per_inch); - if aspect_ratio <> 1: - mode_special_ (aspect_ratio); - fi; - mode_special_ (blacker); - mode_special_ (fillin); - mode_special_ (o_correction); - endgroup -enddef; - - -% Here are macros for Xerox-world font info, which can be useful even -% if you never use a Xerox printer. For instance, {\tt crudetype} uses -% the |coding_scheme| and it is nice to have the font family on record. -% This goes into both the TFM file (as |headerbyte| information), and -% into the GF file (as a |special|). - -% Make the string |s| be |n| bytes long. -def BCPL_string (expr s, n) = - 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; - -% The string |s| names the encoding scheme, e.g., {\tt TeX text}. -def coding_scheme expr s = - headerbyte 9: BCPL_string (s, 40); - special "codingscheme=" & s -enddef; - -% The string |s| names the font family, e.g., {\tt CMR}. -def font_family expr s = - headerbyte 49: BCPL_string (s, 20); - special "fontid=" & s -enddef; - -% The integer |x| gives the family member number, which should be -% between 0 and 255. -def font_face_byte expr x = - headerbyte 72: x; - special "fontfacebyte"; - numspecial x -enddef; - -% So users can say |if known Xerox_world: ... fi|, per {\sl The \MF book}. -Xerox_world := 1; - -% For users who want extra information in the output file. -% This used to be done automatically by redefining end, but DEK reported -% that as a serious bug on 19 February 2008 to tex-implementors. -% -def mode_extra_info = - if fontmaking > 0: - font_family font_identifier_; - coding_scheme font_coding_scheme_; - font_face_byte max (0, 254 - round 2designsize); - mode_output_specials_; - fi; -enddef; - - -% Here are macros to handle write-white devices. -% -% The basic correction for write-white fonts occurs in the definition -% of |font_setup|. This can be used to extend or change the write-black -% definition in Computer Modern's {\tt cmbase.mf} or other base files -% based on CM, such as {\tt dxbase.mf}. This has no effect at 1200$\,$dpi. -def mode_write_white_setup_ = - newinternal blacker_min; - def define_whole_blacker_pixels(text t) = - forsuffixes $=t: $:=hround($.#*hppp+blacker); - if $ <=blacker_min-1: $:=blacker_min; fi endfor enddef; - - def define_whole_vertical_blacker_pixels(text t) = - forsuffixes $=t: $:=vround($.#*hppp+blacker); - if $ <=blacker_min-1: $:=blacker_min _o_; fi endfor enddef; - - % Only do the above once, in case a font file (unnecessarily) - % calls |mode_setup| more than once. - let mode_write_white_setup_ = relax -enddef; - - -%%%% Continue to print block comments ragged right, but also check -%%%% if comments start with \[ indicating lines to be set flush right. -%% -%%\def\9{$\futurelet\next\doit} -%%\let\[=\relax -%%\def\doit{\ifx\next\[% -%% \def\next{\hfill{\rm\%}}\else\def\next{{\rm\%}}\fi\next} -%%%% -%%\vfill\eject -% Here are the modes, given mostly in alphabetical order. - -% From {\tt J.Hicks@warwick.ac.uk}. -mode_def agfafzz = %\[ AGFA 400PS (406dpi) - mode_param (pixels_per_inch, 406); - mode_param (blacker, .2); - mode_param (fillin, 0); - mode_param (o_correction, .6); - mode_common_setup_; -enddef; -AgfaFourZeroZero := agfafzz; - -% From {\tt picheral@univ-rennes1.fr}. -mode_def agfatfzz = %\[ AGFA P3400PS (400dpi) - mode_param (pixels_per_inch, 400); - cx_; -enddef; -AgfaThreeFourZeroZero := agfatfzz; - -% From {\tt rokicki@neon.stanford.edu}. -mode_def amiga = %\[ Commodore Amiga (100dpi) - mode_param (pixels_per_inch, 100); - mode_param (blacker, 0); - mode_param (fillin, 0); - mode_param (o_correction, .2); - mode_common_setup_; -enddef; -onezz := amiga; -OneZeroZero := amiga; - -mode_def aps = %\[ Autologic APS-Micro5 (723dpi) - mode_param (pixels_per_inch, 722.909); - mode_param (blacker, .2); - mode_param (fillin, .2); - mode_param (o_correction, 1); - mode_common_setup_; -enddef; - -% From {\tt rocky@panix.com}. Tested on the single APS-6 at IBM Research. -mode_def apssixhi = %\[ Autologic APS-Micro6 (1016dpi) - mode_param (pixels_per_inch, 1016); - mode_param (blacker, 0); - mode_param (fillin, 0); - mode_param (o_correction, 1); - mode_common_setup_; -enddef; - -% From {\tt ee@dacth51.bitnet}. -mode_def atariezf = %\[ Atari ST SLM 804 printer (300dpi) - mode_param (pixels_per_inch, 300); - mode_param (blacker, 0); - mode_param (fillin, .5); - mode_param (o_correction, 0); - mode_param (blacker_min, 2); - mode_common_setup_; - mode_write_white_setup_; -enddef; -AtariSLMEightZeroFour := atariezf; - -% From {\tt W.Spit@fys.ruu.nl}. {\tt N.Poppelier@elsevier.nl} says that -% different previewers use different resolutions (95$\,$dpi, 96$\,$dpi, -% or 101$\,$dpi), but no one seems to know what the real resolution is. -mode_def atarinf = %\[ Atari previewer (95dpi) - mode_param (pixels_per_inch, 95); - mode_param (blacker, 0); - mode_param (fillin, 0); - mode_param (o_correction, 0.1); - mode_common_setup_; -enddef; -AtariNineFive := atarinf; - -mode_def atarins = %\[ Atari previewer (96dpi) - mode_param (pixels_per_inch, 96); - mode_param (blacker, 0); - mode_param (fillin, 0); - mode_param (o_correction, 0.1); - mode_common_setup_; -enddef; -AtariNineSix := atarins; - -% From {\tt ee@dacth51.bitnet}. -mode_def atariotf = %\[ Atari ST SM 124 screen (101dpi) - mode_param (pixels_per_inch, 101); - mode_param (blacker, 0); - mode_param (fillin, 0); - mode_param (o_correction, .4); - mode_common_setup_; -enddef; -AtariSMOneTwoFour := atariotf; - -mode_def bitgraph = %\[ BBN Bitgraph (118dpi) - mode_param (pixels_per_inch, 118); - mode_param (blacker, .55); - mode_param (fillin, .1); - mode_param (o_correction, .3); - mode_common_setup_; -enddef; - -% From {\tt sjwright@cix.compulink.co.uk}, 9 February 1994. -mode_def bjtenex = %\[ Canon BubbleJet 10ex (360dpi) - mode_param (pixels_per_inch, 360); - mode_param (blacker, .6); - mode_param (fillin, 0); - mode_param (o_correction, .6); - mode_common_setup_; -enddef; - -% {\tt cgweav@eskimo.com} (Clayton Weaver), 4 February 1997. -% Might want to recheck |o_correction|, which could vary per unit. -mode_def bjtzzex = %\[ Canon BubbleJet 200ex (360 dpi) - mode_param (pixels_per_inch, 360); - mode_param (blacker, 1.2); - mode_param (fillin, .2); - mode_param (o_correction, 0); - mode_common_setup_; -enddef; - -% {\tt Alastair.Jenkins@nrsc.no}, 30 January 1997. -mode_def bjtzzs = %\[ Canon BubbleJet 200 (720x360dpi) - mode_param (pixels_per_inch, 720); - mode_param (aspect_ratio , 0.5); - mode_param (blacker, 0.0); - mode_param (fillin, 0); - mode_param (o_correction, 1.0); - mode_common_setup_; -enddef; - -% {\tt Alastair.Jenkins@nrsc.no}, 30 January 1997. -mode_def bjtzzl = %\[ BubbleJet 200 landscape (360x720 dpi) - bjtzzs_; - landscape; -enddef; - -mode_def boise = %\[ HP 2680A (180dpi) - mode_param (pixels_per_inch, 180); - mode_param (blacker, .55); - mode_param (fillin, .1); - mode_param (o_correction, .3); - mode_common_setup_; -enddef; - -% From {\tt Yves.Arrouye@imag.fr}. -mode_def canonbjc = %\[ Canon BJC-600 (360dpi) - mode_param (pixels_per_inch, 360); - mode_param (blacker, 0); - mode_param (fillin, 0); - mode_param (o_correction, .8); - mode_common_setup_; -enddef; -CanonBJCSixZeroZero := canonbjc; - -% From {\tt swartz@cs.wisc.edu}, 8 April 1993. The straightforward -% mode with |blacker=0|, |fillin=0|, |o_correction=1| seems to -% work fine for the Canon EX engine inside Apple's LaserWriter Pro 630. -% It produces light, clear lines and type. But {\tt ajcarr@ccvax.ucd.ie} -% sent in the revised values below on 12 December 1993, tested on -% the major CM fonts at 5, 7, and 10$\,$pt and producing slightly -% better results. -mode_def canonex = %\[ LaserWriter Pro 630 (600dpi) - mode_param (pixels_per_inch, 600); - mode_param (blacker, .2); - mode_param (fillin, .1); - mode_param (o_correction, .85); - mode_common_setup_; -enddef; -CanonEX := canonex; - -mode_def canonlbp = %\[ Symbolics LGP-10 (240dpi) - mode_param (pixels_per_inch, 240); - mode_param (blacker, .2); - mode_param (fillin, .2); - mode_param (o_correction, .4); - mode_common_setup_; -enddef; -CanonLBPTen := canonlbp; - -% This is really 1301.5; MF produces 1301, so use that. -mode_def cg = %\[ Compugraphic 8600 (1301x1569dpi) - mode_param (pixels_per_inch, 1301); - mode_param (aspect_ratio, 1569 / pixels_per_inch); - mode_param (blacker, .2); - mode_param (fillin, .2); - mode_param (o_correction, 1); - mode_common_setup_; -enddef; -CompugraphicEightSixZeroZero := cg; - -mode_def cgl = %\[ Compugraphic 8600 landscape (1569x1302dpi) - cg_; - landscape; -enddef; - -% These values from Linotype Linotronic [13]00 modified to 1200$\,$dpi. -% From {\tt wagman\%muse.hepnet@Csa2.LBL.Gov}. -mode_def cgnszz = %\[ Compugraphic 9600 (1200dpi) - mode_param (pixels_per_inch, 1200); - mode_param (blacker, .65); - mode_param (fillin, -.1); - mode_param (o_correction, .5); - mode_common_setup_; -enddef; -CompugraphicNineSixZeroZero := cgnszz; - -% This has a resolution of |5333 + 1/3| pixels per inch. -mode_def crs = %\[ Alphatype CRS (5333dpi) - mode_param (pixels_per_inch, 4000 + 4000/3); - mode_param (blacker, 4); - mode_param (fillin, 0); - mode_param (o_correction, 1); - mode_common_setup_; -enddef; - -% This applies to the LaserWriter Plus, HP Laserjet, HP Laserjet Plus, -% and also the Canon LBP-LX engine, in the Laserjet IIP, QMS 410, -% and Apple Personal LaserWriter, and also to the CanonSX engine, -% in the LaserWriter II family. And {\tt hammond@jila02.Colorado.EDU} -% says it works well for the ``enhanced-resolution'' LaserJet III. -% {\tt swartz@cs.wisc.edu} is developing a mode for the Canon EX engine -% inside an Apple Pro 630 printer. -mode_def cx = %\[ Canon CX, SX, LBP-LX (300dpi) - mode_param (pixels_per_inch, 300); - mode_param (blacker, 0); - mode_param (fillin, .2); - mode_param (o_correction, .6); - mode_common_setup_; -enddef; -CanonCX := cx; -corona := cx; -dp := cx; % some kind of DataProducts -hplaser := cx; -imagen := cx; -kyocera := cx; -laserwriter := cx; -% I have seen a claim the LaserJet II was the Canon SX -% write-white engine, but I don't think that's right. -laserjethi := cx; -laserjet := cx; -% {\tt ogawa@orion.arc.nasa.gov} says that this is definitely not a -% write-white engine, despite earlier versions of this file claiming -% the contrary. Thus, probably the same parameters as |cx| will do. -CanonSX := cx; -CanonLBPLX := cx; - -% At least magstep 2 is recommended at this low resolution. -mode_def datadisc = %\[ DataDisc (70dpi) - mode_param (pixels_per_inch, 70); - mode_param (blacker, 0); - mode_param (fillin, 0); - mode_param (o_correction, .2); - mode_common_setup_; -enddef; -DD := datadisc; - -mode_def newdd = %\[ DataDisc (70x93dpi) - mode_param (aspect_ratio, 4/3); - datadisc_; -enddef; -DataDiscNew := newdd; - -mode_def newddl = %\[ DataDisc landscape (93x70dpi) - newdd_; - landscape; -enddef; - -% From {\tt mcgrant@rascals.stanford.edu}. True resolution is 98.2236 -% by 102.4. See comments for |DECsmall| just above. -mode_def declarge = %\[ DEC 19-inch, 1280 x 1024 (100dpi) - mode_param (pixels_per_inch, 100); - mode_param (blacker, 0); - mode_param (fillin, 0); - mode_param (o_correction, 0); - mode_common_setup_; -enddef; -DEClarge := declarge; -elvira := declarge; - -% From {\tt mcgrant@rascals.stanford.edu}. True resolution is 78.1069 -% by 86.0612, but a square aspect ratio works better; furthermore, -% Computer Modern isn't prepared to deal with fractional pixel values. -mode_def decsmall = %\[ DEC 17-inch, 1024 x 768 (82dpi) - mode_param (pixels_per_inch, 82); - mode_param (blacker, 0); - mode_param (fillin, 0); - mode_param (o_correction, 0); - mode_common_setup_; -enddef; -DECsmall := decsmall; - -% From {\tt fieberjr@whitman.bitnet}. -mode_def deskjet = %\[ HP DeskJet 500 (300dpi) - mode_param (pixels_per_inch, 300); - mode_param (blacker, 0); - mode_param (fillin, 0); - mode_param (o_correction, .6); - mode_common_setup_; -enddef; -HPDeskJet := deskjet; - -% From {\tt stsmith@ll.mit.edu}, 10 May 93. -% With |fillin=0|, the diagonal of {\tt cmtt10}'s `z' is too thin. -% |blacker=.8| too thin, 2 too thick. -mode_def docutech = %\[ Xerox 8790 or 4045 (600dpi) - mode_param (pixels_per_inch, 600); - mode_param (blacker, 1); - mode_param (fillin, .1); - mode_param (o_correction, 0.9); - mode_common_setup_; -enddef; -XeroxDocutech := docutech; - -% From {\tt waits.mf}. -mode_def dover = %\[ Xerox Dover (384dpi) - mode_param (pixels_per_inch, 384); - mode_param (blacker, 1.2); - mode_param (fillin, 0); - mode_param (o_correction, .6); - mode_common_setup_; -enddef; - -% Reported by Silas Brown, 4 April 2003, via Debian bug 184875. -% {\tt dvips -Ppdf} wants 8000$\,$dpi fonts, so define a mode for that. -mode_def dpdfezzz = %\[ dvips -Ppdf (8000dpi) - mode_param (pixels_per_inch, 4000 * 2); - mode_param (blacker, 0); - mode_param (fillin, 0); - mode_param (o_correction, 1); - mode_common_setup_; -enddef; - -% {\tt ghibo@galileo.polito.it}, for the Amiga ShowDVI previewer. -mode_def eighthre = %\[ EightThree (83dpi) - mode_param (pixels_per_inch, 83); - mode_param (blacker, 0); - mode_param (fillin, 0); - mode_param (o_correction, .2); - mode_common_setup_; -enddef; -EightThree := eighthre; - -% {\tt arno.wagner@acm.org}, 25 November 1997. To print in 360dpi (much -% faster, but lower quality) use the |epstylus| mode instead. This -% printer seems to make smaller dots when printing at 720$\,$dpi and -% larger ones when printing at 360$\,$dpi. I tried 720x1440 resolution -% as well, but found it not worth the additional time. If you use -% Ghostscript, you need at least version 5.03 to support 720$\,$dpi on -% this printer. This mode may work with the Epson Stylus color 800 as -% well. I tested this mode with Matt Swift's test, found above. -% With |fillin| set to zero, the test had no `\' at 5$\,$pt. -% -mode_def epscszz = %\[ Epson Stylus Color 600 (720 dpi) - mode_param (pixels_per_inch, 720); - mode_param (blacker, .25); - mode_param (fillin, 0.5); - mode_param (o_correction, .8); - mode_common_setup_; -enddef; - -% From {\tt metcalf@catfish.LCS.MIT.EDU}, 5 Dec 1992. -mode_def epsdrft = %\[ Epson (120x72dpi) - mode_param (pixels_per_inch, 120); - mode_param (aspect_ratio, 72 / pixels_per_inch); - epson_; -enddef; -epsdraft := epsdrft; - -mode_def epsdrftl = %\[ Epson (72x120dpi) - epsdrft_; - landscape; -enddef; - -% From {\tt metcalf@catfish.LCS.MIT.EDU}, 5 Dec 1992. -mode_def epsfast = %\[ Epson fast (60x72dpi) - mode_param (pixels_per_inch, 60); - mode_param (aspect_ratio, 72 / pixels_per_inch); - epson_; -enddef; - -mode_def epsfastl = %\[ Epson fast landscape (72x60dpi) - epsfast_; - landscape; -enddef; - -% From Hippocrates Sendoukas {\tt }, 17 April 1999. -mode_def epsmed = %\[ Epson med MX/FX 9-pin (240x144dpi) - mode_param (pixels_per_inch, 240); - mode_param (aspect_ratio, 144 / pixels_per_inch); - epson_; -enddef; - -mode_def epsmedl = %\[ Epson med MX/FX 9-pin landscape (144x240dpi) - epsmed_; - landscape; -enddef; - -% These values from Charles Karney, {\sl TUGboat} 8(2), page 133. This -% is for the Epson MX/FX family (-85, -286), which are 9-pin printers. -% The 24-pin LQ family have higher resolutions; no one has sent me -% definitions for them yet. Ditto for Epson's laser printer. -% (Thanks to {\tt cargo@escargot.cray.com} for all this information.) -mode_def epson = %\[ Epson MX/FX 9-pin (240x216dpi) - mode_param (pixels_per_inch, 240); - mode_param (aspect_ratio, 216 / pixels_per_inch); - mode_param (blacker, 0); - mode_param (fillin, 0); - mode_param (o_correction, .2); - mode_common_setup_; -enddef; -EpsonMXFX := epson; -epshi := epson; -epsonfx := epson; - -mode_def epsonl = %\[ Epson MX/FX 9-pin landscape (216x240dpi) - epson_; - landscape; -enddef; - -% From {\tt sdh@po.cwru.edu}, 6 September 93. -% The modes |cx| and |HPLaserJetIIISi| are too spindly. -% This works (not awesome, o's and e's are slightly taller than -% they should be in large pt. fonts) on my Epson Action Laser 1500 -% with LaserJetIIIsi emulation and RITech (Epson's Resolution -% Enhancement). It might work for the model 1000 or some HP's. -mode_def epsonact = %\[ Epson Action Laser 1500 (300dpi) - mode_param (pixels_per_inch, 300); - mode_param (blacker, .8); - mode_param (fillin, 0); - mode_param (o_correction, 0.95); - mode_common_setup_; -enddef; -EpsonAction := epsonact; - -% Corrected to 216$\,$dpi vertically, 5 Dec 1992. -% From {\tt metcalf@catfish.LCS.MIT.EDU}. -mode_def epsonlo = %\[ Epson (120x216dpi) - mode_param (pixels_per_inch, 120); - mode_param (aspect_ratio, 216 / pixels_per_inch); - epson_; -enddef; -epslo := epsonlo; - -mode_def epsonlol = %\[ Epson landscape (216x120dpi) - epsonlo_; - landscape; -enddef; - -% From {\tt Sebastian\_Kirsch@kl.maus.de}, 19 April 1996. In comparison -% to some postscript fonts, the characters seemed to light with blacker -% 0, but much too heavy with a blacker greater than 1. I tried blacker -% .6 and finally settled for .7. All the other values are rather -% fictional, I didn't really test them out. -mode_def epsonsq = %\[ Epson SQ 870 (360dpi) - mode_param (proofing, 0) - mode_param (pixels_per_inch, 360); - mode_param (blacker, .7); - mode_param (fillin, .2); - mode_param (o_correction, .9); - mode_common_setup_; -enddef; -EpsonSQEightSevenZero := epsonsq; - -% Following three modes from {\tt marc@mpi.nl} (Marc Fleischeuers). -% I could not quite get the `z' diagonal to get as thin as the -% horizontal lines, even pushing |fillin| up to 0.8. This printer tends -% to make things lighter on lower resolutions so I compensate a little -% with increasing |blacker|. But not all the way, as this would fill in -% the little holes in the `e' and `s' at 5$\,$pt. Otherwise it's pretty -% cool, not as crisp as an |ljfour| but better than most inkjets I've seen. -mode_def epstypro = %\[ Epson Stylus Pro (360dpi) - mode_param (pixels_per_inch, 360); - mode_param (blacker, 0.2); - mode_param (fillin, 0.8); - mode_param (o_correction, 0); - mode_common_setup_; -enddef; -EpsonStylusPro := epstypro; - -mode_def epstyplo = %\[ Epson Stylus Pro (180dpi) - mode_param (pixels_per_inch, 180); - mode_param (blacker, .35); - mode_param (fillin, 0.8); - mode_param (o_correction, 0); - mode_common_setup_; -enddef; -EpsonStylusProLow := epstyplo; - -% Good time saver, almost as good as 720x720 but a lot faster. -mode_def epstypmd = %\[ Epson Stylus Pro (720x360dpi) - mode_param (pixels_per_inch, 720); - mode_param (aspect_ratio, 360 / pixels_per_inch); - mode_param (blacker, 0); - mode_param (fillin, 0.8); - mode_param (o_correction, 0); - mode_common_setup_; -enddef; -EpsonStylusProMed := epstypmd; - -mode_def epstypml = %\[ Epson Stylus Pro landscape (360x720dpi) - epstypmd_; - landscape; -enddef; -epstypmdl := epstypml; - -mode_def epswlo = %\[ Epson low MX/FX 9-pin (120x144dpi) - mode_param (pixels_per_inch, 120); - mode_param (aspect_ratio, 144 / pixels_per_inch); - epson_; -enddef; - -mode_def epswlol = %\[ Epson low MX/FX 9-pin landscape (144x120dpi) - epswlo_; - landscape; -enddef; - -mode_def esphi = %\[ Epson Stylus Pro (720dpi) - mode_param (pixels_per_inch, 720); - mode_param (blacker, 0); - mode_param (fillin, 0.8); - mode_param (o_correction, 1); - mode_common_setup_; -enddef; -EpsonStylusProHigh := esphi; - -% From {\tt Tobias.Guenzler@uni-konstanz.de}, 8 December 1994. -% -% The |blacker| parameter is the most critical; changing |o_correction| -% has lesser effect, and may also be increased or decreased somewhat. -% I tested this by comparing output with printouts of a HP LaserJet -% printer using the LJ fonts. This printer had the fancy resolution -% enhancement feature (RET) which makes the pixel steps almost -% invisible. I did most of the comparision with {\tt cmr12}, {\tt cmbx12}, -% {\tt cmr12} magstep2 and {\tt cmss9}. -% -% The Stylus printer is a ink printer, but it works with a piezo drive -% instead of a bubble jet. This may be the reason why it draws its lines -% very tiny and thin. At least the pixel diameters are very sharp and -% they are far away from that bulky dots produced by the needles of -% a NEC P6. -mode_def epstylus = %\[ Epson Stylus (360dpi) - mode_param (pixels_per_inch, 360); - mode_param (blacker, .35); - mode_param (fillin, 0); - mode_param (o_correction, .8); - mode_common_setup_; -enddef; - -% {\tt ghibo@galileo.polito.it}, for the Amiga ShowDVI previewer. -mode_def fourfour = %\[ FourFour (44dpi) - mode_param (pixels_per_inch, 44); - mode_param (blacker, 0.05); - mode_param (fillin, .1); - mode_param (o_correction, .2); - mode_common_setup_; -enddef; -FourFour := fourfour; - -% From {\tt drstrip@intvax.uucp}. -% Revised by {\tt dak@pool.informatik.rwth-aachen.de}, 24 May 1994. -mode_def gtfax = %\[ G3fax (204x196dpi) - mode_param (pixels_per_inch, 204); - mode_param (aspect_ratio, 196 / pixels_per_inch); - mode_param (blacker, 0); - mode_param (fillin, .2); - mode_param (o_correction, .2); - mode_common_setup_; -enddef; -GThreefax := gtfax; -gtfaxhi := GThreefax; - -mode_def gtfaxl = %\[ G3fax landscape (196x204dpi) - gtfax_; - landscape; -enddef; - -% From {\tt dak@pool.informatik.rwth-aachen.de}, 24 May 1994. -mode_def gtfaxlo = %\[ G3fax (204x98dpi) - mode_param (pixels_per_inch, 204); - mode_param (aspect_ratio, 98 / pixels_per_inch); - gtfax_; -enddef; - -mode_def gtfaxlol = %\[ G3fax landscape (98x204dpi) - gtfaxlo_; - landscape; -enddef; - -% {\tt ron@mlfarm.com}, 30 October 1995. -mode_def highfax = %\[ G3fax (200dpi) - mode_param (pixels_per_inch, 200); - mode_param (blacker, 0); - mode_param (fillin, .2); - mode_param (o_correction, .2); - mode_common_setup_; -enddef; -hifax := highfax; - -% {\tt brumski+@osu.edu}, 27 August 1993. -mode_def hprugged = %\[ HP RuggedWriter 480 (180dpi) - mode_param (pixels_per_inch, 180); - mode_param (blacker, .55); - mode_param (fillin, .1); - mode_param (o_correction, .3); - mode_common_setup_; -enddef; - -% Some general comments on the IBM printers, courtesy of {\tt rocky@panix.com}. -% -% IBM 3820's, 3825's, 3827's and 3835's have some sort of corner imaging -% or shading that the IBM 3812's and 3816's don't. The latter two models -% may get this feature in the future. -% -% The IBM 3827 is made by Kodak, the rest are IBM engines. -% -% Some of the other printers have a knob that allows a service engineer -% to set one of up to ten levels of darkness. At IBM Research, we run -% very black. The service engineer sets the level by running a completely -% black page and then two completely blank ones. The black page -% must be black and the following two must be completely white. -% -% Thanks to Jim Hafner ({\tt hafner@ibm.com}) for experimenting with -% |blacker|, and Paul Dantzig for information about these printers. -% -% From {\tt ARNALDO@RIOSC.bitnet}. This is for the 3820, but can be used -% for 3812, 3816, 3825, 3837 3800 and 3827 printers (these are all -% 240$\,$pels IBM printers that use the same font format when driven -% by PSF/VM). -mode_def ibm_a = %\[ IBM 38xx (240dpi) - mode_param (pixels_per_inch, 240); - mode_param (blacker, .35); - mode_param (fillin, -.2); - mode_param (o_correction, .2); - mode_common_setup_; -enddef; - -% From {\tt rocky@panix.com}. For the typewriter, slanted, and italic -% fonts, |blacker=0| makes the `M's and `W's more legible. But then -% the weight of the font does not match the others. -mode_def ibmd = %\[ IBM 38xx (240dpi) - mode_param (pixels_per_inch, 240); - mode_param (blacker, .3); - mode_param (fillin, .4); - mode_param (o_correction, .75); - mode_common_setup_; -enddef; - -% These values from {\tt melvin@math.psu.edu}. -mode_def ibmega = %\[ IBM EGA monitor (96x81dpi) - mode_param (pixels_per_inch, 96); - mode_param (aspect_ratio, .841); - mode_param (blacker, .3); - mode_param (fillin, 0); - mode_param (o_correction, 0); - mode_common_setup_; -enddef; - -mode_def ibmegal = %\[ IBM EGA monitor landscape (81x96dpi) - ibmega_; - landscape; -enddef; - -% From {\tt sperber@provence.informatik.uni-tuebingen.de}, 30 October 1993. -% The difference of 0.1 in |blacker| really does make a difference. -mode_def ibmfzon = %\[ IBM 4019 (300dpi) - mode_param (pixels_per_inch, 300); - mode_param (blacker, .1); - mode_param (fillin, 0); - mode_param (o_correction, .75); - mode_param (blacker_min, 2); - mode_common_setup_; - mode_write_white_setup_; -enddef; -IBMFourZeroOneNine := ibmfzon; - -% From {\tt rocky@panix.com}. The print engine is made by Lexmark. The -% printing person I asked, Paul Dantzig, says that the print quality of -% the 4019 is fairly regular. Unlike the IBM 4216's, to his knowledge -% only there is only one print engine by Lexmar has been ever used in -% the 4019. And unlike the IBM 4029, there are not knobs on the inside -% that would permit one to adjust the blacker to ones taste. -% -% While both RicohA and cx modes settings are acceptable, it looks -% to me that the RicohA fonts are superior. I base this judgement on -% tops and bottoms of curves on {\tt cmr10} such as `S', `U' `e' `o' and -% the apostrophes. This effect is especially noticeable in a small font -% like {\tt cmr6}. -% -% If you want to experiment with another setting, I'd start with |RicohA| -% and set |blacker| to .1 or 0 instead of .2 but definitely keep -% |mode_write_white_setup_|; I'd leave |fillin| and |o_correction| unchanged. -% -% From {\tt vumalki\%weizmann.weizmann.ac.il@taunivm.tau.ac.il} -% and {\tt plotkin@theory.stanford.edu}. -% -% {\tt hafner@almaden.ibm.com} (Jim Hafner) reports that this works fine -% for the Lexmark 4039, a.k.a.\ IBM 4039, as along as the ``Printer -% Darkness'' control is set to ``darker''. -% -mode_def ibmfztn = %\[ IBM 4029-30-39, 4250 (600dpi) - mode_param (pixels_per_inch, 600); - mode_param (blacker, .05); - mode_param (fillin, 0); - mode_param (o_correction, .75); - mode_common_setup_; -enddef; -IBMFourZeroTwoNine := ibmfztn; -IBMFourTwoThreeZero := ibmfztn; -IBMFourTwoFiveZero := ibmfztn; -IBMFourZeroThreeNine := ibmfztn; -LexmarkFourZeroThreeNine := ibmfztn; - -% From Rick Simpson via {\tt erikjan@icce.rug.nl}. -mode_def ibmpp = %\[ IBM ProPrinter (240x216dpi) - mode_param (pixels_per_inch, 240); - mode_param (aspect_ratio, 216 / pixels_per_inch); - mode_param (blacker, 0); - mode_param (fillin, .2); - mode_param (o_correction, 1); - mode_common_setup_; -enddef; -IBMProPrinter := ibmpp; -proprinter := IBMProPrinter; - -mode_def ibmppl = %\[ IBM ProPrinter (216x240dpi) - ibmpp_; - landscape; -enddef; - -% From Rick Simpson via {\tt erikjan@icce.rug.nl}. Also gave values -% of zero for |blacker|, |fillin|, and |o_correction|. -mode_def ibmsoff = %\[ IBM 6154 display (118dpi) - mode_param (pixels_per_inch, 118); - mode_param (blacker, .8); - mode_param (fillin, .2); - mode_param (o_correction, 1); - mode_common_setup_; -enddef; -IBMSixOneFiveFour := ibmsoff; - -% From {\tt rocky@panix.com}. This is an old, untested definition. -mode_def sherpa = %\[ IBM 6670 (Sherpa) (240dpi) - mode_param (pixels_per_inch, 240); - mode_param (blacker, 1); - mode_param (blacker_min, 2); - mode_param (fillin, 1); - mode_param (o_correction, .5); - mode_common_setup_; - mode_write_white_setup_; -enddef; -IBMSixSixSevenZero := sherpa; - -% From {\tt vumalki\%weizmann.weizmann.ac.il@taunivm.tau.ac.il}. -mode_def ibmteot = %\[ IBM 3812 (240dpi) - mode_param (pixels_per_inch, 240); - mode_param (blacker, .6); - mode_param (blacker_min, 2); - mode_param (fillin, .4); - mode_param (o_correction, 0); - mode_common_setup_; - mode_write_white_setup_; -enddef; -IBMThreeEightOneTwo := ibmteot; -IBMUlfHolleberg := IBMThreeEightOneTwo; - -% These values from {\tt d\_webb@chcc.harwell.aea-technology.uk}. -mode_def ibmtetz = %\[ IBM 3820 (240dpi) - mode_param (pixels_per_inch, 240); - mode_param (blacker, .78); - mode_param (fillin, .25); - mode_param (o_correction, .5); - mode_common_setup_; -enddef; -IBMThreeEightTwoZero := ibmtetz; - -% From {\tt x92@vm.urz-uni-heidelberg.de} via {\tt schoepf@sc.zib-berlin.de}. -mode_def ibmtont = %\[ IBM 3193 screen (100dpi) - mode_param (pixels_per_inch, 100); - mode_param (blacker, 0); - mode_param (fillin, 0); - mode_param (o_correction, 0); - mode_common_setup_; -enddef; -IBMThreeOneNineThree := ibmtont; - -% From {\tt x92@vm.urz-uni-heidelberg.de} via {\tt schoepf@sc.zib-berlin.de}. -mode_def ibmtosn = %\[ IBM 3179 screen (87x65dpi) - mode_param (pixels_per_inch, 87); - mode_param (aspect_ratio, 0.75); - mode_param (blacker, 0); - mode_param (fillin, 0); - mode_param (o_correction, 0); - mode_common_setup_; -enddef; -IBMThreeOneSevenNine := ibmtosn; - -mode_def ibmtosnl = %\[ IBM 3179 screen landscape (65x87dpi) - ibmtosn_; - landscape; -enddef; - -% These values from {\tt d\_webb@chcc.harwell.aea-technology.uk}. -% {\tt melvin@math.psu.edu} thinks |pixels_per_inch=96| might be better. -mode_def ibmvga = %\[ IBM VGA monitor (110dpi) - mode_param (pixels_per_inch, 110); - mode_param (blacker, .3); - mode_param (fillin, 0); - mode_param (o_correction, 0); - mode_common_setup_; -enddef; - -% The Chelgraph IBX is the machine introduced to North American \TeX\ -% users by Type~2000 in Mill Valley, California; telephone (415)~388-8873. -% Since the machine's stated output resolution is only 2000$\,$dpi -% this truly spectacular 9600$\,$dpi must be used for translation to -% an outline font description. This has been tested and used in a -% publication of the University of Washington Press. These values -% from Pierre MacKay, based on Lance Carnes' crs values, at magstep~1.8. -mode_def ibx = %\[ Chelgraph IBX (9600dpi) - mode_param (pixels_per_inch, 4000 + 4000 + 1600); - mode_param (blacker, 4); - mode_param (fillin, 0); - mode_param (o_correction, 1); - mode_common_setup_; -enddef; -ChelgraphIBX := ibx; - -% From {\tt local.mf} via {\tt cudat@cu.warwick.ac.uk}. -mode_def itoh = %\[ CItoh 8510A (160x144dpi) - mode_param (pixels_per_inch, 160); - mode_param (aspect_ratio, 144 / pixels_per_inch); - mode_param (blacker, 0); - mode_param (fillin, 0); - mode_param (o_correction, .1); - mode_common_setup_; -enddef; -CItohEightFiveOneZero := itoh; - -mode_def itohl = %\[ CItoh 8510A landscape (144x160dpi) - itoh_; - landscape; -enddef; - -% From {\tt rokicki@cs.umb.edu}. -mode_def itohtoz = %\[ CItoh 310 (240x144dpi) - mode_param (pixels_per_inch, 240); - mode_param (aspect_ratio, 144 / pixels_per_inch); - mode_param (blacker, 0); - mode_param (fillin, 0); - mode_param (o_correction, .2); - mode_common_setup_; -enddef; -citohtoz := itohtoz; -CItohThreeOneZero := itohtoz; -cthreeten := itohtoz; - -mode_def itohtozl = %\[ CItoh 310 landscape (144x240dpi) - itohtoz_; - landscape; -enddef; - -% Perhaps the value for |fillin| should be 0. -mode_def iw = %\[ Apple ImageWriter (144dpi) - mode_param (pixels_per_inch, 144); - mode_param (blacker, 0); - mode_param (fillin, 0.3); - mode_param (o_correction, .2); - mode_common_setup_; -enddef; -imagewriter := iw; - -% From {\tt stsmith@ll.mit.edu}, 20 August 93. -% The mode |cx| is too spindly. -mode_def jetiiisi = %\[ HP Laser Jet IIISi (300dpi) - mode_param (pixels_per_inch, 300); - mode_param (blacker, .2); - mode_param (fillin, 0); - mode_param (o_correction, .7); - mode_common_setup_; -enddef; -HPLaserJetIIISi := jetiiisi; - -% From John Sauter. -mode_def lasf = %\[ DEC LA75 (144dpi) - mode_param (pixels_per_inch, 144); - mode_param (blacker, .3); - mode_param (fillin, -.1); - mode_param (o_correction, 0); - mode_common_setup_; -enddef; -LASevenFive := lasf; - -% Michael Covington's ({\tt mcovingt@ai.uga.edu}) definition for the -% Lexmark Optra R (4049), reflecting a taste for a heavier than -% normal rendition of the Computer Modern fonts. -% -% You may prefer a lesser value of blacker (down to maybe 1.0). -% Initially tested on 10, 12, 17-point CMR and 10-point math italic. -% -% While we're talking about the Optra R, here's another useful fact: -% it takes 32-bit-wide 72-pin SIMMs, 70 or 80 ns. Contrary to the -% documentation, you do not have to use IBM's special SIMMs. -% -% The resolution of 1200 and the |blacker| value of 3 causes {\tt cmbsy7} -% to be generated with incorrect arrows and radical sign. The -% |vtftzzlo| mode also fails. Decreasing |blacker| to 2 works around. -% From {\tt infovore@xs4all.nl} (Olaf Weber) and Henrik Schmiediche. -% -mode_def lexmarkr = %\[ Lexmark Optra R 4049 (1200dpi) - mode_param (pixels_per_inch, 1200); - mode_param (blacker, 2); % used to be 3; works around {\tt cmbsy7} bug - mode_param (fillin, 0); - mode_param (o_correction, 1); - mode_common_setup_; -enddef; -LexmarkOptraR := lexmarkr; - -% Klaus Guntermann {\tt }. -% 19 January 1998. Mode for a Lexmark Optra S laser printer in true -% 1200dpi mode. This printer model seems to be the successor of the -% Optra R series above. -% -mode_def lexmarks = %\[ Lexmark Optra S 1250/1650/2450 (1200dpi) - mode_param (pixels_per_inch, 1200); - mode_param (blacker, 1); - mode_param (fillin, 0); - mode_param (o_correction, 1); - mode_common_setup_; -enddef; -LexmarkOptraS := lexmarks; - -% {\tt uri@watson.ibm.com} (Uri Blumenthal), 9 March 1997. -% This is really a 1200$\,$dpi printer, but it can be operated in 600dpi mode. -mode_def lexmarku = %\[ Lexmark Optra R+ 4049 (600dpi) - mode_param (pixels_per_inch, 600); - mode_param (blacker, .5); - mode_param (fillin, 0); - mode_param (o_correction, .75); - mode_param (tracingtitles, 0); - mode_common_setup_; -enddef; - -mode_def linolo = %\[ Linotype Linotronic [13]00 (635dpi) - mode_param (pixels_per_inch, 635); - linoone_; -enddef; -LinotypeOneZeroZeroLo := linolo; -linohalf := LinotypeOneZeroZeroLo; - -% Mode for Linotype Linotronic L-330 with a RIP-50 raster. -% From: Steven T. Smith {\tt stsmith@ll.mit.edu}, 26 October 95. -mode_def linolttz = %\[ Linotronic L-300 with RIP-50 (3386dpi) - mode_param (pixels_per_inch, 3386); - mode_param (blacker, 0); - mode_param (o_correction, 1); - mode_param (fillin, 0); - mode_common_setup_; -enddef; -LinotypeLThreeThreeZero := linolttz; - -% These values from {\tt d\_webb@chcc.harwell.aea-technology.uk}. -% The `a' in {\tt cmr5} looks better with |blacker=.3|. Values of .2 -% for both |blacker| and |fillin| have also been used. -mode_def linoone = %\[ Linotronic [13]00 (1270dpi) - mode_param (pixels_per_inch, 1270); - mode_param (blacker, .65); - mode_param (o_correction, 1); - mode_param (fillin, -.1); - mode_common_setup_; -enddef; -LinotypeOneZeroZero := linoone; -linohi := LinotypeOneZeroZero; -linothreelo := LinotypeOneZeroZero; - -% These values from {\tt d\_webb@chcc.harwell.aea-technology.uk}. -mode_def linotzzh = %\[ Linotype Linotronic 300 (2540dpi) - mode_param (pixels_per_inch, 2540); - mode_param (blacker, .2); % Copied from |aps|---conjectural. - mode_param (fillin, .2); % (ditto) - mode_param (o_correction, 1); % (ditto) - mode_common_setup_; -enddef; -linothree := linotzzh; -LinotypeThreeZeroZeroHi := linotzzh; -linosuper := linotzzh; - -% (From Matt Swift {\tt swift@alum.mit.edu}, 1 Jan 1996.) This is a mode for -% the HP LaserJet 5P, using dvipsk-5.58f and gs-2.6.2. I tuned it using -% the file modetest.tex. The first sweep was (b,f,o) = (0, {0, .3, .6}, -% 0). The diagonal of 10$\,$pt lowercase z was too thin at .6, too thick -% at 0. The second sweep was ({.4, .5, .6, .7}, .3, 0). At .6, the 5$\,$pt -% small-cap lower-case A was on the verge of being filled in, but .6 is -% a reasonable value. Blacker .4 looked a little spindly for many of -% the 5$\,$pt fonts, especially italic and small-cap. The next sweep was -% (.5, .3, {0, .4, .7, 1}). The sides of the 14$\,$pt upper-case O -% (especially roman and small-cap) are relatively fatter with -% o-correction 0 as opposed to 1. Almost every other mode for 600$\,$dpi -% printers has 1, so I'm going with that. -% -mode_def ljfive = %\[ HP LaserJet 5 (600dpi) - mode_param (pixels_per_inch, 600); - mode_param (blacker, .75); - mode_param (fillin, .3); - mode_param (o_correction, 1); - mode_common_setup_; -enddef; -laserjetfive := ljfive; - -% From Michael Neuhauser {\tt neuhauser@eiunix.tuwien.ac.at}. This is a -% mode for HP LaserJet 5MP. I started with ljfive and found the Computer -% Modern fonts much too black. Therefore I experimented with different -% values of |blacker| to find .4 to be best. -mode_def ljfivemp = %\[ HP LaserJet 5MP (600 dpi) - mode_param (pixels_per_inch, 600); - mode_param (blacker, .4); - mode_param (fillin, .3); - mode_param (o_correction, 1); - mode_common_setup_; -enddef; -laserjetfivemp := ljfivemp; -% There have been many modes for the LaserJet 4. The current values were -% found by {\tt kb@tug.org} to be reasonable on a LaserJet 4MP -% (at the default density setting, with resolution enhacement enabled). -% I don't intend to change them again (unless someone convinces me -% that they are truly mistaken in some way), although I would consider adding -% different modes for other LaserJet 4 printers, if people contribute them. -% -% ({\tt cthiele@ccs.carleton.ca} gets better results with the density -% setting on the printer at 4, instead of 3.) -% -% The first LaserJet 4 mode came from {\tt tonnie@ctrl.phys.tue.nl}, -% 13 January 1993, with |blacker=0|, |fillin=0|, and |o_correction=.6|. -% (This definition was forwarded to me by Barbara Beeton, and was -% intended to be preliminary.) -% -% {\tt fj@iesd.auc.dk} says that |IBMFourZeroTwoNine| works fine. -% -% {\tt mbr@research.nj.nec.com} supplied another set of values: -% |blacker=.6|, |fillin=0|, and |o_correction=1|. He writes: -% I've tested it extensively at 10$\,$pt and 12$\,$pt in both roman, italic, -% and bold, and I've checked all the standard smaller sizes (5, 6, 7, 8, -% and 9$\,$pt). Works reasonably well on both the LaserJet 4 and the 4si, -% although characters come out somewhat lighter on the 4si. Assumes -% that the density controls are set to their default values and that the -% resolution enhancement feature is enabled. The |blacker| value was -% chosen to make 12$\,$pt text look good; for 10$\,$pt text, set |blacker=.66|. -% -% I felt the output with |blacker=.6| was too dark; Computer Modern -% was never intended to be as dark as it appears on 300$\,$dpi printers. -% So I've decreased |blacker| to the value below. The other parameters -% don't seem to matter much. (Even |blacker| doesn't matter all -% {\it that} much.) -% -% Works for a 600$\,$dpi Accel-a-Writer {\tt mackay@cs.washington.edu}, -% 16 August 95. -% -% Possibly also usable for the LaserJet 6 family. -% From {\tt chj@lin.foa.se} (Christian Jvnsson), 29 January 1997. -% -mode_def ljfour = %\[ HP LaserJet 4 (600dpi) - mode_param (pixels_per_inch, 600); - mode_param (blacker, .25); - mode_param (fillin, 0); - mode_param (o_correction, 1); - mode_common_setup_; -enddef; -laserjetfour := ljfour; -% {\tt fn@junior.mathtok.polymtl.ca} uses this for the QMS-860. -qmsesz := ljfour; -% {\tt pete@lovelace.thi.informatik.uni-frankfurt.de} uses this for the -% Apple Laserwriter Select 360, with a Fuji Xerox Xerographic engine. -aselect := ljfour; - -% {\tt jrenkema@worldonline.nl}, 2 January 1998. The LaserJet 5M -% |mode_def|, |blacker=.35|, had very light output on the 4000. The -% |blacker=2| setting results in output comparable to the LaserJet 5M -% with |blacker=.35|. It is also noteworthy that in the ProRes 1200 mode -% HP's resolution enhancement technology (RET) is not used, thus output -% is exactly according to \MF. But perhaps |blacker=2| is too much, as -% Computer Modern is supposed to be pretty light. -mode_def ljfzzz = %\[ LaserJet 4000N, ProRes mode (1200dpi) - mode_param (pixels_per_inch, 1200); - mode_param (blacker, 1); - mode_param (fillin, .1); - mode_param (o_correction, 1); - mode_common_setup_; -enddef; -laserjetfourzerozerozero := ljfzzz; -laserjetfourthousand := ljfzzz; - -% {\tt Nicolai Langfeldt }, 16 May 1998. -% This is for the default 16ppm 600dpi mode. -% -mode_def ljfzzzfr = %\[ HP LaserJet 4000 FastRes (600dpi) - mode_param (pixels_per_inch, 600); - mode_param (blacker, 0); - mode_param (fillin, .2); - mode_param (o_correction, 1); - mode_common_setup_; -enddef; - -% From {\tt ST-TeX.MF} via {\tt braams@pttrnl.nl}. (The 300dpi LaserJet -% is another |cx|.) -mode_def ljlo = %\[ HP LaserJet (150dpi) - mode_param (pixels_per_inch, 150); - mode_param (blacker, 0); - mode_param (fillin, .1); - mode_param (o_correction, 1); - mode_common_setup_; -enddef; -laserjetlo := ljlo; - -% {\tt Niko Sauer }, 11 October 2000. -% Here are modes developed for and tested on the HP LaserJet 2100T/TN. -% Mode ljtozz is for a resolution of 1200dpi, and ljtozzfr for 600dpi -% Tradeoffs between |fillin| and |blacker| resulted in very clear, -% sharp renderings of Computer Modern fonts which appears to be -% preferable to what the modes ljfzzz ljfzzzfr for HP LaserJet 4000 -% yield on this printer. Preferences were tested by scrutiny of the -% results by sample of people in the vicinity. -% -mode_def ljtozz = %\[ HP LaserJet 2100T/TN (1200dpi) - mode_param (pixels_per_inch, 1200); - mode_param (blacker, .7); - mode_param (fillin, .15); - mode_param (o_correction, 1); - mode_common_setup_; -enddef; -laserjettwoonezerozero:=ljtozz; -% -mode_def ljtozzfr = %\[ HP LaserJet 2100T/TN (600dpi) - mode_param (pixels_per_inch, 600); - mode_param (blacker, .25); - mode_param (fillin, .3); - mode_param (o_correction, 1); - mode_common_setup_; -enddef; -laserjettwoonezerozerofastres:=ljtozzfr; - -% From {\tt mackay@cs.washington.edu}, 13 January 1993. The actual -% machine resolution of this machine is $1000 \times 400$, but it is -% adjusted with the aid of software so that a $1000 \times 1000$ PK file -% is used. The |o_correction|, however, seems grossly overdone if -% the expected value of at or near unity is applied (on the grounds -% that a 1000$\,$dpi font should be able to do full o-correction). -% Apparently the 400$\,$dpi physical resolution has some effect here. -% In any case, |o_correction=0.4| looks better, and lines up with -% about the right optical adjustment on curves. Tested at American -% School of Classical Studies Publications on 18 July, 1992. -mode_def lmaster = %\[ LaserMaster (1000dpi) - mode_param (pixels_per_inch, 1000); - mode_param (blacker, 0.2); - mode_param (fillin, 0.0); - mode_param (o_correction, 0.4); - mode_common_setup_; -enddef; -lasermaster := lmaster; - -% From {\tt fran@hexamon.demon.co.uk}, 10 March 1996. I tried the entry -% in modes.mf for a DEC LN03. This turned out much too dark---everything -% looks bold. I did try sending write-black fonts to this printer, the -% hairlines disappear. I don't know if these printers have a -% blackness knob $\ldots$ -mode_def lnotr = %\[ DEC LN03R Scriptprinter (300dpi) - mode_param (pixels_per_inch, 300); - mode_param (blacker, 0); - mode_param (blacker_min, 2); - mode_param (fillin, -.6); - mode_param (o_correction, .5); - mode_common_setup_; - mode_write_white_setup_; -enddef; -LNOthreR := lnotr; - -% From Richard Watson at the Queensland Institute of Technology. This -% printer is said to have some kind of Xerox engine, but I don't know which. -mode_def lnzo = %\[ DEC LN01 (300dpi) - mode_param (pixels_per_inch, 300); - mode_param (blacker, .9); - mode_param (blacker_min, 2); - mode_param (fillin, 0); - mode_param (o_correction, .5); - mode_common_setup_; - mode_write_white_setup_; -enddef; -LNZeroOne := lnzo; -lps := lnzo; -LPSFourZero := lnzo; - -% From {\tt hammond@jila.Colorado.EDU}, 21 January 1993. Modified from -% |qms|. Prints exactly like the QMS fonts from Northlake Software. -mode_def lpstz = %\[ DEC lps20 (300dpi) - mode_param (pixels_per_inch, 300); - mode_param (blacker, .6); - mode_param (fillin, -.3); - mode_param (o_correction, .6); - mode_common_setup_; -enddef; -LPSTwoZero := lpstz; - -mode_def lqlores = %\[ Epson LQ-500 (180dpi) - mode_param (pixels_per_inch, 180); - mode_param (blacker, 0); - mode_param (fillin, 0); - mode_param (o_correction, .1); - mode_common_setup_; -enddef; -EpsonLQFiveZeroZeroLo := lqlores; - -% This and |EpsonLQFiveZeroZeroLo| also work for a Mannesmann 300 -% (from {\tt cudat@csv.warwick.ac.uk}, 4 September 1991). The $360\times360$ -% modes for these printers fails for {\tt cudat}, however. -mode_def lqmed = %\[ Epson LQ-500 (360x180dpi) - mode_param (pixels_per_inch, 360); - mode_param (aspect_ratio, 180 / pixels_per_inch); - mode_param (blacker, 0); % 0.3 avoids `holes'. - mode_param (fillin, 0); - mode_param (o_correction, .1); - mode_common_setup_; -enddef; -lqmedres := lqmed; -EpsonLQFiveZeroZeroMed := lqmed; - -mode_def lqmedl = %\[ Epson LQ-500 landscape (180x360dpi) - lqmed_; - landscape; -enddef; - -% These values from {\tt karl@cs.umb.edu}. |blacker = .8| or more -% thickens dots, to their detriment. |blacker = .6| produces two-pixel -% stems, which looks pretty good for {\tt cmr}, but it's a little dark -% for {\tt cmti}, and {\tt cmbx} and {\tt cmr} then turn out the same. -% |o_correction = 1| made no difference. |fillin = 1| made no -% difference. -mode_def lview = %\[ Sigma L-View monitor (118x109dpi) - mode_param (pixels_per_inch, 118.06); - mode_param (aspect_ratio, 109.25 / pixels_per_inch); - mode_param (blacker, 0); - mode_param (fillin, 0); - mode_param (o_correction, 0); - mode_common_setup_; -enddef; - -mode_def lviewl = %\[ Sigma L-View monitor landscape (109x118dpi) - lview_; - landscape; -enddef; - -% From {\tt Pierre.Soille@ipk.fhg.de}, 13 February 1995. -% This printer also runs at 300$\,$dpi (try |cx|), 400$\,$dpi (|next|), -% and 600$\,$dpi (|ljfour|). -mode_def lwpro = %\[ Apple LaserWriterPro 810 (800dpi) - mode_param (pixels_per_inch, 800); - mode_param (blacker, 0); - mode_param (fillin, 0); - mode_param (o_correction, 1); - mode_common_setup_; -enddef; - -% This is untested. -mode_def macmag = %\[ Mac screens at magstep 1 (86dpi) - mode_param (pixels_per_inch, 86.4); - mode_param (blacker, .35); - mode_param (fillin, .1); - mode_param (o_correction, .3); - mode_common_setup_; -enddef; - -% From the VMS distribution tape (except {\tt karl@cs.umb.edu} changed -% the |o_correction| to zero). -mode_def mactrue = %\[ Mac screen (72dpi) - mode_param (pixels_per_inch, 72); - mode_param (blacker, 0); - mode_param (fillin, 0); - mode_param (o_correction, 0); - mode_common_setup_; -enddef; -MacTrueSize := mactrue; - -% From {\tt mcgrant@rascals.stanford.edu}, 17 December 1992. -% Various other values made little difference. -mode_def ncd = %\[ NCD 19-inch (95dpi) - mode_param (pixels_per_inch, 95); - mode_param (blacker, 0); - mode_param (fillin, 0); - mode_param (o_correction, 0); - mode_common_setup_; -enddef; - -% From {\tt rokicki@neon.stanford.edu}. -mode_def nec = %\[ NEC (180dpi) - mode_param (pixels_per_inch, 180); - mode_param (blacker, 0); - mode_param (fillin, 0); - mode_param (o_correction, .2); - mode_common_setup_; -enddef; - -% This is the same as |cx|, except for the resolution. -mode_def nechi = %\[ NEC-P6 (360dpi) - mode_param (pixels_per_inch, 360); - cx_; -enddef; -lqhires := nechi; - -% {\tt fkr@tooyoo1.l.u-tokyo.ac.jp}, 7 June 1995. -mode_def neclm = %\[ NEC PC-PR406LM (320dpi) - mode_param (pixels_per_inch, 320); - mode_param (blacker, .1); - mode_param (fillin, 0); - mode_param (o_correction, .6); - mode_common_setup_; -enddef; - -% {\tt fkr@tooyoo1.l.u-tokyo.ac.jp}, 7 June 1995. -mode_def nectzo = %\[ NEC PC-PR201 series (160dpi) - mode_param (pixels_per_inch, 160); - mode_param (blacker, 0); - mode_param (fillin, 0); - mode_param (o_correction, .2); - mode_common_setup_; -enddef; -NecTwoZeroOne := nectzo; - -% From {\tt rokicki@neon.stanford.edu}. -mode_def nexthi = %\[ NeXT Newgen (400dpi) - mode_param (pixels_per_inch, 400); - cx_; -enddef; -NeXTprinter := nexthi; -Newgen := nexthi; % From {\tt lambert@silver.cs.umanitoba.ca}. - -% From {\tt rokicki@neon.stanford.edu}. -mode_def nextscrn = %\[ NeXT monitor (100dpi) - mode_param (pixels_per_inch, 100); - mode_param (blacker, 0); - mode_param (fillin, 0); - mode_param (o_correction, 0); - mode_common_setup_; -enddef; -NeXTscreen := nextscrn; -nextscreen := nextscrn; - -% {\tt ghibo@galileo.polito.it}, for the Amiga ShowDVI previewer. -mode_def nineone = %\[ NineOne (91x91) (91dpi) - mode_param (pixels_per_inch, 91); - mode_param (blacker, 0); - mode_param (fillin, 0); - mode_param (o_correction, .2); - mode_common_setup_; -enddef; -NineOne := nineone; - -% From {\tt jbotz@mtholyoke.edu}, 21 April 1993. -% Make TFM files only. -mode_def nullmode = %\[ TFM files only (101dpi) - % The resolution is irrelevant, but \MF\ always ships out - % characters, so don't use the default huge |proof| resolution. - mode_param (pixels_per_inch, 101); - mode_param (proofing, -1); - mode_param (fontmaking, 1); -enddef; - -% {\tt ghibo@galileo.polito.it}, for the Amiga ShowDVI previewer. -mode_def onetz = %\[ OneTwoZero (120/120) (120dpi) - mode_param (pixels_per_inch, 120); - mode_param (blacker, 0); - mode_param (fillin, 0); - mode_param (o_correction, .2); - mode_common_setup_; -enddef; -OneTwoZero := onetz; - -% From {\tt deby@cs.utwente.nl} and {\tt issue@vax.oxford.ac.uk}. -mode_def ocessfz = %\[ OCE 6750-PS (508dpi) - mode_param (pixels_per_inch, 508); - mode_param (blacker, 0); - mode_param (fillin, 0); - mode_param (o_correction, .7); - mode_common_setup_; -enddef; -OCESixSevenFiveZeroPS := ocessfz; - -% From {\tt rokicki@neon.stanford.edu}. -mode_def okidata = %\[ Okidata (240x288dpi) - mode_param (pixels_per_inch, 240); - mode_param (aspect_ratio, 288 / pixels_per_inch); - mode_param (blacker, 0); - mode_param (fillin, 0); - mode_param (o_correction, .2); - mode_common_setup_; -enddef; -okihi := okidata; - -mode_def okidatal = %\[ Okidata landscape (288x240dpi) - okidata_; - landscape; -enddef; - -% {\tt roussel@henri.chem.uleth.ca}. For the dark smoothing mode. -mode_def okifte = %\[ Okidata 410e in 600DPI mode (600dpi) - mode_param (pixels_per_inch, 600); - mode_param (blacker, .6); - mode_param (fillin, .1); - mode_param (o_correction, .85); - mode_common_setup_; -enddef; -okifourten := okifte; - -% From {\tt AMSmodes.def}. -mode_def pcscreen = %\[ also, e.g., high-resolution Suns (118dpi) - mode_param (pixels_per_inch, 118); - mode_param (blacker, .5); - mode_param (fillin, .1); - mode_param (o_correction, .3); - mode_common_setup_; -enddef; - -% {\tt fkr@tooyoo1.l.u-tokyo.ac.jp}, 7 June 1995. With the existing -% |bitgraph| and |pcscreen| modes, `m' looks bad: a long vertical -% line extends higher than the letter itself. -mode_def pcprevw = %\[ PC screen preview (118dpi) - mode_param (pixels_per_inch, 118); - mode_param (blacker, .2); - mode_param (fillin, 0); - mode_param (o_correction, .2); - mode_common_setup_; -enddef; - -% Tektronix Color PostScript printer, from {\tt craig@sunspot@noao.edu} -% on 14 January 1993. He writes: This is a thermal wax paper printer. -% The values were determined using the {\tt cmr10} and {\tt cmti10} fonts. -% The generated fonts look reasonable, although vertical lines and -% things like the {\tt [}, {\tt ]}, and {\tt /} characters are pretty thin. -mode_def phaser = %\[ Tektronix Phaser PXi (300dpi) - mode_param (pixels_per_inch, 300); - mode_param (blacker, 1.1); - mode_param (fillin, 0); - mode_param (o_correction, 1); - mode_common_setup_; -enddef; - -% From {\tt metod.kozelj@rzs-hm.si} (Metod Kozelj), 30 July 1998. -% Parameters other than |blacker| have little effect. -mode_def phaserfs = %\[ Tektronix Phaser 560 (1200dpi) - mode_param (pixels_per_inch, 1200); - mode_param (blacker, 0); - mode_param (fillin, 0); - mode_param (o_correction, 1); - mode_common_setup_; -enddef; -phaserfivesixzero := phaserfs; - -% Tektronix Phaser 350 is a 600-by-300 colour wax printer. -% From {\tt dag@ifi.uio.no} (Dag Langmyhr), 10 January 1997. -% Perhaps too fat at small sizes (5$\,$pt) but looks OK for 8$\,$pt and more. -mode_def phasertf = %\[ Tektronix Phaser 350 (600x300dpi) - mode_param (pixels_per_inch, 600); - mode_param (aspect_ratio, 300/pixels_per_inch); - mode_param (blacker, 0); - mode_param (fillin, 0); - mode_param (o_correction, .6); - mode_common_setup_; -enddef; - -mode_def phasertl = %\[ Tektronix Phaser 350 landscape (300x600) - phasertf_; - landscape; -enddef; -phasertfl := phasertl; - -% From Aries Arditi {\tt }, 3 February 1998. -% This definition makes one pixel one point, which is convenient when -% you want to image-process the letter images after rendering, and don't -% want to add any device corrections. If you want to grab the images off -% the screen, it's useful to add lines to the definition, as well: -% -%%\begingroup \tt \catcode`\_=12 \obeyspaces -% |mode_param (proofing, 1); -% extra_endchar:=extra_endchar\&"showit"; -% extra_setup := extra_setup\&"def openit = openwindow currentwindow from -% origin to (screen_rows,screen_cols) at (0,50) enddef"; -%%\endgroup -mode_def pixpt = %\[ one pixel per point (72.27dpi) - mode_param (pixels_per_inch, 72.27); - mode_param (blacker, 0); - mode_param (fillin, 0); - mode_param (o_correction, 1); - mode_common_setup_; -enddef; - -% This is a write-white PostScript laser-setter, made by a Xerox -% subsidiary. Its true aspect ratio is 1200$\,$dpi horizontally and -% 600$\,$dpi vertically, but {\tt mis@apsedoff.bitnet} says that the -% printer hides this, and PostScript programs should treat it as having -% a square aspect ratio. But {\tt george@trevnx.bio.dfo.ca} says that -% using the nonsquare aspect ratio produces identical output and uses -% only half the disk space. He also says the fonts are much too dark -% in general, and produce invisible diagonals in the CM typewriter -% fonts---but other changes either produce errors or dark output. -% -% Printware's headquarters is in Minnesota; telephone (612) 456-1400. -mode_def prntware = %\[ Printware 720IQ (1200dpi) - mode_param (pixels_per_inch, 1200); - mode_param (blacker, 0); - mode_param (fillin, 0); - mode_param (o_correction, 1); - mode_common_setup_; -enddef; -PrintwareSevenTwoZeroIQ := prntware; -printware := prntware; - -% From John Gourlay. See {\sl TUGboat} 8(2), page 133. -mode_def qms = %\[ QMS (Xerox engine) (300dpi) - mode_param (pixels_per_inch, 300); - mode_param (blacker, .6); - mode_param (blacker_min, 2); - mode_param (fillin, -.3); - mode_param (o_correction, .6); - mode_common_setup_; - mode_write_white_setup_; -enddef; - -% From {\tt Boris.Hemkemeier@HRZ.Uni-Bielefeld.De}, 24 June 1993. -% With the QMSOneSevenZeroZero mode, the left stem of `M' -% in {\tt cmr10} vanishes completely. -mode_def qmsostf = %\[ QMS 1725 (600dpi) - mode_param (pixels_per_inch, 600); - mode_param (blacker, 1); - mode_param (blacker_min, 2); - mode_param (fillin, 0); - mode_param (o_correction, 1); - mode_common_setup_; - mode_write_white_setup_; -enddef; -QMSOneSevenTwoFive := qmsostf; - -% From {\tt queinnec@geant.cenatls.cena.dgac.fr}, 24 March 1993. -% {\tt k316670@aearn.bitnet} says this print has a CanonNX engine -% switchable between 300 and 600$\,$dpi. -% -% From {\tt mimi@scri.fsu.edu} (Mimi Burbank), 12 September 1996: -% $\ldots$ When I found the note about the left stem of the `M' -% disappearing I was concerned. -% -% The error, I believe, is due to the fact that the font is generated at -% 600$\,$dpi, and was most likely printed on a QMS printer with 300$\,$dpi -% resolution. I just had the same thing happen to me, but with our QMS -% 860 set at 600dpi (the default for only one of our printers) the -% output was beautiful! (I printed the same ps file on a QMS 2000 with -% 300$\,$dpi resolution, and on a QMS 860 with 600$\,$dpi resolution.) -mode_def qmsoszz = %\[ QMS 1700 (600dpi) - mode_param (pixels_per_inch, 600); - mode_param (blacker, .2); - mode_param (blacker_min, 2); - mode_param (fillin, 0); - mode_param (o_correction, 1); - mode_common_setup_; - mode_write_white_setup_; -enddef; -QMSOneSevenZeroZero := qmsoszz; - -% From {\tt teddy@fukt.hk-r.se}, 28 September 1996. -mode_def qmstftf = %\[ QMS 2425 (1200dpi) - mode_param (pixels_per_inch, 1200); - mode_param (blacker, .3); - mode_param (fillin, .5); - mode_param (o_correction, 1); - mode_common_setup_; -enddef; -QMSTwoFourTwoFive := qmstftf; - -% These values from Stan Osborne, {\sl TUGboat} 8(2), page 134. -mode_def ricoh = %\[ e.g., TI Omnilaser (300dpi) - mode_param (pixels_per_inch, 300); - mode_param (blacker, .2); - mode_param (blacker_min, 2); - mode_param (fillin, -.2); - mode_param (o_correction, .5); - mode_common_setup_; - mode_write_white_setup_; -enddef; -RicohFourZeroEightZero := ricoh; -RicohFortyEighty := ricoh; - -% From {\tt Martin.Ward@durham.ac.uk}. Apparently the engine is -% different from the Ricoh 4080. With a larger value of |blacker|, -% characters like the `e' in {\tt cmtt8} look bad. -mode_def ricoha = %\[ e.g., IBM 4216 (300dpi) - mode_param (pixels_per_inch, 300); - mode_param (blacker, .2); - mode_param (blacker_min, 2); - mode_param (fillin, 0); - mode_param (o_correction, .75); - mode_common_setup_; - mode_write_white_setup_; -enddef; -RicohA := ricoha; -IBMFourTwoOneSix := ricoha; - -% From John Sauter. -mode_def ricohlp = %\[ e.g., DEC LN03 (300dpi) - mode_param (pixels_per_inch, 300); - mode_param (blacker, .65); - mode_param (blacker_min, 2); - mode_param (fillin, -.2); - mode_param (o_correction, .5); - mode_common_setup_; - mode_write_white_setup_; -enddef; -RicohLP := ricohlp; -LNOthree := ricohlp; -LNZeroThree := ricohlp; - -% From {\tt nishida@src.ricoh.co.jp} (Akihiro Nishida), 30 August 1996. -% These printers are available only in Japan. -mode_def ricohsp = %\[ Ricoh sp10ps/lp7200-ux (600dpi) - mode_param (pixels_per_inch, 600); - mode_param (blacker, 0); - mode_param (fillin, 0.2); - mode_param (o_correction, .6); - mode_common_setup_; -enddef; - -% From {\tt dickson@eeserv.ee.umanitoba.ca}. {\tt gil.cc.gatech.edu} -% has different values; {\tt img@ai.edinburgh.ac.uk} sets |blacker=.1|. -% Corrected by {\tt andy@vlsi.cs.caltech.edu}, 28 August 1991. -% The darkness knob on the printer has a much larger effect than -% any of these parameters. {\tt carlos@snfep1.if.usp.br} points out -% that the printer can operate at either 300$\,$dpi or 400$\,$dpi, and -% if your fonts don't match the setting, naturally they won't look -% very good. He says the following works in Dvips' {\tt config.ps} file -% to set 400$\,$dpi: -%%\begingroup \tt \catcode`\%=12 \catcode`\{=12 \catcode`\}=12 \obeyspaces -% /SetResolution { -% /setres where { -% /setres get exec -% }{ -% pop -% } ifelse -% } def -% %%BeginFeature *SetResolution 400 -% 400 SetResolution -% %%EndFeature -% %%EndSetup -%%\endgroup -% -% (This is the file {\tt resolution400.ps} supplied with NeWSprint.) -% {\tt simpson@math.psu.edu} only got this work by downloading the code -% via an extra header file, i.e., having this in the Dvips config file: -%%\begingroup \tt \obeyspaces -% M sparcptr -% D 400 -% h resolution400.ps -%%\endgroup -% -mode_def sparcptr = %\[ Sun SPARCprinter (400dpi) - mode_param (pixels_per_inch, 400); - mode_param (blacker, .25); - mode_param (fillin, .2); - mode_param (o_correction, .6); - mode_common_setup_; -enddef; -SparcPrinter := sparcptr; - -% From {\tt ee@dacth51.bitnet}. -mode_def starnlt = %\[ Star NL-10 (240x216dpi) - mode_param (pixels_per_inch, 240); - mode_param (aspect_ratio, 216 / pixels_per_inch); - mode_param (blacker, 0); - mode_param (fillin, .2); - mode_param (o_correction, .4); - mode_common_setup_; -enddef; -StarNLOneZero := starnlt; - -mode_def starnltl = %\[ Star NL-10 landscape (216x240dpi) - starnlt_; - landscape; -enddef; - -% From {\tt alejolo@sue.ideam.gov.co}, 26 November 1998. I have tested -% the default stylewriter mode in modes.mf v3.4 with Oz\TeX\ and my -% StyleWriter II, and still output is too light, particularly the serifs -% and thin cusps such as in CMR's small e, c, t, b and d. Thus I cooked -% up this mode that prints output similar to a standard system font (I -% compared text output with Minion Web as it comes with Internet -% Explorer 4). In general I'd suggest that this mode definition is -% apropriate for all inkjet printers using a BJC-02 ink cartridge. -mode_def styletwo = %\[ Apple StyleWriter II (360dpi) - mode_param (pixels_per_inch, 360); - mode_param (blacker, 0.25); - mode_param (fillin, 0); - mode_param (o_correction, 0.6); - mode_common_setup_; -enddef; -swtwo := styletwo; - -% |stylewriter| mode added by Andrew Trevorrow -% {\tt } for Oz\TeX users. All -% parameters (except |pixels_per_inch|) are the same as the |cx| mode so -% that PK files can be shared by both types of printers. -% -% With |blacker=0|, hbar is indistinguishable for h, i.e., the bar -% disappears. Thus 0.1. From Wulf Hofbauer {\tt }, -% 5 June 1998. -mode_def stylewri = %\[ Apple StyleWriter (360dpi) - mode_param (pixels_per_inch, 360); - mode_param (blacker, 0.1); - mode_param (fillin, .2); - mode_param (o_correction, .6); - mode_common_setup_; -enddef; -stylewriter := stylewri; -stylewr := stylewri; -% From {\tt px@fct.unl.pt (Joaquim Baptista [pxQuim])}. I find -% |epstylus| far too dark. It seems to me that plain values of 0 to -% |blacker| and |fillin| work perfectly with values of |o_correction| in -% the range of .6 to .8. I ended up using [this mode:] -epstylwr := stylewri; -% Andrew defines |sw| as well, but I am reluctant to use such a -% potentially common identifier --{\tt kb@cs.umb.edu}, 8 October 1996. - -% From {\tt grunwald@foobar.colorado.edu}. Sun monitors have several -% different resolutions, but this seems the most common of the lot. -% Use |pcscreen| for high-resolution monitors. -mode_def sun = %\[ Sun and BBN Bitgraph (85dpi) - mode_param (pixels_per_inch, 85); - mode_param (blacker, .35); - mode_param (fillin, .1); - mode_param (o_correction, .3); - mode_common_setup_; -enddef; - -mode_def supre = %\[ Ultre*setter (2400dpi) - mode_param (pixels_per_inch, 2400); - mode_param (blacker, 0); - mode_param (fillin, 0); - mode_param (o_correction, 1); - mode_common_setup_; -enddef; - -mode_def toshiba = %\[ Toshiba 13XX, EpsonLQ (180dpi) - mode_param (pixels_per_inch, 180); - mode_param (blacker, 0); - mode_param (fillin, 0); - mode_param (o_correction, .2); - mode_common_setup_; -enddef; -epsonlq := toshiba; - -mode_def ultre = %\[ Ultre*setter (1200dpi) - mode_param (pixels_per_inch, 1200); - mode_param (blacker, 0); - mode_param (fillin, 0); - mode_param (o_correction, 1); - mode_common_setup_; -enddef; -Prism := ultre; - -% From {\tt Martin.Ward@durham.ac.uk}. -mode_def vs = %\[ VAXstation monitor (78dpi) - mode_param (pixels_per_inch, 78); - mode_param (blacker, 0); - mode_param (fillin, 0); - mode_param (o_correction, 0); - mode_common_setup_; -enddef; -VAXstation := vs; -gpx := vs; - -% From {\tt erikjan@icce.rug.nl}, 23 August 1991. -mode_def vtftzz = %\[ Varityper 4200 B-P (1800dpi) - mode_param (pixels_per_inch, 1800); - mode_param (blacker, 0); - mode_param (fillin, 0); - mode_param (o_correction, 1); - mode_common_setup_; -enddef; -VarityperFourTwoZeroZero := vtftzz; - -% From {\tt mjm@as.arizona.edu}, 26 February 1992. -mode_def vtftzzhi = %\[ Varityper 4300P (2400dpi) - mode_param (pixels_per_inch, 2400); - mode_param (blacker, 0); - mode_param (fillin, 0); - mode_param (o_correction, 1); - mode_common_setup_; -enddef; -VarityperFourThreeZeroZeroHi := vtftzzhi; - -% From {\tt mjm@as.arizona.edu}, 26 February 1992. -mode_def vtftzzlo = %\[ Varityper 4300P (1200dpi) - mode_param (pixels_per_inch, 1200); - mode_param (blacker, 2); % used to be 3.5, see |lexmarkr| comments. - mode_param (fillin, 0); - mode_param (o_correction, 1); - mode_common_setup_; -enddef; -VarityperFourThreeZeroZeroLo := vtftzzlo; - -% From {\tt rocky@panix.com}. This can also be used for the Autologic's -% APS6 cut sheet dry process printer. For that printer, perhaps -% |blacker=0.8| is better. For the Varityper, though, at |blacker=0.8| -% the dots of the umlaut start to fill in. For |blacker<0.6|, the tops -% and bottoms of lowercase g's and s's in {\tt cmr5} drop out. -mode_def vtfzszw = %\[ Varitype 5060W, APS 6 (600dpi) - mode_param (pixels_per_inch, 600); - mode_param (blacker, .7); - mode_param (fillin, 0); - mode_param (o_correction, 1); - mode_common_setup_; -enddef; -VarityperFiveZeroSixZeroW := vtfzszw; -APSSixMed := vtfzszw; - -% The worst problem is toner irregularity. This may be the same printer -% as the IBM 4250. -mode_def vtszz = %\[ Varityper Laser 600 (600dpi) - mode_param (pixels_per_inch, 600); - mode_param (blacker, 0); - mode_param (fillin, 0); - mode_param (o_correction, 1); - mode_common_setup_; -enddef; -VarityperSixZeroZero := vtszz; -VTSix := vtszz; -varityper := vtszz; - -% Some information about Xerox printers, from {\tt siemsen@barnard.usc.edu}: -% The Docutech system and the 4135 have the same engine. -% The 4050, 4075 and 4090 have the same engine. -% The 4650 has a unique engine. -% The 4850 has a unique engine. - -% From {\tt SamuelKey@comcast.net}, for enhanced resolution mode. In -% 600x600 mode, |ljfour| works ok. -mode_def xpstzz = %\[ Xerox Phaser 6200DP (2400x600dpi) - mode_param (pixels_per_inch, 2400); - mode_param (aspect_ratio, 600 / pixels_per_inch); - mode_param (blacker, 0); - mode_param (fillin, 0); - mode_param (o_correction, 1); - mode_common_setup_; -enddef; -XeroxPhaserSixTwoZeroZeroDP := xpstzz; - -mode_def xpstzzl = %\[ Xerox Phaser 6200DP landscape (600x2400dpi) - xpstzz_; - landscape; -enddef; - - -% From {\tt u12570@uicvm.uic.edu}. These values are mostly guesses. -mode_def xrxesnz = %\[ Xerox 8790 or 4045 (300dpi) - mode_param (pixels_per_inch, 300); - mode_param (blacker, 0.4); - mode_param (blacker_min, 2); - mode_param (fillin, 0); - mode_param (o_correction, 0.2); - mode_common_setup_; - mode_write_white_setup_; -enddef; -XeroxEightSevenNineZero := xrxesnz; - -% From {\tt u12570@uicvm.uic.edu}. Many variations for different fonts. -% {\tt bart@cs.tamu.edu} says this works for the Xerox 4700, also. -mode_def xrxfzfz = %\[ Xerox 4050/4075/4090/4700 (300dpi) - mode_param (pixels_per_inch, 300); - mode_param (blacker, .7); - mode_param (fillin, 0); - mode_param (o_correction, .5); - mode_common_setup_; -enddef; -XeroxFourZeroFiveZero := xrxfzfz; - -% From {\tt u12570@uicvm.uic.edu}. He sent many variations of this, -% for different fonts. I don't know a reasonable way to put them in -% yet, so this is just the basic entry. -mode_def xrxnszz = %\[ Xerox 9700 (300dpi) - mode_param (pixels_per_inch, 300); - mode_param (blacker, .7); - mode_param (fillin, 0); - mode_param (o_correction, .5); - mode_common_setup_; -enddef; -XeroxNineSevenZeroZero := xrxnszz; - -% From {\tt lee@sq.com}. These values may be improvable. -mode_def xrxtszz = %\[ Xerox 3700 (300dpi) - mode_param (pixels_per_inch, 300); - mode_param (blacker, .85); - mode_param (blacker_min, 2); - mode_param (fillin, -.1); - mode_param (o_correction, .5); - mode_common_setup_; - mode_write_white_setup_; -enddef; -XeroxThreeSevenZeroZero := xrxtszz; - -mode_def help = %\[ What modes are available? - for i = 1 upto number_of_modes: - message mode_name[i]; - endfor; - % Doesn't make sense to be able to do this twice, so forget this - % definition after it's been used. - save ?; -enddef; - -let mode_help = help_; - -% These variables determine the size of \MF's (window system) -% window for online output. These numbers should match whatever -% the window system is told, or bizarre positioning of the output -% in the window results. Properly implemented online device drivers -% will use these values as the default size. The defaults here are -% from {\tt plain.mf}. -screen_rows := 400; -screen_cols := 500; - -% The mode most commonly used to make fonts here. -localfont := ljfour; - -%%\bye -%%%% Local variables: -%%%% page-delimiter: "^% here are" -%%%% End: -- cgit v1.2.3