4-May-90 11:59:51-MDT,18327;000000000000 Mail-From: BEEBE created at 4-May-90 11:59:39 Date: Fri 4 May 90 11:59:38-MDT From: "Nelson H. F. Beebe" Subject: TeX 3.0 and METAFONT 2.0 installed To: sun-workstations@SCIENCE.utah.edu cc: Beebe@SCIENCE.utah.edu X-US-Mail: "Center for Scientific Computing, South Physics, University of Utah, Salt Lake City, UT 84112" X-Telephone: (801) 581-5254 Message-ID: <12587040702.40.BEEBE@SCIENCE.utah.edu> TeX 3.0 and METAFONT 2.0 Installed Nelson H.F. Beebe Center for Scientific Computing and Department of Mathematics South Physics Building University of Utah Salt Lake City, UT 84112 USA Tel: (801) 581-5254 Email: [04-May-1990] ============ INTRODUCTION ============ At the August 1989 TeX Users Group meeting in Stanford, Don Knuth announced that he would make one final set of changes to TeX and METAFONT that should be the last ones in this century. The changes address needs of larger character sets, composite fonts, and multi-lingual hyphenation; details are given below. ================================================================== ==> With some very unlikely exceptions, no changes in user <== ==> files, or in DVI drivers, are required, so the upgrade <== ==> should be transparent to users. <== ================================================================== These new versions are TeX 3.0 and METAFONT 2.0, and have now been installed on our UNIX systems, using the Web2C translator, so that no Pascal compiler is required. Older versions of TeX have been removed. Related TeXware utilities have also been updated. Here is a summary of the new programs: ======== ======= ======================================== Name Version What it Does ======== ======= ======================================== amstex 3.0 TeX with preloaded AmSTeX macros bibtex 0.99c BibTeX bibliographic system dvitype 3.2 Print and check DVI files gftodvi 3.0 Convert GF font file to DVI file gftopk 2.2 Convert GF font file to PK font file gftype 3.0 Print and check GF font file inimf 2.0 Startup version of METAFONT initex 3.0 Startup version of TeX latex 3.0 TeX with preloaded LaTeX macros mft 2.0 Convert a MF source file to TeX pktogf 1.0 Convert a PK font file to GF font file pktype 2.2 Print and check PK font file pltotf 3.2 Convert PL property list file to TFM file slitex 3.0 TeX with preloaded SliTeX macros tangle 4.0 Convert WEB file to Pascal file tex 3.0 Plain TeX texinfo 3.0 TeX with preloaded GNU TeXinfo macros tftopl 3.1 Convert TeX font metric (TFM) file to PL file vftovp 1.0 Convert virtual font (VF) file to VPL file virmf 2.0 METAFONT without preloaded macros virtex 3.0 TeX without preloaded macros vptovf 1.0 Convert virtual font property list (VPL) file to VF file weave 4.1 Convert WEB file to TeX file ======== ======= ======================================== ==================== BIG TEX AND METAFONT ==================== I have compiled both TeX and METAFONT in the 32-bit enlarged versions; table sizes are roughly four times those in standard TeX. Run times are no worse, and often better, than earlier versions, because of the elimination of conversions between 16-bit and 32-bit values. While this removes the need to have two or more versions of TeX and METAFONT with different table sizes, it can also cause you portability problems. Manuscripts that approach the limits of big TeX's memory may no longer be processable on older versions, or on personal computer implementations of TeX, so BEWARE! Unlike earlier versions of UNIX TeX and METAFONT, which either had preloaded memory images on systems for which an undump utility was available, or used shell scripts to invoke virtex or virmf with the appropriate binary format file, this new implementation dispenses with both schemes. Instead, virmf is linked to mf, and virtex is linked to tex, texinfo, latex, slitex, and amstex. The format file chosen at run time is formed from the program name with extension .fmt for TeX, and .base for METAFONT. Thus, invoking latex causes virtex to dynamically load the latex.fmt file from the formats directory. With enlarged TeXs, it was found that using the undump procedure produced enormous executable images (7MB to 10MB); using the new approach, and stripping symbols from the executables, brings virtex down to about 200KB (Sun 3 and 386i), 280KB (Sun 4), and 346KB (HP 9000/850), and virmf to about 730KB (Sun 3 and 386i), 901KB (Sun 4), and 505KB (HP 9000/850). ======================= MEMORY USAGE STATISTICS ======================= Both TeX and METAFONT have been compiled with statistics enabled, so if you run out of memory, you can set \tracingstats=1 to request a summary of memory usage in the log file. ======================= New Features of TEX 3.0 ======================= Don Knuth posted this summary on new features in the TeXhax Digest V89 #98, 27-Oct-1989: >> (1) Input files are allowed to contain arbitrary 8-bit >> characters; previously only 7-bit character sets were supported >> on input. This means in particular that TANGLE now starts its >> string pool with string number 256, not 128; all programs that >> use WEB's string pool feature need to be revised, as they will no >> longer work with the new TANGLE. (Actually I don't know of any >> such programs except variants of TeX and MF.) >> >> (2) The new TeX supports hyphenation in 256 languages >> simultaneously. These changes were inspired by Michael >> Ferguson's Multi-lingual TeX, by my implementation is quite >> different from his. >> >> (3) There is a greatly improved ligature mechanism, allowing (for >> example) letters to change based on their being at the beginning >> or end of a word. This upward-compatible extension of TFM format >> allows ligature/kern programs to be up to 32K words long, and it >> also has a `skip' command for code-sharing to help keep programs >> compact. >> >> Each of these new features affects many hundreds of lines of code. >> 218 of TeX's 1377 modules have been changed; dozens of modules >> have been completely rewritten. >> >> ... >> >> Once you have these new systems working, there will be much more >> to do in order to make best use of the new 8-bit capabilities. >> But that can be done in a more relaxed way; the big upgrade in >> the basic systems needs to be done quickly. With your help, this >> transition should go very smoothly; we should have trouble only >> when people who use the new facilities try to do so on old >> versions of TeX and MF. Therefore: THE SOONER WE STAMP OUT THE >> OLD VERSIONS, THE BETTER. >> >> ... >> >> A complete list of changes to The TeXbook and The METAFONTbook >> will appear in the next TUGboat, which has just gone to the >> printer. Published in TUGboat 10, no. 3, 325--328 (1989); see p. 328 for a list of compatibility problems; they are likely to affect only a tiny fraction of existing TeX documents. >> A new printing of Volume A is now in the bindery and will be >> available soon in bookstores; this contains all the version >> 3.0 changes to TeX. (You will be able to identify it by the >> words "ninth printing" on the copyright page, on the back of >> the title page.) Unfortunately the publishers had just made a >> large printing of the paperback version before I decided to >> make these changes, so it will be a few months before the >> paperback version of the TeXbook is updated; at that time it >> will be recognizable by the words "Seventeenth printing". A-W >> is keeping two independent numbering schemes for printings of >> the hardback and paperback versions. >> >> The finder's fee for bugs in the new code is $10.24. And if you >> discover a bug in the "old" parts of TeX while you're installing >> the new version, you win $163.84. Point 3 above also means that hyphenation of words with accented characters will be possible, as long as those characters appear as single 8-bit values, and not as control sequences. Of course, suitable hyphenation patterns must have been loaded to make this hyphenation correct. One of the serious drawbacks of earlier versions of TeX was that for European languages with accented letters, words containing control sequences were not hyphenated [TeXbook, p. 454]. The grounds for this was that such words could not be English, and TeX only supported one set of hyphenation patterns, which was likely to be English; any hyphenation attempt on words with accented letters was therefore likely to be wrong. =============== COMPOSITE FONTS =============== A related contribution is what Knuth calls `virtual fonts' [TUGboat 11, No. 1, 13--23 (1990); TeXhax Digest 90, No. 11, 08-Jan-1990]. A better term for these would be `composite fonts', that is, fonts whose characters are constructed from characters found in one or more other fonts. Many people have asked about using fonts other than Computer Modern in TeX. While several macro packages and DVI drivers have been developed to support this, no general solution has been available. There are several problems in using non-Computer Modern fonts with TeX: (1) TeX needs precise character measurements (font metrics) that may not be available for vendor-specific and proprietary fonts, and for mathematics, it needs more metrics than are generally available. Because font metrics are best chosen by the original font designer, it is completely non-trivial to supply missing metric information, and should certainly not be done by amateurs. (2) Particularly for mathematics, Computer Modern has a large character repertoire that, with the exception of Knuth's Concrete Roman, and Bigelow and Holmes' Lucida font (used for Scientific American since the fall of 1988), is only partially covered by other fonts. (3) Computer Modern supplies fragments for construction of built-up characters, like large delimiters; other fonts may lack these. (4) TeX macro packages have explicit assignments of font name and position to named characters. With the exception of Concrete Roman, Lucida and Pandora, no fonts exactly match the Computer Modern character assignments. (5) DVI drivers must be able to map a font name and character number from the DVI file output by TeX into a device font. Tightly-held font metric and format information on the part of typesetter vendors, and expense, have seriously impeded the use of TeX with phototypesetting devices, although there are several service bureaus which provide TeX DVI output support. Most TeX users are restricted to screen, dot-matrix printer, and laser printer display, and for most purposes, laser printer quality is adequate. The most powerful laser printers provide PostScript, developed by Adobe Systems from 1982 to 1985, and first made commercially available on the Apple LaserWriter. Unlike other proprietary fonts, Adobe fonts come with font metrics that are freely available, and can even be extracted from any PostScript printer. Kerning and ligature information is, however, available only in the Adobe Font Metric (AFM) files of recent vintage. The Apple LaserWriter Plus offers Times Roman, Bookman, Courier, Helvetica, AvantGarde, NewCentury SchoolBook, Palatino, Symbol, and Zapf Dingbat fonts; others can be purchased from Adobe, and other PostScript printer suppliers. When users say `I don't like Computer Modern', what they usually mean is `Computer Modern looks unfamiliar to me; I want something I'm used to'; for Americans, the latter is usually Times Roman, one of the most successful fonts ever designed, and widely used in magazine and book publications. Computer Modern was based on Monotype Modern A, the font used by Addison Wesley to typeset the early volumes of Knuth's `The Art of Computer Programming'. TeX and METAFONT were written because Knuth was dissatisfied with the results of reprintings of those books with (then) new computer-based composition equipment; that one year sabbatical project in 1977--78 stretched into a decade-long project that has fundamentally changed document composition and production, and typography. The largest publisher of mathematics in the world, the American Mathematical Society, has completely converted to TeX, and Mathematical Reviews On-Line appears on the computer screen in TeX input format. Based on sales of over 70,000 volumes of the LaTeX book, there are likely to be more than 100,000 users of TeX around the world. The mathematical character repertoire in Adobe fonts, with the notable exception of Lucida cited above, is still inadequate for TeX use, and no single font provides all of the characters needed in a single Computer Modern font. PostScript supports an encoding vector that makes it easy to rearrange the characters of a single font, but considerably more work is needed to support mapping of multiple fonts into one. This is where composite fonts become useful. Don Knuth supplies the background: [Dated 08 Jan 90 from TeXhax 90, Nos. 11 and 12] >> There is a much better way to solve such problems than the >> remedies that have been proposed in TeXhax. This better way was >> first realized by David Fuchs in 1983, when he installed it in >> our DVI-to-APS software at Stanford (which he also developed >> for commercial distribution by ArborText). We used it, for >> example, to typeset my article on Literate Programming for The >> Computer Journal, using native Autologic fonts to match the >> typography of that journal. >> >> I was expecting David's strategy to become widely known and >> adopted. But alas --- and this has really been the only >> significant disappointment I've had with respect to the way TeX >> has been propagating around the world --- nobody else's >> DVI-to-X drivers have incorporated anything resembling David's >> ideas, and TeXhax contributors have spilled gallons of >> electronic ink searching for answers in the wrong direction. >> >> The right direction is obvious once you've seen it (although it >> wasn't obvious in 1983): All we need is a good way to specify a >> mapping from TeX's notion of a font character to a device's >> capabilities for printing. Such a mapping was called a "virtual >> font" by the AMS speakers at the TUG meetings this past August. >> At that meeting I spoke briefly about the issue and voiced my >> hope that all DVI drivers be upgraded within a year to add a >> virtual font capability. Dave Rodgers of ArborText announced >> that his company would make their WEB routines for virtual font >> design freely available, and I promised to edit them into a >> form that would match the other programs in the standard >> TeXware distribution. >> >> ... >> >> The preparation of TeX Version 3 and MF Version 2 has taken me >> much longer than expected, but at last I've been able to look >> closely at the concept of virtual fonts. (The need for such >> fonts is indeed much greater now than it was before, because >> TeX's new multilingual capabilities are significantly more >> powerful only when suitable fonts are available. Virtual fonts >> can easily be created to meet these needs.) >> >> After looking closely at David Fuchs's original design, I >> decided to design a completely new file format that would carry >> his ideas further, making the virtual font mechanism completely >> device-independent; David's original code was very >> APS-specific. Furthermore I decided to extend his notions so >> that arbitrary DVI commands (including rules and even specials) >> could be part of a virtual font. The new file format I've just >> designed is called VF; it's easy for DVI drivers to read VF >> files, because VF format is similar to the PK and DVI formats >> they already deal with. >> >> The result is two new system routines called VFtoVP and VPtoVF. >> These routines are extensions of the old ones called TFtoPL and >> PLtoTF; there's a property-list language called VPL that >> extends the ordinary PL format so that virtual fonts can be >> created easily. At the time of writing this, only Tom Rokicki's driver, dvips, supports these `virtual', or composite, fonts. I have begun work to support them in my DVI driver 3.0 development; it will be likely be a few months before this can be generally available. Nevertheless, it is an important step, because it provides a basis on which users can define arbitrary fonts by combining characters from other fonts, with little DVI language programs used to precisely position them, and will greatly facilitate solving the large problem (5) above---a lot of code has to be written in DVI drivers to support device-specific fonts. My 3.0 DVI drivers already contain over 50,000 lines of code, and support over 50 output device combinations in over a dozen operating system environments; the 2.10 versions are already in use at thousands of sites around the world, so when 3.0 is released (still far off in the future), the potential benefits to the TeX community will be very large. -------