------NOTE------NOTE------NOTE------NOTE------NOTE------NOTE------NOTE------ This README file probably fails to provide all the necessary information needed to set up TeX. If you have access to a working TeX on another system that you can use as something of a reference, you shouldn't have much trouble. Otherwise, you'll have to be willing to experiment a bit. Everything you need that you can't get elsewhere should be here. The major omission are the TeX font bitmaps (pk or gf files). They are collectively quite large, and somewhat printer dependent, so you'll have to get them elsewhere. If you want all the files in some directory, then note that our ftp server allows you to say, in this directory, for example, get bin.tar and it will automatically tar the directory "bin" (in this case) and send the result. However, please don't simply go to the pub/3b1 directory and "get tex.tar" unless you're sure you want virtually everything -- the total size of the tex directory tree is over 3.5 Mbytes. Also note that virtually every file here is binary. Warning -- you can say "get bin.tar.Z", and ftp will dutifully compress the tar file. However, since the bin directory contains compressed files, you'll wind up expanding the tar file. The subdirectory structure relative to this directory (the one containing this README file) should be duplicated on your 3b1 under the directory /usr/local/ (particularly for the files in lib). And any tar file you find should be untarred in the corresponding directory. For example, ./lib/tex/fonts-tfm.tar.gz should be untarred in /usr/local/lib/tex. The exception to this rule is the tex3b1 sources tar file. ------NOTE------NOTE------NOTE------NOTE------NOTE------NOTE------NOTE------ Quick summary The tex-related binaries are in the subdirectory bin. Manual pages are in man/. The tex-related files are in the directories macros, formats and fonts in the directory lib/tex, while metafont related ones are in lib/mf.tar.gz. Basics: bin/virtex The tex binary bin/bigvirtex The tex binary, larger size bin/tex3b1 The 3b1 previewer lib/tex/formats/* Whatever formats you want lib/tex/macros.tar.gz Mostly LaTeX style files lib/tex/fonts-tfm.tar.gz The tex font metrics lib/tex/fontdesc The tex3b1 program needs this bin/bibtex If you want it bin/initex If you need to make another format Note that the tex formats are particular to the tex binaries. While the .fmt file is, in principle, machine independent, it does depend on the particular size parametes used when making TeX. The sizes I used are "non-standard" (i.e., not what the sources give you). The formats here correspond to the binaries -- others may not. You should make a number of links to virtex/bigvirtex -- this is described below. Formats starting with a capital letter are for bigvirtex, and those starting with a lower case letter are for virtex. If you get latex.fmt, you should "ln virtex latex", and similarly, if you get "Latex-nfss.fmt", you should "ln bigvirtex Latex-nfss". The names aren't important, just that they match. The previewer tex3b1 needs access to font bitmaps (as described by the fontdesc file) and these are not available here -- they are collectively too big. The standard tex distribution can generate 2 different sizes of TeX. The small one, as it turns out, it too small to run packages like AMS-Latex. The big one, as it turns out, it too big to run on the 3b1 which is limited to 2.5M. So I made a bigger small tex, and a smaller big tex. The diffs for the file ctex.ch are in the subdirectory misc, as well as the result of running the "trip" test, which was passed. (The "trap" test result is from metafont.) In the case of bigtex, it would be nice to make as large a tex as possible, given the 2.5M limit. Virtex is the program that is actually run, and initex is needed to make the format that virtex reads. It happens that initex is over 500k larger than virtex. Thus to make a big version of both would limit the big virtex to less than 2M, with a corresponding reduction is the maximum size of the various tables. Instead, I chose to make virtex limited by the 2.5M (it's actually 2.4 or so). This leaves the problem of making the format, since now a big initex is too large to run on the 3b1. It happens, though, that two tex's built with the same parameters generate the same formats, even if they are built on two different machines. Thus I built a corresponding "biginitex" on a sparc, and used it to make the formats for the 3b1. This executable is also available in the misc directory. --------------------------------------------------------------------------- I've made 3b1 TeX (C version 3.141) and Metafont (C version 2.71) binaries available for anonymous ftp on ftp.cs.caltech.edu in the directory pub/3b1/tex/, based on the 5.851c web/web2c sources. The distribution was built (using gcc 2.3.3 and linked with the shared library) with the following path names compiled in (taken from "site.h"): #define BIBINPUTS ".:/usr/local/lib/tex/bib" /* bib file */ #define BSTINPUTS TEXINPUTS /* bib style file */ #define GFFONTS "/usr/local/lib/tex/fonts/gf:." /* GF font */ #define MFBASES "/usr/local/lib/mf/bases" /* base file */ #define MFINPUTS ".:/usr/local/lib/mf/macros" /* MF source */ #define MFPOOL "/usr/local/lib/mf" /* mf.pool */ #define PKFONTS "/usr/local/lib/tex/fonts/pk:." /* PK font */ #define TEXFONTS "/usr/local/lib/tex/fonts/tfm:." /* TFM font */ #define TEXFORMATS "/usr/local/lib/tex/formats" /* format file */ #define TEXINPUTS ".:/usr/local/lib/tex/macros" /* TeX source */ #define TEXPOOL "/usr/local/lib/tex" /* tex.pool */ #define VFFONTS "/usr/local/lib/tex/fonts/vf:." /* VFM font */ #define EDITOR "/usr/bin/vi +%d %s" All of the above can be overruled by the appropriate environment variable (which is the #define name, in general). If there is a null path component in the environment variable (i.e., a leading or trailing colon, or a pair of consecutive colons), then the null component will be replaced with the default value compiled into TeX/MF. There are 2 version of tex, "small" and "big". The big version has more than twice as many memory words, as well as more font, string, and macro storage. Both have the remaining tables large enough to run such things as AMSTeX and AMS-Latex, and the Mittlebach-Scho"pf new font selection scheme (if you don't know what this is, see TUGboat volume 11, number 2 (June 1990)). Note that each memory word in the "big" tex is twice the size as those in "small" tex, and there are more than twice as many of them. So the "big" tex is actually much larger, and this is why I have provided both. The "big" tex should be reserved for when you need it. "small": 160128(.text) + 20(.data) + 747444(.bss) + 0(.lib) = 907592 "big": 155776(.text) + 20(.data) + 2260704(.bss) + 0(.lib) = 2416500 Note that the actual tex binary is named "virtex" (and "bigvirtex"). To get tex, or latex, or whatever, virtex needs to load tex.fmt, or latex.fmt, or whatever when it starts. You can accomplish this in a couple of ways. First, you can use virtex \&tex file.tex Alternatively, you can ln /usr/local/bin/virtex /usr/local/bin/tex and then when you run tex file.tex virtex will automatically load "tex.fmt". In general, if you link virtex to foo, and run virtex as foo, then virtex will automatically load foo.fmt. This is really the best way. If you want to build your own format files, you need to use "initex". Note that initex/virtex (big and small) need the file lib/tex/tex.pool. As noted above, there is no biginitex for the 3b1. If you have a sparc you can try the sparc binary. Otherwise, you'll have to appeal to the diffs and the original sources. There is a dvi previewer for the 3b1 console called tex3b1 in the bin directory. The sources for this program are in the file tex3b1-src.tar.gs. It needs the file lib/tex/fontdesc. There are a bunch of other binaries in bin/, but you probably won't need them. Check for a manual pages if you wonder what they are. In the case of metafont, you again have 2 program, inimf and virmf. The former is used to make base files (cf fmt files), and the latter follows the link trick. The only base provided (and the only one you need) is mf.base, and so you should link virmf to mf. virmf/inimf need the file lib/mf/mf.pool. The perl script MakeFont can be used to call metafont to make fonts. You'd need to get the actual metafont descriptions for the fonts elsewhere. I find it easier to get any bitmaps I need elsewhere than to try and make them on my 3b1. The lib/tex/formats directory contains some pre-built formats. The lib/tex/macros directory contains macros/style files that correspond to these formats. There are small and big version of tex, slitex, latex, and latex-nfss (latex with the NFSS), with the big versions using a initial capital letter (Tex.fmt vs tex.fmt). As mentioned above, you should have a link to virtex/bigvirtex that matches these names. You might use for file in [a-z]*.fmt do name=`basename $file .fmt` ln /usr/local/bin/virtex /usr/local/bin/$name done for file in [A-Z]*.fmt do name=`basename $file .fmt` ln /usr/local/bin/bigvirtex /usr/local/bin/$name done (The names of the big versions (indeed all of the .fmt files) are of course arbitrary. Using "big" as a prefix tended to make the names a bit on the long side.) Finally, the lib/tex/fonts/tfm directory contains the tex font metric files for all the standard and AMS fonts. To actually print something, you need font bitmap files (gf or pk files) -- you'll have to get these elsewhere (they are printer dependent). The file lib/tex/fontdesc is needed by tex3b1. It tells tex3b1 how to find the various bitmap files. The file tex.pool is needed by tex to run (and lib/mf/mf.pool is likewise needed by metafont). --------------------------------------------------------------------------- Below is a copy of the README file that comes with the Unix TeX distribution from byron.u.washington.edu. It goes into details about compiling TeX and generating formats, the results of which are already in this archive. It may give clues about setting up the parts that aren't here, in particular, the tex font metrics (.tmf) files, the various macros that you might need, and the drivers and font bitmap files that you'll need to print the document out. Last I heard, the Unix TeX distribution is no longer available from the University of Washington by anonymous ftp -- only by buying a tape. This readme is for version 3.14 of tex, but will apply to 3.141. --------------------------------------------------------------------------- Andy Fyfe andy@cs.caltech.edu ...!ames!elroy!cit-vax!andy wjafyfe@caltech (bitnet) --------------------------------------------------------------------------- INTRODUCTION This file is ./TeX3.14/README. INTRODUCTION NO WARRANTY statement Acknowledgements Installing TeX3.14 on a UNIX System Making a .fmt file Font Notes (1): What do tfm, pk, gf, pxl, pl, mf, vf, and vp mean? Font Notes (2): More About Rastered Fonts 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.14 on a UNIX System," page 1, below. Information on running UNIX TeX may be found in the man page, ./TeX3.14/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.14/COPYING.POLICY which is a statement of our policy on redistributing UNIX TeX. Please also see ./TeX3.14/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 Installations questions: elisabet@max.u.washington.edu ^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.14/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, and for heading the team of WEB-to-C wizards, 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.14 on a Unix System ================================== We strongly advise that you install TeX3.14 and METAFONT2.7. 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). Do not ignore the making and installing of METAFONT programs. Owing to the sheer size of a generalized font library, we cannot provide you with all the fonts you may need to process and 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 more .tfm and rastered fonts than are provided on the tape. -------------------------------------------------------------------- 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.14/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.14 intact, for the makefiles depend on it. 1. START by reading the tape onto your system. 2. Change to the ./TeX3.14 directory. We recommend that you read through README.W2C 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 --in this distribution--Big TeX/METAFONT/BibTeX are made by default. Also: please be sure to read the files MACHINES.W2C and PROBLEMS.W2C, and take notes concerning matters that pertain to your machine, operating system, and compiler. 3. Edit site.h (the 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 TEXFONTS ".:/usr/local/lib/tex/fonts" #define TEXFORMATS ".:/usr/local/lib/tex/formats" #define TEXINPUTS ".:/usr/local/lib/tex/inputs" #define TEXPOOL "/usr/local/lib/tex" #define MFBASES ".:/usr/local/lib/mf/bases" #define MFINPUTS ".:/usr/local/lib/mf/inputs" #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. If you will be making and using virtual fonts, un-comment the line that defines VFFONTS, and give the path to the directory in which you will be storing these fonts. BibTeX users should also define BIBINPUTS. 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.14/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 for most of the search-path definitions so that TeX and METAFONT will always search your current directory first. Note that the default compilation produces a Big TeX with large hyphenation trie, Big METAFONT, and Big BibTeX. 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. If, for some strange reason, your system cannot run Big TeX, be sure to attend to your definition of the type 'glueratio' in site.h. Then, before compiling, 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 small ctex.ch file with bigtex.diff, a Big MF by patching your small 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.) Proceed through the rest of site.h, using or changing the default settings to suit your system and site. 4. Check the master makefile to be sure that all definitions and paths given in this file suit your site. 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 just given assumes that you wish to invoke cc.) Attend to the definitions for OPT=, SHELL=, YACC=, etc., etc. Note that "bison" is GNU's "domesticated yacc"; if you are using cc, simply define this as "yacc," or whatever is appropriate at your site. 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}. If you know that you will not be using LaTeX or SliTeX, remove them from the formats= line. (If you plan to install the TeXPS PostScript driver, however, keep in mind that LaTeX will be needed to print out its manual. AMSLaTeX and AMSTeX users: dump the formats for these programs later; see the subdirectories under ./ams, which is parallel to the current directory TeX3.14.) Attend to the definition for localmodes= : If you are updating TeX on your machine, you will already have a file containing mode_defs for various output devices at your site. Look for it in your MFINPUTS directory; the name of your site will probably be a part of its name (e.g., -modes.mf or .mf). The name of this file (minus the extension) belongs on this line; that is, assuming you see no reason for changing. If you are installing TeX for the first time on your machine, you will be copying the file ../utilityfonts/bases/modes.mf into your MFINPUTS directory in Step 5.f below. Since the default is modes.mf, no editing is required. Proceed through the makefile, attending to the definition of programs and paths as they exist on your system. Note for INSTALL=: the "-g tex" sets the group ownership of the files to be installed, as "tex." Unless such a group exists on your system, you will receive "unknown group" complaints during installation. The definitions for texpooldir, texinputdir, etc., should match your definitions for TEXPOOL, TEXINPUTS, etc., as you defined them in site.h. On most systems, cmsources= will be identical to mfinputdir= . Define this according to the arrangement on your machine. Note that the default is to make all. We recommend that you do so; but if, for example, you know that no one at your site will be using BibTeX because they are all users of tib, you can remove bibtex from the alldirs= line, and it will not be made. Line 95 of the makefile says that "Stuff below here probably doesn't need to be changed." That is true; but please note for the target install (at line 187), that the texware programs patgen and pooltype--while made by default--are not installed by default. If you wish to have them placed in your bindir during installation via this makefile, add a couple of lines for them. 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 called for by plain.tex and lplain.tex. They are enough only to handle the essentials of TeX, LaTeX, and SliTeX. To generate other fonts from the metafont sources provided on the tape (see, for example, the files in ./cmfonts/mf), you will have to use METAFONT. NOTE: If you are an AMSTeX user, additional *.tfm files are in ./ams/amsfonts/tfm. You may find it convenient to copy them into your TEXFONTS environment at this time, if you wish. We encourage users of AMSTeX to get in touch directly with the American Mathematical Society to keep up to date with respect to versions of its 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-September 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. 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. AMSTeX/AMSLaTeX users: see the various READ.ME files in ./ams (parallel to ./TeX3.14). You may wish to complete the primary TeX installation first; or, if you wish, copy the AMSTeX/AMSLaTeX macros into your TEXINPUTS directory at this time. It is probably simpler to do the installation of AMSTeX/AMSLaTeX separately, after the primary TeX installation is done. g. If you are installing TeX and METAFONT for the first time on your system, go now to your MFINPUTS directory. Inspect modes.mf to see that it includes a definition for a mode (i.e., a mode_def) for an output device corresponding to the device for which you will be generating fonts. For example: if you have an Apple LaserWriter, you will need a mode_def for its Canon CX engine. Check to see that "localfont := " (near the end of the file) names the mode for your device. The default is "CanonCX" (a 300dpi write-black print engine used in several laser- printers). If necessary, edit this line to name the mode_def appropriate for your output device. Remember that write-white devices take special care. The Ricoh 4080 print engine is one such device; try the RicohFourZeroEightZero mode_def; and see the file README.WRITE-W for more information. If you have another device at another resolution, you can usually get a good idea where to start by looking at the various device-support sections of this file. The blacker and fillin values are the most difficult to set, and you may wish to make several tries at different settings on a range of magsteps before you decide on the values. (To learn more about mode_defs, see The METAFONTbook.) If nothing in this file suits your site, know that several well-tested |mode_def|s can be found in issues of TUGboat, the journal of the TeX Users Group. 6. Double-check to see that you are still in TeX3.14, 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, ./dviutil, and ./fontutil. It will also build bibtex. If your make halts early on in the compilation due to the "until" construction in the ./web/Makefile, copy (do not use mv) the file tangleboot.pas to tangle.p, and start your make again. If your make halts otherwise, check the MACHINES.W2C and PROBLEMS.W2C 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, TEXPOOL, and MFPOOL environments. Type rehash, or do whatever you must do, to make accessible to you these newly installed programs. 8. Next, create the format files by typing % make formats at your prompt. If you did not edit the formats= line in the makefile, tex.fmt (i.e., plain.fmt), latex.fmt (lplain3.fmt), and slitex.fmt (splain3.fmt) will be made by default. Install these by typing the following at your prompt: % make install-formats The files will be placed in your TEXFORMATS directory; plain.fmt will be linked to the name tex.fmt. And, in your BINDIR, virtex will be linked to the base names of the formats you have installed. For a general understanding of how the current TeX loads a format file, we recommend that you read the TeX man-page (./TeX3.14/Man-pages/tex.1). 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, attach the .fmt suffix to it, and will load a format file having that name. Since the plain.fmt file has been linked 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'. Be sure to read ./TeX3.14/Man-pages/tex.1 so that you understand how this works, and so that you will know what other options are open to you. 9. Next, make the METAFONT base files (mf.base and cmmf.base are made by default) and install them by typing the following at your prompt: % make bases % make install-bases The files will be placed in your MFBASES directory; plain.base will be linked to mf.base. And, in your BINDIR, virmf will be linked to the names of the bases you have installed. For a general understanding of how these base files are used, see the METAFONT man-page (./TeX3.14/Man-pages/mf.1). Type rehash or whatever is necessary to make the programs available to you. You are now ready to run METAFONT--either as cmmf (to generate Computer Modern fonts), or as mf (to generate any number of other fonts; for example, the line and circle fonts for LaTeX). Your installation of TeX and METAFONT is complete. Enjoy them! ----------------------------------------------------------------------- Notes: Man-pages: there are currently two sets of man-pages on the distribution. Those in ./man are streamlined and more recent versions. They will be installed for you if you type make manpages and make install-manpages at your prompt. Before installing them, however, we recommend that you look at the ./man/Makefile to make certain that the default settings suit you (for example, note that the man-pages for patgen and pooltype do not get installed unless you remove the hash mark (#) in front of each filename). Please note that some of the older man-pages (in ./Man-pages) contain a fuller explanation of the programs--in particular, note the ./Man-pages/mf.1 and tex.1 man-pages. * * * * * When would you use METAFONT to generate a font? Say that you 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 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. * * * * * For an overview of the different kinds of fonts associated with TeX, read Font Notes (1) and (2) in this file; attend especially to the third and fourth paragraphs of Font Notes (2). * * * * * Information about associated software is to be found in readme files in associated subdirectories under ./TeX3.14. * * * * * Numerous printer drivers and previewers are to be found in a directory parallel to ./TeX3.14 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.14 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 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.14/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.14/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.14/mfware and in ./TeX3.14/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.14/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.14/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.14/README.METAFONT and ./TeX3.14/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. =============================EOF=====================================