This file is ./tex82/README. This file contains information on installing TeX and associated software. It also contains information on how to build new versions of TeX (information about associated software is to be found in the README files in their associated subdirectories). The software on this tape is relatively stable, but we try to keep it updated to the latest releases from Stanford University. The tape is configured for reasonably easy installation on a VAX running 4.2/3BSD, on a SUN2 or a SUN3, or on a Pyramid 90x. If this is a 1/2 inch 2400' reel of tape it was written on a VAX 11/780 running Berkeley Unix, version 4.2 or version 4.3. If this is a 1/4 inch cartridge, it was written in four-track format on a SUN2. The distribution is continually being changed to include new varieties of the general Unix system, and such changes inevitably result in errors and minor confusion. We ask for your tolerance. Please feel free to inform us if there are difficulties. Specific information on how you would run Unix TeX may be found in the man page, ./tex82/TeXman/tex.1 on this tape. Documentation for the TeX language may be found in "The TeXbook", by Donald Knuth, published by Addison-Wesley (ISBN 0-201-13448-9). The older manual, published by Digital Press and the AMS and entitled "TeX and Metafont, New Directions in Typesetting", is obsolete. You may also wish to consider getting the "LaTeX", by Leslie Lamport, published by Addison-Wesley (ISBN 0-201-15790-X). Both of these books were typeset with the system they describe. This distribution also includes the sources and auxiliary files for Metafont. Compilation and installation are very similar to the steps required for TeX. The README files for Metafont are in the directories in the ./mf84 path. If you have difficulties, contact Pierre MacKay MacKay@Washington.arpa (Arpanet and CSNet) Computer Science, FR-35 ...decvax!uw-beaver!uw-june!mackay (uucp) University of Washington ...ihnp4!uw-beaver!uw-june!mackay Seattle, WA 98195 ************************************************************************ * The maintenance of the Unix TeX distribution is supported in part by * * the National Endowment for the Humanities, through grant RT-20710-86 * * under the Research Tools Program. * ************************************************************************ Version information =================== TeX 2.0 (implying the use of the new cm fonts.) (plain.tex version 2.1) LaTeX 2.09 (release of 19 April, 1985, with corrections to 13 October, 1986) (also SliTeX 2.09) tangle 2.8 weave 2.8 dvitype 2.8 pltotf 2.3 tftopl 2.5 pxtoch 1 (preliminary) chtopx 1 (preliminary) metafont 1.2 gftodvi 1.7 gftopk 1.1 gftopxl 2.1 gftype 2.2 pktopx 2.2 pktype 2.1 pxtopk 2.2 mft 0.3 (a formatting program for metafont source files.) Your attention is directed to the file ./tex82/COPYING.POLICY which is a statement of our policy on redistributing Unix TeX. Please also see the file ./tex82/SCORE-READ.ME which contains additional information about the Generic TeX distribution and conditions which apply to this distribution, as well. In the discussion below, 4.2/3BSD is assumed to be running on a VAX. Installation is essentially the same on a SUN2 or a SUN3, but you must be sure to use SUN3-undump (in the ./undump directory) to set up preloaded versions of TeX, LaTeX and Metafont. Special cases for the Pyramid are identified with the prefix PYR or the suffix pyramid. We have tried to flag those parts of the instructions that are machine-specific. The metafont files are much better organized at present owing to the careful work of Paul Richards at the University of Illinois, Urbana-Champaign. (For those few installers who must still use the special techniques for a 4.1()BSD installation, 4.1BSD is assumed to be running on a VAX. ) Installing TeX82 on 4.2 bsd or 4.3 bsd: ======================================= - make a directory named /usr/lib/tex. Copy the contents of ./TeXlib to it. Make a subdirectory named /usr/lib/tex/fonts. Copy the contents of ../cmfonts/pxl and of ../cmfonts/tfm to it. (./cmfonts/pxl contains a minimal assortment of fonts for write-black devices at various resolutions but, as yet, no write-white fonts. Only the fonts of plain.tex are represented.) Make another subdirectory named /usr/lib/tex/macros. Copy the contents of ./TeXmacros to it. NOTE: If you want to avoid the effort of compilation, skip the rest of this page. But we strongly advise that you do the compilation at some time, so that you can control array sizes etc. - Prepare the areas for compilation. Make sure you are in ./tex82. If you are a 4.2 VAX site, run the shell script 4.2-setup. If you are a 4.2 SUN site, run the shell script SUN-setup. If you have converted to 4.3 bsd, run the script 4.3-setup. If you are running the Pyramid operating system at a level of 2.5 or above, run the script PYR-setup. The above scripts prepare ./tex82 , ./tex82/TeXware, and ./undump. NOTE: There are also scripts in the ./TeX82/LaTeX/LaTeXbibtex directory which must be run to establish an environment for compilation in either the Vax-SUN system or the Pyramid system. - The following instructions assume you are connected to ./tex82. In ./tex82, type make This will build tangle, initex, virtex, and undump. It'll also take a substantial amount of time---probably a minimum of an two or three hours on an unloaded 780. If you have a choice, run this on a VAX with a sufficient amount of physical memory as initex is quite large and there is some danger of pathological paging occurring which will greatly increase the time needed to build it. For a VAX, this step will require around 10 megabytes of disk space in the source area and three to four megabytes in the /tmp area. The source area space is needed for the Pascal files produced by Tangle, the filtered Pascal files used for 4.2 bsd, for the .s output, for the .o output, and for the executable image. If you are willing to go running around after this procedure cleaning things up you can get by with significantly less available disk space. If you are running 4.2 bsd on a VAX *without* 4.1 compatibility mode, you can skip this step as the files that would be produced are in ./VAXbinaries/BSD4.2bin. (The SUN space requirements seem to be similar but the arrangement is different---compiler intermediate files are placed in /usr/tmp in the distributed version, for example.) - move initex.pool to /usr/lib/tex/tex.pool (note the name change). NOTE: If you wish to use the precompiled versions, you will find them in ./VAXbinaries/VAX4.2bin or ./SUNbinaries/SUN2bin (There are no 4.3 binaries or Pyramid binaries right now). You will have to compile the appropriate version of undump (see the ./undump directory) first. - if you have not compiled, copy initex and virtex from the appropriate set of precompiled executables to whereever you want TeX to reside. Copy the associated tex.pool to /usr/lib/tex. - dump the .fmt file by saying % initex ** plain \dump (the "%" is presumed to be your shell's prompt and the "**" is the prompt generated by initex). This step can be done as soon as initex is built and tex.pool has been placed in the /usr/lib/tex area (i.e., you can do this while waiting for virtex to be built). There will be a significant pause between your typing of "initex" and the appearance of the "**" prompt. Also it will take initex a while to process plain. - move the resulting plain.fmt file to /usr/lib/tex/macros/plain.fmt - build a preloaded TeX by typing: % virtex ** &plain \read 0 to\blort \blort=^\ where the "%", "**", and "\blort=" prompts are provided by the system. The "^\" character represents your "Quit" character (usually CTRL-\) which makes a core file. - convert the core file into something that can be run by saying ../undump/undump tex virtex core - put initex, virtex, tex, and ./TeXware/tangle onto the search path. Further notes are included in later sections of this file for some of these steps. These notes should be useful if you need to change parts of the environment. Notes for 4.1c and 4.2 bsd sites: ================================= 4.1c sites are in a bit of trouble. I would suggest that the best approach for them would be to obtain a 4.2 pxp (the Pascal pretty printer), install it, and then follow the 4.2 instructions. You will notice a number of files named 4.2-Note in the various directories. Most of these are no longer relevant but I'm leaving them there for the moment in case I overlooked something in the 4.1 to 4.2 conversion. In particular, the 4.2-Note in this area (./tex82) is a transcript of what I needed to do to install TeX on a 4.2 VAX that was not running compatibility mode given the previous 4.1-oriented distribution. It is our understanding that executable images created on 4.1 bsd VAX (as these were) will execute without change on 4.1c bsd VAXen and on 4.2 bsd VAXen running 4.1 compatibility mode. However, we are also told that the execution will apparently be more efficient if you remake the software on 4.1c and 4.2 bsd (but 4.1c sites should read the cautionary note below in the section on making a preloaded TeX). Notes for SUN 4.2 bsd sites: ============================ The Sun version of Unix TeX was made on a Sun2 running Sun's version 1.4 of the software. We are told that the precompiled binaries in SUNbinaries ought to run on a SUN3, but we have not been able to test this At the time of writing (11 November, 1986) compilation difficulties which required breaking up the output from tangle had disappeared for both SUN2 and SUN3, but there is currently a new problem. The Sun2 pc compiles bad code under operating system version 3.0 and 3.1. There is no workaround for this except to use precompiled and preloaded binaries prepared under version 2.0 or earlier. We are told that version 3.2 of the operating system for the Sun2 will correct the problem. The SUN3 does compile correctly, and run correctly. Make sure you use the SUN3 undump, and not the older 4.2 undump. The format of a.out and core files has changed, and the older undump cannot handle the new version. This is why you cannot preload old binaries on a system running 3.0 operating system. The core file looks as if it had come from some other program entirely. ============== Font Notes and saving disk space by selecting which font files to load: ======================================================================= The directories for cm fonts are ../cmfonts and ../LaTeXfonts. ../cmfonts includes the subdirectories mf tfm pl gf and pxl. gf is further divided into gf118 gf200 gf300. the pxl directory includes only the bare minimum of fonts needed to test things out. All fonts declared in the file plain.tex are provided, in *.1000pxl (for 200dpi devices) *.1200pxl (for 240dpi devices) *.1500pxl (for 300dpi devices) and *.590pxl (for a variety of screen preview devices. The *.1500pxl fonts and the *.300gf files from which they were made are set for BLACK-ON-WHITE mapping (Canon print engine). If you are using a WHITE-ON-BLACK engine, such as the Ricoh, you will eventually have to remake the gf files. Any other fonts needed in pixel format should be created by running gftopxl on the appropriate gf files. In extreme cases you will have to run Metafont to produce the appropriate gf file to start with. NOTA BENE---Since PXL fonts are very loosely packed, and take up gross amounts of disk space, and the format is now considered to be obsolescent. From now on, most of the fonts in this package will be distributed in GF format (standard output from Metafont). Device drivers will eventually be altered to read only gf and pk format. The AMS Special Symbol and Cyrillic fonts, which are products of old Metafont, are distributed in PK format, which is a very efficient packing. The programs pktopx and pxtopk in the ./mf84/MFutils directory provide the basic access to this format. A PK format file with the designation *.200pk corresponds with a PXL file *.1000pxl, and a PK file with the designation *.300pk corresponds with *.1500pxl. The 1:5 ratio continues through all magnifications---only the designation at the unmagnified size corresponds with the actual resolution of the target device. We will continue our efforts to eliminate the use of PXL format but for now, we will continue to supply a basic minimum (the fonts preloaded in plain.tex) in PXL format. See also the note about cm fonts in TeX 2.0, above. In addition to the cm fonts, the distribution includes a number of fonts provided through the courtesy of the American Mathematical Society. These are in the base directory amsfonts. METAFONT source files are not included. In the case of the m-series (mcyr, mcyb, msxm, msym) this is because these were produced with METAFONT79, a SAIL program which runs only on DEC-10 and DEC-20 machines. The e-series (Euler) were commissioned specifically from Hermann Zapf, and are distributed for non-profit scholarly use. METAFONT source files can be obtained under license from the American Mathematical Society. Information about OBSOLESCENT am series fonts. ============================================== THESE HAVE DISAPPEARED FROM THE DISTRIBUTION. If you want to continue using them, look for the files am_plain.tex etc, and replace the distribution plain.tex with them. *.*pxl files were provided in a number of magnifications for 200 pixel/inch, 240 pixel/inch, and 300pixel/inch printers. The magnification (for example .1000pxl) is 1000 times the true size for the 200 pixel/inch printer. If you have a 200 pixel/inch printer, then the .1000pxl files will print at true size. You may want to use .1315pxl files instead, reducing the output to 77% to get true size at a better resolution (many photocopy machines will do reduction by this factor). The .1200pxl files are for 240 pixels/inch printers, where they will print at true size. The .1500pxl files are for 300 pixels/inch printers. Please note that you have to load all of the .tfm files but that you only have to load the actual .nnnnpxl magnifications that you need. If you want to save disk space by only loading some of the .nnnnpxl magnifications, see the file ./Fontlist.txt which gives more information. ===================================================== TeX, as delivered, uses the following areas /usr/lib/tex /usr/lib/tex/macros /usr/lib/tex/fonts The following files are also important /usr/lib/tex/tex.pool /usr/lib/tex/macros/plain.fmt ============== Files in this area: 4.1* Versions of files for 4.1 bsd sites. 4.2* Versions of files for VAX 4.2 bsd sites. SUN* Versions of files for SUN 4.2 bsd sites. PYR* Versions of files for PYRAMID sites COPYING.POLICY Redistribution policy for Unix TeX---See above Fontlist.txt What fonts are needed?---See above History.txt Summary of changes between TeX versions--- useful if you are converting from an older version Makefile Generated by the appropriate *-setup (e. g., 4.2-setup) shell script. README This file SCORE-READ.ME The -READ-.ME file from the Generic TeX distribution dist_initex.ch Changes to TeX for Berkeley Unix, see the Makefile ext.c, ext.h C language routines for use by TeX h00vars.h included by ext.c. It's from the pc library. Generated by the appropriate 4.1-setup or 4.2-setup shell script. ini_to_trip A shell script that converts the change file to one appropriate to produce a triptex, see the Makefile ini_to_vir A shell script that converts the change file to one appropriate to produce a virtex, see the Makefile tex.web TeX. This file should not be changed. texpaths.h Included file with the default paths. May be changed if necessary. whoami.h Empty file. Included by h00vars.h ============== Subdirectories of the ./tex82 area: LaTeX The LaTeX macro package. This version should be reasonably stable. See the LaTeX/README file for more information. TeXmisc Parts of the TeX distribution which have not been ported to Unix. TeXware Tangle, Weave, etc TeXcontrib Contributed programs from Unix TeX users. TeXdevices Contains subdirectories with software to drive particular devices with DVI 2. TeXdoc Informative documents. Note that some of these are copyrighted and are not to be redistributed. TeXlib These files should be copied to /usr/lib/tex TeXmacros To be copied to /usr/lib/tex/macros TeXman Man pages TeXtrip The elements of the trip test. A document describing this test is in TeXdoc/tripman.tex. TeXweavetest A program to run through weave to insure it is doing the right thing. unsupported Just what it says. Things that haven't been tested at all, but are included in response to popular demand. There is also a pretty-printed version of tangle.p, generated from the tangle.web file, with NO changes merged in at all. This is provided for those who wish to undertake a new port. The following subdirectories of ./VAXbinaries may also be of interest: VAX4.1bin executables for 4.1 bsd BSD4.1lib These files should also be copied to /usr/lib/tex if you run 4.1 bsd BSD4.1pc0 Files which have changed in the pc0 pass of pc (relevant only to 4.1 bsd) BSD4.1support Contains the version of the pc runtime library used in loading these programs (relevant only to 4.1 bsd). VAX4.2bin executables for 4.2 bsd *without* 4.1 compatibility mode. ===================================================== If you find it necessary to remake TeX (or if you want to use a different library area, please see the Makefile for further information on what changes may be made. Note that it is not necessary (indeed it is undesirable) for you to change any of the files on the distribution tape, with the possible exception of texpaths.h. texpaths.h contains default paths used when TeX is trying to find a needed file (either one that's been included, a .fmt file, font information, or its string pool). See the discussion below in "PRELOADED TEX" for more information on this file. Note that many of the files in the subdirectories look at ./texpaths.h in determining their file paths. Also note that some file names are set in the Makefiles. In the Makefiles, PC is the version of the Pascal compiler to use in compiling the programs. PCLIB is the version of the Pascal library to use in loading (you should just define this to be null if you want to use the regular Pascal library). If you change the default areas, don't forget to inspect the other directory names in the Makefile (like BINDIR and LIBDIR which are used in "make install") and don't forget to update the information contained in the man pages in ./tex82/TeXman. The whole TeX package is written in a macro language called WEB. See "The WEB System of Structured Documentation" manual for details (./tex82/TeXdoc/webman.tex). The two macro processors, tangle and weave, have also been ported to Unix and are in the ./tex82/TeXware directory. Tangle converts the WEB file into a Pascal-language file. Weave produces a .tex file which can be TeXed and printed to provide a program listing. WEB files produce a string pool file when run through tangle. Note that of all the programs in this distribution, only tex.web produces a non-zero length string pool. In the distribution, this file (tex.pool) is put on /usr/lib/tex. Please be careful to make sure that the latest tex.pool is in this area (which can be changed by modifying the environment definition for TEXPOOL), since that is where initex looks for it by default (the pool information gets dumped in every .fmt file, so virtex need not read in the pool file). (Actually, when you tangle virtex, you also get a pool file, but this one should exactly match the tex.pool file or something is wrong). NOTICE to VAX 4.2 sites: The 4.2h00vars.h file comes from /usr/src/usr.lib/libpc/vars.h in the 4.2 distribution. ===================================================== Here are some slightly more obscure items expanding on (and to some extent, repeating) information given above: MAKING A .FMT FILE You should be aware that there are three kinds of TeXs in use. These are represented by initex, virtex, and tex. initex is used to install TeX, starting from scratch. initex loads font data, hyphenation data, and macro packages, and then spits out its entire internal state into a .fmt file when given the \dump command. virtex is able to read the information in this .fmt file back in, making its internal state the same as initex's when the \dump occurred. Like initex, virtex can also load font data and macro packages. However, virtex cannot read in the hyphenation patterns. tex is a virtex with the .fmt named plain.fmt preloaded. If you need to make a new .fmt file (say a new plain.fmt) do the following: % initex This is TeX, Version 1.0 for Berkeley UNIX (INITEX) **plain \dump ... initex will process the file plain.tex and then create the plain.fmt file (printing informative messages on your terminal as the process is carried out). Incidentally, if you get the virtex error, "Fatal Format Error, I'm Stymied", particularly after you've changed things around, try remaking the .fmt file as a first attempt to solving the problem. ========= PRELOADED TEX There is a hacky way, due to Pavel Curtis of Cornell, to get a TeX that starts immediately with a format file preloaded. Here are the instructions: First, make sure that the environment variables TEXINPUTS, TEXFONTS, TEXFORMATS, and TEXPOOL are set up appropriately for your site. If you've set things up as defined above, and are happy using the system-defined defaults, these four environment variables should not be defined (do an "unsetenv TEXINPUTS", etc., if you've defined them). These environment variables contain directory paths, showing where to find the files refered to by the TeX "\input" and "\read" commands, where the fonts are, where the .fmt files are, and where the tex.pool file is. When you make a preloaded version of TeX, the values associated with these variables in the environment of the person making the preloaded version get used to set the default paths in the preloaded version. Later, if a person running the preloaded version hasn't defined these variables, the default paths that get used are those defined in the environment of the person making the preloaded version at the time the preloaded version was dumped. See the file "texpaths.h" for details of the format of these environment variables. Also refer to the man page, ./tex82/TeXman/tex.1. Note that the TEXINPUTS, TEXFORMATS, and TEXPOOL paths start with "." and that the TEXFONTS path doesn't include ".". (One word of warning: the .fmt file doesn't contain the environment variable information. Hence, the effect of saying "virtex &formatfile" may differ from the effect of running a virtex with "&formatfile" preloaded.) Next, create the preloaded TeX: Run virtex as follows: % virtex This is TeX, Version 2.0 for Berkeley UNIX (no format preloaded) **&plain \read 0 to\blort \blort=^\ That is, give the command line shown and, when it asks for a value for \blort, hit your 'Quit' character (mine is ^\). (Note: the space after &plain is necessary, otherwise you may get the message, "I can't find plain.fmt, using plain.fmt instead." The results of this redundancy are not satisfactory.) This makes a core file which can be then fed into undump to produce a new, preloaded TeX runnable. Type "undump tex virtex core". If one tried the obvious approach of just typing '&plain', the log file gets opened and put onto the fchain (Pascal's file chain). When the undumped TeX starts up again, it re-opens the log file, not realising that it's on the fchain, and manages to make a circularity in the linked list. When it tries to flush the output the next time, it loops forever. The reason for the \read hackery is that if you put a file name on the first command line, it opens the log file. The same occurs if you put nothing else on the first line. Therefore, we need a solution that lets us know when TeX has finished reading the fmt file, but then pauses long enough to give us time to 'Quit' it. The \read does the trick. Please be aware that creating a macro package to be turned into a preloaded TeX is a task for experts and may not work for all possible macros. For example, an \everyjob token stream if present in a macro package being preloaded will be executed before the \read happens. Consequently, if you want to preload macro packages which you have created, you should take care that \everyjob's don't do anything to cause the log file to be opened. For example, referring the \jobname does this, so don't do \everyjob{\message{\jobname}} in your macro package (this would always produce the uninteresting message, "texput", anyway). In case you are now worried, rest assured that the plain and latex macro packages do not have any problem like this. Note to 4.1c sites: This method will work on 4.1 bsd and 4.2 bsd. It may not work on 4.1c bsd since Berkeley changed the format of the core file for a period of time during the preparation of 4.1c (apparently they changed the format back in 4.2). ========= The following information is of interest only to 4.1 bsd sites. 4.2 bsd sites use the regular pc from Berkeley and get around the lack of an "otherwise" arm in the case statement through the -O option to pxp. To make a hacked version of a Pascal compiler with a default arm in the case statements on 4.1 bsd (These steps have already been done to the files in directories ./pascal and ./pc0 on this tape): (Modified from a description by Howard Trickey.) 1) Copy all the files in /usr/src/cmd/pascal somewhere (on this tape, the copy is in ./pascal). The following steps should all be carried out on this copy, not on the original. 2) Copy pcwhoami.h (from /usr/src/cmd/pc0) onto whoami.h 3) Edit pc.c to change the definition of the string pc0 to be the file where the new pc0 program resides (/usr/lib/tex/texpc0 if things are set up as specified on this tape -- the tape file is ./VAXbinaries/BSD4.1lib/texpc0). 4) Type "make pc". 5) Move pc to where it is supposed to go --- (./VAXbinaries/VAX4.1bin/texpc on this tape). To make the hacked version of p0 (the first pass): 1) Copy all files in /usr/src/cmd/pc0 somewhere (on this tape, it is ./pc0). The following steps should be carried out on the copy, not the original. 2) Copy the files from ./VAXbinaries/BSD4.1pc0 into the new area, replacing files from the original pc0. 3) Overwrite whoami.h with pcwhoami.h 4) Make a temporary directory, tmp. 5) Type "make a.out", and wait a long time. 6) Move a.out to wherever (/usr/lib/tex/texpc0 if things are set up as specified on this tape). 7) Copy pc2.0strings to wherever (/usr/lib/tex/pc2.0strings if things are set up as specified on this tape). Note to 4.2 sites: You don't have to do any of this. pxp in 4.2 bsd contains an option (-O) that removes the "others" arm in the case statement, replacing it with an if test. You can then use the regular pc compiler. See the Makefiles for more information (for example, the comment about FIXOTHERS in ./tex82/Makefile). This also means that you don't have to install the following files: ./VAXbinaries/VAX4.1bin/texpc, ./VAXbinaries/BSD4.1lib/pc2.0strings, and ./VAXbinaries/BSD4.1lib/texpc0, and, of course, that you don't need to extract ./pascal, ./pc0, or ./pclib from this tape. ============== 4.2 update note The following directories have been "scoured" for 4.2 information (i.e., there shouldn't be any unnoticed incompatibilities here): ./undump ./tex82 ./tex82/TeXware ./tex82/TeXdevices/symbolics ./tex82/TeXdevices/versatec The following don't have any programs in them (at least not programs that work on Unix and hence need no conversion): ./pxl200 (note above about truncated names) ./tex82/LaTeX ./tex82/TeXmisc (not converted to Unix) ./tex82/TeXdoc ./tex82/TeXlib (if you remake TeX, replace tex.pool) ./tex82/TeXmacros (if you remake TeX, re-dump plain.fmt) ./tex82/TeXman ./tex82/TeXtrip ./tex82/TeXweavetest The following are 4.1 specific: ./pascal ./pclib ./pc0 ./VAXbinaries/VAX4.1bin ./VAXbinaries/BSD4.1lib ./VAXbinaries/BSD4.1pc0 ./VAXbinaries/BSD4.1support The following is VAX 4.2 specific: ./VAXbinaries/VAX4.2bin (this will be upgraded to TeX 2.0 as soon as possible. There is no functional difference between TeX 1.5 and TeX 2.0 to worry about, however) The following haven't been checked in full yet and may contain 4.1-specific references: ./tex82/TeXdevices/imagen ./tex82/TeXcontrib Acknowledgements ================ I'm sure I'm going to leave someone off of this list. If I do, don't hesitate to complain. The initial TeX Unix ports were independently developed by Howard Trickey of Stanford and Pavel Curtis of Cornell. Howard has been responsible for most of the bugfixes, enhancements, and updates over the past few years. The Sun TeX port was independently carried out by people at three locations: Mike Harrison and Charles Perkins at U.C. Berkeley, Rusty Wright at U.C. San Diego, and Steve Correll of Lawrence Livermore Laboratories. The versions of the files contained here merge their work. Many other individuals have been involved with the device drivers and other software. We've tried to mention these people in "ORIGIN" files in the various subdirectories. Again, apologies to anyone we missed. As for Metafont, the vast majority of the work was done by Paul Richards of the University of Illinois. The entire organization of the mf84 partition is taken over directly from him.