INTRODUCTION This file is ./TeX3.0/README. INTRODUCTION NO WARRANTY statement Acknowledgements Installing TeX3.0 on a UNIX System Making a .fmt file Further Notes About Preloaded TeX Why Won't Undump Work On My System? Font Notes (1): What do tfm, pk, gf, pxl, pl, mf, vf, and vp mean? Font Notes (2): More About Rastered Fonts Font Notes (3): More About OBSOLETE Fonts--am series & pxl If you have received a 1/2-inch, 2400' reel of tape, it was written on a SUN2 (or a VAX running Ultrix or BSD 4.2/3). 1/4-inch cartridges were written on a SUN2 (QIC-11 or QIC-24 as noted on the label). For instructions on installing TeX, see "Installing TeX3.0 on a UNIX System," page 1, below. Information on running UNIX TeX may be found in the man page, ./TeX3.0/Man-pages/tex.1, on the 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, "TeX and Metafont, New Directions in Typesetting," published by Digital Press and the AMS, is obsolete. You may also wish to consider getting "LaTeX," by Leslie Lamport, published by Addison Wesley (ISBN 0-201-15790-X). Both of these books were typeset with the system they describe. Serious users of the TeX and METAFONT system should invest in the 5-volume set "Computers and Typesetting," published by Addison Wesley; and all users should invest in a membership in the TeX Users Group (P.O. Box 594, Providence, R.I. 02901) to keep up to date on new developments. For members with access to electronic mail, another service of the TeX Users Group is the TeXhax E-mail Digest. Your attention is directed to the file ./TeX3.0/COPYING.POLICY which is a statement of our policy on redistributing UNIX TeX. Please also see ./TeX3.0/README.SCORE which contains additional information about the Generic TeX distribution and conditions which apply to this distribution, as well. 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. Pierre MacKay MacKay@.CS.WASHINGTON.EDU or TeX Support Northwest Computing Support Center, DR-10 University of Washington Seattle, WA 98195 U.S.A. Tel: (206) 543-6259 ^L NO WARRANTY BECAUSE ALL THE SOFTWARE COLLECTED INTO THE UNIX TeX DISTRIBUTION, FROM WHATEVER SOURCE IT MAY ORIGINATE, IS LICENSED FREE OF CHARGE, WE PROVIDE ABSOLUTELY NO WARRANTY, TO THE EXTENT PERMITTED BY APPLICABLE STATE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING, THE UNIVERSITY OF WASHINGTON, THE NORTHWEST COMPUTING SUPPORT CENTER, AND ALL PARTIES WHO HAVE JOINED IN CONTRIBUTING TO THIS SOFTWARE DISTRIBUTION PROVIDE TeX, METAFONT, AND ALL ASSOCIATED PROGRAMS, FONTS, DOCUMENTATION AND EXAMPLES ``AS IS'' WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD TeX, OR ANY OF THE ASSOCIATED PROGRAMS IN THE UNIX TeX SOFTWARE DISTRIBUTION PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. IN NO EVENT, UNLESS REQUIRED BY APPLICABLE LAW, WILL THE UNIVERSITY OF WASHINGTON, THE NORTHWEST COMPUTING SUPPORT CENTER AND/OR ANY OTHER PARTY WHO MAY MODIFY AND REDISTRIBUTE THIS SOFTWARE AS PERMITTED IN ACCORDANCE WITH THE PROVISIONS IN THE FILE ./TeX3.0/COPYING.POLICY, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY LOST PROFITS, LOST MONIES, OR OTHER SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH PROGRAMS NOT DISTRIBUTED BY US) THE PROGRAM, EVEN IF YOU HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES, OR FOR ANY CLAIM BY ANY OTHER PARTY. ^L Acknowledgements ================ I'm sure I'm going to leave someone off of this list. If I do, don't hesitate to complain. WEB-to-C was begun and developed by Tom Rokicki, and brought into its present form by Tim Morgan. It has superseded the Pascal-related work described below, but the acknowledgements are still in order. In the major overhaul for TeX 3.0, special thanks go to Karl Berry. John Ramsdell has given some long-awaited attention to the problem of compilation in a networked system. The initial TeX Unix ports were independently developed by Howard Trickey of Stanford and Pavel Curtis of Cornell. Howard was responsible for most of the bugfixes, enhancements, and updates over the first 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. The Pascal System V port for the 3B2 was contributed by Lou Salkind of NYU. As for METAFONT, the vast majority of the work on Pascal compilation was done by Paul Richards of the University of Illinois, and most of the associated MFlib library is his. 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. There are also many people over the years who have helped improve the quality of the distribution with bug alerts, fixes, comments, suggestions for improvements, and information about the installation of TeX and METAFONT on new machines. Since it is impossible to name each of you, we wish to acknowledge and to thank you here as a group. ===================================================================== ^L Installing TeX3.0 on a Unix System ================================== We strongly advise that you install TeX3.0 and METAFONT2.0. If, however, you encounter a great many problems during installation, and are not able to spare the time to solve them on your system, please get in touch with us to arrange exchanging your tape for a copy of TeX2.991 and METAFONT1.8, which are known to run on a good many machines (see the file called MACHINES.tex82). -------------------------------------------------------------------- The following instructions assume you will be using WEB-to-C to convert Donald Knuth's WEB code into C for the compilation of TeX and METAFONT. WEB is the macro language in which the whole of the TeX package, including METAFONT, is written. For details about this language, see the manual "The WEB System of Structured Documentation" (./TeX3.0/TeXdoc/webman.tex). During the making of TeX and METAFONT, the macro processor tangle converts WEB files into Pascal-language files. WEB-to-C takes this Pascal output, and converts it into C. Please note that if you wish to have the minimum of trouble with compilation and installation, you should keep the present hierarchy of directories under ./TeX3.0 intact, for the makefiles depend on it. 1. START by reading the tape onto your system. 2. Change to the ./TeX3.0 directory. We recommend that you read through Tim Morgan's README.WEB-to-C to get an overview of the conversion process. Be aware that the top- level makefile takes care of many of the steps delineated in this file, and that Big TeX gets made by default. Also: please be sure to read the files MACHINES and PROBLEMS, and take notes concerning matters that pertain to your machine, operating system, and compiler. 3. Edit site.h (master configuration file for WEB-to-C) to suit your system and site. The file includes the following default TeX and METAFONT search-path definitions: #define TEXINPUTS ".:/usr/local/lib/tex/inputs" #define TEXFONTS ".:/usr/local/lib/tex/fonts" #define TEXFORMATS ".:/usr/local/lib/tex/formats" #define TEXPOOL ".:/usr/local/lib/tex" #define MFINPUTS ".:/usr/local/lib/mf/inputs" #define MFBASES ".:/usr/local/lib/mf/bases" #define MFPOOL ".:/usr/local/lib/mf" These paths are used by TeX and METAFONT to find input files, .fmt or .base files, and information about fonts and string pools. Please note that these paths are advisory, not absolute. We cannot dictate the organization of your /usr partition. (If you substitute the C-shell "setenv" command for "#define" you can ensure that your environment matches your decisions here, and you can "set" and "export" these equivalences in the Bourne shell. The man page for TeX--./TeX3.0/Man-pages/tex.1--discusses this more fully.) Whatever changes you make in the paths, it is advisable to retain the dot preceding the colon so that TeX and METAFONT will always search your current directory first. Note that the default compilation produces a Big TeX. This size is very useful when you are using two or three very large macro packages at the same time, and also for very large documents with complex pages and inserts. The default compilation also produces a Big METAFONT. If, for some strange reason, your system cannot run Big TeX, be sure to attend to your definition of the type 'glueratio' in this file. Then, go to the directory ./tex, and move ctex.ch to ctex32.ch; then, copy ctex16.ch to ctex.ch. This will result in a compilation of a small tex. Do the same in the directory ./mf: move cmf.ch to cmf32.ch, and copy cmf16.ch to cmf.ch before you begin to compile; this will produce a small metafont. (You will always be able to restore a Big TeX by patching your ctex.ch file with bigtex.diff, a Big MF by patching your cmf.ch with bigmf.diff; or, more simply, by reversing your steps and copying your ctex.ch to ctex16.ch, and moving ctex32.ch to ctex.ch.) 4. Check the master makefile to be sure that all definitions and paths given in this file suit your site. Do make certain to define your C compiler correctly. If you are not using gcc, and if you prefer, you could define your C compiler at the same time that you give your "make" command, by typing % make CC="cc" (The "%" is presumed to be your C-shell prompt. It will probably be "$" if you are in the Bourne shell. The example assumes that you are using cc.) Do be sure to give the necessary values to wlibs= for METAFONT window support. For example, if you are running SunView, modify the line to read wlibs=${sunlib}. Do be sure to check the paths following "INSTALL=cp." The path for "texpooldir" should match up with your definition for the TEXPOOL environment in site.h; the path for "formatdir" should match up with the TEXFORMATS environment defined in site.h; "mfpooldir" with MFPOOL; and "basedir" with MFBASES. 5. Prepare the areas for compilation: a. Make a directory named /usr/local/lib/tex (or whatever you have defined in site.h as your TEXPOOL environment). b. Make a subdirectory named /usr/local/lib/tex/formats (or whatever you have chosen for the environment TEXFORMATS). c. Make a subdirectory named /usr/local/lib/tex/fonts (or whatever you have chosen for the environment TEXFONTS). Copy the contents of ./TeXfonts to it. You now have in your TEXFONTS directory, the *.tfm fonts for all of the fonts on the tape (in the directories ../utilityfonts, ../cmfonts, ../LaTeXfonts, and ../ams). NOTE: If you are an AMSTeX user, we encourage you to get in touch directly with the American Mathematical Society to keep yourself up to date with respect to versions of their macros and fonts. The AMS material on the tape is present entirely because of their generosity, but we do not actively seek to keep the material up to date. The focus of this distribution is on keeping the primary TeX and METAFONT material updated and ported to UNIX, beginning with the machines we have available to us. The AMS macros and fonts on the current tape are from July 1990. If it is important that what you print out be visually identical to material printed out under the older AMSTeX, we recommend that you keep both old and current AMS fonts on your system. If you can imagine the possibility at some time, of having to regenerate a document that must be visually the same as one generated under the old AMSTeX, archive the older fonts on your system so that they will be available to you when such a need arises. The older fonts and the current fonts are not identical. d. Make another subdirectory named /usr/local/lib/tex/inputs (or whatever you have chosen for the environment TEXINPUTS). If you are planning to use BibTeX, also make a subdirectory /usr/local/lib/tex/bib (or whatever you defined in site.h for your environment BIBINPUTS). e. Make the following METAFONT directories and subdirectories: /usr/local/lib/mf /usr/local/lib/mf/bases /usr/local/lib/mf/inputs (or whatever you have defined as your MFPOOL, MFBASES, and MFINPUTS environments in site.h). See README.METAFONT, "METAFONT Installation Guide," Step 3, for a bit more detail. f. Take a look at the script Install_INPUTS. Make sure that the paths to TEXINPUTS and MFINPUTS are defined correctly. And, if it applies, make certain that the path to BIBINPUTS is similarly defined correctly. Edit this script file if you wish. For your information: The files from ./TeXmacros are necessary for users of plain.tex. The files from ./LaTeX and ./LaTeX/LaTeXmacros are necessary for LaTeX users, as well as for those who wish eventually to print out a copy of the manual for the TeXPS PostScript driver. The files from ./LaTeX/LaTeXmakeindex are necessary for those who wish to run that program. The ./LaTeX/LaTeXslitex files are necessary for users of SliTeX. The files from ./BibTeX.inputs are necessary for users of BiBTeX. The files from ./ams/amsfonts and ./ams/amstex are necessary for users of AMSTeX. Some of the *.mf files copied into MFINPUTS are needed by inimf to create base files. The base files will be used by virmf--the production version of METAFONT--for generating rastered fonts at magnifications not provided on the distribution tape. (For details about MFINPUTS and about other uses for METAFONT, first see Steps 3 and 4 of the "METAFONT Installation Guide" in README.METAFONT, then be sure to read ./Man-pages/mf.1.) If everything suits you, run the script by typing its name at the prompt. 6. Double-check to see that you are still in TeX3.0, and type % make This will build tangle, initex, virtex, tex.pool, and the utilities in ./texware, as well as inimf, virmf, mf.pool and the utilities in ./mfware and ./fontutil. It will also build bibtex. If your make halts, check the MACHINES and PROBLEMS files for notes concerning your machine. Also check the make.history file to see whether the terminal listing of a successful make on our SUN2/120, with our comments added where the make was halted, might help you on your system. After compilation, the executable TeX files initex and virtex, and the file tex.pool, will be found in the directory ./tex. The METAFONT analogs inimf, virmf, and mf.pool will be in ./mf. 7. If you now type % make install at your prompt, these files will be copied for you into your BINDIR environment. Type rehash, or do whatever you must do, to make accessible to you these newly installed programs. 8. Next, create the plain.fmt file by typing at your shell's prompt % initex plain '\dump' Initex will load font data, hyphenation data, and the plain.tex macro file, and dump its entire internal state in a .fmt file called plain.fmt with its companion .log file called plain.log. If you are going to use LaTeX (or SliTeX), repeat these steps to create the lplain.fmt (or splain.fmt) file. 9. Move the resulting plain.fmt to /usr/local/lib/tex/formats/plain.fmt (your TEXFORMATS environment). There, hard link it to the name tex.fmt. (This latter step assumes that you will eventually be invoking TeX as tex.) LaTeX/SliTeX users: do the same with lplain.fmt/splain.fmt; hard link the format file to the name latex.fmt/slitex.fmt. 10. Decide whether or not to use undump. If you have a working "undump," you can build a preloaded TeX; but before you do so, know that with TeX 3.0, undump is less supported than ever before. We recommend that you bypass its use. a. If you insist on using undump: go to the directory ../undump and make the undump appropriate for your system. When you have finished, change back to directory TeX3.0; and at your prompt, type % virtex '&plain' xyxyxy This will produce the responses: This is TeX, C Version n.nnn (no format preloaded) ! I can't find file `xyxyxy.tex'. <*> &plain xyxyxy Please type another input file name: ^\ The pseudo-filename "xyxyxy" can be any nonsense character string you choose, so long as you are sure that no file named xyxyxy.tex is accessible. "Version n.nnn" stands for the version number of TeX you are installing. The "^\" character represents your "QUIT" character (usually CTRL-\) which makes a core file. Convert the core file into something that can be run by typing % ../undump/undump tex virtex core Rename this executable program tex. If you get a message such as "core didn't come from this a.out file" you are probably using the wrong undump. Look again in the ../undump directory to make sure. It is possible that none of the versions of undump on the tape will work on your system, owing to the fact that undump is one of the most system-dependent programs around. For further information, see "Why Won't Undump Work On My System?," below. b. Bypass the use of undump: We recommend that you read the TeX man-page (./TeX3.0/Man- pages/tex.1) to get a general understanding of how the current TeX loads a format file. What follows is intended as a suggestion for a very simple set up; the man-page will introduce you to a variety of other options that may be more useful for your site. Go to /usr/local/bin (or whatever you have defined as your BINDIR environment). Hard link virtex to the name tex, and change its mode to suit your site. Since TeX now looks at its own command line to determine what name it is being called under, if you invoke it as tex, it will "look" at own name, it will attach the .fmt suffix to it, and will load a format file having that name. Since, in Step 9 above, you linked the plain.fmt file to tex.fmt, TeX invoked as tex is ready to go. It may be useful to know that the name tex is conventionally applied to a virtex with the plain.fmt loaded. In other words, invoking TeX by typing tex is the same thing as invoking TeX by typing virtex '\&plain'. If you are going to run LaTeX and SliTeX, be sure to hard link them as latex and slitex to virtex. Be sure to read ./TeX3.0/Man-pages/tex.1 so that you understand how this works, and so that you will know what other options are open to you. ENJOY TeX! ----------------------------------------------------------------------- Your next step is to install METAFONT. Owing to the sheer size of a generalized font library, we cannot provide you with all the rastered fonts you may need to print the .dvi files at your site. What is on the tape is enough to handle the essentials of TeX, LaTeX, and SliTeX. Chances are good that you will, at some time or another, need a rastered font for printing at a magnification not provided on the tape. For example, you may have a document in which the cmbx12 typeface at magstep 2 is required. TeX will scale this font to that magnification, using the cmbx12.tfm font file copied by you into your TEXFONTS environment--along with the rest of the Computer Modern .tfm font files--in Step 5.b above. In order to print the document on a 300dpi printer, however, you will need the rastered font cmbx12.432pk. While the rastered font cmbx12.300pk (the cmbx12 typeface at magstep 0) is on the tape, the rastered font cmbx12.432pk (the same typeface at magstep 2) is not. You will then have to generate that rastered font via METAFONT. To install METAFONT, please see ./TeX3.0/README.METAFONT and especially ./TeX3.0/Man-pages/mf.1. Information about associated software is to be found in readme files in associated subdirectories under ./TeX3.0. Numerous printer drivers and previewers are to be found in a directory parallel to ./TeX3.0 called ./DVIware. We regret very much to say that, not having the equipment, we are not able to support the programs in the ./DVIware directory. The previewer and printer driver programs are passed on to you because they are frequently requested, and because people have been generous in offering them for distribution. ================================================================== ^L Installing TeX3.0 on a Unix System: 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 dumps 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. The name tex is conventionally applied to a virtex with the .fmt named plain.fmt loaded. If you need to make a new .fmt file (say a new plain.fmt) do the following: % initex plain '\dump' This is TeX, C Version n.nnn (INITEX) ... 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). For LaTeX and SliTeX, you dump lplain to lplain.fmt and splain to splain.fmt. 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. --------------------------------------------------------------------- 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 problems like the one just described. ==================================================================== ^L Installing TeX3.0 on a Unix System: Further Notes About Preloaded TeX ====================================================================== There is a hacky way, discovered by Pavel Curtis of Cornell, to get a TeX that starts immediately with a format file preloaded. If you have compiled TeX with WEB-to-C, it may not be worth going through this step. Be sure you read ./TeX3.0/Man-pages/tex.1 to see how TeX now works, before you decide to do this. You should be aware that the following instructions were written for versions of TeX earlier than 2.993 (precursor to TeX 3.0). 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 site.h for details of the format of these environment variables. Also refer to the man page, ./TeX3.0/Man- pages/tex.1. (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 by running virtex as follows:: % virtex '&plain' xyxyxy This is TeX, C Version n.nnn (no format preloaded) ! I can't find file `xyxyxy.tex'. <*> &plain xyxyxy Please type another input file name: ^\ That is, give the command line shown and, when it asks for a value for a new file name, 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.) Now type "undump tex virtex core". If one tried the obvious approach of just typing '&plain', the log file gets opened and put onto the chain of open files . When the undumped TeX starts up again, it re-opens the log file, not realising that it's on the chain already, and creates a circularity in the linked list. When it tries to flush the output the next time, it loops forever. The use of a nonsense name for the input file prevents this, since it makes TeX wait to find out what name it should give to the log file. If you left off the nonsense name on the command line, TeX would immediately open the texput.log file. This would also happen if you gave no arguments on the command line and answered virtex's "**" prompt with &plain but no nonsense name. 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'. The nonsense does the trick. =================================================================== ^L Installing TeX3.0 on a Unix System: Why Won't Undump Work On My System? ======================================================================== First, decide whether it really matters. You might want to take a look at ./Unsupported/tex.script to see how undump was very successfully bypassed before the advent of TeX 2.993 (virtually == TeX 3.0). Please be sure to read the current TeX man-page (./TeX3.0/Man-pages/tex.1) to see how the current TeX works. We do recommend bypassing the use of undump. If, however, you do not wish to do so, read on. To understand the workings of undump you must have a certain basic knowledge of two specific kinds of Unix file format: core and a.out. The core file, which is produced by several kinds of fatal execution error, can also be produced by a user-generated "quit" signal, sent from the keyboard by the control character "^\" on most Unix systems. It is described in the Berkeley Unix manual, Section 5-- Special File formats (Manual page Core(5)), as the memory image of a terminated process. The commonest source for the initial state of this image is an "a.out" file. (See the Manual page a.out(5) in the Berkeley Unix manual.) This file is produced either by the assembler or by the link editor (from one or more *.o files). It consists of a header and four other sections which guide the operating system to set up the initialized core image correctly. "a.out" files are conventionally renamed at the time of compilation (by flags on the compilation command line) with the name of the program to be run. Both "initex" and "virtex" are actually "a.out" files, and can therefore be used in place of a "tex" file if you are willing to wait for format loading. In some cases, as you will see, there is no choice. What you are trying to do with the undump system is to trap the virtex program at a point where it has completed a second stage of initialization and to dress the "core" memory image up with "a.out" headers so that it looks as if it came fresh from the link editor. You start by running virtex, and getting it to read in the plain.fmt file, then you force a dump of the "core" memory image. The first requirement is that you be able to do that. Clearly, if you cannot get a clean core image, you cannot do any of the other things. Once you have the core image, you must edit it to add the header structure to the beginning of the file, and possibly to provide certain other structures as well, then you can rename the result (in our case, we will call it tex or latex) and the operating system will accept it as if it were an "a.out" file. This is what "undump" tries to do. The line "undump tex virtex core" says, in effect, "create a file named 'tex' by taking the header information from the virtex `a.out' file and tacking it onto a copy of the core file just created." If only "a.out" format were stable across operating systems and versions of any given operating system, it would be relatively easy. But "a.out" format is one of the most system-dependent formats in the Unix world. You cannot be sure even from one version of an operating system to another that "a.out" format will remain stable, and you can be almost certain that the "a.out" format on any one vendor's machine will be different from that on all other machines. (It is not just perversity, there are some performance reasons as well.) Ideally undump should be table driven, so that new "a.out" formats can be fed in easily, but we would first have to find a programmer who had access to fifteen different operating systems and had the stamina to keep from going mad while trying to deal with them. At present we have only a collection of unique system- dependent versions of undump. If none of our versions works on your machine, you probably have an operating system with yet another style of "a.out" and "core" file. If you can manage to work out an undump for your machine, we would be delighted to add it to our collection, but we can't help you with technical information, because we have no access to anything but our Suns and Vaxen. ====================================================================== ^L Font Notes (1): What do tfm, pk, gf, pxl, pl, mf, vf, and vp mean? =================================================================== Font files come in several varieties, with suffixes like: .tfm .?pk .?gf .?pxl (obsolete) .pl .mf .vf .vp A .tfm (TeX Font Metric) file is a compact binary file that contains information about each character in a font, about combinations of characters within that font, and about the font as a whole. The font metric data contained in .tfm files and given in device- independent units, are used by TeX to format the page and produce .dvi (device-independent) files. Since TeX does scaling calculations, one .tfm file serves for all magnifications of a given typeface. (This is to say that all TeX needs in order to typeset a document that calls, at various points, for the typeface known as Computer Modern Bold Extended at 12 points (cmbx12) at magsteps 0, 1, and 2, is the cmbx12.tfm file.) In order to print these .dvi files on real devices, you need rastered font files containing digitized character shapes and other data needed by previewers and printer-driver programs that will take your .dvi files and convert them into something usable by your terminal or printer. Rastered fonts come with suffixes like .?pk, .?gf, and .?pxl. The "?" stands for the horizontal dots-per-inch resolution of the font (unless the font has been magnified). The letters "pk," "gf," and "pxl" stand for different font formats. Fonts in pk format are in the tightly packed format that is pretty much the standard for printers and printer-drivers today. They take up less space than fonts in gf (generic font) format--the format in which METAFONT generates fonts, and far less space than fonts in pxl format. Fonts in pxl format take up gross amounts of disk space and permit only 128 characters. They are considered obsolete, and we discourage their use. Font files with the .pl (Property List) suffix, are the ASCII (human-readable) analog of binary .tfm files. Font files with the .mf suffix are in METAFONT source format. These are the files used by METAFONT to generate rastered fonts for specific typefaces at specific magnifications for the specific resolution and type of mapping used by your print engine. * * * * * * * * * * * The .tfm files for Donald Knuth's Computer Modern fonts are provided on the tape in the directory ./TeX3.0/TeXfonts, along with the .tfm files for utilityfonts, LaTeX, and AMS fonts. The rastered forms of the Computer Modern and LaTeX fonts necessary to run the basic versions of TeX, LaTeX, and SliTeX, are on the tape in pk format--in pk120, pk240, and pk300 dpi series--in the directories ./cmfonts/pk and ./LaTeXfonts/pk. AMS fonts are provided through the courtesy of the American Mathematical Society, and are in the base directory ./ams. See ./ams/amsfonts/pk for rastered fonts in pk300 dpi series. Fonts in the subdirectory pk300 are set for BLACK-ON-WHITE mapping (CanonCX print engine). If you are using a WHITE- ON-BLACK engine, such as the RicohFourZeroEight Zero (4080), be sure to read ./TeX3.0/README.WRITE-WHITE, and to use the fonts in pk300w. If you are using any other print engine, you should compile fonts to fit it. The distribution fonts will only be an indicator of what the device can do. The utilities gftopk and pktogf--for converting gf font files into more compact pk font files and vice versa--are provided (in ./TeX3.0/mfware and in ./TeX3.0/fontutil, respectively). The programs pxtopk and pktopx--for converting obsolete pxl font files into pk format and vice versa--are provided in ./Unsupported/MFpxl/CMFpxlware. Please know that pktopx can only be used on 128 character fonts. Many of the newer fonts contain 255 characters, and will not work with a pxl device at all. We advise you to convert your driver to read gf or pk (or both). If your printer uses only gf fonts, be sure to read the README file in ./cmfonts/gf and LaTeXfonts/gf for the use of makefiles in these directories to generate the fonts you need. For AMS fonts, please see the makefiles in ./ams/amsfonts/gf and ./ams/amsfonts/gf/gf300. To convert binary .tfm files into human-readable .pl (property-list) files, use the texware routine tftopl. The extension .vf identifies a file written in virtual font file format. The fontutil routine vftovp converts .vf font files into human-readable .vp (virtual font property-list) files. For Donald Knuth's discussion of these new fonts, see the ./TeX3.0/fontutil/README.virtual_fonts file. We supply the full Computer Modern, LaTeX, and SliTeX fonts in mf source format, in the directories ./cmfonts/mf and ./LaTeXfonts/mf. The METAFONT source files for the AMS fonts are distributed for non-profit scholarly use by the American Mathematical Society; see subdirectories of ./ams/amsfonts. ==================================================================== ^L Font Notes (2): More About Rastered Fonts ========================================== As noted above, the *.tfm files are all that TeX needs to make a .dvi file; and you only need one to cover all magnifications for any specific typeface. This is not true for rastered fonts that will actually print on real devices. For these, you need a distinct file for each resolution, for each print engine, and for each magnification. This is to say that, in order to typeset a document calling for the typeface cmbx12 at magsteps 0, 1, and 2, you need only have the cmbx12.tfm file on your system. In order to print that document, however, you will need three different rastered font files--cmbx12.300pk, cmbx12.360pk, and cmbx12.432pk. But while you have to load all of the .tfm files that plain.tex, lfonts.tex, or sfonts.tex ask for, you only have to load fonts at the actual .????[gf, pk] magnifications that you really expect to use, at the actual resolution in dots-per-inch of your printer, and for the type of mapping used by the particular type of print engine you have. This means that if you never print a document calling for cmbx12 at magstep 3, you need never place the rastered font cmbx12.518pk onto your system; and that if your printer is a 300dpi printer and your previewer uses 300dpi fonts, you need never copy any of the font files from the subdirectories pk118 and pk200 from the tape onto your system; and that if your device uses BLACK-ON- WHITE mapping, you need never use the fonts in the subdirectory pk300w on the tape. Let us say that you have a 300dpi printer with an engine set for BLACK-ON-WHITE mapping that uses fonts in pk format, and that you will be using the Computer Modern fonts. The first thing you will have to do (after you have chosen a printer driver program) is to copy the contents of ./cmfonts/pk/pk300 from the distribution tape onto your system. Where exactly on your system is determined by the driver you choose. Because there is as yet no standard organization for rastered fonts, we cannot give you generalized advice about where to place such fonts. You should probably not copy them into your TEXFONTS environment. (The file ./TeX3.0/site.h which you edited for your making of TeX and METAFONT, and in which you defined the various environments for TeX and METAFONT on your system, has no effect on any of the dvi interpreters in this package.) The TEXFONTS environment should probably be reserved for .tfm files. The rastered fonts necessary for previewing and printing should probably be kept in an entirely separate place; and it is probably best to distinguish one rastered font format from another, if you plan to use more than one type. If you examine the contents of the ./cmfonts/pk/pk300 directory, you will see that cmbx12.300pk is the only cmbx12 font in it. That is the font cmbx12 at magstep 0 for your 300dpi printer. The distribution does not provide cmbx12 at magsteps 1 and 2 for 300dpi printers. This is because, owing to the sheer size of a generalized font library, we cannot possibly provide you with all the fonts you may need at your installation. What we provide is enough to handle the essentials of TeX, LaTeX, and SliTeX---no more. And that is why we give you METAFONT in the standard web2c compilation. The documents pertinent to the installation of METAFONT and to the generation of fonts are ./TeX3.0/README.METAFONT and ./TeX3.0/Man- pages/mf.1. When you have METAFONT installed, it should only be a short while before you are generating the rastered fonts cmbx12.360pk (cmbx12 at magstep 1), cmbx12.432pk (cmbx12 at magstep 2), and any other typeface for which there are METAFONT source files, at magnifications needed by the devices at your site. =================================================================== ^L Font Notes (3): More About OBSOLETE am series and pxl fonts ============================================================ AM fonts HAVE DISAPPEARED FROM THE DISTRIBUTION. If you want to continue using them, the files am_plain.tex, am_lfonts.tex, and am_webmac.tex are provided. You can replace the distribution's plain.tex with them, but neither the am_plain nor the am_lfonts are up-to-date. As mentioned above in "Font Notes (1)," pxl fonts are considered to be obsolete. All the fonts in this package are distributed in pk format. Device drivers will eventually be altered to read only gf and pk formats. *.*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. This 1000:1 designation was adopted because it made it easier to indicate fractional magnifications without resorting to the decimal point. 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. A gf or pk format file with the designation *.200gf or *.200pk corresponds with a pxl file *.1000pxl, and a gf file with the designation *.300gf 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. =============================EOF=====================================