diff options
Diffstat (limited to 'Build/source/texk/web2c/doc')
-rw-r--r-- | Build/source/texk/web2c/doc/web2c.info | 4845 |
1 files changed, 0 insertions, 4845 deletions
diff --git a/Build/source/texk/web2c/doc/web2c.info b/Build/source/texk/web2c/doc/web2c.info deleted file mode 100644 index b8c703b7a11..00000000000 --- a/Build/source/texk/web2c/doc/web2c.info +++ /dev/null @@ -1,4845 +0,0 @@ -This is web2c.info, produced by makeinfo version 4.13 from web2c.texi. - -INFO-DIR-SECTION TeX -START-INFO-DIR-ENTRY -* Web2c: (web2c). TeX, Metafont, and companion programs. -END-INFO-DIR-ENTRY -INFO-DIR-SECTION Individual utilities -START-INFO-DIR-ENTRY -* bibtex: (web2c)bibtex invocation. Maintaining bibliographies. -* dmp: (web2c)dmp invocation. Troff->MPX (MetaPost pictures). -* dvicopy: (web2c)dvicopy invocation. Virtual font expansion -* dvitomp: (web2c)dvitomp invocation. DVI to MPX (MetaPost pictures). -* dvitype: (web2c)dvitype invocation. DVI to human-readable text. -* gftodvi: (web2c)gftodvi invocation. Generic font proofsheets. -* gftopk: (web2c)gftopk invocation. Generic to packed fonts. -* gftype: (web2c)gftype invocation. GF to human-readable text. -* makempx: (web2c)makempx invocation. MetaPost label typesetting. -* mf: (web2c)mf invocation. Creating typeface families. -* mft: (web2c)mft invocation. Prettyprinting Metafont source. -* mltex: (web2c)MLTeX. Multi-lingual TeX. -* mpost: (web2c)mpost invocation. Creating technical diagrams. -* mpto: (web2c)mpto invocation. MetaPost label extraction. -* newer: (web2c)newer invocation. Compare modification times. -* patgen: (web2c)patgen invocation. Creating hyphenation patterns. -* pktogf: (web2c)pktogf invocation. Packed to generic fonts. -* pktype: (web2c)pktype invocation. PK to human-readable text. -* pltotf: (web2c)pltotf invocation. Property list to TFM. -* pooltype: (web2c)pooltype invocation. Display WEB pool files. -* tangle: (web2c)tangle invocation. WEB to Pascal. -* tex: (web2c)tex invocation. Typesetting. -* tftopl: (web2c)tftopl invocation. TFM -> property list. -* vftovp: (web2c)vftovp invocation. Virtual font -> virtual pl. -* vptovf: (web2c)vptovf invocation. Virtual pl -> virtual font. -* weave: (web2c)weave invocation. WEB to TeX. -END-INFO-DIR-ENTRY - - This file documents the installation and use of the programs in -Web2c, an implementation of Donald Knuth's TeX system. - - Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, -2005, 2007 Karl Berry & Olaf Weber. - - Permission is granted to make and distribute verbatim copies of this -manual provided the copyright notice and this permission notice are -preserved on all copies. - - Permission is granted to copy and distribute modified versions of -this manual under the conditions for verbatim copying, provided that the -entire resulting derived work is distributed under the terms of a -permission notice identical to this one. - - Permission is granted to copy and distribute translations of this -manual into another language, under the above conditions for modified -versions, except that this permission notice may be stated in a -translation - - -File: web2c.info, Node: Top, Next: Introduction, Up: (dir) - -Web2c -***** - -This document describes how to install and use the programs in the Web2c -implementation of the TeX system, especially for Unix systems. It -corresponds to Web2c version 7.5.7, released in March 2009. - -* Menu: - -* Introduction:: A brief introduction. -* Installation:: How to compile and install Web2c. -* Commonalities:: Option syntax, standard options, memory dumps. -* TeX:: Typesetting. -* Metafont:: Typeface design. -* MetaPost:: Technical illustrations. -* BibTeX:: Reusable bibliographies. -* WEB:: Literate programming. -* DVI utilities:: DVI expansion. -* Font utilities:: Font format conversion. -* Legalisms:: Blah blah blah. -* References:: Books and such. -* Index:: General index. - - -File: web2c.info, Node: Introduction, Next: Installation, Prev: Top, Up: Top - -1 Introduction -************** - -This manual corresponds to version 7.5.7 of Web2c, released in -March 2009. - - "Web2c" is the name of a TeX implementation, originally for Unix, -but now also running under DOS, Amiga, and other operating systems. By -"TeX implementation", we mean all of the standard programs developed by -the Stanford TeX project directed by Donald E. Knuth: Metafont, -DVItype, GFtoDVI, BibTeX, Tangle, etc., as well as TeX itself. Other -programs are also included: DVIcopy, written by Peter Breitenlohner, -MetaPost and its utilities (derived from Metafont), by John Hobby, etc. - - General strategy: Web2c works, as its name implies, by translating -the WEB source in which TeX is written into C source code. Its output is -not self-contained, however; it makes extensive use of many macros and -functions in a library (the `web2c/lib' directory in the sources). -Therefore, it will not work without change on an arbitrary WEB program. - - Availability: All of Web2c is freely available--"free" both in the -sense of no cost (free ice cream) and of having the source code to -modify and/or redistribute (free speech). *Note unixtex.ftp: -(kpathsea)unixtex.ftp, for the practical details of how to obtain Web2c. - - Different parts of the Web2c distribution have different licensing -terms, however, reflecting the different circumstances of their -creation; consult each source file for exact details. The main -practical implication for redistributors of Web2c is that the -executables are covered by the GNU General Public License, and -therefore anyone who gets a binary distribution must also get the -sources, as explained by the terms of the GPL (*note Copying: -(kpathsea)Copying.). The GPL covers the Web2c executables, including -`tex', because the Free Software Foundation sponsored the initial -development of the Kpathsea library that Web2c uses. The basic source -files from Stanford, however, have their own copyright terms or are in -the public domain, and are not covered by the GPL. - - History: Tomas Rokicki originated the TeX-to-C system in 1987, -working from the first change files for TeX under Unix, which were done -primarily by Howard Trickey and Pavel Curtis. Tim Morgan then took over -development and maintenance for a number of years; the name changed to -Web-to-C somewhere in there. In 1990, Karl Berry became the -maintainer. He made many changes to the original sources, and started -using the shorter name Web2c. In 1997, Olaf Weber took over. Dozens of -other people have contributed; their names are listed in the -`ChangeLog' files. - - Other acknowledgements: The University of Massachusetts at Boston -(particularly Rick Martin and Bob Morris) has provided computers and ftp -access to me for many years. Richard Stallman at the Free Software -Foundation employed me while I wrote the original path searching library -(for the GNU font utilities). (rms also gave us Emacs, GDB, and GCC, -without which I cannot imagine developing Web2c.) And, of course, TeX -would not exist in the first place without Donald E. Knuth. - - Further reading: *Note References::. - - -File: web2c.info, Node: Installation, Next: Commonalities, Prev: Introduction, Up: Top - -2 Installation -************** - -(A copy of this chapter is in the distribution file `web2c/INSTALL'.) - -Installing Web2c is mostly the same as installing any other -Kpathsea-using program. Therefore, for the basic steps involved, see -*note Installation: (kpathsea)Installation. (A copy is in the file -`kpathsea/INSTALL'.) - - One peculiarity to Web2c is that the source distribution comes in two -files: `web.tar.gz' and `web2c.tar.gz'. You must retrieve and unpack -them both. (We have two because the former archive contains the very -large and seldom-changing original WEB source files.) *Note -unixtex.ftp: (kpathsea)unixtex.ftp. - - Another peculiarity is the MetaPost program. Although it has been -installed previously as `mp', as of Web2c 7.0 the installed name is now -`mpost', to avoid conflict with the `mp' program that does -prettyprinting. This approach was recommended by the MetaPost author, -John Hobby. If you as the TeX administrator wish to make it available -under its shorter name as well, you will have to set up a link or some -such yourself. And of course individual users can do the same. - - For solutions to common installation problems and information on how -to report a bug, see the file `kpathsea/BUGS' (*note Bugs: -(kpathsea)Bugs.). See also the Web2c home page, -`http://www.tug.org/web2c'. - - Points worth repeating: - - * Before starting the standard compilation and installation you must - install the basic fonts, macros, and other library files. *Note - Installation: (kpathsea)Installation. - - * If you do not wish to use the standard file locations, see *note - Changing search paths: (kpathsea)Changing search paths. - - * Some Web2c features are enabled or disabled at `configure' time, - as described in the first section below. - - -* Menu: - -* configure options:: Especially --with and --enable. -* Compile-time options:: Unusual -D's. -* Additional targets:: Breaking down the task. -* Triptrap:: Running the torture tests. -* Runtime options:: Array sizes and the like. - - -File: web2c.info, Node: configure options, Next: Compile-time options, Up: Installation - -2.1 `configure' options -======================= - -This section gives pointers to descriptions of the `--with' and -`--enable' `configure' arguments that Web2c accepts. Some are specific -to Web2c, others are generic to all Kpathsea-using programs. - - For a list of all the options `configure' accepts, run `configure ---help'. The generic options are listed first, and the -package-specific options come last. - - For a description of the generic options (which mainly allow you to -specify installation directories) and basic `configure' usage, see -*note Running `configure' scripts: (autoconf)Invoking configure, a copy -is in the file `kpathsea/CONFIGURE'. - -`--disable-dump-share' - Do not make fmt/base/mem files sharable across different endian - architectures. *Note Hardware and memory dumps::. - -`--without-maketexmf-default' -`--without-maketexpk-default' -`--without-maketextfm-default' -`--with-maketextex-default' - Enable or disable the dynamic generation programs. *Note mktex - configuration: (kpathsea)mktex configuration. The defaults are - the inverse of the options, i.e., everything is enabled except - `mktextex'. - -`--enable-shared' - Build Kpathsea as a shared library. *Note Shared library: - (kpathsea)Shared library. - -`--with-editor=CMD' - Change the default editor invoked by the `e' interactive command. - *Note Editor invocation::. - -`--with-epsfwin' -`--with-hp2627win' -`--with-mftalkwin' -`--with-nextwin' -`--with-regiswin' -`--with-suntoolswin' -`--with-tektronixwin' -`--with-unitermwin' -`--with-x' -`--with-x-toolkit=KIT' -`--with-x11win' -`--with-x11' - Define Metafont graphics support; by default, no graphics support - is enabled. *Note Online Metafont graphics::. - -`--x-includes=DIR' -`--x-libraries=DIR' - Define the locations of the X11 include files and libraries; by - default, `configure' does its best to guess). *Note Optional - Features: (autoconf)Optional Features. A copy is in - `kpathsea/CONFIGURE'. - - -File: web2c.info, Node: Compile-time options, Next: Additional targets, Prev: configure options, Up: Installation - -2.2 Compile-time options -======================== - -In addition to the `configure' options listed in the previous section, -there are a few things that can be affected at compile-time with C -definitions, rather than with `configure'. Using any of these is -unusual. - - To specify extra compiler flags (`-DNAME' in this case), the -simplest thing to do is: - make XCFLAGS="CCOPTIONS" - You can also set the `CFLAGS' environment variable before running -`configure'. *Note configure environment: (kpathsea)configure -environment. - - Anyway, here are the possibilities: - -`-DFIXPT' -`-DNO_MF_ASM' - Use the original WEB fixed-point routines for Metafont and MetaPost - arithmetic calculations regarding fractions. By default, - assembly-language routines are used on x86 hardware with GNU C - (unless `NO_MF_ASM' is defined), and floating-point routines are - used otherwise. - -`-DIPC_DEBUG' - Report on various interprocess communication activities. *Note - IPC and TeX: IPC and TeX. - - -File: web2c.info, Node: Additional targets, Next: Triptrap, Prev: Compile-time options, Up: Installation - -2.3 Additional targets -====================== - -Web2c has several Make targets besides the standard ones. You can -invoke these either in the top level directory of the source -distribution (the one containing `kpathsea/' and `web2c/'), or in the -`web2c/' directory. - -`c-sources' - Make only the C files, translated from the Web sources, presumably - because you want to take them to a non-Unix machine. - -`formats' -`install-formats' - Make or install all the memory dumps (*note Memory dumps::). By - default, the standard plain formats plus `latex.fmt' are made. You - can add other formats by redefining the `fmts', `bases', and - `mems' variables. See the top of `web2c/Makefile' for the - possibilities. - -`fmts' -`install-fmts' - Make or install the TeX `.fmt' files. *Note Initial TeX::. - -`bases' -`install-bases' - Make or install the Metafont `.base' files. *Note Initial - Metafont::. - -`mems' -`install-mems' - Make or install the MetaPost `.mem' files. *Note Initial - MetaPost::. - -`triptrap' -`trip' -`trap' -`mptrap' - To run the torture tests for TeX, Metafont, and MetaPost - (respectively). See the next section. - - - -File: web2c.info, Node: Triptrap, Next: Runtime options, Prev: Additional targets, Up: Installation - -2.4 Trip, trap, and mptrap: Torture tests -========================================= - -To validate your TeX, Metafont, and MetaPost executables, run `make -triptrap'. This runs the trip, trap, and mptrap "torture tests". See -the files `triptrap/tripman.tex', `triptrap/trapman.tex', and -`triptrap/mptrap.readme' for detailed information and background on the -tests. - - The differences between your executables' behavior and the standard -values will show up on your terminal. The usual differences (these are -all acceptable) are: - - * string usage and table sizes; - - * glue set ratios; - - * `down4', `right4', and `y4' commands in DVItype output; - - * dates and times. - -Any other differences are trouble. The most common culprit in the past -has been compiler bugs, especially when optimizing. *Note TeX or -Metafont failing: (kpathsea)TeX or Metafont failing. - - The files `trip.diffs', `mftrap.diffs', and `mptrap.diffs' in the -`triptrap' directory show the standard diffs against the original -output. If you diff your diffs against these files, you should come up -clean. For example - make trip >&mytrip.diffs - diff triptrap/trip.diffs mytrip.diffs - - To run the tests separately, use the targets `trip', `trap', and -`mptrap'. - - To run simple tests for all the programs as well as the torture -tests, run `make check'. You can compare the output to the distributed -file `tests/check.log' if you like. - - -File: web2c.info, Node: Runtime options, Prev: Triptrap, Up: Installation - -2.5 Runtime options -=================== - -Besides the configure- and compile-time options described in the -previous sections, you can control a number of parameters (in -particular, array sizes) in the `texmf.cnf' runtime file read by -Kpathsea (*note Config files: (kpathsea)Config files.). - - Rather than exhaustively listing them here, please see the last -section of the distributed `kpathsea/texmf.cnf'. Some of the more -interesting values: - -`main_memory' - Total words of memory available, for TeX, Metafont, and MetaPost. - Must remake the format file after changing. - -`extra_mem_bot' - Extra space for "large" TeX data structures: boxes, glue, - breakpoints, et al. If you use PiCTeX, you may well want to set - this. - -`font_mem_size' - Words of font info available for TeX; this is approximately the - total size of all TFM files read. - -`hash_extra' - Additional space for the hash table of control sequence names. - Approximately 10,000 control sequences can be stored in the main - hash table; if you have a large book with numerous - cross-references, this might not be enough, and thus you will want - to set `hash_extra'. - - - Of course, ideally all arrays would be dynamically expanded as -necessary, so the only limiting factor would be the amount of swap space -available. Unfortunately, implementing this is extremely difficult, as -the fixed size of arrays is assumed in many places throughout the source -code. These runtime limits are a practical compromise between the -compile-time limits in previous versions, and truly dynamic arrays. (On -the other hand, the Web2c BibTeX implementation does do dynamic -reallocation of some arrays.) - - -File: web2c.info, Node: Commonalities, Next: TeX, Prev: Installation, Up: Top - -3 Commonalities -*************** - -Many aspects of the TeX system are the same among more than one -program, so we describe all those pieces together, here. - -* Menu: - -* Option conventions:: -- or -, = or ` ' for values. -* Common options:: --help --version --verbose, and TeX/MF/MP options. -* Path searching:: Features of the common path searching library. -* Output file location:: TEXMFOUTPUT allows output in places other than `.'. -* Three programs:: TeX, Metafont, and MetaPost have a lot in common. - - -File: web2c.info, Node: Option conventions, Next: Common options, Up: Commonalities - -3.1 Option conventions -====================== - -To provide a clean and consistent behavior, we chose to have all these -programs use the GNU function `getopt_long_only' to parse command -lines. However, we do use in a restricted mode, where all the options -have to come before the rest of the arguments. - - As a result, you can: - * use `-' or `--' to start an option name; - - * use any unambiguous abbreviation for an option name; - - * separate option names and values with either `=' or one or more - spaces; - - * use filenames that would otherwise look like options by putting - them after an option `--'. - - By convention, non-option arguments, if specified, generally define -the name of an input file, as documented for each program. - - If a particular option with a value is given more than once, it is -the last value that counts. - - For example, the following command line specifies the options `foo', -`bar', and `verbose'; gives the value `baz' to the `abc' option, and -the value `xyz' to the `quux' option; and specifies the filename -`-myfile-'. - - -foo --bar -verb -abc=baz -quux karl --quux xyz -- -myfile- - - -File: web2c.info, Node: Common options, Next: Path searching, Prev: Option conventions, Up: Commonalities - -3.2 Common options -================== - -All of these programs accept the standard GNU `--help' and `--version' -options, and several programs accept `--verbose'. Rather than writing -identical descriptions for every program, they are described here. - -`--help' - Print a usage message listing basic usage and all available - options to standard output, then exit successfully. - -`--verbose' - Print progress reports to standard output. - -`--version' - Print the version number to standard output, then exit - successfully. - - TeX, Metafont, and MetaPost have a number of additional options in -common: - -`-file-line-error' -`-no-file-line-error' - Change (or do not change) the way error messages are printed. The - alternate style looks like error messages from many compilers and - is easier to parse for some editors that invoke TeX. This option - used to be called `-file-line-error-style'. - -`-fmt=DUMPNAME' -`-base=DUMPNAME' -`-mem=DUMPNAME' - Use DUMPNAME instead of the program name or a `%&' line to - determine the name of the memory dump file read (`fmt' for TeX, - `base' for Metafont, `mem' for MetaPost). *Note Memory dumps::. - Also sets the program name to DUMPNAME if no `-progname' option - was given. - -`-halt-on-error' - Stop processing and exit when an error occurs, as opposed to the - normal process of trying to recover and continue. - -`-ini' - Enable the "initial" form of the program (*note Initial and - virgin::). This is implicitly set if the program name is `initex' - resp. `inimf' resp. `inimpost', although these variants are no - longer typically installed. - -`-interaction=STRING' - Set the interaction mode from the command line. The STRING must - be one of `batchmode', `nonstopmode', `scrollmode', or - `errorstopmode'. - -`-jobname=STRING' - Set the job name to STRING, instead of deriving it from the name - of the input file. - -`-kpathsea-debug=NUMBER' - Set path searching debugging flags according to the bits of NUMBER - (*note Debugging: (kpathsea)Debugging.). You can also specify - this in `KPATHSEA_DEBUG' environment variable (for all Web2c - programs). (The command line value overrides.) The most useful - value is `-1', to get all available output. - -`-output-directory=DIRNAME' - Specify the directory DIRNAME to which output files are written. - Also look for input files in DIRNAME first, before looking along - the normal search path. This is useful when you are in some - read-only distribution directory, perhaps on a CD-ROM, and want to - TeX some documentation, for example. Note that for input files - the "search" in DIRNAME does not use the full generality of the - search mechanism. This means that some files are not found there - even though you might expect them to be. - -`-parse-first-line' -`-no-parse-first-line' - Check or disable checking whether the first line of the main input - file starts with `%&', and parse it if it does. This line can be - used specify the format and/or a TCX file. - -`-progname=STRING' - Set program (and memory dump) name to STRING. This may affect the - search paths and other values used (*note Config files: - (kpathsea)Config files.). Using this option is equivalent to - making a link named STRING to the binary and then invoking the - binary under that name. *Note Memory dumps::. - -`-recorder' - Enable the filename recorder. This makes the program save a list - of the opened files into a file with (by default) extension - `.fls'. For Omega, this option is always on, and the file has - extension `.ofl'. - -`-translate-file=TCXFILE' - Use TCXFILE to define which characters are printable and - translations between the internal and external character sets. - Moreover, TCXFILE can be explicitly declared in the first line of - the main input file `%& -translate-file=TCXFILE'. This is the - recommended method for portability reasons. *Note TCX files::. - -`-8bit' - This option specifies that by default all characters should be - considered printable. If `-translate-file' was given as well, - then the TCX file may mark characters as non-printable. - -`-oem' - This option is specific to Windows. When specified, TeX engines - will use the OEM code page rather than the ANSI one to display - their messages. - - - -File: web2c.info, Node: Path searching, Next: Output file location, Prev: Common options, Up: Commonalities - -3.3 Path searching -================== - -All of the Web2c programs, including TeX, which do path searching use -the Kpathsea routines to do so. The precise names of the environment -and configuration file variables which get searched for particular file -formatted are therefore documented in the Kpathsea manual (*note -Supported file formats: (kpathsea)Supported file formats.). Reading -`texmf.cnf' (*note Config files: (kpathsea)Config files.), invoking -`mktex...' scripts (*note mktex scripts: (kpathsea)mktex scripts.), and -so on are all handled by Kpathsea. - - The programs which read fonts make use of another Kpathsea feature: -`texfonts.map', which allows arbitrary aliases for the actual names of -font files; for example, `Times-Roman' for `ptmr8r.tfm'. The -distributed (and installed by default) `texfonts.map' includes aliases -for many widely available PostScript fonts by their PostScript names. - - -File: web2c.info, Node: Output file location, Next: Three programs, Prev: Path searching, Up: Commonalities - -3.4 Output file location -======================== - -All the programs generally follow the usual convention for output files. -Namely, they are placed in the directory current when the program is -run, regardless of any input file location; or, in a few cases, output -is to standard output. - - For example, if you run `tex /tmp/foo', for example, the output will -be in `./foo.dvi' and `./foo.log', not `/tmp/foo.dvi' and -`/tmp/foo.log'. - - You can use the `-output-directory' option to cause all output files -that would normally be written in the current directory to be written -in the specified directory instead. *Note Common options::. - - If the current directory is not writable, and `-output-directory' is -not specified, the main programs (TeX, Metafont, MetaPost, and BibTeX) -make an exception: if the config file value `TEXMFOUTPUT' is set (it is -not by default), output files are written to the directory specified. - - -File: web2c.info, Node: Three programs, Prev: Output file location, Up: Commonalities - -3.5 Three programs: Metafont, MetaPost, and TeX -=============================================== - -TeX, Metafont, and MetaPost have a number of features in common. -Besides the ones here, the common command-line options are described in -the previous section. The configuration file options that let you -control some array sizes and other features are described in *note -Runtime options::. - -* Menu: - -* Initial and virgin:: Making memory dumps vs. production runs. -* Memory dumps:: .fmt/.base/.mem files for fast startup. -* Editor invocation:: The `e' response at errors. -* \input filenames:: ~ and $ expansion in TeX/MF/MP. - - -File: web2c.info, Node: Initial and virgin, Next: Memory dumps, Up: Three programs - -3.5.1 Initial and virgin ------------------------- - -The TeX, Metafont, and MetaPost programs each have two main variants, -called "initial" and "virgin". As of Web2c 7, one executable suffices -for both variants, and in fact, the `ini...' executables are no longer -created. - - The initial form is enabled if: - 1. the `-ini' option was specified; or - - 2. the program name is `initex' resp. `inimf' resp. `inimpost' - (these variants are no longer typically installed); or - - 3. the first line of the main input file is `%&ini'; - otherwise, the virgin form is used. - - The "virgin" form is the one generally invoked for production use. -The first thing it does is read a memory dump (*note Determining the -memory dump to use::), and then proceeds on with the main job. - - The "initial" form is generally used only to create memory dumps -(see the next section). It starts up more slowly than the virgin form, -because it must do lengthy initializations that are encapsulated in the -memory dump file. - - -File: web2c.info, Node: Memory dumps, Next: Editor invocation, Prev: Initial and virgin, Up: Three programs - -3.5.2 Memory dumps ------------------- - -In typical use, TeX, Metafont, and MetaPost require a large number of -macros to be predefined; therefore, they support "memory dump" files, -which can be read much more efficiently than ordinary source code. - -* Menu: - -* Creating memory dumps:: -* Determining the memory dump to use:: -* Hardware and memory dumps:: - - -File: web2c.info, Node: Creating memory dumps, Next: Determining the memory dump to use, Up: Memory dumps - -3.5.2.1 Creating memory dumps -............................. - -The programs all create memory dumps in slightly idiosyncratic (thought -substantially similar) way, so we describe the details in separate -sections (references below). The basic idea is to run the initial -version of the program (*note Initial and virgin::), read the source -file to define the macros, and then execute the `\dump' primitive. - - Also, each program uses a different filename extension for its memory -dumps, since although they are completely analogous they are not -interchangeable (TeX cannot read a Metafont memory dump, for example). - - Here is a list of filename extensions with references to examples of -creating memory dumps: - -TeX - (`.fmt') *Note Initial TeX: Initial TeX. - -Metafont - (`.base') *Note Initial Metafont::. - -MetaPost - (`.mem') *Note Initial MetaPost::. - - When making memory dumps, the programs read environment variables and -configuration files for path searching and other values as usual. If -you are making a new installation and have environment variables -pointing to an old one, for example, you will probably run into -difficulties. - - -File: web2c.info, Node: Determining the memory dump to use, Next: Hardware and memory dumps, Prev: Creating memory dumps, Up: Memory dumps - -3.5.2.2 Determining the memory dump to use -.......................................... - -The virgin form (*note Initial and virgin::) of each program always -reads a memory dump before processing normal source input. All three -programs determine the memory dump to use in the same way: - - 1. If the first non-option command-line argument begins with `&', the - program uses the remainder of that argument as the memory dump - name. For example, running `tex \&super' reads `super.fmt'. (The - backslash protects the `&' against interpretation by the shell.) - - 2. If the `-fmt' resp. `-base' resp. `-mem' option is specified, its - value is used. - - 3. If the `-progname' option is specified, its value is used. - - 4. If the first line of the main input file (which must be specified - on the command line, not in response to `**') is `%&DUMP', and - DUMP is an existing memory dump of the appropriate type, DUMP is - used. - - The first line of the main input file can also specify which - character translation file is to be used: - `%&-translate-file=TCXFILE' (*note TCX files::). - - These two roles can be combined: `%&DUMP -translate-file=TCXFILE'. - If this is done, the name of the dump must be given first. - - 5. Otherwise, the program uses the program invocation name, most - commonly `tex' resp. `mf' resp. `mpost'. For example, if `latex' - is a link to `tex', and the user runs `latex foo', `latex.fmt' - will be used. - - - -File: web2c.info, Node: Hardware and memory dumps, Prev: Determining the memory dump to use, Up: Memory dumps - -3.5.2.3 Hardware and memory dumps -................................. - -By default, memory dump files are generally sharable between -architectures of different types; specifically, on machines of different -endianness (*note Byte order: (libc)Byte order.). (This is a feature -of the Web2c implementation, and is not true of all TeX -implementations.) If you specify `--disable-dump-share' to -`configure', however, memory dumps will be endian-dependent. - - The reason to do this is speed. To achieve endian-independence, the -reading of memory dumps on LittleEndian architectures, such as PC's and -DEC architectures, is somewhat slowed (all the multibyte values have to -be swapped). Usually, this is not noticeable, and the advantage of -being able to share memory dumps across all platforms at a site far -outweighs the speed loss. But if you're installing Web2c for use on -LittleEndian machines only, perhaps on a PC being used only by you, you -may wish to get maximum speed. - - TeXnically, even without `--disable-dump-share', sharing of `.fmt' -files cannot be guaranteed to work. Floating-point values are always -written in native format, and hence will generally not be readable -across platforms. Fortunately, TeX uses floating point only to -represent glue ratios, and all common formats (plain, LaTeX, AMSTeX, -...) do not do any glue setting at `.fmt'-creation time. Metafont and -MetaPost do not use floating point in any dumped value at all. - - Incidentally, different memory dump files will never compare equal -byte-for-byte, because the program always dumps the current date and -time. So don't be alarmed by just a few bytes difference. - - If you don't know what endianness your machine is, and you're -curious, here is a little C program to tell you. (The `configure' script -contains a similar program.) This is from the book `C: A Reference -Manual', by Samuel P. Harbison and Guy L. Steele Jr. (*note -References::). - - main () - { - /* Are we little or big endian? From Harbison&Steele. */ - union - { - long l; - char c[sizeof (long)]; - } u; - u.l = 1; - if (u.c[0] == 1) - printf ("LittleEndian\n"); - else if (u.c[sizeof (long) - 1] == 1) - printf ("BigEndian\n"); - else - printf ("unknownEndian"); - - exit (u.c[sizeof (long) - 1] == 1); - } - - -File: web2c.info, Node: Editor invocation, Next: \input filenames, Prev: Memory dumps, Up: Three programs - -3.5.3 Editor invocation ------------------------ - -TeX, Metafont, and MetaPost all (by default) stop and ask for user -intervention at an error. If the user responds with `e' or `E', the -program invokes an editor. - - Specifying `--with-editor=CMD' to `configure' sets the default -editor command string to CMD. The environment variables/configuration -values `TEXEDIT', `MFEDIT', and `MPEDIT' (respectively) override this. -If `--with-editor' is not specified, the default is `vi +%d %s'. - - In this string, `%d' is replaced by the line number of the error, -and `%s' is replaced by the name of the current input file. - - -File: web2c.info, Node: \input filenames, Prev: Editor invocation, Up: Three programs - -3.5.4 `\input' filenames ------------------------- - -TeX, Metafont, and MetaPost source programs can all read other source -files with the `\input' (TeX) and `input' (MF and MP) primitives: - \input NAME % in TeX - - The file NAME can always be terminated with whitespace; for Metafont -and MetaPost, the statement terminator `;' also works. (LaTeX and -other macro packages provide other interfaces to `\input' that allow -different notation; here we are concerned only with the primitive -operation.) - - As of Web2c version 7.5.3, double-quote characters can be used to -include spaces or other special cases. In typical use, the `"' -characters surround the entire filename: - \input "filename with spaces" - - Technically, the quote characters can be used inside the name, and -can enclose any characters, as in: - \input filename" "with" "spaces - - One more point. In LaTeX, the quotes are needed inside the braces, -thus - \input{a b} % fails - \input{"a b"} % ok - - This quoting mechanism comes into play _after_ TeX has tokenized and -expanded the input. So, multiple spaces and tabs may be seen as a -single space, active characters such as `~' are expanded first, and so -on. (See below.) - - On the other hand, various C library routines and Unix itself use -the null byte (character code zero, ASCII NUL) to terminate strings. So -filenames in Web2c cannot contain nulls, even though TeX itself does -not treat NUL specially. In addition, some older Unix variants do not -allow eight-bit characters (codes 128-255) in filenames. - - For maximal portability of your document across systems, use only the -characters `a'-`z', `0'-`9', and `.', and restrict your filenames to at -most eight characters (not including the extension), and at most a -three-character extension. Do not use anything but simple filenames, -since directory separators vary among systems; instead, add the -necessary directories to the appropriate search path. - - Finally, the present Web2c implementation does `~' and `$' expansion -on NAME, unlike Knuth's original implementation and older versions of -Web2c. Thus: - \input ~jsmith/$foo.bar - will dereference the environment variable or Kpathsea config file -value `foo' and read that file extended with `.bar' in user `jsmith''s -home directory. You can also use braces, as in `${foo}bar', if you -want to follow the variable name with a letter, numeral, or `_'. - - (So another way to get a program to read a filename containing -whitespace is to define an environment variable and dereference it.) - - In all the common TeX formats (plain TeX, LaTeX, AMSTeX), the -characters `~' and `$' have special category codes, so to actually use -these in a document you have to change their catcodes or use `\string'. -(The result is unportable anyway, see the suggestions above.) The -place where they are most likely to be useful is when typing -interactively. - - -File: web2c.info, Node: TeX, Next: Metafont, Prev: Commonalities, Up: Top - -4 TeX: Typesetting -****************** - -TeX is a typesetting system: it was especially designed to handle -complex mathematics, as well as most ordinary text typesetting. - - TeX is a batch language, like C or Pascal, and not an interactive -"word processor": you compile a TeX input file into a corresponding -device-independent (DVI) file (and then translate the DVI file to the -commands for a particular output device). This approach has both -considerable disadvantages and considerable advantages. For a complete -description of the TeX language, see `The TeXbook' (*note -References::). Many other books on TeX, introductory and otherwise, -are available. - -* Menu: - -* tex invocation:: Invoking TeX. -* Initial TeX:: Making format files. -* Formats:: Major TeX macro packages. -* Languages and hyphenation:: TeX supports many human languages. -* Shell escapes:: DVI output to a socket. -* IPC and TeX:: DVI output to a socket. -* TeX extensions:: Changes to the TeX language. - - -File: web2c.info, Node: tex invocation, Next: Initial TeX, Up: TeX - -4.1 `tex' invocation -==================== - -TeX (usually invoked as `tex') formats the given text and commands, and -outputs a corresponding device-independent representation of the -typeset document. This section merely describes the options available -in the Web2c implementation. For a complete description of the TeX -typesetting language, see `The TeXbook' (*note References::). - - TeX, Metafont, and MetaPost process the command line (described -here) and determine their memory dump (fmt) file in the same way (*note -Memory dumps::). Synopses: - - tex [OPTION]... [TEXNAME[.tex]] [TEX-COMMANDS] - tex [OPTION]... \FIRST-LINE - tex [OPTION]... &FMT ARGS - - TeX searches the usual places for the main input file TEXNAME (*note -Supported file formats: (kpathsea)Supported file formats.), extending -TEXNAME with `.tex' if necessary. To see all the relevant paths, set -the environment variable `KPATHSEA_DEBUG' to `-1' before running the -program. - - After TEXNAME is read, TeX processes any remaining TEX-COMMANDS on -the command line as regular TeX input. Also, if the first non-option -argument begins with a TeX escape character (usually `\'), TeX -processes all non-option command-line arguments as a line of regular -TeX input. - - If no arguments or options are specified, TeX prompts for an input -file name with `**'. - - TeX writes the main DVI output to the file `BASETEXNAME.dvi', where -BASETEXNAME is the basename of TEXNAME, or `texput' if no input file -was specified. A DVI file is a device-independent binary -representation of your TeX document. The idea is that after running -TeX, you translate the DVI file using a separate program to the -commands for a particular output device, such as a PostScript printer -(*note Introduction: (dvips)Top.) or an X Window System display (see -xdvi(1)). - - TeX also reads TFM files for any fonts you load in your document with -the `\font' primitive. By default, it runs an external program named -`mktextfm' to create any nonexistent TFM files. You can disable this -at configure-time or runtime (*note mktex configuration: -(kpathsea)mktex configuration.). This is enabled mostly for the sake -of the EC fonts, which can be generated at any size. - - TeX can write output files, via the `\openout' primitive; this opens -a security hole vulnerable to Trojan horse attack: an unwitting user -could run a TeX program that overwrites, say, `~/.rhosts'. (MetaPost -has a `write' primitive with similar implications). To alleviate this, -there is a configuration variable `openout_any', which selects one of -three levels of security. When it is set to `a' (for "any"), no -restrictions are imposed. When it is set to `r' (for "restricted"), -filenames beginning with `.' are disallowed (except `.tex' because -LaTeX needs it). When it is set to `p' (for "paranoid") additional -restrictions are imposed: an absolute filename must refer to a file in -(a subdirectory) of `TEXMFOUTPUT', and any attempt to go up a directory -level is forbidden (that is, paths may not contain a `..' component). -The paranoid setting is the default. (For backwards compatibility, `y' -and `1' are synonyms of `a', while `n' and `0' are synonyms for `r'.) - - In any case, all `\openout' filenames are recorded in the log file, -except those opened on the first line of input, which is processed when -the log file has not yet been opened. (If you as a TeX administrator -wish to implement more stringent rules on `\openout', modifying the -function `openoutnameok' in `web2c/lib/texmfmp.c' is intended to -suffice.) - - The program accepts the following options, as well as the standard -`-help' and `-version' (*note Common options::): -`-enc' -`-[no]-file-line-error' -`-fmt=FMTNAME' -`-halt-on-error' -`-ini' -`-interaction=STRING' -`-ipc' -`-ipc-start' -`-jobname=STRING' -`-kpathsea-debug=NUMBER' -`-[no]parse-first-line' -`-output-directory' -`-progname=STRING' -`-recorder' -`-translate-file=TCXFILE' -`-8bit' - These options are common to TeX, Metafont, and MetaPost. *Note - Common options::. - -`-enc' - Enable encTeX extensions, such as `\mubyte'. This can be used to - support Unicode UTF-8 input encoding. See - `http://www.olsak.net/enctex.html'. - -`-ipc' -`-ipc-start' - With either option, TeX writes its DVI output to a socket as well - as to the usual `.dvi' file. With `-ipc-start', TeX also opens a - server program at the other end to read the output. *Note IPC and - TeX: IPC and TeX. - - These options are available only if the `--enable-ipc' option was - specified to `configure' during installation of Web2c. - -`-mktex=FILETYPE' -`-no-mktex=FILETYPE' - Turn on or off the `mktex' script associated with FILETYPE. The - only values that make sense for FILETYPE are `tex' and `tfm'. - -`-mltex' - If we are `INITEX' (*note Initial and virgin::), enable MLTeX - extensions such as `\charsubdef'. Implicitly set if the program - name is `mltex'. *Note MLTeX: MLTeX. - -`-output-comment=STRING' - Use STRING as the DVI file comment. Ordinarily, this comment - records the date and time of the TeX run, but if you are doing - regression testing, you may not want the DVI file to have this - spurious difference. This is also taken from the environment - variable and config file value `output_comment'. - -`-shell-escape' -`-no-shell-escape' -`-shell-restricted' - Enable, or disable, or enable with restrictions the - `\write18{SHELL-COMMAND}' feature for external executing shell - commands. *Note Shell escapes::. - -`-enable-write18' -`-disable-write18' - Synonyms for `-shell-escape' and `-no-shell-escape', for - compatibility with MiKTeX. (MiKTeX also accepts both pairs of - options.) *Note Shell escapes::. - -`-src-specials' -`-src-specials=STRING' - This option makes TeX output specific source information using - `\special' commands in the DVI file. These `\special' track the - current file name and line number. - - Using the first form of this option, the `\special' commands are - inserted automatically. - - In the second form of the option, STRING is a comma separated list - of the following values: `cr', `display', `hbox', `math', `par', - `parend', `vbox'. You can use this list to specify where you want - TeX to output such commands. For example, `-src-specials=cr,math' - will output source information every line and every math formula. - - These commands can be used with the appropriate DVI viewer and - text editor to switch from the current position in the editor to - the same position in the viewer and back from the viewer to the - editor. - - This option works by inserting `\special' commands into the token - stream, and thus in principle these additional tokens can be - recovered or seen by the tricky-enough macros. If you run across - a case, let us know, because this counts as a bug. However, such - bugs are very hard to fix, requiring significant changes to TeX, - so please don't count on it. - - Redefining `\special' will not affect the functioning of this - option. The commands inserted into the token stream are - hard-coded to always use the `\special' primitive. - - TeX does not pass the trip test when this option is enabled. - - - -File: web2c.info, Node: Initial TeX, Next: Formats, Prev: tex invocation, Up: TeX - -4.2 Initial TeX -=============== - -The "initial" form of TeX is invoked by `tex -ini'. It does lengthy -initializations avoided by the "virgin" (`vir') form, so as to be -capable of dumping `.fmt' files (*note Memory dumps::). For a detailed -comparison of virgin and initial forms, *note Initial and virgin::. In -past releases, a separate program `initex' was installed to invoke the -initial form, but this is no longer the case. - - For a list of options and other information, *note tex invocation::. - - Unlike Metafont and MetaPost, many format files are commonly used -with TeX. The standard one implementing the features described in the -`TeXbook' is `plain.fmt', also known as `tex.fmt' (again, *note Memory -dumps::). It is created by default during installation, but you can -also do so by hand if necessary (e.g., if an update to `plain.tex' is -issued): - tex -ini '\input plain \dump' - (The quotes prevent interpretation of the backslashes from the -shell.) Then install the resulting `plain.fmt' in `$(fmtdir)' -(`/usr/local/share/texmf/web2c' by default), and link `tex.fmt' to it. - - The necessary invocation for generating a format file differs for -each format, so instructions that come with the format should explain. -The top-level `web2c' Makefile has targets for making most common -formats: plain latex amstex texinfo eplain. *Note Formats::, for more -details on TeX formats. - - -File: web2c.info, Node: Formats, Next: Languages and hyphenation, Prev: Initial TeX, Up: TeX - -4.3 Formats -=========== - -TeX "formats" are large collections of macros, often dumped into a -`.fmt' file (*note Memory dumps::) by `tex -ini' (*note Initial TeX::). -A number of formats are in reasonably widespread use, and the Web2c -Makefile has targets to make the versions current at the time of -release. You can change which formats are automatically built by -setting the `fmts' Make variable; by default, only the `plain' and -`latex' formats are made. - - You can get the latest versions of most of these formats from the -CTAN archives in subdirectories of `CTAN:/macros' (for CTAN info, *note -unixtex.ftp: (kpathsea)unixtex.ftp.). The archive -`ftp://ftp.tug.org/tex/lib.tar.gz' (also available from CTAN) contains -most of these formats (although perhaps not the absolute latest -version), among other things. - -latex - The most widely used format. The current release is named `LaTeX - 2e'; new versions are released approximately every six months, with - patches issued as needed. The old release was called `LaTeX 2.09', - and is no longer maintained or supported. LaTeX attempts to - provide generic markup instructions, such as "emphasize", instead - of specific typesetting instructions, such as "use the 10pt - Computer Modern italic font". The LaTeX home page: - `http://www.latex-project.org'. - -context - ConTeXt is an independent macro package which has a basic document - structuring approach similar to LaTeX. It also supports creating - interactive PDF files and has integrated MetaPost support, among - many other interesting features. The ConTeXt home page: - `http://www.pragma-ade.com'. - -amstex - The official typesetting system of the American Mathematical - Society. Like LaTeX, it encourages generic markup commands. The - AMS also provides many LaTeX package for authors who prefer LaTeX. - Taken together, they are used to produce nearly all AMS - publications, e.g., `Mathematical Reviews'. The AMSTeX home page: - `http://www.ams.org/tex'. - -texinfo - The documentation system developed and maintained by the Free - Software Foundation for their software manuals. It can be - automatically converted into plain text, a machine-readable - on-line format called `info', HTML, etc. The Texinfo home page: - `http://www.gnu.org/software/texinfo'. - -eplain - The "expanded plain" format provides various common features (e.g., - symbolic cross-referencing, tables of contents, indexing, citations - using BibTeX), for those authors who prefer to handle their own - high-level formatting. The Eplain home page: - `http://www.tug.org/eplain'. - -slitex - An obsolete LaTeX 2.09 format for making slides. It is replaced by - the `slides' document class, along with the `beamer', `texpower', - and other packages. - - - -File: web2c.info, Node: Languages and hyphenation, Next: Shell escapes, Prev: Formats, Up: TeX - -4.4 Languages and hyphenation -============================= - -TeX supports most natural languages. See also *note TeX extensions: -TeX extensions. - -* Menu: - -* MLTeX:: Multi-lingual TeX. -* patgen invocation:: Creating hyphenation patterns. -* TCX files:: Support for different character sets & fonts. - - -File: web2c.info, Node: MLTeX, Next: patgen invocation, Up: Languages and hyphenation - -4.4.1 MLTeX: Multi-lingual TeX ------------------------------- - -Multi-lingual TeX (`mltex') is an extension of TeX originally written -by Michael Ferguson and now updated and maintained by Bernd Raichle. -It allows the use of non-existing glyphs in a font by declaring glyph -substitutions. These are restricted to substitutions of an accented -character glyph, which need not be defined in the current font, by its -appropriate `\accent' construction using a base and accent character -glyph, which do have to exist in the current font. This substitution -is automatically done behind the scenes, if necessary, and thus MLTeX -additionally supports hyphenation of words containing an accented -character glyph for fonts missing this glyph (e.g., Computer Modern). -Standard TeX suppresses hyphenation in this case. - - MLTeX works at `.fmt'-creation time: the basic idea is to specify -the `-mltex' option to TeX when you `\dump' a format. Then, when you -subsequently invoke TeX and read that `.fmt' file, the MLTeX features -described below will be enabled. - - Generally, you use special macro files to create an MLTeX `.fmt' -file. - - The sections below describe the two new primitives that MLTeX -defines. Aside from these, MLTeX is completely compatible with -standard TeX. - -* Menu: - -* \charsubdef:: Character substitution definitions. -* \tracingcharsubdef:: Tracing substitutions. - - -File: web2c.info, Node: \charsubdef, Next: \tracingcharsubdef, Up: MLTeX - -4.4.1.1 `\charsubdef': Character substitutions -.............................................. - -The most important primitive MLTeX adds is `\charsubdef', used in a way -reminiscent of `\chardef': - \charsubdef COMPOSITE [=] ACCENT BASE - - Each of COMPOSITE, ACCENT, and BASE are font glyph numbers, -expressed in the usual TeX syntax: `\e symbolically, '145 for octal, -"65 for hex, 101 for decimal. - - MLTeX's `\charsubdef' declares how to construct an accented -character glyph (not necessarily existing in the current font) using two -character glyphs (that do exist). Thus it defines whether a character -glyph code, either typed as a single character or using the `\char' -primitive, will be mapped to a font glyph or to an `\accent' glyph -construction. - - For example, if you assume glyph code 138 (decimal) for an -e-circumflex and you are using the Computer Modern fonts, which have -the circumflex accent in position 18 and lowercase `e' in the usual -ASCII position 101 decimal, you would use `\charsubdef' as follows: - - \charsubdef 138 = 18 101 - - For the plain TeX format to make use of this substitution, you have -to redefine the circumflex accent macro `\^' in such a way that if its -argument is character `e' the expansion `\char138 ' is used instead of -`\accent18 e'. Similar `\charsubdef' declaration and macro -redefinitions have to be done for all other accented characters. - - To disable a previous `\charsubdef C', redefine C as a pair of -zeros. For example: - \charsubdef '321 = 0 0 % disable N tilde - (Octal '321 is the ISO Latin-1 value for the Spanish N tilde.) - - `\charsubdef' commands should only be given once. Although in -principle you can use `\charsubdef' at any time, the result is -unspecified. If `\charsubdef' declarations are changed, usually either -incorrect character dimensions will be used or MLTeX will output -missing character warnings. (The substitution of a `\charsubdef' is -used by TeX when appending the character node to the current horizontal -list, to compute the width of a horizontal box when the box gets -packed, and when building the `\accent' construction at -`\shipout'-time. In summary, the substitution is accessed often, so -changing it is not desirable, nor generally useful.) - - -File: web2c.info, Node: \tracingcharsubdef, Prev: \charsubdef, Up: MLTeX - -4.4.1.2 `\tracingcharsubdef': Substitution diagnostics -...................................................... - -To help diagnose problems with `\charsubdef', MLTeX provides a new -primitive parameter, `\tracingcharsubdef'. If positive, every use of -`\charsubdef' will be reported. This can help track down when a -character is redefined. - - In addition, if the TeX parameter `\tracinglostchars' is 100 or -more, the character substitutions actually performed at `\shipout'-time -will be recorded. - - -File: web2c.info, Node: TCX files, Prev: patgen invocation, Up: Languages and hyphenation - -4.4.2 TCX files: Character translations ---------------------------------------- - -TCX (TeX character translation) files help TeX support direct input of -8-bit international characters if fonts containing those characters are -being used. Specifically, they map an input (keyboard) character code -to the internal TeX character code (a superset of ASCII). - - Of the various proposals for handling more than one input encoding, -TCX files were chosen because they follow Knuth's original ideas for -the use of the `xchr' and `xord' tables. He ventured that these would -be changed in the WEB source in order to adjust the actual version to a -given environment. It turns out, however, that recompiling the WEB -sources is not as simple a task as Knuth may have imagined; therefore, -TCX files, providing the possibility of changing of the conversion -tables on on-the-fly, have been implemented instead. - - This approach limits the portability of TeX documents, as some -implementations do not support it (or use a different method for -input-internal reencoding). It may also be problematic to determine -the encoding to use for a TeX document of unknown provenance; in the -worst case, failure to do so correctly may result in subtle errors in -the typeset output. But we feel the benefits outweigh these -disadvantages. - - This is entirely independent of the MLTeX extension (*note MLTeX::): -whereas a TCX file defines how an input keyboard character is mapped to -TeX's internal code, MLTeX defines substitutions for a non-existing -character glyph in a font with a `\accent' construction made out of two -separate character glyphs. TCX files involve no new primitives; it is -not possible to specify that an input (keyboard) character maps to more -than one character. - - Information on specifying TCX files: - - * The best way to specify a TCX file is to list it explicitly in the - first line of the main document: - %& -translate-file=TCXFILE - - * You can also specify a TCX file to be used on a particular TeX run - with the command-line option `-translate-file=TCXFILE'. - - * TCX files are searched for along the `WEB2C' path. - - * Initial TeX (*note Initial TeX: Initial TeX.) ignores TCX files. - - The Web2c distribution comes with a number of TCX files. Two -important ones are `il1-t1.tcx' and `il2-t1.tcx', which support ISO -Latin 1 and ISO Latin 2, respectively, with Cork-encoded fonts (a.k.a. -the LaTeX T1 encoding). TCX files for Czech, Polish, and Slovak are -also provided. - - One other notable TCX file is `empty.tcx', which is, well, empty. -Its purpose is to reset Web2C's behavior to the default (only visible -ASCII being printable, as described below) when a format was dumped -with another TCX being active--which is in fact the case for everything -but plain TeX in the TeX Live and other distributions. Thus: - - latex somefile8.tex - => terminal etc. output with 8-bit chars - latex --translate-file=empty.tcx somefile8.tex - => terminal etc. output with ^^ notation - - Syntax of TCX files: - 1. Line-oriented. Blank lines are ignored. - - 2. Whitespace is ignored except as a separator. - - 3. Comments start with `%' and continue to the end of the line. - - 4. Otherwise, a line consists of one or two character codes, - optionally followed by 0 or 1. The last number indicates whether - DEST is considered printable. - SRC [DEST [PRNT]] - - 5. Each character code may be specified in octal with a leading `0', - hexadecimal with a leading `0x', or decimal otherwise. Values must - be between 0 and 255, inclusive (decimal). - - 6. If the DEST code is not specified, it is taken to be the same as - SRC. - - 7. If the same SRC code is specified more than once, it is the last - definition that counts. - - Finally, here's what happens: when TeX sees an input character with -code SRC, it 1) changes SRC to DEST; and 2) makes the DEST code -"printable", i.e., printed as-is in diagnostics and the log file rather -than in `^^' notation. - - By default, no characters are translated, and character codes -between 32 and 126 inclusive (decimal) are printable. - - Specifying translations for the printable ASCII characters (codes -32-127) will yield unpredictable results. Additionally you shouldn't -make the following characters printable: `^^I' (TAB), `^^J' (line -feed), `^^M' (carriage return), and `^^?' (delete), since TeX uses them -in various ways. - - Thus, the idea is to specify the input (keyboard) character code for -SRC, and the output (font) character code for DEST. - - By default, only the printable ASCII characters are considered -printable by TeX. If you specify the `-8bit' option, all characters are -considered printable by default. If you specify both the `-8bit' -option and a TCX file, then the TCX can set specific characters to be -non-printable. - - Both the specified TCX encoding and whether characters are printable -are saved in the dump files (like `tex.fmt'). So by giving these -options in combination with `-ini', you control the defaults seen by -anyone who uses the resulting dump file. - - When loading a dump, if the `-8bit' option was given, then all -characters become printable by default. - - When loading a dump, if a TCX file was specified, then the TCX data -from the dump is ignored and the data from the file used instead. - - -File: web2c.info, Node: patgen invocation, Next: TCX files, Prev: MLTeX, Up: Languages and hyphenation - -4.4.3 Patgen: Creating hyphenation patterns -------------------------------------------- - -Patgen creates hyphenation patterns from dictionary files for use with -TeX. Synopsis: - - patgen DICTIONARY PATTERNS OUTPUT TRANSLATE - - Each argument is a filename. No path searching is done. The output is -written to the file OUTPUT. - - In addition, Patgen prompts interactively for other values. - - For more information, see `Word hy-phen-a-tion by com-puter' by -Frank Liang (*note References::), and also the `patgen.web' source file. - - The only options are `-help' and `-version' (*note Common options::). - - -File: web2c.info, Node: Shell escapes, Next: IPC and TeX, Prev: Languages and hyphenation, Up: TeX - -4.5 Shell escapes -================= - -TeX can execute "shell escapes", that is, arbitrary shell commands. -Although tremendously useful, this also has obvious security -implications. Therefore, as of TeX Live 2009, a "restricted" mode for -shell escapes is the default mode of operation, which allows executing -only certain commands, as specified in the `texmf.cnf' configuration -file. - - * Unrestricted shell escapes are allowed if the option - `--shell-escape' is specified, or if the environment variable or - config file value `shell_escape' is set to `t' or `y' and `1'. - - * Restricted shell escapes are allowed if `shell_escape' is set to - `p'. This is the default. - - * Shell escapes are completely disabled if `--no-shell-escape' is - specified, or if `shell_escape' is set to anything else. - - When enabled, the TeX construct to execute a system command is -`\write18{SHELL-COMMAND}'; for example: - - \write18{echo "hello, world"} - - From TeX's point of view, this is a normal `\write' command, and is -therefore subject to the usual TeX expansions. Also, the system call -either happens during the `\output' routine or right away, according to -the absence or presence of the `\immediate' prefix, as usual for -`\write'. - - The SHELL-COMMAND string is passed to the command shell (via the C -library function `system'). The output of SHELL-COMMAND is not -diverted anywhere, so it will not appear in the log file, or anywhere -but the terminal output. The exit status of the system call is also -not available to TeX. - - In unrestricted mode, the argument is simply passed straight to -`system' unaltered. - - In restricted mode, ASCII double quote characters (") should always -be used in the argument to `\write18' where quoting of arguments is -needed, as in the example above. This is to achieve some measure of -system independence. On Unix systems, these are replaced with single -quote (') characters to avoid insecure further expansion. Care is also -taken on Windows to avoid additional expansions (from, e.g., `...`). -Mismatched quotation marks in the command string result in a diagnostic -message in the log file; no execution is performed. - - After quotation processing, if the first word (delimited by a space -or tab) of the command is in the list specified by the -`shell_escape_commands' configuration value, the command is executed. -Otherwise it is not. In any case, a message is written to the log file. - - The `shell_escape_commands' value is a comma-separated list of -words. Whitespace is significant, and typically should not be present. -The default definition looks like this, but with more commands included: - - shell_escape_commands = bibtex,dvips,epstopdf,...,tex - - pdfTeX and luaTeX support reading (via `\input' and `\openin') and -writing (via `\openout') from pipes if the first character is `|'. The -following command is then treated exactly the same as the argument to -`\write18'. In these engines, the primitive variable `\pdfshellescape' -is set to 0 if shell escapes are disabled, 1 if they are enabled, and 2 -if they are enabled with restrictions. - - The purpose of this feature is to make it possible for TeX documents -to perform useful external actions in the common case of an individual -user running a known document on his or her own machine. In such -environments as CGI scripts or wikis where the input has to be -considered untrustworthy, shell escapes should be completely disabled. - - -File: web2c.info, Node: IPC and TeX, Next: TeX extensions, Prev: Shell escapes, Up: TeX - -4.6 IPC and TeX -=============== - -(If anyone uses this feature and needs documentation, write -<tex-k@tug.org>.) - - This functionality is available only if the `--enable-ipc' option -was specified to `configure' during installation of Web2c (*note -Installation::). - - If you define `IPC_DEBUG' before compilation (e.g., with `make -XCFLAGS=-DIPC_DEBUG'), TeX will print messages to standard error about -its socket operations. This may be helpful if you are, well, debugging. - - -File: web2c.info, Node: TeX extensions, Prev: IPC and TeX, Up: TeX - -4.7 TeX extensions -================== - -The base TeX program has been extended in many ways. Here's a partial -list. - -e-TeX - Adds many new primitives, including right-to-left typesetting and - more registers. Now frozen. - -Omega -Aleph - These add Unicode support, right-to-left typesetting, and more. - Omega was the original program. Aleph is an updated version with - a variety of bug fixes, and includes e-TeX. Neither is actively - maintained. - -pdfTeX - Can produce PDF as well as DVI files. It also incorporates the - e-TeX extensions, new primitives for hypertext and - micro-typography, reading/writing from pipes, and much more. Home - page: `http://pdftex.org'. - -luaTeX - Based on pdfTeX, this also embeds the Lua programming language - (`http://lua.org') and opens up the TeX typesetting engine to - control from Lua. Home page: `http://luatex.org'. - - - -File: web2c.info, Node: Metafont, Next: MetaPost, Prev: TeX, Up: Top - -5 Metafont: Creating typeface families -************************************** - -Metafont is a system for producing shapes; it was designed for producing -complete typeface families, but it can also produce geometric designs, -dingbats, etc. And it has considerable mathematical and -equation-solving capabilities which can be useful entirely on their own. - - Metafont is a batch language, like C or Pascal: you compile a -Metafont program into a corresponding font, rather than interactively -drawing lines or curves. This approach has both considerable -disadvantages (people unfamiliar with conventional programming -languages will be unlikely to find it usable) and considerable -advantages (you can make your design intentions specific and -parameterizable). For a complete description of the Metafont language, -see `The METAFONTbook' (*note References::). - -* Menu: - -* mf invocation:: Invoking Metafont. -* Initial Metafont:: Making bases. -* Modes:: Device definitions for Metafont. -* Online Metafont graphics:: Seeing MF output online. -* gftodvi invocation:: Making proofsheets for fonts. -* mft invocation:: Prettyprinting Metafont sources. - - -File: web2c.info, Node: mf invocation, Next: Initial Metafont, Up: Metafont - -5.1 `mf' invocation -=================== - -Metafont (usually invoked as `mf') reads character definitions -specified in the Metafont programming language, and outputs the -corresponding font. This section merely describes the options available -in the Web2c implementation. For a complete description of the Metafont -language, see `The Metafontbook' (*note References::). - - Metafont processes its command line and determines its memory dump -(base) file in a way exactly analogous to MetaPost and TeX (*note tex -invocation::, and *note Memory dumps::). Synopses: - - mf [OPTION]... [MFNAME[.mf]] [MF-COMMANDS] - mf [OPTION]... \FIRST-LINE - mf [OPTION]... &BASE ARGS - - Most commonly, a Metafont invocation looks like this: - mf '\mode:=MODE; mag:=MAGNIFICATION; input MFNAME' - (The single quotes avoid unwanted interpretation by the shell.) - - Metafont searches the usual places for the main input file MFNAME -(*note Supported file formats: (kpathsea)Supported file formats.), -extending MFNAME with `.mf' if necessary. To see all the relevant -paths, set the environment variable `KPATHSEA_DEBUG' to `-1' before -running the program. By default, Metafont runs an external program -named `mktexmf' to create any nonexistent Metafont source files you -input. You can disable this at configure-time or runtime (*note mktex -configuration: (kpathsea)mktex configuration.). This is mostly for the -sake of the EC fonts, which can be generated at any size. - - Metafont writes the main GF output to the file `BASEMFNAME.NNNgf', -where NNN is the font resolution in pixels per inch, and BASEMFNAME is -the basename of MFNAME, or `mfput' if no input file was specified. A -GF file contains bitmaps of the actual character shapes. Usually GF -files are converted immediately to PK files with GFtoPK (*note gftopk -invocation::), since PK files contain equivalent information, but are -more compact. (Metafont output in GF format rather than PK for only -historical reasons.) - - Metafont also usually writes a metric file in TFM format to -`BASEMFNAME.tfm'. A TFM file contains character dimensions, kerns, and -ligatures, and spacing parameters. TeX reads only this .tfm file, not -the GF file. - - The MODE in the example command above is a name referring to a -device definition (*note Modes::); for example, `localfont' or -`ljfour'. These device definitions must generally be precompiled into -the base file. If you leave this out, the default is `proof' mode, as -stated in `The Metafontbook', in which Metafont outputs at a resolution -of 2602dpi; this is usually not what you want. The remedy is simply to -assign a different mode--`localfont', for example. - - The MAGNIFICATION assignment in the example command above is a -magnification factor; for example, if the device is 600dpi and you -specify `mag:=2', Metafont will produce output at 1200dpi. Very often, -the MAGNIFICATION is an expression such as `magstep(.5)', corresponding -to a TeX "magstep", which are factors of 1.2 * sqrt(2). - - After running Metafont, you can use the font in a TeX document as -usual. For example: - \font\myfont = newfont - \myfont Now I am typesetting in my new font (minimum hamburgers). - - The program accepts the following options, as well as the standard -`-help' and `-version' (*note Common options::): -`-[no]-file-line-error' -`-fmt=FMTNAME' -`-halt-on-error' -`-ini' -`-interaction=STRING' -`-jobname=STRING' -`-kpathsea-debug=NUMBER' -`-[no]parse-first-line' -`-output-directory' -`-progname=STRING' -`-recorder' -`-translate-file=TCXFILE' -`-8bit' - These options are common to TeX, Metafont, and MetaPost. *Note - Common options::. - -`-mktex=FILETYPE' -`-no-mktex=FILETYPE' - Turn on or off the `mktex' script associated with FILETYPE. The - only value that makes sense for FILETYPE is `mf'. - - -File: web2c.info, Node: Initial Metafont, Next: Modes, Prev: mf invocation, Up: Metafont - -5.2 Initial Metafont -==================== - -`inimf' is the "initial" form of Metafont, which does lengthy -initializations avoided by the "virgin" (`vir') form, so as to be -capable of dumping `.base' files (*note Memory dumps::). For a -detailed comparison of virgin and initial forms, see *note Initial and -virgin::. In past releases, a separate program `inimf' was installed -to invoke the initial form, but this is no longer the case. - - For a list of options and other information, see *note mf -invocation::. - - The only memory dump file commonly used with Metafont is the default -`plain.base', also known as `mf.base' (again, *note Memory dumps::). -It is created by default during installation, but you can also do so by -hand if necessary (e.g., if a Metafont update is issued): - mf -ini '\input plain; input modes; dump' - (The quotes prevent interpretation of the backslashes from the -shell.) Then install the resulting `plain.base' in `$(basedir)' -(`/usr/local/share/texmf/web2c' by default), and link `mf.base' to it. - - For an explanation of the additional `modes.mf' file, see *note -Modes::. This file has no counterpart in TeX or MetaPost. - - In the past, it was sometimes useful to create a base file -`cmmf.base' (a.k.a. `cm.base'), with the Computer Modern macros also -included in the base file. Nowadays, however, the additional time -required to read `cmbase.mf' is exceedingly small, usually not enough -to be worth the administrative hassle of updating the `cmmf.base' file -when you install a new version of `modes.mf'. People actually working -on a typeface may still find it worthwhile to create their own base -file, of course. - - -File: web2c.info, Node: Modes, Next: Online Metafont graphics, Prev: Initial Metafont, Up: Metafont - -5.3 Modes: Device definitions for Metafont -========================================== - -Running Metafont and creating Metafont base files requires information -that TeX and MetaPost do not: "mode" definitions which specify device -characteristics, so Metafont can properly rasterize the shapes. - - When making a base file, a file containing modes for -locally-available devices should be input after `plain.mf'. One -commonly used file is `ftp://ftp.tug.org/tex/modes.mf'; it includes all -known definitions. - - If, however, for some reason you have decreased the memory available -in your Metafont, you may need to copy `modes.mf' and remove the -definitions irrelevant to you (probably most of them) instead of using -it directly. (Or, if you're a Metafont hacker, maybe you can suggest a -way to redefine `mode_def' and/or `mode_setup'; right now, the amount -of memory used is approximately four times the total length of the -`mode_def' names, and that's a lot.) - - If you have a device not included in `modes.mf', please see comments -in that file for how to create the new definition, and please send the -definition to <tex-fonts@mail.tug.org> to get it included in the next -release of `modes.mf'. - - Usually, when you run Metafont you must supply the name of a mode -that was dumped in the base file. But you can also define the mode -characteristics dynamically, by invoking Metafont with an assignment to -`smode' instead of `mode', like this: - mf '\smode:="newmode.mf"; mag:=MAGNIFICATION; input MFNAME' - This is most useful when you are working on the definition of a new -mode. - - The MAGNIFICATION and MFNAME arguments are explained in *note mf -invocation::. In the file `newmode.mf', you should have the following -(with no `mode_def' or `enddef'), if you are using `modes.mf' -conventions: - mode_param (pixels_per_inch, DPI); - mode_param (blacker, B); - mode_param (fillin, F); - mode_param (o_correction, O); - mode_common_setup_; - (Of course, you should use real numbers for DPI, B, F, and O.) - - For more information on the use of `smode', or if you are not using -`modes.mf', see page 269 of `The Metafontbook'. - - -File: web2c.info, Node: Online Metafont graphics, Next: gftodvi invocation, Prev: Modes, Up: Metafont - -5.4 Online Metafont graphics -============================ - -The Web2c implementation of Metafont can do online graphics with a -number of devices. (See the Metafont manual for more information about -how to draw on your screen.) By default, no graphics support is -enabled. - - Metafont examines the `MFTERM' environment variable or config file -value at runtime, or the `TERM' environment variable if `MFTERM' is not -set, to determine the device support to use. Naturally, only the -devices for which support has been compiled in can be selected. - - Here is a table of the possibilities, showing the `MFTERM' value and -the corresponding `configure' option(s) in parentheses. - -`epsf' - (`--with-epsfwin') Pseudo-window server for Encapsulated - PostScript (see `web2c/window/epsf.c'). This device produces an - EPS file containing the graphics which would be displayed online on - other devices. The name of the EPS file defaults to metafont.eps - but can be changed by setting the MFEPSF environment variable to - the new filename. Contributed by Mathias Herberts. - -`hp2627' - (`--with-hp2627win') HP2627a color graphics terminals. - -`mftalk' - (`--with-mftalkwin') Generic window server (see - `web2c/window/mftalk.c'). - -`next' - (`--with-next') NeXT window system. This requires a separate - program, called `DrawingServant', available separately. See the - `web2c/window/next.c'. - -`regis' - (`--with-regiswin') Regis terminals. - -`sun' - (`--with-suntoolswin') The old Suntools (not any flavor of X) - window system. (You can get the even older SunWindows `gfx' system - by using `sun-gfx.c'.) - -`tek' - (`--with-tektronixwin') Tektronix terminals. - -`uniterm' - (`--with-unitermwin') Uniterm, Simon Poole's emulator of a smart - Tektronix 4014 terminal. This may work with regular Tektronix - terminals as well; it's faster than the driver `--with-tek' - selects. - -`xterm' - (`--with-x11win', `--with-x', `--with-x11') The X window system - (version 11). - - There are two variants of the X11 support, one that works with the - Xt toolkit, and another that works directly with Xlib. The Xt - support is more efficient and has more functionality, so it is the - default. If you must use the Xlib support, use `configure --with-x - --with-x-toolkit=no'. - - You cannot specify any of the usual X options (e.g., `-geometry') - on the Metafont command line, but you can specify X resources in - your `~/.Xdefaults' or `~/.Xresources' file. The class name is - `Metafont'. If you're using the Xt support, all the usual X toolkit - resources are supported. If you're using the Xlib support, only - the `geometry' resource is supported. - - You specify the X display to which Metafont connects in the - `DISPLAY' environment variable, as usual. - - - Writing support for a new device is straightforward. Aside from -defining the basic drawing routines that Metafont uses (see `mf.web'), -you only have to add another entry to the tables on the last page of -`web2c/lib/texmfmp.c'. Or you can write an independent program and use -MFtalk (see `web2c/window/mftalk.c'). - - -File: web2c.info, Node: gftodvi invocation, Next: mft invocation, Prev: Online Metafont graphics, Up: Metafont - -5.5 GFtoDVI: Character proofs of fonts -====================================== - -GFtoDVI makes "proof sheets" from a GF bitmap file as output by, for -example, Metafont (*note Metafont::). This is an indispensable aid for -font designers or Metafont hackers. Synopsis: - - gftodvi [OPTION]... GFNAME[gf] - - The font GFNAME is searched for in the usual places (*note Glyph -lookup: (kpathsea)Glyph lookup.). To see all the relevant paths, set -the environment variable `KPATHSEA_DEBUG' to `-1' before running the -program. - - The suffix `gf' is supplied if not already present. This suffix is -not an extension, no `.' precedes it; for instance, `cmr10.600gf'. - - The output filename is the basename of GFNAME extended with `.dvi', -e.g., `gftodvi /wherever/foo.600gf' creates `./foo.dvi'. - - The characters from GFNAME appear one per page in the DVI output, -with labels, titles, and annotations, as specified in Appendix H -(Hardcopy Proofs) of `The Metafontbook'. - - GFtoDVI uses several fonts besides GFNAME itself: - - * "gray font" (default `gray'): for the pixels that actually make up - the character. Simply using black is not right, since then labels, - key points, and other information could not be shown. - - * "title font" (default `cmr8'): for the header information at the - top of each output page. - - * "label font" (default `cmtt10'): for the labels on key points of - the figure. - - * "slant font" (no default): for diagonal lines, which are otherwise - simulated using horizontal and vertical rules. - - To change the default fonts, you must use `special' commands in your -Metafont source file, typically via commands like `slantfont slantlj4'. -There is no default slant font since no one printer is suitable as a -default. You can make your own by copying one of the existing files, -such as `.../fonts/source/public/misc/slantlj4.mf' and then running -`mf' on it. - - For testing purposes, you may it useful to run `mf rtest' (hit -RETURN when it stops) to get a `gf' file of a thorn glyph. Or use -`mfw' instead of `mf' to have the glyph(s) displayed on the screen. -After that, `gftodvi rtest.2602gf' should produce `rtest.dvi', which -you process as usual. - - The program accepts the following option, as well as the standard -`-verbose', `-help', and `-version' (*note Common options::): - -`-overflow-label-offset=POINTS' - Typeset the so-called overflow labels, if any, POINTS TeX points - from the right edge of the character bounding box. The default is - a little over two inches (ten million scaled points, to be - precise). Overflow equations are used to locate coordinates when - their actual position is too crowded with other information. - - -File: web2c.info, Node: mft invocation, Prev: gftodvi invocation, Up: Metafont - -5.6 MFT: Prettyprinting Metafont source -======================================= - -MFT translates a Metafont program into a TeX document suitable for -typesetting, with the aid of TeX macros defined in the file -`mftmac.tex'. Synopsis: - - mft [OPTION]... MFNAME[.mf] - - MFT searches the usual places for MFNAME (*note Supported file -formats: (kpathsea)Supported file formats.). To see all the relevant -paths, set the environment variable `KPATHSEA_DEBUG' to `-1' before -running the program. The output goes to the basename of MFNAME extended -with `.tex', e.g., `mft /wherever/foo.mf' creates `./foo.tex'. - - Line breaks in the input are carried over into the output; moreover, -blank spaces at the beginning of a line are converted to quads of -indentation in the output. Thus, you have full control over the -indentation and line breaks. Each line of input is translated -independently of the others. - - Further control is allowed via Metafont comments: - * Metafont comments following a single `%' should be valid TeX - input. But Metafont material can be included within vertical bars - in a comment; this will be translated by MFT as if it were regular - Metafont code. For example, a comment like `% |x2r| is the tip of - the bowl' will be translated into the TeX `% $x_{2r}$ is the ...', - i.e., the `x2r' is treated as an identifier. - - * `%%' indicates that the remainder of an input line should be copied - verbatim to the output. This is typically used to introduce - additional TeX material at the beginning or an MFT job, e.g. code - to modify the standard layout or the formatting macros defined in - `mftmac.tex', or to add a line saying `%%\bye' at the end of the - job. (MFT doesn't add this automatically in order to allow - processing several files produces by MFT in the same TeX job.) - - * `%%% TOKEN1 OTHER-TOKENS' introduces a change in MFT's formatting - rules; all the OTHER-TOKENS will henceforth be translated - according to the current conventions for TOKEN1. The tokens must - be symbolic (i.e., not numeric or string tokens). For example, the - input line - %%% addto fill draw filldraw - says to format the `fill', `draw', and `filldraw' operations of - plain Metafont just like the primitive token `addto', i.e., in - boldface type. Without such reformatting commands, MFT would - treat `fill' like an ordinary tag or variable name. In fact, you - need a `%%%' command even to get parentheses to act like - delimiters. - - * `%%%%' introduces an MFT comment, i.e., MFT ignores the remainder - of such a line. - - * Five or more `%' signs should not be used. - - (The above description was edited from `mft.web', written by -D.E. Knuth.) - - The program accepts the following options, as well as the standard -`-help' and `-version' (*note Common options::): -`-change=CHFILE[.ch]' - Apply the change file CHFILE as with Tangle and Weave (*note - WEB::). - -`-style=MFTFILE[.mft]' - Read MFTFILE before anything else; a MFT style file typically - contains only MFT directives as described above. The default - style file is named `plain.mft', which defines this properly for - programs using plain Metafont. The MFT files is searched along the - `MFTINPUTS' path; see *note Supported file formats: - (kpathsea)Supported file formats. - - Other examples of MFT style files are `cmbase.mft', which defines - formatting rules for the macros defined in `cm.base', and `e.mft', - which was used in the production of Knuth's Volume E, `Computer - Modern Typefaces'. - - Using an appropriate MFT style file, it is also possible to - configure MFT for typesetting MetaPost sources. However, MFT does - not search the usual places for MetaPost input files. - - If you use eight-bit characters in the input file, they are passed -on verbatim to the TeX output file; it is up to you to configure TeX to -print these properly. - - -File: web2c.info, Node: MetaPost, Next: BibTeX, Prev: Metafont, Up: Top - -6 MetaPost: Creating technical illustrations -******************************************** - -MetaPost is a picture-drawing language similar to Metafont (*note -Metafont::), but instead of outputting bitmaps in a "font", it outputs -PostScript commands. It's primarily intended for creating technical -illustrations. - - MetaPost also provides for arbitrary integration of text and -graphics in a natural way, using any typesetter (TeX and Troff are both -supported) and a number of other subsidiary programs, described below. - -* Menu: - -* mpost invocation:: Invoking MetaPost. -* Initial MetaPost:: Making mems. -* makempx invocation:: Create MPX files for labels. -* dvitomp invocation:: DVI-to-MPX translation. -* dmp invocation:: Ditroff-to-MPX translation. -* mpto invocation:: Extracting labels from MetaPost programs. -* newer invocation:: Is one file newer than another? - - -File: web2c.info, Node: mpost invocation, Next: Initial MetaPost, Up: MetaPost - -6.1 `mpost' invocation -====================== - -MetaPost (installed as `mpost') reads a series of pictures specified in -the MetaPost programming language, and outputs corresponding PostScript -code. This section merely describes the options available in the Web2c -implementation. For a complete description of the MetaPost language, -see AT&T technical report CSTR-162, generally available in -`TEXMF/doc/metapost/', where TEXMF is the root of TeX directory -structure. See also: - * `http://cm.bell-labs.com/who/hobby/MetaPost.html' (the - MetaPost author's home page); - - * `http://tug.org/metapost.html' (papers, packages, and - related information). - - Also, a standard MetaPost package for drawing graphs is documented in -AT&T technical report CSTR-164, available as the file `mpgraph.ps', -generally stored alongside `mpman.ps'. - - MetaPost processes its command line and determines its memory dump -(mem) file in a way exactly analogous to Metafont and TeX (*note `tex' -invocation: tex invocation, and *note Memory dumps::). Synopses: - - mpost [OPTION]... [MPNAME[.mp]] [MP-COMMANDS] - mpost [OPTION]... \FIRST-LINE - mpost [OPTION]... &MEM ARGS - - MetaPost searches the usual places for the main input file MPNAME -(*note Supported file formats: (kpathsea)Supported file formats.), -extending MPNAME with `.mp' if necessary. To see all the relevant -paths, set the environment variable `KPATHSEA_DEBUG' to `-1' before -running the program. - - MetaPost writes its PostScript output to a series of files -`BASEMPNAME.NNN' (or perhaps `BASEMPNAME.ps', very occasionally -`BASEMPNAME.tfm'), where NNN are the figure numbers specified in the -input, typically to the `beginfig' macro, and BASEMPNAME is the -basename of MPNAME, or `mpout' if no input file was specified. -MetaPost uses the `.ps' extension when the figure number is out of -range, e.g., if you say `beginfig(-1)'. - - You can use the output files as figures in a TeX document just as -with any other PostScript figures. For example, with this TeX command: - \special{psfile="FILENAME"} - or by using `epsf.tex' (*note EPSF macros: (dvips)EPSF macros.). - - The MetaPost construct - btex ... TEX-INPUT ... etex - calls MakeMPX to generate a MPX file containing a MetaPost picture -expression corresponding to TEX-INPUT (*note makempx invocation::). - - The construct - verbatimtex ... TEX-INPUT ... etex - simply passes the TEX-INPUT through to MakeMPX and thus to TeX. For -example, if you are using LaTeX, your MetaPost input file must start -with a `verbatimtex' block that gives the necessary `\documentclass' -(or `\documentstyle') `\begin{document}' command. You will also need -to set the enviroment variable `TEX' to `latex' (*note makempx -invocation::). - - TEX-INPUT need not be specifically TeX input; it could also be -Troff. In that case, you will need the `-m pictures' Troff macro -package (unfortunately absent from many Troff implementations), or an -equivalent such as the `-m pspic' macros from GNU groff described in -grops(1). - - Other typesetters can be supported with no change to MetaPost itself; -only MakeMPX needs to be updated. - - Naturally, you must use fonts that are supported by the typesetter; -specifically, you'll probably want to use standard PostScript fonts with -Troff. And only the TeX system understands Computer Modern or other -Metafont fonts; you can also use PostScript fonts with TeX, of course. - - MetaPost-generated PostScript figures which do use Computer Modern -fonts for labels cannot be directly previewed or printed. Instead, you -must include them in a TeX document and run the resulting DVI file -through Dvips to arrange for the downloading of the required fonts -(*note Fonts in figures: (dvips)Fonts in figures.). To help with this, -the MetaPost distribution provides a small TeX file `mproof.tex' which -is typically called as: - tex mproof MP-OUTPUT-FILES... ; dvips mproof -o - The resulting file `mproof.ps' can then be printed or previewed. - - To generate EPSF files, set the internal MetaPost variable -`prologues' positive. To make the output files self-contained, use -only standard PostScript fonts. MetaPost reads the same `psfonts.map' -file as Dvips, to determine PostScript fonts that need to be downloaded -(*note psfonts.map: (dvips)psfonts.map.). - - MetaPost can write output files, via the `write' primitive; this -opens a security hole. *Note tex invocation::. - - The program accepts the following options, as well as the standard -`-help' and `-version' (*note Common options::): -`-[no]-file-line-error' -`-fmt=FMTNAME' -`-halt-on-error' -`-ini' -`-interaction=STRING' -`-jobname=STRING' -`-kpathsea-debug=NUMBER' -`-[no]parse-first-line' -`-output-directory' -`-progname=STRING' -`-recorder' -`-translate-file=TCXFILE' -`-8bit' - These options are common to TeX, Metafont, and MetaPost. *Note - Common options::. - -`-T' -`-troff' - Set the `prologues' internal variable to `1', and use `makempx - -troff' to generate MPX files. - -`-tex=TEXPROGRAM' - When this option is given, the program TEXPROGRAM is used to - typeset the labels. - - - -File: web2c.info, Node: Initial MetaPost, Next: makempx invocation, Prev: mpost invocation, Up: MetaPost - -6.2 Initial MetaPost -==================== - -`inimpost' is the "initial" form of MetaPost, which does lengthy -initializations avoided by the "virgin" (`vir') form, so as to be -capable of dumping `.mem' files (*note Memory dumps::). For a detailed -comparison of virgin and initial forms, see *note Initial and virgin::. -In past releases, a separate program `inimpost' was installed for the -initial form, but this is no longer the case. - - For a list of options and other information, see *note mpost -invocation::. - - The principal memory dump file used with MetaPost is the default, -`plain.mem', also known as `mpost.mem' (again, *note Memory dumps::). -It is created by default during installation, but you can also do so by -hand if necessary (e.g., if a `plain.mp' update is issued): - mpost -ini '\input plain dump' - (The quotes prevent interpretation of the backslashes from the -shell.) Then install the resulting `plain.mem' in `$(memdir)' -(`/usr/local/share/texmf/web2c' by default), and link `mpost.mem' to it. - - MetaPost also provides a mem file with all the features of plain -Metafont, called `mfplain.mem'. You can create that in the same way; -just replace `plain' in the above command with `mfplain'. -`mfplain.mem' file lets you directly process Metafont source files with -MetaPost, producing character proofs (one file for each character) -similar to those produced with Metafont in proof mode and GFtoDVI -(*note gftodvi invocation::). - - Another MetaPost mem file, named MetaFun, provides many advanced -features. It was developed and maintained by Pragma ADE. The home -page for MetaFun, other MetaPost-related things, and lots more from -Pragma: `http://www.pragma-ade.com/'. - - -File: web2c.info, Node: makempx invocation, Next: dvitomp invocation, Prev: Initial MetaPost, Up: MetaPost - -6.3 MakeMPX: Support MetaPost labels -==================================== - -In MetaPost, labels can be typeset using any document processor; the -Web2c implementation supports TeX and Troff. MakeMPX translates the -labels from the typesetting language back into low-level MetaPost -commands in a so-called "mpx file", so text can be manipulated like -other graphic objects. It is invoked automatically by MetaPost. -Synopsis: - - makempx [-troff] MPFILE MPXFILE - -The input comes from MPFILE (no path searching is done), and the output -goes to MPXFILE. However, if the file MPXFILE already exists, and is -newer than MPFILE, then nothing is done (presumably the file is -up-to-date). - - Otherwise: - 1. MPto is run to extract the label text from the MetaPost source - file MPFILE (*note mpto invocation::). - - 2. The typesetting program itself is run, either TeX or Troff (see - below). If TeX, and the file named by the `MPTEXPRE' environment - variable exists (`mptexpre.tex' by default), that file is - prepended to the input from the MetaPost file. - - 3. The typesetter output (a DVI file in the case of TeX, Ditroff - output for Troff) is translated back to MetaPost, by DVItoMP - (*note dvitomp invocation::) or DMP (*note dmp invocation::) - respectively. - - If any of the above steps fail, for example if there was a -typesetting mistake in the original MPFILE, output may be left in files -named `mpxerr.{log,tex,dvi}' (TeX) or `mpxerr{,.t}' (Troff), so you can -diagnose the problem. - - The `-troff' option to MPto selects the Troff commands, rather than -TeX. MetaPost supplies this automatically if the `-T' or `-troff' -option was specified to MetaPost. - - The MPX file created by MakeMPX is a sequence of MetaPost picture -expressions, one for every label in the original MetaPost input file. - - The names of the commands run by MakeMPX, and the directory added to -the shell search `PATH' for the commands' location, are overridden by -environment variables. Here is a list: - -`MAKEMPX_BINDIR' - The directory added to the `PATH'. Default is the `$(bindir)' - Make directory, which in turn is set from the configure-time - `--bindir', `--exec-prefix' and `--prefix' options; if nothing - else is specified, the default is file `/usr/local'. - -`NEWER' - The command run to determine if MPXFILE is out of date with respect - to MPFILE; default is `newer'. - -`MPTOTEX' - The command run to extract MetaPost labels in TeX format; default - is `mpto -tex'. - -`MPTOTR' - Likewise, for Troff; default is `mpto -troff'. - -`DVITOMP' - The command run to convert TeX output back to MetaPost; default is - `dvitomp'. - -`DMP' - Likewise, for Troff; default is `dmp'. - -`TEX' - The command run to typeset the labels in TeX; the default is - `etex', set in `texmf.cnf'. If you use LaTeX, set this to - `latex', and supply an appropriate `verbatimtex' header in the MP - source (*note mpost invocation::). Or put `%&latex' as the first - line of your LaTeX source. - -`TROFF' - Likewise, for Troff; default is `'eqn -d\$\$ | troff -Tpost''. You - may need to replace `-Tpost' by `-TTERM', where TERM is the - PostScript device name for your Troff implementation, e.g., `ps' - or `psc'; see troff(1). - - If you change this, you will also need to set the `TRFONTS' - environment variable or configuration value to point to the - appropriate font directory, traditionally `/usr/lib/font/devTERM'. - - One more complication is whether the troff programs have a `g' - prefix. On Windows, TeX Live supports both ways: `makempx.exe' is - built to use `gsoelim.exe', `geqn.exe', and `gtroff.exe', while - `makempx-without-g-prefix.exe' is built to use `soelim.exe', - `eqn.exe', and `troff.exe'. MetaPost users on Windows using troff - for their labels should arrange to run the proper binary. - - - -File: web2c.info, Node: dvitomp invocation, Next: dmp invocation, Prev: makempx invocation, Up: MetaPost - -6.4 DVItoMP: DVI to MPX conversion -================================== - -DVItoMP converts DVI files into low-level MetaPost commands in a -so-called MPX file. This program is generally invoked only by MakeMPX -(*note makempx invocation::). Synopsis: - - dvitomp DVIFILE[.dvi] [MPXFILE[.mpx]] - -If MPXFILE is not specified, the output goes to the basename of DVIFILE -extended with `.mpx', e.g., `dvitomp /wherever/foo.dvi' creates -`./foo.mpx'. - - DVItoMP supports Dvips-style color specials, such as `color push -NAME' and `color pop', outputting them as `withcolor' MetaPost commands. - - The only options are `-help' and `-version' (*note Common options::). - - -File: web2c.info, Node: dmp invocation, Next: mpto invocation, Prev: dvitomp invocation, Up: MetaPost - -6.5 DMP: Ditroff to MPX conversion -================================== - -DMP converts device-independent Troff (ditroff) output files into -low-level MetaPost commands in a so-called MPX file. This program is -generally invoked by MakeMPX (*note makempx invocation::). Synopsis: - - dmp [DITROFF-FILE [MPXFILE]] - -If DITROFF-FILE is not specified, input comes from standard input; and -if MPXFILE is not specified, output goes to standard output. - - DMP was written to process the output of a Troff pipeline fed the -output of `mpto -troff' (*note mpto invocation::). DMP understands all -the `DC' graphics functions that `dpost' does, but it ignores `x X' -device control functions such as `x X SetColor:...', `x X BeginPath:', -and `x X DrawPath:...'. - - The available font names are defined in the support file -`trfonts.map', which DMP looks for along the `MPSUPPORT' path. - - Another support file `trchars.adj', also looked for along the -`MPSUPPORT' path, contains a character adjustment table which should -reflect the shift amounts found in the standard PostScript prologue for -Troff and dpost found in the `TRFONTS' directory. Such an adjustment -table is unnecessary for some Troff implementations, in which case -`trchars.adj' should be replaced by an empty file--but it must still -exist. - - DMP was written for one particular Troff implementation, and it -unfortunately has many built-in assumptions about the output and fonts -file formats used by Troff, which may not be satisfied in other -environments. In particular, GNU groff uses some extensions in its file -formats described in groff_font(5) and groff_out(5) which make its -output completely unusable for DMP. On the other hand, the Troff -version found in Sun Solaris 2.x, and perhaps other systems derived from -System V R4, works fine with the default settings. - - If you run into trouble and want to adapt DMP to other systems, you -might have to try the following (this is primarily for hackers): - - * If DMP complains about a missing font table (e.g., `Cannot find - TR'), your Troff may not support the device `post'. - - Check troff(1) for the devices supported by your Troff and set the - `TROFF' environment variable appropriately (see above). Also, - locate the appropriate font directory and set the `TRFONTS' - variable as needed. - - * If DMP complains about a missing font description file (e.g., `Font - TR was not in map file'), your version of Troff may be using - internal font names different from those in the distributed - `trfonts.map'; e.g., TR and TI instead of R and I for Times-Roman - and Times-Italic. - - In this case, you may have to adapt `trfonts.map' and perhaps also - `trchars.adj' in the MetaPost support directory - (`texmf/metapost/support' by default). - - * If DMP still complains that it cannot parse the font description - files or the Troff output (e.g., `TR has a bad line in its - description file', you are probably out of luck and have to hack - the DMP program (in `web2c/mpware/dmp.c'). - - Such problems may be caused by subtle differences in the file - formats, such as use of tabs vs. spaces as field separators or - decimal vs. octal vs. hex format for font metric data. - - A reasonably good description of the expected Troff file formats - can be found in AT&T technical report CSTR-54 (`Troff User's - Manual', Revised 1992). Documentation on the subtle differences - in other Troff implementation is harder to find except for GNU - groff, where it's all documented in the above-mentioned - groff_font(5) and groff_out(5). - - Any contributions to improve the portability of DMP or to make it - work with GNU groff are welcome, of course. - - - (Some of the above description was edited from the `dmp.c' source -file, written by John Hobby.) - - The only options are `--help' and `--version' (*note Common -options::). - - -File: web2c.info, Node: mpto invocation, Next: newer invocation, Prev: dmp invocation, Up: MetaPost - -6.6 MPto: Extract labels from MetaPost input -============================================ - -MPto extracts the labels from a MetaPost input file; this is the -contents of any `btex...etex' and `verbatimtex...etex' sections. This -program is generally invoked by MakeMPX (*note makempx invocation::). -Synopsis: - - mpto [OPTION]... MPFILE - -The input comes from MPFILE; no path searching is done. The output -goes to standard output. Leading and trailing spaces and tabs are -removed, and various predefined typesetter commands are included at the -beginning of and end of the file and of each section. - - The program accepts the following options, as well as the standard -`-help' and `-version' (*note Common options::): -`-troff' - Surround the MetaPost sections with Troff commands. - -`-tex' - Surround the MetaPost sections with TeX commands. This is the - default. - - -File: web2c.info, Node: newer invocation, Prev: mpto invocation, Up: MetaPost - -6.7 Newer: Compare file modification times -========================================== - -Newer compares file modification times. Synopsis: - - newer SRC1 [ SRC2 ... SRCN ] TARGET - -Newer exits successfully if the files SRC1 ... SRCN exist and at least -one of them is not older than DEPENDENT, i.e., the modification time -(mtime) of at least one of the source files is greater than or the same -as that of DEPENDENT. Newer also exits successfully if the file -DEPENDENT doesn't exist. *Note Attribute Meanings: (libc)Attribute -Meanings. - - The program accepts the following option, as well as the standard -`--help' and `--version' (*note Common options::): -`--quiet' - Return result only, do not print any output. - -`--verbose' - List missing source files to STDERR. This is the default. - - This is used by MakeMPX (*note makempx invocation::). - - -File: web2c.info, Node: BibTeX, Next: WEB, Prev: MetaPost, Up: Top - -7 BibTeX: Bibliographies -************************ - -BibTeX automates much of the job of typesetting bibliographies, and -makes bibliography entries reusable in many different contexts. - -* Menu: - -* bibtex invocation:: -* Basic BibTeX style files:: The standard and semi-standard styles. - - -File: web2c.info, Node: bibtex invocation, Next: Basic BibTeX style files, Up: BibTeX - -7.1 BibTeX invocation -===================== - -BibTeX creates a printable bibliography (`.bbl') file from references -in a `.aux' file, generally written by TeX or LaTeX. The `.bbl' file -is then incorporated on a subsequent run. The basic bibliographic -information comes from `.bib' files, and a BibTeX style (`.bst') file -controls the precise contents of the `.bbl' file. Synopsis: - - bibtex [OPTION]... AUXFILE[.aux] - -The output goes to the basename of AUXFILE extended with `.bbl'; for -example, `bibtex /wherever/foo.aux' creates `./foo.bbl'. BibTeX also -writes a log file to the basename of AUXFILE extended with `.blg'. - - The names of the `.bib' and `.bst' files are specified in the `.aux' -file as well, via the `\bibliography' and `\bibliographystyle' (La)TeX -macros. BibTeX searches for `.bib' files using the `BIBINPUTS' and -`TEXBIB' paths, and for `.bst' files using `BSTINPUTS' (*note Supported -file formats: (kpathsea)Supported file formats.). It does no path -searching for `.aux' files. - - The program accepts the following options, as well as the standard -`-help' and `-version' (*note Common options::): -`-terse' - Suppress the program banner and progress reports normally output. - -`-min-crossrefs=N' - If at least N (2 by default) bibliography entries refer to another - entry E via their `crossref' field, include E in the .bbl file, - even if it was not explicitly referenced in the .aux file. For - example, E might be a conference proceedings as a whole, with the - cross-referencing entries being individual articles published in - the proceedings. In some circumstances, you may want to avoid - these automatic inclusions altogether; to do this, make N a - sufficiently large number. - - See also: -`btxdoc.tex' - Basic LaTeXable documentation for general BibTeX users. - -`btxhak.tex' - LaTeXable documentation for style designers. - -`btxdoc.bib' - BibTeX database file for the two above documents. - -`xampl.bib' - Example database file with all the standard entry types. - -``ftp://ftp.math.utah.edu/pub/tex/bib/'' - A very large `.bib' and `.bst' collection, including references - for all the standard TeX books and a complete bibliography for - TUGboat. - - -File: web2c.info, Node: Basic BibTeX style files, Prev: bibtex invocation, Up: BibTeX - -7.2 Basic BibTeX style files -============================ - -Here are descriptions of the four standard and four semi-standard basic -BibTeX styles. `CTAN:/biblio/bibtex' contains these and many more (for -CTAN info, *note unixtex.ftp: (kpathsea)unixtex.ftp.). - -`plain' - Sorts entries alphabetically, with numeric labels. Generally - formatted according to van Leunen's `A Handbook for Scholars'. - The other style files listed here are based on `plain'. - -`abbrv' - First names, month names, and journal names are abbreviated. - -`acm' - Names are printed in small caps. - -`alpha' - Alphanumeric labels, e.g., `Knu66'. - -`apalike' - No labels at all; instead, the year appears in parentheses after - the author. Use this in conjunction with `apalike.tex' (plain - TeX) or `apalike.sty' (LaTeX), which also changes the citations in - the text to be `(AUTHOR, YEAR)'. - -`ieeetr' - Numeric labels, entries in citation order, IEEE abbreviations, - article titles in quotes. - -`siam' - Numeric labels, alphabetic order, `Math. Reviews' abbreviations, - names in small caps. - -`unsrt' - Lists entries in citation order, i.e., unsorted. - -`btxbst.doc' - The template file and documentation for the standard styles. - - - -File: web2c.info, Node: WEB, Next: DVI utilities, Prev: BibTeX, Up: Top - -8 WEB: Literate programming -*************************** - -"WEB" languages allow you to write a single source file that can -produce both a compilable program and a well-formatted document -describing the program in as much detail as you wish to prepare. -Writing in this kind of dual-purpose language is called "literate -programming". (The Usenet newsgroup `comp.programming.literate' and -the mailing list <litprog@shsu.edu> are devoted to this subject; they -are gatewayed to each other.) - - WEB-like languages have been implemented with many pairs of base -languages: Cweb provides C and Troff (*note References::); CWEB provides -C and TeX (`CTAN:/web/c_cpp/cweb'); Spiderweb provides C, C++, Awk, -Ada, many others, and TeX (`CTAN:/web/spiderweb'); and, of course, the -original WEB provides Pascal and TeX, the implementation languages for -the original TeX, Metafont, MetaPost, and related programs to come from -the TeX project at Stanford. - - The original WEB language is documented in the file `webman.tex', -which is included in the `ftp://ftp.tug.org/tex/lib.tar.gz' archive -(and available in many other places, of course). - -* Menu: - -* tangle invocation:: -* weave invocation:: -* pooltype invocation:: - - -File: web2c.info, Node: tangle invocation, Next: weave invocation, Up: WEB - -8.1 Tangle: Translate WEB to Pascal -=================================== - -Tangle creates a compilable Pascal program from a WEB source file -(*note WEB::). Synopsis: - - tangle [OPTION]... WEBFILE[.web] [CHANGEFILE[.ch]] - -The Pascal output is written to the basename of WEBFILE extended with -`.p'; for example, `tangle /wherever/foo.web' creates `./foo.p'. -Tangle applies CHANGEFILE to WEBFILE before writing the output; by -default, there is no change file. - - If the program makes use of the WEB string facility, Tangle writes -the string pool to the basename of WEBFILE extended with `.pool'. - - The Pascal output is packed into lines of 72 characters or less, with -the only concession to readability being the termination of lines at -semicolons when this can be done conveniently. - - The program accepts the following options, as well as the standard -`--help' and `--version' (*note Common options::): - -`-length=NUMBER' - The number of characters that are considered significant in an - identifier. Whether underline characters are counted depends on - the `-underline' option. The default value is 32, the original - tangle used 7, but this proved too restrictive for use by Web2c. - -`-lowercase' -`-mixedcase' -`-uppercase' - These options specify the case of identifiers in the output of - tangle. If `-uppercase' (`-lowercase') is specified, tangle will - convert all identfiers to uppercase (lowercase). The default is - `-mixedcase', which specifies that the case will not be changed. - -`-underline' - When this option is given, tangle does not strip underline - characters from identifiers. - -`-loose' -`-strict' - These options specify how strict tangle must be when checking - identifiers for equality. The default is `-loose', which means - that tangle will follow the rules set by the case-smashing and - underline options above. If `-strict' is set, then identifiers - will always be stripped of underlines and converted to uppercase - before checking whether they collide. - - - -File: web2c.info, Node: weave invocation, Next: pooltype invocation, Prev: tangle invocation, Up: WEB - -8.2 Weave: Translate WEB to TeX -=============================== - -Weave creates a TeX document from a WEB source file (*note WEB::), -assuming various macros defined in `webmac.tex'. It takes care of -typographic details such as page layout, indentation, and italicizing -identifiers. It also automatically gathers and outputs extensive -cross-reference information. Synopsis: - - weave [OPTION]... WEBFILE[.web] [CHANGEFILE[.ch]] - -The output is to the basename of WEBFILE extended with `.tex'; for -example, `weave /wherever/foo.web' creates `./foo.tex'. Weave applies -CHANGEFILE to WEBFILE before writing the output; by default, there is -no change file. - - The program accepts the following option, as well as the standard -`-verbose', `-help' and `-version' (*note Common options::): -`-x' - Omit the cross-reference information: the index, the list of WEB - module names, and the table of contents (an empty `CONTENTS.tex' - file will still be written when the Weave output file is processed - by TeX using the default `webmac.tex', though). - - Conventionally, WEB programmers should define the TeX `\title' macro -at the beginning of the source file. Also, to get output of only -changed modules, one can say `\let\maybe=\iffalse' (usually as the -first change in the change file). - - -File: web2c.info, Node: pooltype invocation, Prev: weave invocation, Up: WEB - -8.3 Pooltype: Display WEB pool files -==================================== - -Pooltype shows the so-called "string number" of each string in a WEB -pool file (*note WEB::), as output by Tangle (*note tangle -invocation::), including the first 256 strings corresponding to the -possible input characters. Pooltype primarily serves as an example of -WEB conventions to implementors of the TeX system. Synopsis: - - pooltype [OPTION]... POOLFILE[.pool] - -No path searching is done for POOLFILE. Output is to standard output. - - The only options are `--help' and `--version' (*note Common -options::). - - As an example of the output, here is the (edited) output for -`tex.pool': - 0: "^^@" - 1: "^^A" - ... - 255: "^^ff" - 256: "pool size" - ... - 1314: "Using character substitution: " - (23617 characters in all.) - - In Metafont and MetaPost, the first 256 characters are actually -represented as single bytes (i.e., themselves), not in the `^^' -notation. Consider Pooltype as showing the results after conversion for -output. - - -File: web2c.info, Node: DVI utilities, Next: Font utilities, Prev: WEB, Up: Top - -9 DVI utilities -*************** - -TeX outputs a file in "DVI" (DeVice Independent) format as a compact -representation of the original document. DVI files can be translated -to meet the requirements of a real physical device, such as PostScript -printers (*note Introduction: (dvips)Top.), PCL printers (see -dvilj(1)), and X displays (see xdvi(1)). In fact, DVI translators are -available for virtually all common devices: see `CTAN:/dviware' (for -CTAN info, *note unixtex.ftp: (kpathsea)unixtex.ftp.). - - For the precise definition of the DVI file format, see (for example) -the source file `web2c/dvitype.web'. - - The DVI-processing programs in the Web2c distribution are not device -drivers; they perform generic utility functions. - -* Menu: - -* dvicopy invocation:: Expand virtual fonts. -* dvitype invocation:: DVI to human-readable text. - - -File: web2c.info, Node: dvicopy invocation, Next: dvitype invocation, Up: DVI utilities - -9.1 DVIcopy: Canonicalize virtual font references -================================================= - -DVIcopy reads a DVI file, expands any references to virtual fonts -(*note Virtual fonts: (dvips)Virtual fonts.) to base fonts, and writes -the resulting DVI file. Thus you can use virtual fonts even if your DVI -processor does not support them, by passing the documents through -DVIcopy first. Synopsis: - - dvicopy [OPTION]... [INDVI[.dvi] [OUTDVI[.dvi]]] - - DVIcopy reads standard input if INDVI is not specified, and writes -standard output if OUTDVI is not specified. - - The program accepts the following options, as well as the standard -`-help' and `-version' (*note Common options::): -`-magnification=INTEGER' - Override existing magnification in INDVI with INTEGER; 1000 - specifies no magnification. This is equivalent to setting TeX's - `\mag' parameter. - -`-max-pages=N' - Process N pages; default is one million. - -`-page-start=PAGE-SPEC' - Start at the first page matching PAGE-SPEC, which is one or more - (signed) integers separated by periods, corresponding to TeX's - `\count0...9' parameters at `\shipout' time; `*' matches anything. - Examples: `3', `1.*.-4'. - - -File: web2c.info, Node: dvitype invocation, Prev: dvicopy invocation, Up: DVI utilities - -9.2 DVItype: Plain text transliteration of DVI files -==================================================== - -DVItype translates a DeVice Independent (DVI) file (as output by TeX, -for example) to a plain text file that humans can read. It also serves -as a DVI-validating program, i.e., if DVItype can read a file, it's -correct. Synopsis: - - dvitype [OPTION]... DVIFILE[.dvi] - -DVItype does not read any bitmap files, but it does read TFM files for -fonts referenced in DVIFILE. The usual places are searched (*note -Supported file formats: (kpathsea)Supported file formats.). To see all -the relevant paths, set the environment variable `KPATHSEA_DEBUG' to -`-1' before running the program. - - Output goes to standard output. - - The program accepts the following options, as well as the standard -`-help' and `-version' (*note Common options::): -`-dpi=REAL' - Do pixel movement calculations at REAL pixels per inch; default - 300.0. - -`-magnification=INTEGER' - Override existing magnification in INDVI with INTEGER; 1000 - specifies no magnification. This is equivalent to setting TeX's - `\mag' parameter. - -`-max-pages=N' - Process N pages; default is one million. - -`-output-level=N' - Verbosity level of output, from 0 to 4 (default 4): - * 0: Global document information only. - - * 1: Most DVI commands included, and typeset characters - summarized. - - * 2: Character and movement commands explicitly included. - - * 3: DVI stack and current position calculations included. - - * 4: Same information as level 3, but DVItype does random - positioning in the file, reading the DVI postamble first. - -`-page-start=PAGE-SPEC' - Start at the first page matching PAGE-SPEC, which is one or more - (signed) integers separated by periods, corresponding to TeX's - `\count0...9' parameters at `\shipout' time; `*' matches anything. - Examples: `1', `5.*.-9'. - -`-show-opcodes' - Show numeric opcode values (in decimal) for DVI commands, in braces - after the command name. This can help in debugging DVI utilities. - We use decimal because in the DVI format documentation (in - `dvitype.web', among others) the opcodes are shown in decimal. - -* Menu: - -* dvitype output example:: - - -File: web2c.info, Node: dvitype output example, Up: dvitype invocation - -9.2.1 DVItype output example ----------------------------- - -As an example of the output from DVItype (see section above), here is -its (abridged) translation of the `story.dvi' resulting from running -the example in `The TeXbook', with `-output-level=4' and -`-show-opcodes' on. - - ... - Options selected: - Starting page = * - Maximum number of pages = 1000000 - Output level = 4 (the works) - Resolution = 300.00000000 pixels per inch - numerator/denominator=25400000/473628672 - magnification=1000; 0.00006334 pixels per DVI unit - ' TeX output 1992.05.17:0844' - Postamble starts at byte 564. - maxv=43725786, maxh=30785863, maxstackdepth=3, totalpages=1 - Font 33: cmsl10---loaded at size 655360 DVI units - Font 23: cmbx10---loaded at size 655360 DVI units - Font 0: cmr10---loaded at size 655360 DVI units - - 42: beginning of page 1 - 87: push {141} - level 0:(h=0,v=0,w=0,x=0,y=0,z=0,hh=0,vv=0) - 88: down3 -917504 {159} v:=0-917504=-917504, vv:=-58 - 92: pop {142} - ... - 104: putrule {137} height 26214, width 30785863 (2x1950 pixels) - 113: down3 5185936 {159} v:=655360+5185936=5841296, vv:=370 - 117: push {141} - level 1:(h=0,v=5841296,w=0,x=0,y=0,z=0,hh=0,vv=370) - 118: right4 12265425 {146} h:=0+12265425=12265425, hh:=777 - [ ] - 123: fntdef1 23 {243}: cmbx10 - 145: fntnum23 {194} current font is cmbx10 - 146: setchar65 h:=12265425+569796=12835221, hh:=813 - 147: w3 251220 {150} h:=12835221+251220=13086441, hh:=829 - 151: setchar83 h:=13086441+418700=13505141, hh:=856 - ... - 164: setchar82 h:=17448202+565245=18013447, hh:=1142 - 165: x0 -62805 {152} h:=18013447-62805=17950642, hh:=1138 - 166: setchar89 h:=17950642+569796=18520438, hh:=1174 - [A SHORT STORY] - 167: pop {142} - level 1:(h=0,v=5841296,w=0,x=0,y=0,z=0,hh=0,vv=370) - ... - 550: pop {142} - level 0:(h=0,v=42152922,w=0,x=0,y=0,z=0,hh=0,vv=2670) - 551: down3 1572864 {159} v:=42152922+1572864=43725786, vv:=2770 - 555: push {141} - level 0:(h=0,v=43725786,w=0,x=0,y=0,z=0,hh=0,vv=2770) - 556: right4 15229091 {146} h:=0+15229091=15229091, hh:=965 - 561: setchar49 h:=15229091+327681=15556772, hh:=986 - [ 1] - 562: pop {142} - level 0:(h=0,v=43725786,w=0,x=0,y=0,z=0,hh=0,vv=2770) - 563: eop {140} - - Explanation: - - * The DVItype options are recorded at the beginning, followed by - global information about the document, including fonts used. - - * Each DVI command is preceded by its byte position in the file - (`42:', `87:', ...), and (because of the `-show-opcodes') followed - by its decimal opcode value in braces (`{141}', `{142}', ...). - - * The `level' lines record information about the DVI stack; `h' and - `v' define the current position in DVI units, while `hh' and `vv' - are the same in pixels. - - * Text sequences are summarized in brackets, as in `[A SHORT STORY]' - and the `[ 1]'. - - -File: web2c.info, Node: Font utilities, Next: Legalisms, Prev: DVI utilities, Up: Top - -10 Font utilities -***************** - -The Web2c programs described here convert between various TeX-related -font formats; the first section below briefly describes the formats. -GFtoPK is the only one that is routinely used, as Metafont outputs GF -format, but it's most efficient for device drivers to use PK. - - The precise definitions of the PK, GF, TFM, PL, VF, and VPL formats -mentioned below are in the source files that read them; `pktype.web', -`gftype.web', `tftopl.web', etc. - -* Menu: - -* Font file formats:: Explanations of GF, PK, TFM, VF, ... -* gftopk invocation:: GF -> PK (compact) -* pktogf invocation:: PK -> GF (expand). -* pktype invocation:: PK -> human-readable text. -* gftype invocation:: GF -> human-readable text. -* tftopl invocation:: TFM -> PL (for editing TFM). -* pltotf invocation:: PL -> TFM (make editing results usable). -* vftovp invocation:: VF -> VPL (tftopl for virtual fonts). -* vptovf invocation:: VPL -> VF (pltotf for virtual fonts). -* Font utilities available elsewhere:: Type 1, BDF, editors, etc. - - -File: web2c.info, Node: Font file formats, Next: gftopk invocation, Up: Font utilities - -10.1 Font file formats -====================== - -(For another perspective on this, *note Font concepts: (dvips)Font -concepts.). - - Font files come in several varieties, with suffixes like: - .tfm .*pk .*gf .*pxl (obsolete) .pl .mf .vf .vpl - Each represents a file format. - - 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 information contained in TFM files is device-independent units is -used by TeX to do typesetting. Unlike the bitmap (raster) fonts -described below, TFM font files contain no information about the shapes -of characters. They describe rectangular areas and combinations -thereof, but not what will eventually be printed in those areas. - - Since TeX does scaling calculations, one TFM file serves for all -magnifications of a given typeface. On the other hand, the best printed -results are obtained when magnified (or reduced fonts) are not produced -geometrically (as done by PostScript, for example) but rather optically, -with each size a separate design (as done with Computer Modern and the -EC fonts, for example); then a separate TFM file is needed for each -size. - - At any rate, TeX produces a DVI (DeVice Independent) file from your -source document. In order to print DVI files on real devices, you need -font files defining digitized character shapes and other data. Then -previewers and printer-driver programs can translate your DVI files into -something usable by your monitor or printer. Bitmap fonts come with -suffixes such as `.600pk' or `.600gf' or `.3000pxl', where the `600' is -the horizontal dots-per-inch resolution at which the font was produced, -and the `pk' or `gf' or `pxl' indicates the font format. Outline fonts -in PostScript Type 1 format have suffixes such as `.pfa' or `.pfb'. - - Fonts in pk (packed) format are in the tightly packed raster format -that is pretty much the standard today. They take up less space than -fonts in the gf (generic font) format that Metafont generates, 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 -obsolete. - - Font files with the `.pl' (property list) suffix are the plain text -(human-readable) analog of the binary `.tfm' files. The TFtoPL and -PLtoTF programs convert between the two formats (*note tftopl -invocation:: and *note pltotf invocation::). - - 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 device. - - The suffix `.vf' identifies "virtual font" files, for which `.vpl' -is the human-readable analog. See *Note vftovp invocation::, and *note -vptovf invocation::. For further discussion of virtual fonts, see -`CTAN:/doc/virtual-fonts.knuth', `CTAN:/help/virtualfonts.txt', and -*note Virtual fonts: (dvips)Virtual fonts. - - (This section is based on documentation in the original Unix TeX -distribution by Pierre MacKay and Elizabeth Tachikawa.) - - -File: web2c.info, Node: gftopk invocation, Next: pktogf invocation, Prev: Font file formats, Up: Font utilities - -10.2 GFtoPK: Generic to packed font conversion -============================================== - -GFtoPK converts a generic font (GF) file output by, for example, -Metafont (*note mf invocation::) to a packed font (PK) file. PK files -are considerably smaller than the corresponding gf files, so they are -generally the bitmap font format of choice. Some DVI-processing -programs, notably Dvips, only support PK files and not GF files. -Synopsis: - - gftopk [OPTION]... GFNAME.DPI[gf] [PKFILE] - -The font GFNAME is searched for in the usual places (*note Glyph -lookup: (kpathsea)Glyph lookup.). To see all the relevant paths, set -the environment variable `KPATHSEA_DEBUG' to `-1' before running the -program. - - The suffix `gf' is supplied if not already present. This suffix is -not an extension; no `.' precedes it: for instance, `cmr10.600gf'. - - If PKFILE is not specified, the output is written to the basename of -`GFNAME.DPIpk', e.g., `gftopk /wherever/cmr10.600gf' creates -`./cmr10.600pk'. - - The only options are `--verbose', `--help', and `--version' (*note -Common options::). - - -File: web2c.info, Node: pktogf invocation, Next: pktype invocation, Prev: gftopk invocation, Up: Font utilities - -10.3 PKtoGF: Packed to generic font conversion -============================================== - -PKtoGF converts a packed font (PK) file to a generic font (GF) file. -Since PK format is much more compact than GF format, the most likely -reason to do this is to run GFtype (*note gftype invocation::) on the -result, so you can see the bitmap images. Also, a few old utility -programs do not support PK format. Synopsis: - - pktogf [OPTION]... PKNAME.DPI[pk] [GFFILE] - -The font PKNAME is searched for in the usual places (*note Glyph -lookup: (kpathsea)Glyph lookup.). To see all the relevant paths, set -the environment variable `KPATHSEA_DEBUG' to `-1' before running the -program. - - The suffix `pk' is supplied if not already present. This suffix is -not an extension; no `.' precedes it: for instance, `cmr10.600pk'. - - If GFFILE is not specified, the output is written to the basename of -`PKNAME.DPIgf', e.g., `pktogf /wherever/cmr10.600pk' creates -`./cmr10.600gf'. - - The only options are `--verbose', `--help', and `--version' (*note -Common options::). - - -File: web2c.info, Node: pktype invocation, Next: gftype invocation, Prev: pktogf invocation, Up: Font utilities - -10.4 PKtype: Plain text transliteration of packed fonts -======================================================= - -PKtype translates a packed font (PK) bitmap file (as output by GFtoPK, -for example) to a plain text file that humans can read. It also serves -as a PK-validating program, i.e., if PKtype can read a file, it's -correct. Synopsis: - - pktype PKNAME.DPI[pk] - - The font PKNAME is searched for in the usual places (*note Glyph -lookup: (kpathsea)Glyph lookup.). To see all the relevant paths, set -the environment variable `KPATHSEA_DEBUG' to `-1' before running the -program. - - The suffix `pk' is supplied if not already present. This suffix is -not an extension; no `.' precedes it: for instance, `cmr10.600pk'. - - The translation is written to standard output. - - The only options are `-help' and `-version' (*note Common options::). - - As an example of the output, here is the (abridged) translation of -the letter `K' in `cmr10', as rendered at 600dpi with the mode `ljfour' -from `modes.mf' (available from `ftp://ftp.tug.org/tex/modes.mf'). - - 955: Flag byte = 184 Character = 75 Packet length = 174 - Dynamic packing variable = 11 - TFM width = 815562 dx = 4259840 - Height = 57 Width = 57 X-offset = -3 Y-offset = 56 - [2]23(16)17(8)9(25)11(13)7(27)7(16)7(28)4(18)7(28)2(20)7(27)... - ... - (14)9(24)12(5)[2]23(13)21 - -Explanation: - -`955' - The byte position in the file where this character starts. - -`Flag byte' -`Dynamic packing variable' - Related to the packing for this character; see the source code. - -`Character' - The character code, in decimal. - -`Packet length' - The total length of this character definition, in bytes. - -`TFM width' - The device-independent (TFM) width of this character. It is 2^24 - times the ratio of the true width to the font's design size. - -`dx' - The device-dependent width, in "scaled pixels", i.e., units of - horizontal pixels times 2^16. - -`Height' -`Width' - The bitmap height and width, in pixels. - -`X-offset' -`Y-offset' - Horizontal and vertical offset from the upper left pixel to the - reference (origin) pixel for this character, in pixels (right and - down are positive). The "reference pixel" is the pixel that - occupies the unit square in Metafont; the Metafont reference point - is the lower left hand corner of this pixel. Put another way, the - x-offset is the negative of the left side bearing; the right side - bearing is the horizontal escapement minus the bitmap width plus - the x-offset. - -`[2]23(16)...' - Finally, run lengths of black pixels alternate with parenthesized - run lengths of white pixels, and brackets indicate a repeated row. - - -File: web2c.info, Node: gftype invocation, Next: tftopl invocation, Prev: pktype invocation, Up: Font utilities - -10.5 GFtype: Plain text transliteration of generic fonts -======================================================== - -GFtype translates a generic font (GF) bitmap file (as output by -Metafont, for example) to a plain text file that humans can read. It -also serves as a GF-validating program, i.e., if GFtype can read a file, -it's correct. Synopsis: - - gftype [OPTION]... GFNAME.DPI[gf] - - The font GFNAME is searched for in the usual places (*note Glyph -lookup: (kpathsea)Glyph lookup.). To see all the relevant paths, set -the environment variable `KPATHSEA_DEBUG' to `-1' before running the -program. - - The suffix `gf' is supplied if not already present. This suffix is -not an extension; no `.' precedes it: for instance, `cmr10.600gf'. - - The translation is written to standard output. - - The program accepts the following options, as well as the standard -`-help' and `-version' (*note Common options::): -`-images' - Show the characters' bitmaps using asterisks and spaces. - -`-mnemonics' - Translate all commands in the GF file. - - As an example of the output, here is the (abrdiged) translation of -the letter `K' in `cmr10', as rendered at 600dpi with the mode `ljfour' -from `modes.mf' (available from `ftp://ftp.tug.org/tex/modes.mf'), with -both `-mnemonics' and `-images' enabled. - - GFtype outputs the information about a character in two places: a -main definition and a one-line summary at the end. We show both. Here -is the main definition: - - 2033: beginning of char 75: 3<=m<=60 0<=n<=56 - (initially n=56) paint (0)24(12)20 - 2043: newrow 0 (n=55) paint 24(12)20 - 2047: newrow 0 (n=54) paint 24(12)20 - 2051: newrow 0 (n=53) paint 24(12)20 - 2055: newrow 7 (n=52) paint 10(21)13 - 2059: newrow 8 (n=51) paint 8(23)9 - ... - 2249: newrow 8 (n=5) paint 8(23)11 - 2253: newrow 7 (n=4) paint 10(22)12 - 2257: newrow 0 (n=3) paint 24(11)22 - 2261: newrow 0 (n=2) paint 24(11)22 - 2265: newrow 0 (n=1) paint 24(11)22 - 2269: newrow 0 (n=0) paint 24(11)22 - 2273: eoc - .<--This pixel's lower left corner is at (3,57) in METAFONT coordinates - ************************ ******************** - ************************ ******************** - ************************ ******************** - ************************ ******************** - ********** ************* - ******** ********* - ... - ******** *********** - ********** ************ - ************************ ********************** - ************************ ********************** - ************************ ********************** - ************************ ********************** - .<--This pixel's upper left corner is at (3,0) in METAFONT coordinates - -Explanation: - -`2033' -`2043' -`...' - The byte position in the file where each GF command starts. - -`beginning of char 75' - The character code, in decimal. - -`3<=m<=60 0<=n<=56' - The character's bitmap lies between 3 and 60 (inclusive) - horizontally, and between 0 and 56 (inclusive) vertically. (m is a - column position and n is a row position.) Thus, 3 is the left side - bearing. The right side bearing is the horizontal escapement - (given below) minus the maximum m. - -`(initially n=56) paint (0)24(12)20' - The first row of pixels: 0 white pixels, 24 black pixels, 12 white - pixels, etc. - -`newrow 0 (n=55) paint 24(12)20' - The second row of pixels, with zero leading white pixels on the - row. - -`eoc' - The end of the main character definition. - - - Here is the GF postamble information that GFtype outputs at the end: - - Character 75: dx 4259840 (65), width 815562 (64.57289), loc 2033 - - Explanation: - -`dx' - The device-dependent width, in "scaled pixels", i.e., units of - horizontal pixels times 2^16. The `(65)' is simply the same number - rounded. If the vertical escapement is nonzero, it would appear - here as a `dy' value. - -`width' - The device-independent (TFM) width of this character. It is 2^24 - times the ratio of the true width to the font's design size. The - `64.57289' is the same number converted to pixels. - -`loc' - The byte position in the file where this character starts. - - - -File: web2c.info, Node: tftopl invocation, Next: pltotf invocation, Prev: gftype invocation, Up: Font utilities - -10.6 TFtoPL: TeX font metric to property list conversion -======================================================== - -TFtoPL translates a TeX font metric (TFM, *note Metric files: -(dvips)Metric files.) file (as output by Metafont, for example) to -"property list format" (a list of parenthesized items describing the -font) that humans can edit or read. This program is mostly used by -people debugging TeX implementations, writing font utilities, etc. -Synopsis: - - tftopl [OPTION]... TFMNAME[.tfm] [PLFILE[.pl]] - - The font TFMNAME (extended with `.tfm' if necessary) is searched for -in the usual places (*note Supported file formats: (kpathsea)Supported -file formats.). To see all the relevant paths, set the environment -variable `KPATHSEA_DEBUG' to `-1' before running the program. - - If PLFILE (which is extended with `.pl' if necessary) is not -specified, the property list file is written to standard output. The -property list file can be converted back to TFM format by the companion -program TFtoPL (see the next section). - - The program accepts the following option, as well as the standard -`-verbose', `-help' and `-version' (*note Common options::): -`-charcode-format=TYPE' - Output character codes in the PL file according to TYPE: either - `octal' or `ascii'. Default is `ascii' for letters and digits, - octal for all other characters. Exception: if the font's coding - scheme starts with `TeX math sy' or `TeX math ex', all character - codes are output in octal. - - In `ascii' format, character codes that correspond to graphic - characters, except for left and right parentheses, are output as a - `C' followed by the single character: `C K', for example. In - octal format, character codes are output as the letter `O' followed - by octal digits, as in `O 113' for `K'. - - `octal' format is useful for symbol and other non-alphabetic fonts, - where using ASCII characters for the character codes is merely - confusing. - - As an example of the output, here is the (abridged) property list -translation of `cmr10.tfm': - - (FAMILY CMR) - (FACE O 352) - (CODINGSCHEME TEX TEXT) - (DESIGNSIZE R 10.0) - (COMMENT DESIGNSIZE IS IN POINTS) - (COMMENT OTHER SIZES ARE MULTIPLES OF DESIGNSIZE) - (CHECKSUM O 11374260171) - (FONTDIMEN - (SLANT R 0.0) - (SPACE R 0.333334) - (STRETCH R 0.166667) - (SHRINK R 0.111112) - (XHEIGHT R 0.430555) - (QUAD R 1.000003) - (EXTRASPACE R 0.111112) - ) - (LIGTABLE - ... - (LABEL C f) - (LIG C i O 14) - (LIG C f O 13) - (LIG C l O 15) - (KRN O 47 R 0.077779) - (KRN O 77 R 0.077779) - (KRN O 41 R 0.077779) - (KRN O 51 R 0.077779) - (KRN O 135 R 0.077779) - (STOP) - ... - ) - ... - (CHARACTER C f - (CHARWD R 0.305557) - (CHARHT R 0.694445) - (CHARIC R 0.077779) - (COMMENT - (LIG C i O 14) - (LIG C f O 13) - (LIG C l O 15) - (KRN O 47 R 0.077779) - (KRN O 77 R 0.077779) - ... - ) - ) - ... - - As you can see, the general format is a list of parenthesized -"properties", nested where necessary. - - * The first few items (`FAMILY', `FACE', and so on) are the - so-called "headerbyte" information from Metafont, giving general - information about the font. - - * The `FONTDIMEN' property defines the TeX `\fontdimen' values. - - * The `LIGTABLE' property defines the ligature and kerning table. - `LIG' properties define ligatures: in the example above, an `f' - (in the `LABEL') followed by an `i' is a ligature, i.e., a - typesetting program like TeX replaces those two consecutive - characters by the character at position octal '014 in the current - font--presumably the `fi' ligature. `KRN' properties define - kerns: if an `f' is followed by character octal '047 (an - apostrophe), TeX inserts a small amount of space between them: - 0.077779 times the design size the font was loaded at (about - three-quarters of a printer's point by default in this case, or - .001 inches). - - * The `CHARACTER' property defines the dimensions of a character: its - width, height, depth, and italic correction, also in design-size - units, as explained in the previous item. For our example `f', - the depth is zero, so that property is omitted. TFtoPL also - inserts any kerns and ligatures for this character as a comment. - - - -File: web2c.info, Node: pltotf invocation, Next: vftovp invocation, Prev: tftopl invocation, Up: Font utilities - -10.7 PLtoTF: Property list to TeX font metric conversion -======================================================== - -PLtoTF translates a property list file (as output by TFtoPL, for -example) to TeX font metric (TFM, *note Metric files: (dvips)Metric -files.) format. It's much easier for both programs and humans to -create the (plain text) property list files and let PLtoTF take care of -creating the binary TFM equivalent than to output TFM files directly. -Synopsis: - - pltotf [OPTION]... PLFILE[.pl] [TFMFILE[.tfm]] - - If TFMFILE (extended with `.tfm' if necessary) is not specified, the -TFM file is written to the basename of `PLFILE.tfm', e.g., `pltotf -/wherever/cmr10.pl' creates `./cmr10.tfm'. (Since TFM files are -binary, writing to standard output by default is undesirable.) - - The only options are `-verbose', `-help', and `-version' (*note -Common options::). - - For an example of property list format, see the previous section. - - -File: web2c.info, Node: vftovp invocation, Next: vptovf invocation, Prev: pltotf invocation, Up: Font utilities - -10.8 VFtoVP: Virtual font to virtual property lists -=================================================== - -VFtoVP translates a virtual font metric (VF, *note Virtual fonts: -(dvips)Virtual fonts.) file and its accompanying TeX font metric (TFM, -*note Metric files: (dvips)Metric files.) file (as output by VPtoVF, for -example) to "virtual property list format" (a list of parenthesized -items describing the virtual font) that humans can edit or read. This -program is mostly used by people debugging virtual font utilities. -Synopsis: - - vftovp [OPTION]... VFNAME[.vf] [TFMNAME[.tfm] [VPLFILE[.vpl]]] - - The fonts VFNAME and TFMNAME (extended with `.vf' and `.tfm' if -necessary) are searched for in the usual places (*note Supported file -formats: (kpathsea)Supported file formats.). To see all the relevant -paths, set the environment variable `KPATHSEA_DEBUG' to `-1' before -running the program. If TFMNAME is not specified, VFNAME (without a -trailing `.vf') is used. - - If VPLFILE (extended with `.vpl' if necessary) is not specified, the -property list file is written to standard output. The property list -file can be converted back to VF and TFM format by the companion -program VFtoVP (see the next section). - - The program accepts the following option, as well as the standard -`-verbose', `-help' and `-version' (*note Common options::): -`-charcode-format=TYPE' - Output character codes in the PL file according to TYPE: either - `octal' or `ascii'. Default is `ascii' for letters and digits, - octal for all other characters. Exception: if the font's coding - scheme starts with `TeX math sy' or `TeX math ex', all character - codes are output in octal. - - In `ascii' format, character codes that correspond to graphic - characters, except for left and right parentheses, are output as a - `C' followed by the single character: `C K', for example. In - octal format, character codes are output as the letter `O' followed - by octal digits, as in `O 113' for `K'. - - `octal' format is useful for symbol and other non-alphabetic fonts, - where using ASCII characters for the character codes is merely - confusing. - - -File: web2c.info, Node: vptovf invocation, Next: Font utilities available elsewhere, Prev: vftovp invocation, Up: Font utilities - -10.9 VPtoVF: Virtual property lists to virtual font -=================================================== - -VPtoVF translates a virtual property list file (as output by VFtoVP, for -example) to virtual font (VF, *note Virtual fonts: (dvips)Virtual -fonts.) and TeX font metric (TFM, *note Metric files: (dvips)Metric -files.) files. It's much easier for both programs and humans to create -the (plain text) property list files and let VPtoVF take care of -creating the binary VF and TFM equivalents than to output them -directly. Synopsis: - - vptovf [OPTION]... VPLFILE[.vpl] [VFFILE[.vf] [TFMFILE[.tfm]]] - - If VFFILE (extended with `.vf' if necessary) is not specified, the -VF output is written to the basename of `VPLFILE.vf'; similarly for -TFMFILE. For example, `vptovf /wherever/ptmr.vpl' creates `./ptmr.vf' -and `./ptmr.tfm'. - - The only options are `-verbose', `-help', and `-version' (*note -Common options::). - - -File: web2c.info, Node: Font utilities available elsewhere, Prev: vptovf invocation, Up: Font utilities - -10.10 Font utilities available elsewhere -======================================== - -The Web2c complement of font utilities merely implements a few basic -conversions. Many other more sophisticated font utilities exist; most -are in `CTAN:/fonts/utilities' (for CTAN info, *note unixtex.ftp: -(kpathsea)unixtex.ftp.). Here are some of the most commonly-requested -items: - - * AFM (Adobe font metric) to TFM conversion: *note Invoking afm2tfm: - (dvips)Invoking afm2tfm, and `CTAN:/fonts/utilities/afmtopl'. - - * BDF (the X bitmap format) conversion: - `ftp://ftp.tug.org/tex/bdf.tar.gz'. - - * Creating fonts using MetaPost: MetaType1. - `ftp://bop.eps.gda.pl/pub/metatype1'. This is used to create the - excellent Latin Modern font family (`CTAN:/fonts/lm'), which - extends Computer Modern to a vast repertoire of scripts. - - * Editing of bitmap fonts: Xbfe from the GNU font utilities mentioned - below; the X BDF-editing programs available from - `ftp://ftp.x.org/R5contrib/xfed.tar.Z' and - `ftp://ftp.x.org/R5contrib/xfedor.tar.Z'; and finally, if your - fonts have only 128 characters, you can use the old `gftopxl', - `pxtoch', and `chtopx' programs from `ftp://ftp.tug.org/tex/web'. - - * Editing of outline fonts: FontForge, `fontforge.sourceforge.net'. - This is a very elaborate program with support for many outline - formats (Type 1, OpenType, TrueType, ...), and many advanced font - editing features. - - * PK bitmaps from PostScript outline fonts: gsftopk from the `xdvi' - distribution. Alternatively, `ps2pk', from - `CTAN:/fonts/utilities/ps2pk'. - - * PostScript Type 1 font format conversion (i.e., between PFA and PFB - formats): `http://www.lcdf.org/type'. - - * Scanned image conversion: the (aging) GNU font utilities convert - type specimen images to Metafont, PostScript, etc.: - `http://www.gnu.org/software/fontutils/'. - - * Tracing bitmaps to fitted outlines: Autotrace - (`http://autotrace.sourceforge.net'), Potrace - (`http://potrace.sourceforge.net'). For Metafont fonts, either of - the two programs `mftrace' - (`http://www.xs4all.nl/~hanwen/mftrace') or `textrace' - (`http://textrace.sourceforge.net') make the job easier. - - * Virtual font creation: `CTAN:/fonts/utilities/fontinst'. - - -File: web2c.info, Node: Legalisms, Next: References, Prev: Font utilities, Up: Top - -Appendix A Legalisms -******************** - -In general, each file has its own copyright notice stating the copying -permissions for that file. Following is a summary. - - The Web2c system itself and most of the original WEB source files are -public domain. - - `tex.web', the MLTeX code, `mf.web', and `bibtex.web', are -copyrighted by their authors. They may be copied verbatim, but may be -modified only through a `.ch' file. - - MetaPost-related files, including `mp.web' itself, are copyrighted -under X-like terms; the precise notice is included below. - - Finally, the Kpathsea library is covered by the GNU Lesser General -Public License (*note Introduction: (kpathsea)Introduction.). -Therefore, the _binaries_ resulting from a standard Web2c compilation -are also covered by the LGPL; so if you (re)distribute the binaries, -you must also (offer to) distribute the complete source that went into -those binaries. See the file `LGPL' for complete details on the LGPL. - - The following notice must be included by the terms of the MetaPost -copyright. - - Permission to use, copy, modify, and distribute this software and - its documentation for any purpose and without fee is hereby - granted, provided that the above copyright notice appear in all - copies and that both that the copyright notice and this permission - notice and warranty disclaimer appear in supporting documentation, - and that the names of AT&T Bell Laboratories or any of its - entities not be used in advertising or publicity pertaining to - distribution of the software without specific, written prior - permission. - - AT&T disclaims all warranties with regard to this software, - including all implied warranties of merchantability and fitness. - In no event shall AT&T be liable for any special, indirect or - consequential damages or any damages whatsoever resulting from - loss of use, data or profits, whether in an action of contract, - negligence or other tortious action, arising out of or in - connection with the use or performance of this software. - - -File: web2c.info, Node: References, Next: Index, Prev: Legalisms, Up: Top - -Appendix B References -********************* - - 1. Kpathsea: *Note Introduction: (kpathsea)Top. - - 2. Dvips and Afm2tfm: *Note Introduction: (dvips)Top. - - 3. The TeX Users Group: `http://www.tug.org'. For an introduction to - the TeX system, see `http://tug.org/begin.html'. - - 4. TUGboat: `http://tug.org/TUGboat'. - - 5. TeX and computer typesetting in general: - `ftp://ftp.math.utah.edu/pub/tex/bib/texbook1.bib'. - - 6. For a bibliography of formal articles and technical reports on the - TeX project, see the books `TeX: The Program' or `Metafont: The - Program' cited below. - - 7. [Bil87] Neenie Billawala. Write-white printing engines and tuning - fonts with Metafont. `TUGboat', 8(1):29-32, April 1987. - - 8. [GMS94] Michel Goossens, Frank Mittelbach, and Alexander Samarin. - `The LaTeX Companion'. Addison-Wesley, Reading, MA, USA, 1994. - - 9. [Hob89] John D. Hobby. A Metafont-like system with PS output. - `TUGboat', 10(4):505-512, December 1989. - - 10. [Hob92] John D. Hobby. A User's Manual for MetaPost. Technical - Report CSTR-162, AT&T Bell Laboratories, 1992. - - 11. [Hob93] John D. Hobby. Drawing Graphs with MetaPost. Technical - Report CSTR-164, AT&T Bell Laboratories, 1993. - - 12. [HS91] Samuel P. Harbison and Guy L. Steele Jr. `C--A Reference - Manual'. Prentice-Hall, Upper Saddle River, NJ 07458, USA, third - edition, 1991. An authoritative reference to the C programming - language, and a good companion to Kernighan and Ritchie. - - 13. [KL93] Donald E. Knuth and Silvio Levy. `The CWEB System of - Structured Documentation, Version 3.0'. Addison-Wesley, Reading, - MA, USA, 1993. - - 14. [Knu84] Donald E. Knuth. A torture test for TeX. Report No. - STAN-CS-84-1027, Stanford University, Department of Computer - Science, 1984. - - 15. [Knu86a] Donald E. Knuth. A Torture Test for METAFONT. Report - No. STAN-CS-86-1095, Stanford University, Department of Computer - Science, 1986. - - 16. [Knu86b] Donald E. Knuth. `The TeXbook', volume A of `Computers - and Typesetting'. Addison-Wesley, Reading, MA, USA, 1986. - - 17. [Knu86c] Donald E. Knuth. `TeX: The Program', volume B of - `Computers and Typesetting'. Addison-Wesley, Reading, MA, USA, - 1986. - - 18. [Knu86d] Donald E. Knuth. `The METAFONTbook', volume C of - `Computers and Typesetting'. Addison-Wesley, Reading, MA, USA, - 1986. - - 19. [Knu86e] Donald E. Knuth. `METAFONT: The Program', volume D of - `Computers and Typesetting'. Addison-Wesley, Reading, MA, USA, - 1986. - - 20. [Knu86f] Donald E. Knuth. `Computer Modern Typefaces', volume E - of `Computers and Typesetting'. Addison-Wesley, Reading, MA, - USA, 1986. - - 21. [Knu89] Donald E. Knuth. The errors of TeX. `Software--Practice - and Experience', 19(7):607-681, July 1989. This is an updated - version of iteKnuth:1988:ET. - - 22. [Knu90] Donald Knuth. Virtual Fonts: More Fun for Grand Wizards. - `TUGboat', 11(1):13-23, April 1990. - - 23. [Knu92] Donald E. Knuth. `Literate Programming'. CSLI Lecture - Notes Number 27. Stanford University Center for the Study of - Language and Information, Stanford, CA, USA, 1992. - - 24. [Lam94] Leslie Lamport. `LaTeX: A Document Preparation System: - User's Guide and Reference Manual'. Addison-Wesley, Reading, - MA, USA, second edition, 1994. Reprinted with corrections in 1996. - - 25. [Lia83] Franklin Mark Liang. Word hy-phen-a-tion by com-pu-ter. - Technical Report STAN-CS-83-977, Stanford University, August 1983. - - 26. [Mac91] Pierre A. MacKay. Looking at the pixels: Quality control - for 300 dpi laser printer fonts, especially Metafonts. In - Robert A. Morris and Jacques Andre, editors, `Raster Imaging and - Digital Typography II--Papers from the second RIDT meeting, held in - Boston, Oct. 14-16, 1991', pages 205-215, New York, 1991. - Cambridge University Press. - - 27. [Spi89] Michael D. Spivak. `LAMSTeX, The Synthesis'. The - TeXplorators Corporation, 3701 W. Alabama, Suite 450-273, Houston, - TX 77027, USA, 1989. - - 28. [Spi90] Michael D. Spivak. `The Joy of TeX--A Gourmet Guide to - Typesetting with the AMSTeX macro package'. American - Mathematical Society, Providence, RI, USA, 2nd revised edition, - 1990. - - - -File: web2c.info, Node: Index, Prev: References, Up: Top - -Index -***** - - -* Menu: - -* #define options: Compile-time options. - (line 6) -* $ expansion in filenames: \input filenames. (line 48) -* %& magic number: Determining the memory dump to use. - (line 20) -* - starting a filename: Option conventions. (line 19) -* - starts option names: Option conventions. (line 11) -* -- starts option names: Option conventions. (line 11) -* --disable-dump-share configure option: Hardware and memory dumps. - (line 6) -* --enable-ipc configure option: tex invocation. (line 101) -* --help common option: Common options. (line 11) -* --quiet (newer): newer invocation. (line 20) -* --verbose (newer): newer invocation. (line 23) -* --verbose common option: Common options. (line 15) -* --version common option: Common options. (line 18) -* --with-editor=CMD: Editor invocation. (line 10) -* --with-epsfwin: Online Metafont graphics. - (line 20) -* --with-hp2627win: Online Metafont graphics. - (line 28) -* --with-mftalkwin: Online Metafont graphics. - (line 31) -* --with-next: Online Metafont graphics. - (line 35) -* --with-regiswin: Online Metafont graphics. - (line 40) -* --with-suntoolswin: Online Metafont graphics. - (line 43) -* --with-tektronixwin: Online Metafont graphics. - (line 48) -* --with-unitermwin: Online Metafont graphics. - (line 51) -* --with-x: Online Metafont graphics. - (line 57) -* --with-x-toolkit=KIT: Online Metafont graphics. - (line 60) -* --with-x11: Online Metafont graphics. - (line 57) -* --with-x11win: Online Metafont graphics. - (line 57) -* -8bit: Common options. (line 103) -* -base=BASE: Determining the memory dump to use. - (line 15) -* -base=DUMPNAME: Common options. (line 34) -* -change=CHFILE: mft invocation. (line 64) -* -charcode-format=TYPE <1>: vftovp invocation. (line 31) -* -charcode-format=TYPE: tftopl invocation. (line 28) -* -D compiler options: Compile-time options. - (line 6) -* -disable-write18: tex invocation. (line 135) -* -dpi=REAL: dvitype invocation. (line 24) -* -enable-write18: tex invocation. (line 134) -* -enc: tex invocation. (line 95) -* -file-line-error: Common options. (line 25) -* -file-line-error-style: Common options. (line 26) -* -fmt=DUMPNAME: Common options. (line 34) -* -fmt=FMT: Determining the memory dump to use. - (line 15) -* -geometry, supported with Xt: Online Metafont graphics. - (line 66) -* -halt-on-error: Common options. (line 41) -* -images: gftype invocation. (line 26) -* -ini <1>: Initial and virgin. (line 12) -* -ini: Common options. (line 45) -* -interaction=STRING: Common options. (line 51) -* -ipc: tex invocation. (line 101) -* -ipc-start: tex invocation. (line 101) -* -jobname=STRING: Common options. (line 56) -* -kpathsea-debug=NUMBER: Common options. (line 60) -* -length=NUMBER: tangle invocation. (line 27) -* -loose: tangle invocation. (line 46) -* -lowercase: tangle invocation. (line 35) -* -magnification=INTEGER <1>: dvitype invocation. (line 28) -* -magnification=INTEGER: dvicopy invocation. (line 20) -* -max-pages=N <1>: dvitype invocation. (line 33) -* -max-pages=N: dvicopy invocation. (line 25) -* -mem=DUMPNAME: Common options. (line 34) -* -mem=MEM: Determining the memory dump to use. - (line 15) -* -min-crossrefs=N: bibtex invocation. (line 31) -* -mixedcase: tangle invocation. (line 35) -* -mktex=FILETYPE <1>: mf invocation. (line 87) -* -mktex=FILETYPE: tex invocation. (line 111) -* -mltex: tex invocation. (line 115) -* -mnemonics: gftype invocation. (line 29) -* -no-file-line-error: Common options. (line 26) -* -no-mktex=FILETYPE <1>: mf invocation. (line 87) -* -no-mktex=FILETYPE: tex invocation. (line 111) -* -no-parse-first-line: Common options. (line 78) -* -no-shell-escape: tex invocation. (line 128) -* -oem: Common options. (line 108) -* -output-comment=STRING: tex invocation. (line 120) -* -output-directory <1>: Output file location. - (line 15) -* -output-directory: Common options. (line 67) -* -output-level=N: dvitype invocation. (line 36) -* -overflow-label-offset=POINTS: gftodvi invocation. (line 59) -* -page-start=PAGE-SPEC <1>: dvitype invocation. (line 50) -* -page-start=PAGE-SPEC: dvicopy invocation. (line 28) -* -parse-first-line: Common options. (line 77) -* -progname=STRING <1>: Determining the memory dump to use. - (line 18) -* -progname=STRING: Common options. (line 83) -* -recorder: Common options. (line 90) -* -shell-escape: tex invocation. (line 127) -* -shell-restricted: tex invocation. (line 129) -* -show-opcodes: dvitype invocation. (line 56) -* -strict: tangle invocation. (line 46) -* -style=MFTFILE: mft invocation. (line 68) -* -T: mpost invocation. (line 117) -* -terse: bibtex invocation. (line 28) -* -tex: mpto invocation. (line 24) -* -tex=TEXPROGRAM: mpost invocation. (line 121) -* -translate-file=TCXFILE: Common options. (line 96) -* -troff <1>: mpto invocation. (line 21) -* -troff <2>: makempx invocation. (line 39) -* -troff: mpost invocation. (line 117) -* -underline: tangle invocation. (line 41) -* -uppercase: tangle invocation. (line 35) -* -x: weave invocation. (line 22) -* ., used for output: Output file location. - (line 6) -* .2602gf: mf invocation. (line 48) -* .aux cross-reference files: bibtex invocation. (line 6) -* .base: Initial Metafont. (line 6) -* .bbl bibliography files: bibtex invocation. (line 6) -* .bib bibliography databases: bibtex invocation. (line 6) -* .blg BibTeX log file: bibtex invocation. (line 14) -* .fmt: Initial TeX. (line 6) -* .mem: Initial MetaPost. (line 6) -* .mf: mf invocation. (line 24) -* .mp: mpost invocation. (line 31) -* .NNN PostScript figures: mpost invocation. (line 37) -* .NNNgf generic fonts: mf invocation. (line 34) -* .tcx character translation files <1>: TCX files. (line 6) -* .tcx character translation files: Common options. (line 96) -* .tex: tex invocation. (line 20) -* .tfm output <1>: mpost invocation. (line 37) -* .tfm output: mf invocation. (line 43) -* .Xdefaults: Online Metafont graphics. - (line 66) -* .Xresources: Online Metafont graphics. - (line 66) -* 2602gf: mf invocation. (line 48) -* 8 bit clean: Common options. (line 103) -* 8 bit clean output, specifying: Common options. (line 103) -* 8-bit characters: TCX files. (line 6) -* \bibliography: bibtex invocation. (line 18) -* \bibliographystyle: bibtex invocation. (line 18) -* \charsubdef and MLTeX: \charsubdef. (line 6) -* \countN <1>: dvitype invocation. (line 50) -* \countN: dvicopy invocation. (line 28) -* \font and dynamic generation: tex invocation. (line 44) -* \fontdimen: tftopl invocation. (line 100) -* \immediate\write18: Shell escapes. (line 6) -* \input filenames: \input filenames. (line 6) -* \input, and pipes: Shell escapes. (line 63) -* \mag <1>: dvitype invocation. (line 28) -* \mag: dvicopy invocation. (line 20) -* \openin, and pipes: Shell escapes. (line 63) -* \openout and security: tex invocation. (line 51) -* \openout, and pipes: Shell escapes. (line 63) -* \output routine, and \write: Shell escapes. (line 28) -* \pdfshellescape: Shell escapes. (line 63) -* \string: \input filenames. (line 60) -* \tracingcharsubdef and MLTeX: \tracingcharsubdef. (line 6) -* \tracinglostchars and MLTeX: \tracingcharsubdef. (line 11) -* \write18 shell escape extension: Shell escapes. (line 6) -* ^^ notation, avoiding: TCX files. (line 88) -* `Computer Modern Typefaces', production of: mft invocation. (line 75) -* abbrv.bst: Basic BibTeX style files. - (line 16) -* accented character: TCX files. (line 6) -* accents, hyphenating words with: MLTeX. (line 6) -* acknowledgements: Introduction. (line 51) -* acm.bst: Basic BibTeX style files. - (line 19) -* Ada, WEB for: WEB. (line 14) -* additional Make targets: Additional targets. (line 6) -* AFM to TFM conversion: Font utilities available elsewhere. - (line 12) -* afm2tfm: Font utilities available elsewhere. - (line 12) -* afmtopl: Font utilities available elsewhere. - (line 12) -* aliases for fonts: Path searching. (line 15) -* alpha.bst: Basic BibTeX style files. - (line 22) -* American Mathematical Society, typesetting system: Formats. (line 39) -* AMSTeX: Formats. (line 39) -* apalike.bst: Basic BibTeX style files. - (line 25) -* architecture dependencies: Hardware and memory dumps. - (line 6) -* array limit, fixed: Runtime options. (line 36) -* array sizes: Runtime options. (line 6) -* assembly language routines: Compile-time options. - (line 22) -* autotrace: Font utilities available elsewhere. - (line 46) -* Awk, WEB for: WEB. (line 14) -* base file, determining: Determining the memory dump to use. - (line 6) -* base files: Initial Metafont. (line 6) -* base files, need mode definitions: Modes. (line 6) -* base files, plain only: Initial Metafont. (line 28) -* base files, sharing: Hardware and memory dumps. - (line 6) -* bases Make target: Additional targets. (line 29) -* basic BibTeX style files: Basic BibTeX style files. - (line 6) -* basic fonts and macros: Installation. (line 34) -* batch languages: TeX. (line 9) -* BDF and GF conversion: Font utilities available elsewhere. - (line 15) -* beginfig: mpost invocation. (line 37) -* BeginPath ditroff command: dmp invocation. (line 15) -* Berry, Karl: Introduction. (line 41) -* BIBINPUTS, search path for bib files: bibtex invocation. (line 18) -* bibliographies, creating: BibTeX. (line 6) -* bibliography: References. (line 6) -* bibliography items, cross-referenced: bibtex invocation. (line 31) -* bibtex: bibtex invocation. (line 6) -* BibTeX: BibTeX. (line 6) -* BibTeX collection: bibtex invocation. (line 54) -* BibTeX style files: Basic BibTeX style files. - (line 6) -* BigEndian machines: Hardware and memory dumps. - (line 6) -* binaries, linking: Common options. (line 83) -* blank lines, in TCX files: TCX files. (line 67) -* boxes, memory for: Runtime options. (line 20) -* breakpoints, memory for: Runtime options. (line 20) -* Breitenlohner, Peter: Introduction. (line 9) -* BSTINPUTS, search path for bst files: bibtex invocation. (line 18) -* btex and label extraction: mpto invocation. (line 6) -* btex for MetaPost labels: mpost invocation. (line 50) -* btxdoc.bib: bibtex invocation. (line 48) -* btxdoc.tex: bibtex invocation. (line 42) -* btxhak.tex: bibtex invocation. (line 45) -* byte position <1>: gftype invocation. (line 76) -* byte position: pktype invocation. (line 40) -* byte swapping: Hardware and memory dumps. - (line 13) -* c-sources Makefile target: Additional targets. (line 12) -* captions, extracting from MetaPost input: mpto invocation. (line 6) -* captions, for MetaPost: makempx invocation. (line 6) -* change files, and MFT: mft invocation. (line 64) -* change files, and Tangle: tangle invocation. (line 11) -* change files, and Weave: weave invocation. (line 14) -* changing error messages style: Common options. (line 26) -* character codes, in GFtype output: gftype invocation. (line 79) -* character codes, in PKtype output: pktype invocation. (line 47) -* character codes, in TCX files: TCX files. (line 78) -* character proofs of fonts: gftodvi invocation. (line 6) -* CHARACTER property: tftopl invocation. (line 114) -* character translation files: TCX files. (line 6) -* CHARDP property: tftopl invocation. (line 114) -* CHARHT property: tftopl invocation. (line 114) -* CHARIC property: tftopl invocation. (line 114) -* CHARWD property: tftopl invocation. (line 114) -* chtopx: Font utilities available elsewhere. - (line 23) -* class name for Metafont: Online Metafont graphics. - (line 66) -* cm.base: Initial Metafont. (line 28) -* cmbase.mf: Initial Metafont. (line 28) -* cmbase.mft: mft invocation. (line 75) -* cmmf.base not recommended: Initial Metafont. (line 28) -* color, in DVItoMP: dvitomp invocation. (line 16) -* comments, in TCX files: TCX files. (line 71) -* comments, MFT control: mft invocation. (line 24) -* common options: Common options. (line 6) -* commonalities: Commonalities. (line 6) -* comparing file modification times: newer invocation. (line 6) -* compilation: Installation. (line 6) -* compile-time options <1>: Compile-time options. - (line 6) -* compile-time options: configure options. (line 6) -* Computer Modern fonts, and Troff: mpost invocation. (line 73) -* Computer Modern macros: Initial Metafont. (line 28) -* configuration: Installation. (line 6) -* configuration file reading: Path searching. (line 6) -* configuration file values: Runtime options. (line 6) -* configuration, compile-time: configure options. (line 6) -* configure --with/--enable options: configure options. (line 6) -* CONTENTS.tex: weave invocation. (line 22) -* control sequence names, space for: Runtime options. (line 29) -* conventions for options,: Option conventions. (line 6) -* conversion, DVI to plain text: dvitype invocation. (line 6) -* conversion, GF to PK: gftopk invocation. (line 6) -* conversion, GF to plain text: gftype invocation. (line 6) -* conversion, PK to GF: pktogf invocation. (line 6) -* conversion, PK to plain text: pktype invocation. (line 6) -* conversion, property list to TFM: pltotf invocation. (line 6) -* conversion, property list to VF: vptovf invocation. (line 6) -* conversion, TFM to property list: tftopl invocation. (line 6) -* conversion, VF to VPL: vftovp invocation. (line 6) -* copyright notices: Legalisms. (line 6) -* Cork encoding and ISO input: TCX files. (line 49) -* creating memory dumps: Creating memory dumps. - (line 6) -* cross-referenced bibliography items: bibtex invocation. (line 31) -* cross-references, omitting: weave invocation. (line 22) -* current directory, used for output: Output file location. - (line 6) -* Curtis, Pavel: Introduction. (line 41) -* CWEB: WEB. (line 14) -* Cweb: WEB. (line 14) -* D C ditroff graphics: dmp invocation. (line 15) -* date and time, in memory dumps: Hardware and memory dumps. - (line 30) -* debugging DVI utilities: dvitype invocation. (line 56) -* debugging flags, specifying: Common options. (line 60) -* decimal character codes, in TCX files: TCX files. (line 78) -* dependencies, hardware: Hardware and memory dumps. - (line 6) -* design-size units: tftopl invocation. (line 102) -* device definitions, for Metafont: Modes. (line 6) -* device-independent width <1>: gftype invocation. (line 113) -* device-independent width: pktype invocation. (line 53) -* directory structure: Installation. (line 34) -* DISPLAY: Online Metafont graphics. - (line 73) -* ditroff output, converting to MPX: dmp invocation. (line 6) -* DMP <1>: dmp invocation. (line 6) -* DMP: makempx invocation. (line 71) -* DMP, invoked by MakeMPX: makempx invocation. (line 29) -* dmp.c: dmp invocation. (line 82) -* dot files, written by TeX programs: tex invocation. (line 51) -* downloading of fonts for MetaPost labels: mpost invocation. (line 78) -* dpost: dmp invocation. (line 15) -* DrawingServant: Online Metafont graphics. - (line 35) -* DrawPath ditroff command: dmp invocation. (line 15) -* dump file: Common options. (line 34) -* dumping memory: Memory dumps. (line 6) -* DVI comment, specifying: tex invocation. (line 120) -* DVI files, converting to MPX: dvitomp invocation. (line 6) -* DVI files, explained: Font file formats. (line 30) -* DVI format definition: DVI utilities. (line 14) -* DVI opcodes, showing: dvitype invocation. (line 56) -* DVI utilities: DVI utilities. (line 6) -* dvicopy: dvicopy invocation. (line 6) -* dvitomp: dvitomp invocation. (line 6) -* DVITOMP: makempx invocation. (line 67) -* DVItoMP, invoked by MakeMPX: makempx invocation. (line 29) -* dvitype DVI validation: dvitype invocation. (line 6) -* dvitype output example: dvitype output example. - (line 6) -* dvitype.web: DVI utilities. (line 14) -* dx horizontal escapement <1>: gftype invocation. (line 107) -* dx horizontal escapement: pktype invocation. (line 57) -* dy vertical escapement: gftype invocation. (line 107) -* dynamic array allocation: Runtime options. (line 36) -* dynamic Metafont mode definitions with smode: Modes. (line 28) -* dynamic packing variable: pktype invocation. (line 44) -* e response at error prompt: Editor invocation. (line 6) -* e-circumflex: \charsubdef. (line 21) -* e-TeX: TeX extensions. (line 10) -* e.mft: mft invocation. (line 75) -* EC fonts <1>: mf invocation. (line 24) -* EC fonts: tex invocation. (line 44) -* editing of bitmap fonts: Font utilities available elsewhere. - (line 23) -* editor invoked at error: Editor invocation. (line 6) -* eight-bit characters in filenames: \input filenames. (line 35) -* empty.tcx: TCX files. (line 49) -* endian dependencies: Hardware and memory dumps. - (line 6) -* eoc GF command: gftype invocation. (line 97) -* Eplain: Formats. (line 54) -* epsf: Online Metafont graphics. - (line 19) -* errors, editor invoked at: Editor invocation. (line 6) -* escapement, horizontal <1>: gftype invocation. (line 107) -* escapement, horizontal: pktype invocation. (line 57) -* escapement, vertical: gftype invocation. (line 107) -* etex and label extraction: mpto invocation. (line 6) -* etex for MetaPost labels: mpost invocation. (line 50) -* executables, shared initial and virgin: Initial and virgin. (line 6) -* exit status, of shell escape: Shell escapes. (line 34) -* expanded plain format: Formats. (line 54) -* extensions to TeX: TeX extensions. (line 6) -* extra_mem_bot: Runtime options. (line 19) -* FACE property: tftopl invocation. (line 96) -* FAMILY property: tftopl invocation. (line 96) -* Ferguson, Michael: MLTeX. (line 6) -* file formats for fonts: Font file formats. (line 6) -* file mtimes, comparing: newer invocation. (line 6) -* file recorder: Common options. (line 90) -* filename conventions, in input files: \input filenames. (line 6) -* filenames starting with -: Option conventions. (line 19) -* first line of the main input file: Common options. (line 96) -* fixed-point arithmetic: Compile-time options. - (line 22) -* FIXPT: Compile-time options. - (line 22) -* flag byte: pktype invocation. (line 44) -* floating-point arithmetic: Compile-time options. - (line 22) -* floating-point values: Hardware and memory dumps. - (line 22) -* fmt file, determining: Determining the memory dump to use. - (line 6) -* fmt files: Initial TeX. (line 6) -* fmt files, sharing: Hardware and memory dumps. - (line 6) -* fmts Make target: Additional targets. (line 25) -* font aliases: Path searching. (line 15) -* font character code, translating: TCX files. (line 102) -* font design: Metafont. (line 6) -* font downloading for MetaPost labels: mpost invocation. (line 78) -* font file formats: Font file formats. (line 6) -* font proofs: gftodvi invocation. (line 6) -* font utilities: Font utilities. (line 6) -* font utilities, non-Web2c: Font utilities available elsewhere. - (line 6) -* font_mem_size: Runtime options. (line 24) -* fontforge: Font utilities available elsewhere. - (line 30) -* fontinst, for creating virtual fonts: Font utilities available elsewhere. - (line 53) -* fonts, basic: Installation. (line 34) -* fontutils: Font utilities available elsewhere. - (line 42) -* format files: Initial TeX. (line 15) -* formats for TeX: Formats. (line 6) -* formats Make target: Additional targets. (line 17) -* fraction routines: Compile-time options. - (line 22) -* Free Software Foundation documentation system: Formats. (line 47) -* freedom of Web2c: Introduction. (line 23) -* ftp.math.utah.edu: bibtex invocation. (line 54) -* generating source specials: tex invocation. (line 141) -* geometric designs: Metafont. (line 6) -* geometric font scaling: Font file formats. (line 22) -* geometry for Metafont: Online Metafont graphics. - (line 66) -* getopt_long_only: Option conventions. (line 6) -* GF files, explained: Font file formats. (line 40) -* GF files, output by Metafont: mf invocation. (line 34) -* GF format definition: Font utilities. (line 11) -* GF output: mf invocation. (line 34) -* GF, converting PK to: pktogf invocation. (line 6) -* GF, converting to PK: gftopk invocation. (line 6) -* gftodvi: gftodvi invocation. (line 6) -* gftopk: gftopk invocation. (line 6) -* gftopxl: Font utilities available elsewhere. - (line 23) -* gftype GF validation: gftype invocation. (line 6) -* gftype.web: Font utilities. (line 11) -* glue ratio representations: Hardware and memory dumps. - (line 22) -* glue, memory for: Runtime options. (line 20) -* glyph substitutions: MLTeX. (line 6) -* gray font: gftodvi invocation. (line 29) -* Gruff, Billy Goat: Triptrap. (line 6) -* gsftopk: Font utilities available elsewhere. - (line 35) -* Harbison, Samuel P.: Hardware and memory dumps. - (line 34) -* hardware and memory dumps: Hardware and memory dumps. - (line 6) -* hash table, increasing size of: Runtime options. (line 29) -* hash_extra: Runtime options. (line 28) -* headerbyte information: tftopl invocation. (line 96) -* height, in pixels: pktype invocation. (line 62) -* help, online: Common options. (line 11) -* Henry, Patrick: Introduction. (line 23) -* Herberts, Mathias: Online Metafont graphics. - (line 20) -* hex character codes, in TCX files: TCX files. (line 78) -* history: Introduction. (line 41) -* Hobby, John <1>: dmp invocation. (line 82) -* Hobby, John: Introduction. (line 9) -* horizontal escapement <1>: gftype invocation. (line 107) -* horizontal escapement: pktype invocation. (line 57) -* hp2627: Online Metafont graphics. - (line 27) -* human languages, supported in TeX: Languages and hyphenation. - (line 6) -* human-readable text, converting DVI to: dvitype invocation. (line 6) -* human-readable text, converting GF to: gftype invocation. (line 6) -* human-readable text, converting PK to: pktype invocation. (line 6) -* human-readable text, converting TFM to: tftopl invocation. (line 6) -* human-readable text, converting VF to: vftovp invocation. (line 6) -* hypertext: TeX extensions. (line 21) -* hyphenation and languages: Languages and hyphenation. - (line 6) -* hyphenation patterns, creating: patgen invocation. (line 6) -* ice cream: Introduction. (line 23) -* identifier case: tangle invocation. (line 35) -* identifier collisions: tangle invocation. (line 46) -* identifier length: tangle invocation. (line 27) -* identifiers with underlines: tangle invocation. (line 41) -* ieeetr.bst: Basic BibTeX style files. - (line 31) -* il1-t1.tcx: TCX files. (line 49) -* il2-t1.tcx: TCX files. (line 49) -* Info format: Formats. (line 47) -* initial form, enabling: Common options. (line 45) -* initial Metafont: Initial Metafont. (line 6) -* initial MetaPost: Initial MetaPost. (line 6) -* initial programs: Initial and virgin. (line 24) -* initial TeX: Initial TeX. (line 6) -* initializations, lengthy: Initial and virgin. (line 24) -* input filenames: \input filenames. (line 6) -* install-bases Make target: Additional targets. (line 29) -* install-fmts Make target: Additional targets. (line 25) -* install-formats Make target: Additional targets. (line 17) -* install-mems Make target: Additional targets. (line 34) -* installation: Installation. (line 6) -* interaction between TCX files and -8bit.: TCX files. (line 105) -* interaction mode: Common options. (line 51) -* international characters: TCX files. (line 6) -* introduction: Introduction. (line 6) -* IPC: IPC and TeX. (line 6) -* IPC_DEBUG <1>: IPC and TeX. (line 13) -* IPC_DEBUG: Compile-time options. - (line 29) -* job name: Common options. (line 56) -* kerning table, in TFM files: tftopl invocation. (line 102) -* keyboard character code, translating: TCX files. (line 102) -* Knuth, Donald E. <1>: mft invocation. (line 58) -* Knuth, Donald E.: Introduction. (line 9) -* KPATHSEA_DEBUG: Common options. (line 60) -* KRN property: tftopl invocation. (line 102) -* label font: gftodvi invocation. (line 36) -* LABEL property: tftopl invocation. (line 102) -* labels, extracting from MetaPost input: mpto invocation. (line 6) -* labels, for MetaPost: makempx invocation. (line 6) -* language support in TeX: Languages and hyphenation. - (line 6) -* languages, hyphenation rules for: patgen invocation. (line 6) -* LaTeX: Formats. (line 22) -* Latin Modern: Font utilities available elsewhere. - (line 18) -* left side bearing <1>: gftype invocation. (line 82) -* left side bearing: pktype invocation. (line 66) -* legalisms: Legalisms. (line 6) -* licensing terms: Introduction. (line 23) -* LIG property: tftopl invocation. (line 102) -* ligature table, in TFM files: tftopl invocation. (line 102) -* LIGTABLE property: tftopl invocation. (line 102) -* linking binaries: Common options. (line 83) -* links to binaries: Determining the memory dump to use. - (line 32) -* literate programming: WEB. (line 6) -* litprog@shsu.edu: WEB. (line 6) -* LittleEndian machines: Hardware and memory dumps. - (line 6) -* log file, BibTeX: bibtex invocation. (line 14) -* Lua: TeX extensions. (line 27) -* luaTeX: TeX extensions. (line 27) -* machine dependencies: Hardware and memory dumps. - (line 6) -* machine-readable, converting property lists to <1>: vptovf invocation. - (line 6) -* machine-readable, converting property lists to: pltotf invocation. - (line 6) -* MacKay, Pierre: Font file formats. (line 63) -* macro packages, major TeX: Formats. (line 6) -* macros, basic: Installation. (line 34) -* macros, predefining in memory dumps: Memory dumps. (line 6) -* magnification <1>: dvitype invocation. (line 28) -* magnification: dvicopy invocation. (line 20) -* main_memory: Runtime options. (line 15) -* Make targets, additional: Additional targets. (line 6) -* makempx: makempx invocation. (line 6) -* MAKEMPX_BINDIR: makempx invocation. (line 50) -* Martin, Rick: Introduction. (line 51) -* Mathematical Reviews: Formats. (line 39) -* mathematical typesetting: TeX. (line 6) -* mem file, determining: Determining the memory dump to use. - (line 6) -* mem files: Initial MetaPost. (line 6) -* mem files, plain only: Initial MetaPost. (line 16) -* mem files, sharing: Hardware and memory dumps. - (line 6) -* memory dump to use, determining: Determining the memory dump to use. - (line 6) -* memory dumps: Memory dumps. (line 6) -* memory dumps and hardware: Hardware and memory dumps. - (line 6) -* memory dumps, contain date and time: Hardware and memory dumps. - (line 30) -* memory dumps, creating: Creating memory dumps. - (line 6) -* mems Make target: Additional targets. (line 34) -* meta characters in filenames: \input filenames. (line 35) -* Metafont: Metafont. (line 6) -* Metafont geometry: Online Metafont graphics. - (line 66) -* Metafont graphics: Online Metafont graphics. - (line 6) -* Metafont input files: mf invocation. (line 24) -* Metafont invocation: mf invocation. (line 6) -* Metafont meets PostScript: MetaPost. (line 6) -* Metafont online support, new devices: Online Metafont graphics. - (line 77) -* Metafont source, prettyprinting: mft invocation. (line 6) -* Metafont, compatibility in MetaPost: Initial MetaPost. (line 25) -* Metafont, initial: Initial Metafont. (line 6) -* Metafont, MetaPost, and TeX: Three programs. (line 6) -* MetaFun, enhanced MetaPost: Initial MetaPost. (line 33) -* metafun.mp: Initial MetaPost. (line 33) -* MetaPost: MetaPost. (line 6) -* MetaPost and plain Metafont compatibility: Initial MetaPost. - (line 25) -* MetaPost input files: mpost invocation. (line 31) -* MetaPost input, extracting labels from: mpto invocation. (line 6) -* MetaPost invocation: mpost invocation. (line 6) -* MetaPost labels: makempx invocation. (line 6) -* MetaPost source, prettyprinting: mft invocation. (line 80) -* MetaPost, initial: Initial MetaPost. (line 6) -* MetaPost, TeX, and Metafont: Three programs. (line 6) -* metatype1: Font utilities available elsewhere. - (line 18) -* mf: mf invocation. (line 6) -* mf.base: Initial Metafont. (line 16) -* MFEDIT: Editor invocation. (line 10) -* mfplain.mem: Initial MetaPost. (line 25) -* mfput: mf invocation. (line 34) -* mft: mft invocation. (line 6) -* mftalk: Online Metafont graphics. - (line 30) -* MFTERM: Online Metafont graphics. - (line 11) -* mftmac.tex: mft invocation. (line 6) -* micro-typography: TeX extensions. (line 21) -* mktexmf, disabling: mf invocation. (line 24) -* mktextfM, disabling: tex invocation. (line 44) -* mltex: MLTeX. (line 6) -* MLTeX, enabling: tex invocation. (line 115) -* mode needed to run Metafont: mf invocation. (line 48) -* mode_def: Modes. (line 15) -* mode_setup: Modes. (line 15) -* modes file needed for Metafont: Modes. (line 6) -* modes.mf recommended modes file: Modes. (line 10) -* Morgan, Tim: Introduction. (line 41) -* Morris, Bob: Introduction. (line 51) -* MPEDIT: Editor invocation. (line 10) -* mpgraph.ps: mpost invocation. (line 19) -* mpman.ps: mpost invocation. (line 6) -* mpost: mpost invocation. (line 6) -* mpost, reason for name change: Installation. (line 19) -* mpost.mem: Initial MetaPost. (line 16) -* mpout: mpost invocation. (line 37) -* mproof.tex: mpost invocation. (line 78) -* MPSUPPORT: dmp invocation. (line 21) -* MPto: mpto invocation. (line 6) -* MPto, invoked by MakeMPX: makempx invocation. (line 21) -* MPTOTEX: makempx invocation. (line 60) -* MPTOTR: makempx invocation. (line 64) -* mptrap Make target: Additional targets. (line 41) -* mptrap test: Triptrap. (line 6) -* mptrap.readme: Triptrap. (line 6) -* mpx file, defined: makempx invocation. (line 43) -* MPX files, converting from DVI files: dvitomp invocation. (line 6) -* MPX files, creating from ditroff output: dmp invocation. (line 6) -* mpxerr: makempx invocation. (line 34) -* mpxerr.dvi: makempx invocation. (line 34) -* mpxerr.log: makempx invocation. (line 34) -* mpxerr.t: makempx invocation. (line 34) -* mpxerr.tex: makempx invocation. (line 34) -* mtimes of files, comparing: newer invocation. (line 6) -* Multi-lingual TeX: MLTeX. (line 6) -* N tilde: \charsubdef. (line 37) -* new graphics support for Metafont: Online Metafont graphics. - (line 77) -* NEWER: makempx invocation. (line 56) -* newer file comparison: newer invocation. (line 6) -* newrow GF command: gftype invocation. (line 93) -* next: Online Metafont graphics. - (line 34) -* NO_X11WIN: Online Metafont graphics. - (line 56) -* non-Unix system, compiling on: Additional targets. (line 12) -* NUL, not allowed in filenames: \input filenames. (line 35) -* octal character codes, in TCX files: TCX files. (line 78) -* offset for overflow labels: gftodvi invocation. (line 59) -* older-than, file comparisons: newer invocation. (line 6) -* Omega: TeX extensions. (line 15) -* online Metafont graphics: Online Metafont graphics. - (line 6) -* opcodes, showing DVI: dvitype invocation. (line 56) -* optical font scaling: Font file formats. (line 22) -* option conventions: Option conventions. (line 6) -* origin: pktype invocation. (line 66) -* output directory, specifying <1>: Output file location. - (line 15) -* output directory, specifying: Common options. (line 67) -* output file location: Output file location. - (line 6) -* output files, written by TeX programs: tex invocation. (line 51) -* output_comment for DVI files: tex invocation. (line 120) -* overflow label offset: gftodvi invocation. (line 59) -* packet length: pktype invocation. (line 50) -* page, starting <1>: dvitype invocation. (line 50) -* page, starting: dvicopy invocation. (line 28) -* parsing the first line: Common options. (line 78) -* Pascal, creating from WEB: tangle invocation. (line 6) -* patgen: patgen invocation. (line 6) -* path searching: Path searching. (line 6) -* path searching debugging: Common options. (line 60) -* PDF: TeX extensions. (line 21) -* pdfTeX: TeX extensions. (line 21) -* permissions, legal: Legalisms. (line 6) -* PFA and PFB conversion: Font utilities available elsewhere. - (line 39) -* pfaedit: Font utilities available elsewhere. - (line 30) -* PiCTeX, increasing memory for: Runtime options. (line 20) -* picture expressions: makempx invocation. (line 43) -* pipes, reading and writing: Shell escapes. (line 63) -* pixel height: pktype invocation. (line 62) -* pixel width: pktype invocation. (line 62) -* PK bitmaps from PostScript: Font utilities available elsewhere. - (line 35) -* PK files, explained: Font file formats. (line 40) -* PK files, not output by Metafont: mf invocation. (line 34) -* PK format definition: Font utilities. (line 11) -* PK, converting GF to: gftopk invocation. (line 6) -* PK, converting to GF: pktogf invocation. (line 6) -* pktogf: pktogf invocation. (line 6) -* pktype PK validation: pktype invocation. (line 6) -* pktype.web: Font utilities. (line 11) -* PL files, explained: Font file formats. (line 47) -* plain Metafont, compatibility in MetaPost: Initial MetaPost. - (line 25) -* plain text, converting DVI to: dvitype invocation. (line 6) -* plain text, converting GF to: gftype invocation. (line 6) -* plain text, converting PK to: pktype invocation. (line 6) -* plain text, converting TFM to: tftopl invocation. (line 6) -* plain text, converting VF to: vftovp invocation. (line 6) -* plain.base: Initial Metafont. (line 16) -* plain.bst: Basic BibTeX style files. - (line 11) -* plain.fmt: Initial TeX. (line 15) -* plain.mem: Initial MetaPost. (line 16) -* plain.mft: mft invocation. (line 68) -* pltotf: pltotf invocation. (line 6) -* pool file, writing: tangle invocation. (line 16) -* Poole, Simon: Online Metafont graphics. - (line 50) -* pooltype: pooltype invocation. (line 6) -* portable filenames: \input filenames. (line 41) -* PostScript fonts, and Troff: mpost invocation. (line 73) -* PostScript meets Metafont: MetaPost. (line 6) -* PostScript output: mpost invocation. (line 37) -* PostScript to PK bitmaps: Font utilities available elsewhere. - (line 35) -* PostScript Type 1 font conversion: Font utilities available elsewhere. - (line 39) -* PostScript, and font scaling: Font file formats. (line 22) -* potrace: Font utilities available elsewhere. - (line 46) -* Pragma ADE: Initial MetaPost. (line 33) -* predefined macros and memory dumps: Memory dumps. (line 6) -* prettyprinting Metafont source: mft invocation. (line 6) -* prettyprinting WEB programs: weave invocation. (line 6) -* primitives, new: TeX extensions. (line 10) -* printable characters, specifying: TCX files. (line 88) -* printer characteristics, for Metafont: Modes. (line 6) -* production use: Initial and virgin. (line 20) -* program name, determines memory dump: Determining the memory dump to use. - (line 32) -* program names, special <1>: tex invocation. (line 115) -* program names, special: Common options. (line 45) -* prologues: mpost invocation. (line 117) -* prologues and Troff in MetaPost: makempx invocation. (line 39) -* prologues, and EPSF output: mpost invocation. (line 88) -* proof mode: mf invocation. (line 48) -* proof sheets, of fonts: gftodvi invocation. (line 6) -* property list format: tftopl invocation. (line 44) -* property list, converting TFM to: tftopl invocation. (line 6) -* property list, converting VF to virtual: vftovp invocation. (line 6) -* ps2pk: Font utilities available elsewhere. - (line 35) -* psfonts.map, read by MetaPost: mpost invocation. (line 88) -* PXL files, explained: Font file formats. (line 40) -* pxtoch: Font utilities available elsewhere. - (line 23) -* Raichle, Bernd: MLTeX. (line 6) -* reading, additional: Introduction. (line 59) -* readonly directory, running TeX in: Output file location. - (line 15) -* reallocation of arrays: Runtime options. (line 36) -* redefined character substitutions: \tracingcharsubdef. (line 6) -* reference pixel: pktype invocation. (line 66) -* references: References. (line 6) -* regis: Online Metafont graphics. - (line 39) -* Regis graphics support: Online Metafont graphics. - (line 40) -* regression testing: tex invocation. (line 120) -* repeated rows: pktype invocation. (line 76) -* representation of strings: pooltype invocation. (line 30) -* restricted shell escapes: Shell escapes. (line 6) -* right side bearing <1>: gftype invocation. (line 82) -* right side bearing: pktype invocation. (line 66) -* Rokicki, Tomas: Introduction. (line 41) -* run length encoded bitmaps <1>: gftype invocation. (line 89) -* run length encoded bitmaps: pktype invocation. (line 76) -* runtime options: Runtime options. (line 6) -* scaled pixels <1>: gftype invocation. (line 107) -* scaled pixels: pktype invocation. (line 57) -* scaling of fonts: Font file formats. (line 22) -* scanned images of fonts: Font utilities available elsewhere. - (line 42) -* security, and \openout: tex invocation. (line 51) -* security, and output files: tex invocation. (line 51) -* security, and shell escapes: Shell escapes. (line 6) -* SetColor ditroff command: dmp invocation. (line 15) -* shapes: Metafont. (line 6) -* sharing memory dumps: Hardware and memory dumps. - (line 6) -* shell commands in TeX: Shell escapes. (line 6) -* shell_escape enabling in TeX: Shell escapes. (line 6) -* shell_escape_commands: Shell escapes. (line 52) -* siam.bst: Basic BibTeX style files. - (line 35) -* side bearings <1>: gftype invocation. (line 82) -* side bearings: pktype invocation. (line 66) -* slant font: gftodvi invocation. (line 39) -* slides, producing: Formats. (line 61) -* SliTeX: Formats. (line 61) -* small Metafont memory and modes: Modes. (line 15) -* smode and dynamic Metafont mode definition: Modes. (line 28) -* sockets: IPC and TeX. (line 6) -* space-terminated filenames: \input filenames. (line 10) -* Spiderweb: WEB. (line 14) -* Stallman, Richard: Introduction. (line 51) -* starting page <1>: dvitype invocation. (line 50) -* starting page: dvicopy invocation. (line 28) -* Steele Jr., Guy L.: Hardware and memory dumps. - (line 34) -* stopping at the first error: Common options. (line 41) -* strategy, overall: Introduction. (line 17) -* string numbers, displaying: pooltype invocation. (line 6) -* string pool, writing: tangle invocation. (line 16) -* string representation: pooltype invocation. (line 30) -* style design, for BibTeX: bibtex invocation. (line 45) -* style files: mft invocation. (line 68) -* substitutions of font glyphs: MLTeX. (line 6) -* sun: Online Metafont graphics. - (line 42) -* sun-gfx.c: Online Metafont graphics. - (line 43) -* Suntools: Online Metafont graphics. - (line 43) -* SunView: Online Metafont graphics. - (line 43) -* swap space, as array limit: Runtime options. (line 36) -* swapping bytes: Hardware and memory dumps. - (line 13) -* syntax of TCX files: TCX files. (line 66) -* system C library function: Shell escapes. (line 6) -* system command: Shell escapes. (line 6) -* T1 encoding and ISO input: TCX files. (line 49) -* Tachikawa, Elizabeth: Font file formats. (line 63) -* tangle: tangle invocation. (line 6) -* targets, additional Make: Additional targets. (line 6) -* TCX character translation files: TCX files. (line 6) -* tek: Online Metafont graphics. - (line 47) -* Tektronix: Online Metafont graphics. - (line 48) -* Tektronix 4014: Online Metafont graphics. - (line 51) -* TERM: Online Metafont graphics. - (line 11) -* terminator for filenames: \input filenames. (line 10) -* terse output: bibtex invocation. (line 28) -* TEX: makempx invocation. (line 74) -* tex: tex invocation. (line 6) -* TeX, bibliographies for: bibtex invocation. (line 54) -* TeX, creating from Metafont: mft invocation. (line 6) -* TeX, creating from WEB: weave invocation. (line 6) -* TeX, description of: TeX. (line 6) -* TeX, extensions to: TeX extensions. (line 6) -* TeX, format packages for: Formats. (line 6) -* TeX, initial: Initial TeX. (line 6) -* TeX, input files found: tex invocation. (line 20) -* TeX, invocation: tex invocation. (line 6) -* TeX, Metafont, and MetaPost: Three programs. (line 6) -* TeX, Web2c implementation of: Introduction. (line 9) -* tex.fmt: Initial TeX. (line 15) -* TEXBIB, search path for bib files: bibtex invocation. (line 18) -* TEXEDIT: Editor invocation. (line 10) -* texfonts.map: Path searching. (line 15) -* Texinfo: Formats. (line 47) -* texmf.cnf: Path searching. (line 6) -* texmfmp.c: Online Metafont graphics. - (line 77) -* texmfmp.c and openoutnameok: tex invocation. (line 51) -* TEXMFOUTPUT, used if . unwritable: Output file location. - (line 19) -* texput: tex invocation. (line 35) -* text, extracting from MetaPost input: mpto invocation. (line 6) -* TFM files, converting property lists to: pltotf invocation. (line 6) -* TFM files, explained: Font file formats. (line 13) -* TFM files, memory for: Runtime options. (line 25) -* TFM files, output by Metafont: mf invocation. (line 43) -* TFM files, output by MetaPost: mpost invocation. (line 37) -* TFM width of characters <1>: gftype invocation. (line 113) -* TFM width of characters: pktype invocation. (line 53) -* tftopl: tftopl invocation. (line 6) -* three programs: Three programs. (line 6) -* time and date, in memory dumps: Hardware and memory dumps. - (line 30) -* title font: gftodvi invocation. (line 33) -* toolkits, X: Online Metafont graphics. - (line 60) -* torture tests: Triptrap. (line 6) -* translation file for TeX, specifying: Common options. (line 96) -* translation from WEB to C: Introduction. (line 17) -* trap Make target: Additional targets. (line 41) -* trap test: Triptrap. (line 6) -* trapman.tex: Triptrap. (line 6) -* trchars.adj: dmp invocation. (line 24) -* Trickey, Howard: Introduction. (line 41) -* trip Make target: Additional targets. (line 41) -* trip test: Triptrap. (line 6) -* tripman.tex: Triptrap. (line 6) -* triptrap Make target: Additional targets. (line 41) -* TROFF: makempx invocation. (line 81) -* Troff, and MetaPost: mpost invocation. (line 73) -* Troff, WEB for: WEB. (line 14) -* Trojan horses and TeX programs: tex invocation. (line 51) -* TUGboat bibliography: bibtex invocation. (line 54) -* Type 1 conversion: Font utilities available elsewhere. - (line 39) -* type design, personal: Initial Metafont. (line 33) -* type programs, DVI: dvitype invocation. (line 6) -* type programs, GF: gftype invocation. (line 6) -* type programs, PK: pktype invocation. (line 6) -* type programs, pool: pooltype invocation. (line 6) -* typeface families: Metafont. (line 6) -* typeface specimen sheets: Font utilities available elsewhere. - (line 42) -* typesetting: TeX. (line 6) -* Unicode: TeX extensions. (line 15) -* Unicode input: tex invocation. (line 95) -* uniterm: Online Metafont graphics. - (line 50) -* unsrt.bst: Basic BibTeX style files. - (line 39) -* using local codepage to display messages: Common options. (line 108) -* UTF-8 input: tex invocation. (line 95) -* validation, of DVI files: dvitype invocation. (line 6) -* validation, of GF files: gftype invocation. (line 6) -* validation, of PK files: pktype invocation. (line 6) -* validation, of TFM files: tftopl invocation. (line 6) -* validation, of VF files: vftovp invocation. (line 6) -* verbatimtex MetaPost command: mpto invocation. (line 6) -* verbose BibTeX output, suppressing: bibtex invocation. (line 28) -* verbosity, enabling: Common options. (line 15) -* version number, finding: Common options. (line 18) -* vertical escapement: gftype invocation. (line 107) -* VF files, converting property lists to: vptovf invocation. (line 6) -* vftovp: vftovp invocation. (line 6) -* virgin programs: Initial and virgin. (line 20) -* virtual font creation: Font utilities available elsewhere. - (line 53) -* virtual fonts, expanding: dvicopy invocation. (line 6) -* virtual-fonts.knuth: Font file formats. (line 57) -* virtualfonts.txt: Font file formats. (line 57) -* vptovf: vptovf invocation. (line 6) -* weave: weave invocation. (line 6) -* WEB: WEB. (line 6) -* web environments, and security: Shell escapes. (line 70) -* WEB pool files, displaying: pooltype invocation. (line 6) -* WEB programs, compiling: tangle invocation. (line 6) -* WEB programs, typesetting: weave invocation. (line 6) -* WEB2C, search path for TCX files: TCX files. (line 36) -* Weber, Olaf: Introduction. (line 41) -* webmac.tex: weave invocation. (line 22) -* webman.tex: WEB. (line 14) -* whitespace, in TCX files: TCX files. (line 69) -* whitespace-terminated filenames: \input filenames. (line 10) -* width, device-independent <1>: gftype invocation. (line 113) -* width, device-independent: pktype invocation. (line 53) -* width, in pixels: pktype invocation. (line 62) -* word processor, not: TeX. (line 9) -* writing memory dumps: Creating memory dumps. - (line 6) -* X bitmap fonts: Font utilities available elsewhere. - (line 15) -* X class name for Metafont: Online Metafont graphics. - (line 66) -* x offset: pktype invocation. (line 66) -* X resources: Online Metafont graphics. - (line 66) -* X toolkits and Metafont: Online Metafont graphics. - (line 60) -* x X ditroff device control: dmp invocation. (line 15) -* xampl.bib: bibtex invocation. (line 51) -* xbfe, bitmap font editor: Font utilities available elsewhere. - (line 23) -* xfed, bitmap font editor: Font utilities available elsewhere. - (line 23) -* xfedor, bitmap font editor: Font utilities available elsewhere. - (line 23) -* Xlib: Online Metafont graphics. - (line 56) -* Xlib support: Online Metafont graphics. - (line 60) -* Xt: Online Metafont graphics. - (line 56) -* Xt support: Online Metafont graphics. - (line 60) -* xterm: Online Metafont graphics. - (line 56) -* y offset: pktype invocation. (line 66) -* ~ expansion in filenames: \input filenames. (line 48) - - - -Tag Table: -Node: Top3053 -Node: Introduction4049 -Node: Installation7227 -Node: configure options9391 -Node: Compile-time options11473 -Node: Additional targets12599 -Node: Triptrap13880 -Node: Runtime options15409 -Node: Commonalities17181 -Node: Option conventions17786 -Node: Common options19010 -Node: Path searching23522 -Node: Output file location24544 -Node: Three programs25584 -Node: Initial and virgin26343 -Node: Memory dumps27443 -Node: Creating memory dumps27910 -Node: Determining the memory dump to use29171 -Node: Hardware and memory dumps30795 -Node: Editor invocation33264 -Node: \input filenames33994 -Node: TeX36987 -Node: tex invocation38133 -Node: Initial TeX45465 -Node: Formats46954 -Node: Languages and hyphenation49893 -Node: MLTeX50323 -Node: \charsubdef51818 -Node: \tracingcharsubdef54144 -Node: TCX files54719 -Node: patgen invocation60143 -Node: Shell escapes60860 -Node: IPC and TeX64424 -Node: TeX extensions64994 -Node: Metafont65973 -Node: mf invocation67261 -Node: Initial Metafont71144 -Node: Modes72897 -Node: Online Metafont graphics75152 -Node: gftodvi invocation78425 -Node: mft invocation81247 -Node: MetaPost85302 -Node: mpost invocation86323 -Node: Initial MetaPost91508 -Node: makempx invocation93319 -Node: dvitomp invocation97324 -Node: dmp invocation98095 -Node: mpto invocation102116 -Node: newer invocation103098 -Node: BibTeX104035 -Node: bibtex invocation104396 -Node: Basic BibTeX style files106721 -Node: WEB108063 -Node: tangle invocation109346 -Node: weave invocation111469 -Node: pooltype invocation112877 -Node: DVI utilities114007 -Node: dvicopy invocation114951 -Node: dvitype invocation116249 -Node: dvitype output example118604 -Node: Font utilities121655 -Node: Font file formats122835 -Node: gftopk invocation126134 -Node: pktogf invocation127338 -Node: pktype invocation128517 -Node: gftype invocation131352 -Node: tftopl invocation135868 -Node: pltotf invocation140502 -Node: vftovp invocation141567 -Node: vptovf invocation143851 -Node: Font utilities available elsewhere144905 -Node: Legalisms147313 -Node: References149484 -Node: Index153869 - -End Tag Table |