summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Master/texmf-dist/doc/fonts/modes/ChangeLog518
-rw-r--r--Master/texmf-dist/doc/fonts/modes/GNUmakefile132
-rw-r--r--Master/texmf-dist/doc/fonts/modes/README20
-rwxr-xr-xMaster/texmf-dist/doc/fonts/modes/modedpicheck18
-rw-r--r--Master/texmf-dist/doc/fonts/modes/modelist.txt163
-rw-r--r--Master/texmf-dist/doc/fonts/modes/modenames.txt163
-rw-r--r--Master/texmf-dist/doc/fonts/modes/modes.pdfbin0 -> 265103 bytes
-rw-r--r--Master/texmf-dist/fonts/source/public/modes/modes.mf (renamed from Master/texmf-dist/metafont/misc/modes.mf)116
-rwxr-xr-xMaster/tlpkg/bin/tlpkg-ctan-check2
-rw-r--r--Master/tlpkg/tlpsrc/collection-basic.tlpsrc1
-rw-r--r--Master/tlpkg/tlpsrc/metafont.tlpsrc4
-rw-r--r--Master/tlpkg/tlpsrc/modes.tlpsrc0
12 files changed, 1099 insertions, 38 deletions
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 <karl@freefriends.org>
+
+ * 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 <karl@gnu.org>
+
+ * 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 <karl@gnu.org>
+
+ * version 3.7.
+ * modes.mf (dpdfezzz): 8000, not 2400.
+
+2004-03-30 Karl Berry <karl@gnu.org>
+
+ * modes.mf: remove trailing whitespace.
+ * modes.mf (bjtzzl): need to call bjtzzs.
+ (newddl, epstypml, lviewl, phasertl): new modes
+ from "Hippocrates Sendoukas" <hsendoukas@hotmail.com> for dviwin.
+ * modes.mf: 2004
+
+2004-03-19 Karl Berry <karl@gnu.org>
+
+ * modes.mf (xpstzz): new mode.
+
+2002-02-26 <karl@gnu.org>
+
+ * modes.mf: version 3.5.
+ (epsmed[l], epslo[l]): new modes.
+ correct email addresses.
+
+2001-04-06 <karl@gnu.org>
+
+ * modes.mf: 0 not .0
+
+Mon Aug 10 14:29:36 1998 Karl Berry <karl@cs.umb.edu>
+
+ * 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 <karl@cs.umb.edu>
+
+ * 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 <karl@cs.umb.edu>
+
+ * Version 3.3.
+ * modes.mf: Fix indentation of list items.
+
+Thu Nov 7 14:56:14 1996 Karl Berry <karl@cs.umb.edu>
+
+ * 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' <ghibo@galileo.polito.it>.
+
+ * (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 <karl@cs.umb.edu>
+
+ * Version 3.1.
+
+ * Many changes for TeX prettiness.
+
+Thu Oct 10 14:34:44 1996 Karl Berry <karl@cs.umb.edu>
+
+ * 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 <karl@cs.umb.edu>
+
+ * modes.mf: Use kb@mail.tug.org.
+
+Mon Jan 8 14:22:56 1996 Karl Berry <karl@cs.umb.edu>
+
+ * Version 3.0.
+ * New modetest.tex from Matt.
+
+Sat Dec 30 17:32:22 1995 Karl Berry <karl@cs.umb.edu>
+
+ * 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 <karl@cs.umb.edu>
+
+ * modes.mf (localfont): Change to ljfour.
+ (screen_rows, screen_cols): Interchange values to match plain.mf.
+ From: Christian Jonsson <cj@isy.liu.se>.
+ (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" <Eric.Picheral@univ-rennes1.fr>.
+ (lexmarkr): New mode. From: Michael Covington <mcovingt@ai.uga.edu>.
+ (canonbjc): New mode. From: Yves Arrouye <Yves.Arrouye@imag.fr>.
+ (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 <fkr@tooyoo1.l.u-tokyo.ac.jp>
+
+Sun Apr 16 07:43:01 1995 Karl Berry <karl@cs.umb.edu>
+
+ * Version 2.3. (The 2.2 release was confused.)
+
+Tue Feb 14 13:44:45 1995 Karl Berry <karl@cs.umb.edu>
+
+ * lwpro: New mode, from Pierre.Soille@ipk.fhg.de.
+
+Thu Feb 9 15:57:26 1995 Karl Berry <karl@cs.umb.edu>
+
+ * modes.mf (epstylus): New mode, from Tobias.Guenzler@uni-konstanz.de.
+
+Sun Nov 6 15:52:35 1994 Karl Berry <karl@cs.umb.edu>
+
+ * 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 <modes.mf | sed 's/[ ]*$$//' >$(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 <karl@freefriends.org>
+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 | awk '/DPI=/ {print $2}'`
+ mf_lbdpi=`mf '\mode:='$j';landscape; mode_setup;message"BDPI= "&decimal round pixels_per_inch;end.' </dev/null | awk '/DPI=/ {print $2}'`
+ if test "$mf_bdpi" = "$mf_lbdpi"; then
+ grep "^mode_def $j.*($mf_bdpi dpi)" $modes >/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
--- /dev/null
+++ b/Master/texmf-dist/doc/fonts/modes/modes.pdf
Binary files differ
diff --git a/Master/texmf-dist/metafont/misc/modes.mf b/Master/texmf-dist/fonts/source/public/modes/modes.mf
index 5e3b3cfbd4d..d308608f1d8 100644
--- a/Master/texmf-dist/metafont/misc/modes.mf
+++ b/Master/texmf-dist/fonts/source/public/modes/modes.mf
@@ -1,7 +1,11 @@
+% {\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
@@ -10,35 +14,45 @@
%%% 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 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.
+% 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@tug.org}. See further discussion below.
+% {\tt tex-fonts@math.utah.edu} (explanations below also).
%
% The mode definitions start at `Here are the modes', several hundred
-% lines down.
+% lines down. The companion files {\tt modelist.txt} and {\tt
+% modenames.txt} list the modes one per line, with and without comments.
%
-% This file can be run through {\tt MFT} and \TeX\ to produce a nice
-% pretty-printed listing, which currently runs to some 41 pages.
+% 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 = "3.8",
-% date = "Wed Feb 20 16:33:57 PST 2008"
+% version = "4.0",
+% date = "Tue Jan 28 11:17:07 PST 2020"
% filename = "modes.mf",
-% email = "tex-fonts@tug.org"
-% checksum = "2577 12670 93478",
+% email = "tex-fonts@math.utah.edu"
+% checksum = "2621 13018 95640",
% codetable = "ISO/ASCII",
% supported = "yes",
% docstring = "
@@ -54,7 +68,7 @@
%
% 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,
+% 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.
@@ -66,7 +80,8 @@
%
% 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.
+% 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;
@@ -79,8 +94,7 @@
% 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
+% 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
@@ -106,14 +120,14 @@
% }
%%\endgroup
%
-% This file is typically loaded when making a \MF\ base; for example,
-% the command line
+% 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|, |smoke|, and |lowres|.)
+% |proof|\kern-.12em, |smoke|, and |lowres|.)
%
% You can make the Computer Modern base with the command line:
%%\begingroup \tt \obeyspaces
@@ -123,12 +137,11 @@
% 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.
+% 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:
@@ -419,13 +432,11 @@
% Don't let ourselves be processed twice.
if known modes_mf: endinput; fi;
-modes_mf := 3.8;
+modes_mf := 4.0;
% Identify ourselves in the format file.
-base_version := base_version & "/modes 3.8";
-
+base_version := base_version & "/modes 4.0";
-%%\vfill\eject
% Here are useful macros (also called definitions) we use throughout.
% First, some comments about how the |mode_defs| are constructed (from
@@ -619,6 +630,39 @@ def mode_extra_info =
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.
%
@@ -863,8 +907,8 @@ mode_def crs = %\[ Alphatype CRS (5333dpi)
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,
+% 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.
@@ -1180,7 +1224,7 @@ EpsonStylusProHigh := esphi;
% 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},
+% 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
@@ -1326,7 +1370,7 @@ 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
+% 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.
%
@@ -1670,7 +1714,7 @@ 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).
+% (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.
@@ -1718,7 +1762,7 @@ 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.
+% Apple LaserWriter Select 360, with a Fuji Xerox Xerographic engine.
aselect := ljfour;
% {\tt jrenkema@worldonline.nl}, 2 January 1998. The LaserJet 5M
@@ -2336,7 +2380,7 @@ enddef;
% 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.
+% 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);
@@ -2347,7 +2391,7 @@ enddef;
swtwo := styletwo;
% |stylewriter| mode added by Andrew Trevorrow
-% {\tt <akt@netspace.net.au>} for Oz\TeX users. All
+% {\tt <akt@netspace.net.au>} 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.
%
diff --git a/Master/tlpkg/bin/tlpkg-ctan-check b/Master/tlpkg/bin/tlpkg-ctan-check
index 16ff05e0e41..2c7565373d8 100755
--- a/Master/tlpkg/bin/tlpkg-ctan-check
+++ b/Master/tlpkg/bin/tlpkg-ctan-check
@@ -481,7 +481,7 @@ my @TLP_working = qw(
mkgrkindex mkjobtexmf mkpattern mkpic
mla-paper mlacls mleftright mlist
mmap mnotes mnras mnsymbol modeles-factures-belges-assocs
- moderncv modernposter moderntimeline modiagram
+ moderncv modernposter moderntimeline modes modiagram
modref modroman modular modulus
mongolian-babel montserrat
monofill montex moodle
diff --git a/Master/tlpkg/tlpsrc/collection-basic.tlpsrc b/Master/tlpkg/tlpsrc/collection-basic.tlpsrc
index d53cf762ec3..23f4e2c8af5 100644
--- a/Master/tlpkg/tlpsrc/collection-basic.tlpsrc
+++ b/Master/tlpkg/tlpsrc/collection-basic.tlpsrc
@@ -34,6 +34,7 @@ depend makeindex
depend metafont
depend mflogo
depend mfware
+depend modes
depend pdftex
depend plain
depend tex
diff --git a/Master/tlpkg/tlpsrc/metafont.tlpsrc b/Master/tlpkg/tlpsrc/metafont.tlpsrc
index c7840d7729d..57ce5da65f4 100644
--- a/Master/tlpkg/tlpsrc/metafont.tlpsrc
+++ b/Master/tlpkg/tlpsrc/metafont.tlpsrc
@@ -1,7 +1,9 @@
depend kpathsea
+depend modes
execute AddFormat name=mf engine=mf-nowin \
- options="-translate-file=cp227.tcx mf.ini"
+ options="-translate-file=cp227.tcx mf.ini" \
+ fmttriggers=modes
srcpattern f ignore
#
diff --git a/Master/tlpkg/tlpsrc/modes.tlpsrc b/Master/tlpkg/tlpsrc/modes.tlpsrc
new file mode 100644
index 00000000000..e69de29bb2d
--- /dev/null
+++ b/Master/tlpkg/tlpsrc/modes.tlpsrc