|
DataMuseum.dkPresents historical artifacts from the history of: DKUUG/EUUG Conference tapes |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about DKUUG/EUUG Conference tapes Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - downloadIndex: R T
Length: 39704 (0x9b18) Types: TextFile Names: »README«
└─⟦060c9c824⟧ Bits:30007080 DKUUG TeX 2/12/89 └─⟦this⟧ »./tex82/README«
INTRODUCTION 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 wide range of Unix Systems (except for some parts of MFware, which still depend on a pascal compiler.) We are eager to change that. If this is a 1/2 inch 2400' reel of tape it was written on a SUN2 (or a VAX running Ultrix or Berkeley Unix, version 4.2/3. If this is a 1/4 inch cartridge, it was written in four-track format on a SUN2 (QIC-11 8000bpi or QIC-24 as noted on the label). The cartridge may also be in cpio format written 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/Man-pages/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. 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 ($30.00 annually, payable to TeX Users Group, P.O. Box 594, Providence, R.I. 02901) through which they will be kept up to date on new developments published in the journal TUGboat. Another service of the TeX Users Group is the TeXhax E-mail Digest. This distribution also includes the sources and auxiliary files for METAFONT, which is automatically compiled if you use the ./tex82/makefile and tell it to "make all". Installation is very similar to the steps required for TeX. The README files for Metafont is ./tex82/README.METAFONT 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. If you have difficulties, contact Pierre MacKay MacKay@.CS.WASHINGTON.EDU or by US Mail to TeX Support Northwest Computing Support Center, DW-10 University of Washington Seattle, WA 98195 Tel: (206) 543-6259 \f 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 COMPUTER 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 COMPUTER SUPPORT CENTER AND/OR ANY OTHER PARTY WHO MAY MODIFY AND REDISTRIBUTE THIS SOFTWARE AS PERMITTED IN ACCORDANCE WITH THE PROVISIONS IN THE FILE ./tex82/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. \f 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. 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. 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 on pascal compilation was done by Paul Richards of the University of Illinois, and most of the associated MFlib library is his. \f Page 1 Version information =================== (in the ./tex82 path) TeX 2.95 (in ./tex82/texdir) (plain.tex version 2.94) LaTeX 2.09 (release of 4 Aug. 1988) SliTeX 2.09 BibTeX 0.99c (program in ./tex82/bibtex) (remainder in ./tex82/LaTeX/LaTeXbibtex) metafont 1.7 (in ./tex82/mfdir) tangle 2.9 (in ./tex82/texware) weave 2.9 (in ./tex82/texware) dvitype 2.9 (in ./tex82/texware) pltotf 2.3 (in ./tex82/texware) tftopl 2.5 (in ./tex82/texware) gftodvi 1.7 (in ./tex82/mfware) Pascal only. see ./Unsupported gftopk 1.4 (in ./tex82/mfware) gftype 2.2 (in ./tex82/mfware) pktogf 1.0 (in ./tex82/mfware) pktype 2.2 (in ./tex82/mfware) mft 0.3 (a formatting program for metafont source files.) (in ./tex82/mfware) Still needs a web2c change file There are also these pxl related programs, but we strongly advise against their continued use: chtopx 1, gftopxl 2.1, pktopx 2.3, pxtoch 1.1, pxtopk 2.3 Fonts in mf source format. The full Computer Modern as released from Stanford. Utility fonts for character proofs etc. (not made with cmbase.mf), LaTeX and SliTeX fonts are also supplied in mf source format. Fonts in pk format. The Computer Modern and LaTeX fonts necessary to run the basic versions of TeX, LaTeX, Weave and mft, in 118, 200, 240, and 300 gf(dpi) series. The pk files for the principal LaTeX symbol fonts are in a separate list. The 300 dpi fonts are provided for write-black devices (CanonCX) in directories labeled "pk300" and for write-white devices (RicohFourZeroEightZero) in directories labeled "pk300w". Mode information is given in gf special strings just preceding the postamble in each file and can be read with the Unix command "strings". AMS fonts-- Cyrillc, and special symbols created with old METAFONT-in-SAIL, and converted to pk in 118, 200, 240 and 300gf(dpi) series. Euler fonts too are supplied in pk format only. (If you want [euler].mf source files, you should get in touch with the American Mathematical Society, which will make these available under license.) To get more fonts, use Metafont and the utilities in MFware, whose names are pretty self-evident. A really elegant set of precisely sized fonts can be made up with the utilities in ./tex82/TeXcontrib/sauter. There are scripts for some needed LaTeX fonts in ./tex82/LaTeX and ./tex82/LaTeX/LaTeXslitex. (Some of the smallest sizes in pk118.makefile put too much of a strain on Metafont. You could correct the bad characters with fonttool in ./tex82/METAFONT/MFcontrib.) Numerous output drivers are supplied. See the ./DVIware directory. \f Page 2 Installing TeX82 on a Unix System ======================================= In the discussion below, 4.2/3BSD is assumed to be running on a VAX. Installation is essentially the same on System V machines. We now use Web-to-C for compilation, except for gftodvi and mft, for which are no Web-to-C change files as yet. The old pascal change files have been consolidated and compressed. You will find them in ./Unsupported. If you insist on using pascal compilation, special cases for the Pyramid are identified with the affix PYR, PYRAMID, or pyramid. System V versions are hopefully identified as SYS_V, and may run on other machines than the 3B2, but they were specifically developed for the 3B2, and we do not know yet what other machines work. The best approach in all cases is to try WEB-to-C, which has succeeded on a wide range of machines already. PLEASE NOTE that if you wish to have the minimum of trouble with recompilation and installation, you should keep the present hierarchy of directories under tex82 intact. The Makefiles depend on this hierarchy. We assume you are using the Web-to-C compilation, and that you are working in directory tex82. Edit site.h to produce the right effects for your system. This should be the only file you need to edit, but you may want to check some of the paths in the Makefile too. The file site.h includes the following definitions. Please note that these are advisory, not absolute. We cannot dictate to you about the organization of your /usr partition. (If you substitute the C-shell "setenv" command for "#define" you can insure that your environment matches your decisions here, and you can "set" and "export" these equivalences in the Bourne shell.) #define TEXINPUTS ".:/usr/local/lib/tex/inputs" #define TEXFONTS ".:/usr/local/lib/tex/fonts" #define TEXPOOL ".:/usr/local/lib/tex" #define TEXFORMATS ".:/usr/local/lib/tex" #define MFINPUTS ".:/usr/local/lib/mf/inputs" #define MFBASES ".:/usr/local/lib/mf/bases" #define MFPOOL ".:/usr/local/lib/mf" - Check to see that you have set up the needed libraries in WLIBS in the makefile. DO NOT FORGET THIS! - Prepare the areas for compilation. Make sure you are in ./tex82. - make a directory named /usr/local/lib/tex. - Make a subdirectory named /usr/local/lib/tex/fonts OR WHATEVER YOU HAVE CHOSEN FOR THE ENVIRONMENT TEXFONTS. Copy the contents of ../cmfonts/tfm to it. - Make another subdirectory named /usr/local/lib/tex/inputs OR WHATEVER YOU HAVE CHOSEN FOR THE ENVIRONMENT TEXINPUTS. Copy the contents of ./TeXmacros to it. The paths are *suggestions* only. Some sites prefer /usr/lib/tex/.... If you are going to use LaTeX, the *.tex and *.sty files in ./LaTeX and ./LaTeXmacros go in TEXINPUTS. The tfms from ../LaTeXfonts/tfm go in TEXFONTS. \f Page 3 - The following instructions assume you are connected to ./tex82. In ./tex82, type make all Do not depend on the default target for make. The default is the very special validation configuration for both TeX and METAFONT (triptex and trapmf). These versions of the programs have parameter settings so peculiar that they are virtually useless for regular typesetting. Compilation will take some time, but not nearly as long as pascal compilation used to take. After compilation, the executable files initex and virtex [triptex] will be found in the directory ./ctex, along with the file tex.pool. [You will also have the Metafont analogs, inimf, virmf, and mf.pool, in the directory ./cmf.] - copy tex.pool to /usr/local/lib/tex/tex.pool OR WHATEVER YOU HAVE CHOSEN FOR THE ENVIRONMENT TEXPOOL - create a plain.fmt file by saying % initex plain '\dump' (the "%" is presumed to be your C-shell prompt. It will probably be "$" if you are in the Bourne shell). - move the resulting plain.fmt file to /usr/local/lib/tex/plain.fmt OR WHATEVER YOU HAVE CHOSEN FOR THE ENVIRONMENT TEXFORMATS - if you have a working "undump", you can build a preloaded TeX, but before you do so, read tex.script for a good alternative. If you decide to use undump, type: % virtex '&plain' xyxyxy (This will produce the responses) This is TeX, C Version 2.95 (no format preloaded) ! I can't find file `xyxyxy.tex'. <*> &plain xyxyxy Please type another input file name: ^\ Notice that the pseudo-file-name "xyxyxy" can be any nonsense character string you choose, so long as you are sure that no file named xyxyxy.tex is accessible. The "^\" character represents your "Quit" character (usually CTRL-\) which makes a core file. \f Page 4 - convert the core file into something that can be run by saying ../undump/undump tex virtex core If you get the a message such as "core didn't come from this a.out file" you are probably using the wrong undump. Look again at the directory to make sure. For further information see "Why won't undump work on my system?" Page 13. Alternatively, you can avoid the use of undump altogether. We tend to favor this latter approach. See the file tex.script. - 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. But what if none of the versions of undump on the tape work? This is a distinct possibility, owing to the fact that undump is one of the most system-dependent programs around. It is always possible to run TeX at the price of a short initial delay. Just type: virtex '&plain' or virtex '&lplain' (if you want latex). Then read "Why won't undump work on my system?" later on in this document. \f Page 5 Notes for SUN2 and SUN3 sites: ============================ The Sun MC.68010 pc compiles bad code under operating system version 3.0 and 3.1. Version 3.2 of the operating system for the Sun2 has corrected the problem. In either case WEB-to-C is a better choice. The Sun MC.68020 pc 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. If you use WEB-to-C, which you ought to, don't try the register variables on OS 3.2, they don't work on either the 68020 or the 68010. A really up-to-date gcc compilation is probably the most desirable thing, but check to be sure that the version of gcc you are using has been used successfully. On faster machines, there is good reason to forget about undump altogether alias tex "virtex '&plain'" will give essentially the same effect. You can even store a number of preloaded files for customized TeX. (That is what LaTeX really is.) See the file tex.script in this directory. ============== \f Page 6 Font notes: What do tfm, pl, gf, pk and pxl mean? ================================================= Font files come in several varieties, with suffixes like: .tfm .pl .?gf .?pk (and the obsolete .?pxl) TeX needs only tfm files to format the page, and can use tfm files derived from a wide variety of sources. For instance, this tape provides routines which make it possible to read the Adobe Font Metrics off the Laser-Writer (if your lpr driver is clever about conversations with PostScript) and convert them into pl files which are an ASCII analog of tfm files. Then you can run the pltotf program and feed TeX with printer-resident font descriptions. One tfm file does for all magnifications, since TeX does the scaling calculations itself. Donald Knuth's Computer Modern fonts are delivered with tfm files so that you can run TeX, and in rasterized form in either .?gf or .?pk format, where the "?" stands for the horizontal dots-per-inch resolution (unless the font has been magnified). The gf stands for Generic Font format, which is what Metafont produces. pk is a more tightly packed format The directories for cm fonts are ../cmfonts and ../LaTeXfonts. ../cmfonts includes the subdirectories mf, tfm, gf and pk. pk is further divided into pk118 pk200 pk300 pk300w. Fonts in pk300 were set for BLACK-ON-WHITE mapping (CanonCX print engine). If you are using a WHITE-ON-BLACK engine, such as the RicohFourZeroEightZero (4080), 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 programs gftopk, pktogf and gftopx in the ./tex82/mfware directory provide conversion between formats, but gftopx 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. Convert your driver to read gf or pk (or both). (gftopx is in ./mfware/CMFware) If you need fonts in pxl format you will have to create them by compiling and running gftopxl on the appropriate gf files. In addition to the cm fonts, the distribution includes many resolutions of the AMS Special Symbol and Cyrillic fonts, products of old Metafont79. These have been converted to pk format, which is the standard for font delivery. These fonts are provided through the courtesy of the American Mathematical Society and are in the base directory amsfonts. The 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. \f Page 7 More about rastered fonts about and OBSOLETE am series and pxl 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 face. 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. 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. That is why we give you METAFONT in the standard web2c compilation. (See the mf.1 manual page in ./tex82/Man-pages.) Furthermore, the organization of your rastered font files will depend on your choice of driver. The choice of directory path for your *.tfm files may or may not be related to the choice of directory path for raster files. The file 'site.h' has no effect on any of the many dvi interpreters in this package. Please note that you have to load all of the .tfm files that plain.tex, lfonts.tex or sfonts.tex ask for, but that you only have to load the actual .nnnn[gf,pk] magnifications that you really expect to use. ======================== AM fonts HAVE DISAPPEARED FROM THE DISTRIBUTION. If you want to continue using them, look for the files am_plain.tex etc, the files am_plain.tex, am_lfonts.tex and am_webmac.tex are provided. You can replace the distribution plain.tex with them, but both the plain and lfonts are no longer up-to-date. Since PXL fonts are very loosely packed, take up gross amounts of disk space and permit only 128 characters, the format is now 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 format. *.*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. \f Page 8 Overall Organization of the Tape ================================ Files in the ./tex82 area: (files of interest only for pascal are bracketed) COPYING.POLICY Redistribution policy for Unix TeX---See above README This file [README.PYRAMID] Special considerations for the Pyramid [README.SYS_V] Special considerations for System V machines README.SCORE The -READ-.ME file from the Generic TeX distribution README.WEB-to-C Don't miss this one! site.h Where the local environment is set up. makefile For WEB-to-C compilation [Setup.*] Self-explanatory. These are executable shell scripts. Use the appropriate one. [ext.h] hooks to C routines for Unix TeX. [pxp.diffs] to convert a BSD4.3 pxp into one that will run in System V. See the README.SYS_V file. [texpaths.h] Included file with the default paths. May be changed if necessary. [whoami.h] Empty file. Included by h00vars.h (You do need to have it here, however.) ----if you use pascal (after the appropriate Setup file has been run) you will have: Makefile Generated by the appropriate Setup.* (e. g., Setup.SYS_V) shell script. Make sure you save the WEB-to-C Makefile. dist_initex.ch Changes to TeX for Unix system, see the Makefile ext.c C language routines for use by TeX h00vars.h included by ext.c. It's from the pc library. 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 maketex, texsep.sed (only if you are compiling in System V Unix) ======================================= TeX, as delivered, will use the following areas on your system (if you accept the site.h defaults) /usr/local/lib/tex /usr/local/lib/tex/inputs /usr/local/lib/tex/fonts /usr/local/lib/mf /usr/local/lib/mf/inputs /usr/local/lib/mf/bases The following files are also important /usr/local/lib/tex/tex.pool /usr/local/lib/tex/plain.fmt or /usr/local/lib/tex/inputs/plain.fmt (depending on how you decide to do this) \f Page 9 ============== Subdirectories of the ./tex82 area: web2cdir, texdir, ctex, mfdir, cmf, texware, bibtex All the above are parts of WEB-to-C all files and subdirectories associated with web2c compilation have names beginning with lower-case letters. All others have names beginning with upper-case letters. CWEB The CWEB (WEB for C programs) directory. LaTeX The LaTeX macro package. This version should be reasonably stable. See the LaTeX/README file for more information. Man-pages nroff/troff source for manual pages. TeXcontrib, MFcontrib Contributed programs from Unix TeX users. [TeXdevices now moved to ../DVIware] TeXdoc, MFdoc Informative documents. Note that some of these are copyrighted and printed copies on paper are not to be redistributed. TeXemacs Lisp and mocklisp for GNU and Gosling EMACS. TeXgraphics Various graphics packages. PiCTeX, psfig, transfig, etc. TeXmacros, MFtexfiles To be copied to /usr/local/lib/tex/inputs 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. There is also a certain amount of obsolete material. MFpxl is a subdirectory in this partition, which contains some fossilized stuff for pxl files and pascal compilation. Foreign Language TeX ==================== The directory ./babel contains a number of foreign-language packages (hyphenation, macros, fonts). It is hoped that this feature will be one of the fastest growing parts of the distribution METAFONT information is to be found in the ./tex82/README.METAFONT \f Page 10 Making TeX and METAFONT from the WEB Source ================================ Read README.WEB-to-C first! If you have kept the organization of directories on the tape intact you will not need to change anything but some lines in ./tex82/site.h and perhaps adjust the makefile in ./tex82 slightly (remember to supply libraries for the windowing system you chose for Metafont). Then, typing make all will produce initex virtex inimf virmf and a remake of tangle. You will probably want to "make all" in the texware and bibtex subdirectories too. Note that it is not necessary (indeed it is undesirable) for you to change any of the files on the distribution tape other than site.h and the parent Makefile. site.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 ./site.h in determining their file paths. 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, 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 and mf.web produce a non-zero length string pool. In the distribution, this file (tex.pool) is put on /usr/local/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). ===================================================== \f Page 11 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 the name 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 2.95 (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 any problem like this. \f Page 12 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. When TeX has been compiled with web2c, it may not be worth going through this step. Read tex.script. 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, ./tex82/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: Run virtex as follows: % virtex '&plain' xyxyxy This is TeX, C Version 2.95 (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. \f Page 13 Why won't undump work on my system? =================================== First decide whether it really matters. Look at tex.script for an alternative. If you don't want to work that way, 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.