summaryrefslogtreecommitdiff
path: root/Build/source/texk/web2c/doc
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2020-06-22 22:11:50 +0000
committerKarl Berry <karl@freefriends.org>2020-06-22 22:11:50 +0000
commit5aa316dade254d63421b0d2de32a1812429050af (patch)
treec46c5351a1572f8930fa6b69b30d75fba1875eca /Build/source/texk/web2c/doc
parentebf9dfaee33709f3b0bc05ca517cc0710072637f (diff)
doc updates for expand_depth, etc.
git-svn-id: svn://tug.org/texlive/trunk@55629 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Build/source/texk/web2c/doc')
-rw-r--r--Build/source/texk/web2c/doc/install.texi59
-rw-r--r--Build/source/texk/web2c/doc/ref.txi28
-rw-r--r--Build/source/texk/web2c/doc/web2c.info720
-rw-r--r--Build/source/texk/web2c/doc/web2c.texi278
4 files changed, 564 insertions, 521 deletions
diff --git a/Build/source/texk/web2c/doc/install.texi b/Build/source/texk/web2c/doc/install.texi
index c570b0b0a46..ac3329a83dc 100644
--- a/Build/source/texk/web2c/doc/install.texi
+++ b/Build/source/texk/web2c/doc/install.texi
@@ -67,7 +67,6 @@ as described in the first section below.
* Compile-time options:: Unusual -D's.
* Additional targets:: Breaking down the task.
* Triptrap:: Running the torture tests.
-* Runtime options:: Array sizes and the like.
@end menu
@@ -287,61 +286,3 @@ and @code{mptrap}.
To run simple tests for all the programs as well as the torture tests,
run @samp{make check}. You can compare the output to the distributed
file @file{tests/check.log} if you like.
-
-
-@node Runtime options
-@section Runtime options
-
-@cindex runtime options
-
-@cindex configuration file values
-@cindex array sizes
-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 @file{texmf.cnf} runtime file read by
-Kpathsea (@pxref{Config files,,, kpathsea, Kpathsea}).
-
-Rather than exhaustively listing them here, please see the last section
-of the distributed @file{kpathsea/texmf.cnf}. Some of the more
-interesting values:
-
-@vtable @samp
-@item main_memory
-Total words of memory available, for @TeX{}, Metafont, and MetaPost.
-Must remake the format file after changing.
-
-@item extra_mem_bot
-@cindex boxes, memory for
-@cindex glue, memory for
-@cindex breakpoints, memory for
-@cindex PiC@TeX{}, increasing memory for
-Extra space for ``large'' @TeX{} data structures: boxes, glue,
-breakpoints, et al. If you use PiC@TeX{}, you may well want to set this.
-
-@item font_mem_size
-@cindex TFM files, memory for
-Words of font info available for @TeX{}; this is approximately the total
-size of all TFM files read.
-
-@item hash_extra
-@cindex control sequence names, space for
-@cindex hash table, increasing size of
-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 @code{hash_extra}.
-
-@end vtable
-
-@cindex array limit, fixed
-@cindex swap space, as array limit
-@cindex reallocation of arrays
-@cindex dynamic array allocation
-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 Bib@TeX{} implementation does do dynamic
-reallocation of some arrays.)
diff --git a/Build/source/texk/web2c/doc/ref.txi b/Build/source/texk/web2c/doc/ref.txi
index 95f435dd6b8..7c2dc6bc876 100644
--- a/Build/source/texk/web2c/doc/ref.txi
+++ b/Build/source/texk/web2c/doc/ref.txi
@@ -4,18 +4,13 @@
Neenie Billawala.
Write-white printing engines and tuning fonts with Metafont.
@cite{TUGboat}, 8(1):29--32, April 1987.
-@url{http://tug.org/TUGboat/tb08-1/tb17billawala.pdf}.
-
-@item [GMS94]
-Michel Goossens, Frank Mittelbach, and Alexander Samarin.
-@cite{The @LaTeX{} Companion}.
-Addison-Wesley, Reading, MA, USA, 1994.
+@url{https://tug.org/TUGboat/tb08-1/tb17billawala.pdf}.
@item [Hob89]
John D. Hobby.
A Metafont-like system with PS output.
@cite{TUGboat}, 10(4):505--512, December 1989.
-@url{http://tug.org/metapost}.
+@url{https://tug.org/metapost}.
@item [Hob92]
John D. Hobby.
@@ -38,6 +33,7 @@ An authoritative reference to the C programming language, and a good
Donald E. Knuth and Silvio Levy.
@cite{The CWEB System of Structured Documentation, Version 3.0}.
Addison-Wesley, Reading, MA, USA, 1993.
+@url{https://ctan.org/pkg/cweb}.
@item [Knu84]
Donald E. Knuth.
@@ -89,7 +85,7 @@ This is an updated version of Knuth:1988:ET.
Donald Knuth.
Virtual Fonts: More Fun for Grand Wizards.
@cite{TUGboat}, 11(1):13--23, April 1990.
-@url{http://tug.org/TUGboat/tb11-1/tb27knut.pdf}.
+@url{https://tug.org/TUGboat/tb11-1/tb27knut.pdf}.
@item [Knu92]
Donald E. Knuth.
@@ -102,13 +98,13 @@ Leslie Lamport.
@cite{@LaTeX{}: A Document Preparation System: User's Guide and Reference
Manual}.
Addison-Wesley, Reading, MA, USA, second edition, 1994.
-Reprinted with corrections in 1996.
+Reprinted with corrections, 1996.
@item [Lia83]
Franklin Mark Liang.
Word hy-phen-a-tion by com-pu-ter.
Technical Report STAN-CS-83-977, Stanford University, August 1983.
-@url{http://tug.org/docs/liang/liang-thesis.pdf}.
+@url{https://tug.org/docs/liang/liang-thesis.pdf}.
@item [Mac91]
Pierre A. MacKay.
@@ -119,16 +115,4 @@ In Robert A. Morris and Jacques Andre, editors, @cite{Raster Imaging and
Boston, Oct. 14--16, 1991}, pages 205--215, New York, 1991. Cambridge
University Press.
-@item [Spi89]
-Michael D. Spivak.
-@cite{LAMS@TeX{}, The Synthesis}.
-The @TeX{}plorators Corporation, 3701 W. Alabama, Suite 450-273, Houston, TX
- 77027, USA, 1989.
-
-@item [Spi90]
-Michael D. Spivak.
-@cite{The Joy of @TeX{}---A Gourmet Guide to Typesetting with the
- AMS@TeX{} macro package}.
-American Mathematical Society, Providence, RI, USA, 2nd revised edition, 1990.
-
@c end{thebibliography}
diff --git a/Build/source/texk/web2c/doc/web2c.info b/Build/source/texk/web2c/doc/web2c.info
index 19bf29f3409..513ce70d432 100644
--- a/Build/source/texk/web2c/doc/web2c.info
+++ b/Build/source/texk/web2c/doc/web2c.info
@@ -36,7 +36,7 @@ START-INFO-DIR-ENTRY
* 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.
+* mpost: (web2c)mpost invocation. Generating PostScript.
* patgen: (web2c)patgen invocation. Creating hyphenation patterns.
* pktogf: (web2c)pktogf invocation. Packed to generic fonts.
* pktype: (web2c)pktype invocation. PK to human-readable text.
@@ -58,13 +58,14 @@ 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 2020, released in March 2020.
+corresponds to Web2c version 2020, released in June 2020.
* Menu:
* Introduction:: A brief introduction.
* Installation:: How to compile and install Web2c.
* Commonalities:: Option syntax, standard options, memory dumps.
+* Three programs:: TeX, Metafont, MetaPost have much in common.
* TeX:: Typesetting.
* Metafont:: Typeface design.
* MetaPost:: Technical illustrations.
@@ -82,11 +83,10 @@ File: web2c.info, Node: Introduction, Next: Installation, Prev: Top, Up: Top
1 Introduction
**************
-This manual corresponds to version 2020 of Web2c, released in March
-2020.
+This manual corresponds to version 2020 of Web2c, released in June 2020.
"Web2c" is the name of a TeX implementation, originally for Unix, but
-now also running under DOS, Amiga, and other operating systems. By "TeX
+now also running under various 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
@@ -108,15 +108,15 @@ 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 (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.
+practical implication for redistributors of Web2c is that most of the
+executables are covered by the GNU General Public License or GNU Lesser
+General Public License, and therefore anyone who gets a binary
+distribution must also get the sources, as explained by the terms of the
+GPL (<https://gnu.org/licenses/>. 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
@@ -124,13 +124,14 @@ 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) provided computers and ftp
-access to me for many years. Richard Stallman at the Free Software
+shorter name Web2c. In 1997, Olaf Weber took over, and then in 2006,
+Karl started taking care of it again. No significant development or
+changes have been needed for many years. Dozens of other people have
+contributed; their names are listed in the 'ChangeLog' files.
+
+ Other acknowledgements by Karl: The University of Massachusetts at
+Boston (particularly Rick Martin and Bob Morris) 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
@@ -187,7 +188,6 @@ See also the Web2c home page, <http://www.tug.org/web2c>.
* 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
@@ -325,7 +325,7 @@ distribution (the one containing 'kpathsea/' and 'web2c/'), or in the
(respectively). See the next section.

-File: web2c.info, Node: Triptrap, Next: Runtime options, Prev: Additional targets, Up: Installation
+File: web2c.info, Node: Triptrap, Prev: Additional targets, Up: Installation
2.4 Trip, trap, and mptrap: Torture tests
=========================================
@@ -364,57 +364,13 @@ 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 (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
+File: web2c.info, Node: Commonalities, Next: Three programs, 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.
+so we describe those pieces together, here.
* Menu:
@@ -422,7 +378,6 @@ so we describe all those pieces together, here.
* 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
@@ -588,7 +543,7 @@ 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
+File: web2c.info, Node: Output file location, Prev: Path searching, Up: Commonalities
3.4 Output file location
========================
@@ -618,29 +573,94 @@ files that need to be subsequently read; for input, no suffixes (such as
the input name is simply checked as given.

-File: web2c.info, Node: Three programs, Prev: Output file location, Up: Commonalities
+File: web2c.info, Node: Three programs, Next: TeX, Prev: Commonalities, Up: Top
-3.5 Three programs: Metafont, MetaPost, and TeX
-===============================================
+4 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::.
+Besides the ones here, command-line options and other commonalities are
+described in the previous section.
* Menu:
+* Runtime options:: The 'texmf.cnf' configuration file.
* Initial and virgin:: Making memory dumps vs. production runs.
* Memory dumps:: .fmt/.base files for fast startup.
* Editor invocation:: The 'e' response at errors.
* \input filenames:: Filename delimiters and Kpathsea expansion.

-File: web2c.info, Node: Initial and virgin, Next: Memory dumps, Up: Three programs
+File: web2c.info, Node: Runtime options, Next: Initial and virgin, Up: Three programs
+
+4.1 Runtime options
+===================
+
+Besides the configure- and compile-time options described in the
+installation section (*note Installation::), you can control a number of
+parameters in the 'texmf.cnf' runtime file read by Kpathsea (*note
+(kpathsea)Config files::).
+
+ The main purpose of 'texmf.cnf' is to specify search paths, but array
+sizes and other options are also set there. Most are rather obscure.
+Here are a few 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 (default 0): boxes,
+ glue, breakpoints, et al. If you use PiCTeX, you may well want to
+ set this.
+
+'expand_depth'
+ Limit on recursive expansion calls before TeX aborts (default
+ 10000). If a TeX program does an unterminated recursive expansion,
+ TeX will dutifully expand macros until the system's runtime stack
+ overflows, typically with a segmentation fault (SIGSEGV). This
+ parameter was introduced to minimize the chance of that unpleasant
+ (though not dangerous) crash, instead allowing TeX to quit with a
+ more informative message.
+
+ The crash can still happen, though, if the system has an
+ exceptionally small memory allocation for its stack. There is no
+ quantitative way to determine the limit, and it does not seem worth
+ implementing system-dependent heuristics to guess at the number,
+ since it's highly improbable that any real TeX code will ever need
+ more than 10000 recursive expansions (it has never happened). For
+ the same reason, using the libsigsegv library
+ (<https://gnu.org/s/libsigsegv>) does not seem worth the effort.
+
+'texmf_casefold_search'
+ *Note (kpathsea)Casefolding search::.
+
+ Ideally all arrays would be dynamically expanded as necessary, so the
+only limiting factor would be the amount of swap space available, or
+some configurable limit much larger than can currently be supported.
+
+ 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 true dynamic reallocation
+of some arrays.)
+
+ Nowadays there is rarely a reason to modify the values. But if you
+do wish to modify 'texmf.cnf', in TeX Live the best approach is to put
+your changes, and only your changes at the top of the TL installation
+tree. That is, if the system 'texmf.cnf' is installed in
+'/some/path/to/texlive/YYYY/texmf-dist/web2c/texmf.cnf' is put your
+custom settings in '/some/path/to/texlive/YYY/texmf.cnf', where YYYY is
+the year of installation (if you use that subdirectory; it's the
+default). That way, unrelated changes to the system 'texmf.cnf' can
+happen with normal updates, without affecting your local values.
+
+
+File: web2c.info, Node: Initial and virgin, Next: Memory dumps, Prev: Runtime options, Up: Three programs
-3.5.1 Initial and virgin
-------------------------
+4.2 Initial and virgin
+======================
The TeX and Metafont programs each have two main variants, called
"initial" and "virgin". MetaPost no longer makes this distinction.
@@ -663,8 +683,8 @@ memory dump file.

File: web2c.info, Node: Memory dumps, Next: Editor invocation, Prev: Initial and virgin, Up: Three programs
-3.5.2 Memory dumps
-------------------
+4.3 Memory dumps
+================
In typical use, TeX and Metafont require a large number of macros to be
predefined; therefore, they support "memory dump" files, which can be
@@ -679,8 +699,8 @@ read much more efficiently than ordinary source code.

File: web2c.info, Node: Creating memory dumps, Next: Determining the memory dump to use, Up: Memory dumps
-3.5.2.1 Creating memory dumps
-.............................
+4.3.1 Creating memory dumps
+---------------------------
The programs all create memory dumps in slightly idiosyncratic (thought
substantially similar) way, so we describe the details in separate
@@ -710,8 +730,8 @@ 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
-..........................................
+4.3.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
@@ -744,8 +764,8 @@ programs determine the memory dump to use in the same way:

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
-.................................
+4.3.3 Hardware and memory dumps
+-------------------------------
By default, memory dump files are generally sharable between
architectures of different types; specifically, on machines of different
@@ -803,8 +823,8 @@ References::).

File: web2c.info, Node: Editor invocation, Next: \input filenames, Prev: Memory dumps, Up: Three programs
-3.5.3 Editor invocation
------------------------
+4.4 Editor invocation
+=====================
TeX, Metafont, and MetaPost all (by default) stop and ask for user
intervention at an error. If the input came from a file, and the user
@@ -823,8 +843,8 @@ for the precise values.)

File: web2c.info, Node: \input filenames, Prev: Editor invocation, Up: Three programs
-3.5.4 '\input' filenames
-------------------------
+4.5 '\input' filenames
+======================
TeX, Metafont, and MetaPost source programs can all read other source
files with the '\input' (TeX) and 'input' (MF and MP) primitives:
@@ -859,8 +879,8 @@ instead, add the necessary directories to the appropriate search path.

File: web2c.info, Node: \input quoted filename, Next: \input braced filename, Up: \input filenames
-3.5.4.1 '\input' quoted filename: '\input "some name"'
-......................................................
+4.5.1 '\input' quoted filename: '\input "some name"'
+----------------------------------------------------
As of Web2c version 7.5.3 (2004), double-quote characters can be used to
include spaces or other special characters. In typical use, the '"'
@@ -881,8 +901,8 @@ its '\input' macro, thus:

File: web2c.info, Node: \input braced filename, Next: \input filename caveats, Prev: \input quoted filename, Up: \input filenames
-3.5.4.2 '\input' braced filename: '\input{some name}'
-.....................................................
+4.5.2 '\input' braced filename: '\input{some name}'
+---------------------------------------------------
As of Web2c 2020, '\input' filenames in TeX engines (this does not apply
in Metafont and MetaPost) can also be specified within a TeX group,
@@ -904,8 +924,8 @@ filename.

File: web2c.info, Node: \input filename caveats, Prev: \input braced filename, Up: \input filenames
-3.5.4.3 '\input' filename caveats
-.................................
+4.5.3 '\input' filename caveats
+-------------------------------
The quoting mechanisms just described come into play _after_ TeX has
tokenized and expanded the input. So, multiple spaces and tabs will
@@ -936,9 +956,9 @@ actually use these in a document you have to change their catcodes or
use '\string'.

-File: web2c.info, Node: TeX, Next: Metafont, Prev: Commonalities, Up: Top
+File: web2c.info, Node: TeX, Next: Metafont, Prev: Three programs, Up: Top
-4 TeX: Typesetting
+5 TeX: Typesetting
******************
TeX is a typesetting system: it was especially designed to handle
@@ -965,7 +985,7 @@ Many other books on TeX, introductory and otherwise, are available.

File: web2c.info, Node: tex invocation, Next: Initial TeX, Up: TeX
-4.1 'tex' invocation
+5.1 'tex' invocation
====================
TeX (usually invoked as 'tex') formats the given text and commands, and
@@ -1128,7 +1148,7 @@ the log file has not yet been opened.

File: web2c.info, Node: Initial TeX, Next: Formats, Prev: tex invocation, Up: TeX
-4.2 Initial TeX
+5.2 Initial TeX
===============
The "initial" form of TeX is invoked by 'tex -ini'. It does lengthy
@@ -1158,7 +1178,7 @@ details on TeX formats.

File: web2c.info, Node: Formats, Next: Languages and hyphenation, Prev: Initial TeX, Up: TeX
-4.3 Formats
+5.3 Formats
===========
TeX "formats" are large collections of macros, often dumped into a
@@ -1223,7 +1243,7 @@ slitex

File: web2c.info, Node: Languages and hyphenation, Next: Shell escapes, Prev: Formats, Up: TeX
-4.4 Languages and hyphenation
+5.4 Languages and hyphenation
=============================
TeX supports most natural languages. See also *note TeX extensions: TeX
@@ -1238,20 +1258,23 @@ extensions.

File: web2c.info, Node: MLTeX, Next: TCX files, Up: Languages and hyphenation
-4.4.1 MLTeX: Multi-lingual TeX
+5.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.
+Michael Ferguson and now updated and maintained by Bernd Raichle. With
+the advent of Unicode, it has become obsolete, though it is still
+supported in Web2c in the event of bugs or compilation bugs.
+
+ MLTeX 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
@@ -1273,7 +1296,7 @@ TeX.

File: web2c.info, Node: \charsubdef, Next: \tracingcharsubdef, Up: MLTeX
-4.4.1.1 '\charsubdef': Character substitutions
+5.4.1.1 '\charsubdef': Character substitutions
..............................................
The most important primitive MLTeX adds is '\charsubdef', used in a way
@@ -1322,7 +1345,7 @@ generally useful.)

File: web2c.info, Node: \tracingcharsubdef, Prev: \charsubdef, Up: MLTeX
-4.4.1.2 '\tracingcharsubdef': Substitution diagnostics
+5.4.1.2 '\tracingcharsubdef': Substitution diagnostics
......................................................
To help diagnose problems with '\charsubdef', MLTeX provides a new
@@ -1337,7 +1360,7 @@ be recorded.

File: web2c.info, Node: TCX files, Next: patgen invocation, Prev: MLTeX, Up: Languages and hyphenation
-4.4.2 TCX files: Character translations
+5.4.2 TCX files: Character translations
---------------------------------------
TCX (TeX character translation) files help TeX support direct input of
@@ -1458,7 +1481,7 @@ from the dump is ignored and the data from the file used instead.

File: web2c.info, Node: patgen invocation, Prev: TCX files, Up: Languages and hyphenation
-4.4.3 Patgen: Creating hyphenation patterns
+5.4.3 Patgen: Creating hyphenation patterns
-------------------------------------------
Patgen creates hyphenation patterns from dictionary files for use with
@@ -1479,7 +1502,7 @@ Liang (*note References::), and also the 'patgen.web' source file.

File: web2c.info, Node: Shell escapes, Next: IPC and TeX, Prev: Languages and hyphenation, Up: TeX
-4.5 Shell escapes
+5.5 Shell escapes
=================
TeX can execute "shell escapes", that is, arbitrary shell commands.
@@ -1556,7 +1579,7 @@ 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
+5.6 IPC and TeX
===============
(If anyone uses this feature and needs documentation, write
@@ -1573,7 +1596,7 @@ 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
+5.7 TeX extensions
==================
The base TeX program has been extended in many ways. Here's a partial
@@ -1581,13 +1604,15 @@ list.
e-TeX
Adds many new primitives, including right-to-left typesetting and
- more registers. Now frozen.
+ more registers. Now frozen. More info:
+ <https://ctan.org/pkg/etex>.
Aleph
This adds 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. Aleph is not actively
- maintained.
+ maintained. More info: <https://ctan.org/pkg/aleph>,
+ <https://ctan.org/pkg/omega>.
pdfTeX
Can produce PDF as well as DVI files. It also incorporates the
@@ -1595,20 +1620,28 @@ pdfTeX
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>.
+LuaTeX
+ Embeds the Lua programming language (<http://lua.org>) and opens up
+ the TeX typesetting engine to control from Lua. Also supports
+ Unicode input and OpenType- and system fonts. Home page:
+ <http://luatex.org>.
XeTeX
Combines support for Unicode input and OpenType- and system fonts
with the capabilities of pdfTeX. Home page:
- <http://tug.org/xetex>.
+ <https://tug.org/xetex>.
+
+pTeX
+upTeX
+ With additional support for Japanese; pTeX was the original engine,
+ and upTeX has native Unicode support and thus is more useful for
+ Chinese and Korean. More info: <https://ctan.org/pkg/ptex>,
+ <https://ctan.org/pkg/uptex>.

File: web2c.info, Node: Metafont, Next: MetaPost, Prev: TeX, Up: Top
-5 Metafont: Creating typeface families
+6 Metafont: Creating typeface families
**************************************
Metafont is a system for producing shapes; it was designed for producing
@@ -1637,7 +1670,7 @@ complete description of the Metafont language, see 'The METAFONTbook'

File: web2c.info, Node: mf invocation, Next: Initial Metafont, Up: Metafont
-5.1 'mf' invocation
+6.1 'mf' invocation
===================
Metafont (usually invoked as 'mf') reads character definitions specified
@@ -1727,7 +1760,7 @@ usual. For example:

File: web2c.info, Node: Initial Metafont, Next: Modes, Prev: mf invocation, Up: Metafont
-5.2 Initial Metafont
+6.2 Initial Metafont
====================
'inimf' is the "initial" form of Metafont, which does lengthy
@@ -1762,7 +1795,7 @@ course.

File: web2c.info, Node: Modes, Next: Online Metafont graphics, Prev: Initial Metafont, Up: Metafont
-5.3 Modes: Device definitions for Metafont
+6.3 Modes: Device definitions for Metafont
==========================================
Running Metafont and creating Metafont base files requires information
@@ -1812,7 +1845,7 @@ conventions:

File: web2c.info, Node: Online Metafont graphics, Next: gftodvi invocation, Prev: Modes, Up: Metafont
-5.4 Online Metafont graphics
+6.4 Online Metafont graphics
============================
The Web2c implementation of Metafont can do online graphics with a
@@ -1897,7 +1930,7 @@ 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
+6.5 GFtoDVI: Character proofs of fonts
======================================
GFtoDVI makes "proof sheets" from a GF bitmap file as output by, for
@@ -1962,7 +1995,7 @@ process as usual.

File: web2c.info, Node: mft invocation, Prev: gftodvi invocation, Up: Metafont
-5.6 MFT: Prettyprinting Metafont source
+6.6 MFT: Prettyprinting Metafont source
=======================================
MFT translates a Metafont program into a TeX document suitable for
@@ -2047,13 +2080,14 @@ print these properly.

File: web2c.info, Node: MetaPost, Next: BibTeX, Prev: Metafont, Up: Top
-6 MetaPost: Creating technical illustrations
-********************************************
+7 MetaPost: Generating PostScript
+*********************************
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.
+illustrations, but can also be used to create PostScript or OpenType
+fonts (<https://ctan.org/pkg/metatype1>).
MetaPost also provides for arbitrary integration of text and graphics
in a natural way, using any typesetter (TeX and Troff are both
@@ -2068,7 +2102,7 @@ supported) and a number of other subsidiary programs, described below.

File: web2c.info, Node: mpost invocation, Next: Initial MetaPost, Up: MetaPost
-6.1 'mpost' invocation
+7.1 'mpost' invocation
======================
MetaPost (installed as 'mpost') reads a series of pictures specified in
@@ -2189,7 +2223,7 @@ opens a security hole. *Note tex invocation::.

File: web2c.info, Node: Initial MetaPost, Next: dvitomp invocation, Prev: mpost invocation, Up: MetaPost
-6.2 Initial MetaPost
+7.2 Initial MetaPost
====================
As of MetaPost 1.504 (TeX Live 2011), MetaPost no longer dumps '.mem'
@@ -2211,7 +2245,7 @@ GFtoDVI (*note gftodvi invocation::).

File: web2c.info, Node: dvitomp invocation, Prev: Initial MetaPost, Up: MetaPost
-6.3 DVItoMP: DVI to MPX conversion
+7.3 DVItoMP: DVI to MPX conversion
==================================
DVItoMP converts DVI files into low-level MetaPost commands in a
@@ -2231,7 +2265,7 @@ NAME' and 'color pop', outputting them as 'withcolor' MetaPost commands.

File: web2c.info, Node: BibTeX, Next: WEB, Prev: MetaPost, Up: Top
-7 BibTeX: Bibliographies
+8 BibTeX: Bibliographies
************************
BibTeX automates much of the job of typesetting bibliographies, and
@@ -2245,7 +2279,7 @@ makes bibliography entries reusable in many different contexts.

File: web2c.info, Node: bibtex invocation, Next: Basic BibTeX style files, Up: BibTeX
-7.1 BibTeX invocation
+8.1 BibTeX invocation
=====================
BibTeX creates a printable bibliography ('.bbl') file from references in
@@ -2306,7 +2340,7 @@ macros. BibTeX searches for '.bib' files using the 'BIBINPUTS' and

File: web2c.info, Node: Basic BibTeX style files, Prev: bibtex invocation, Up: BibTeX
-7.2 Basic BibTeX style files
+8.2 Basic BibTeX style files
============================
Here are descriptions of the four standard and four semi-standard basic
@@ -2350,7 +2384,7 @@ CTAN info, *note (kpathsea)unixtex.ftp::).

File: web2c.info, Node: WEB, Next: DVI utilities, Prev: BibTeX, Up: Top
-8 WEB: Literate programming
+9 WEB: Literate programming
***************************
"WEB" languages allow you to write a single source file that can produce
@@ -2380,7 +2414,7 @@ available in many other places, of course).

File: web2c.info, Node: tangle invocation, Next: weave invocation, Up: WEB
-8.1 Tangle: Translate WEB to Pascal
+9.1 Tangle: Translate WEB to Pascal
===================================
Tangle creates a compilable Pascal program from a WEB source file (*note
@@ -2433,7 +2467,7 @@ semicolons when this can be done conveniently.

File: web2c.info, Node: weave invocation, Next: pooltype invocation, Prev: tangle invocation, Up: WEB
-8.2 Weave: Translate WEB to TeX
+9.2 Weave: Translate WEB to TeX
===============================
Weave creates a TeX document from a WEB source file (*note WEB::),
@@ -2465,7 +2499,7 @@ change in the change file).

File: web2c.info, Node: pooltype invocation, Prev: weave invocation, Up: WEB
-8.3 Pooltype: Display WEB pool files
+9.3 Pooltype: Display WEB pool files
====================================
Pooltype shows the so-called "string number" of each string in a WEB
@@ -2500,8 +2534,8 @@ output.

File: web2c.info, Node: DVI utilities, Next: Font utilities, Prev: WEB, Up: Top
-9 DVI utilities
-***************
+10 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
@@ -2525,8 +2559,8 @@ drivers; they perform generic utility functions.

File: web2c.info, Node: dvicopy invocation, Next: dvitype invocation, Up: DVI utilities
-9.1 DVIcopy: Canonicalize virtual font references
-=================================================
+10.1 DVIcopy: Canonicalize virtual font references
+==================================================
DVIcopy reads a DVI file, expands any references to virtual fonts (*note
(dvips)Virtual fonts::) to base fonts, and writes the resulting DVI
@@ -2558,8 +2592,8 @@ standard output if OUTDVI is not specified.

File: web2c.info, Node: dvitype invocation, Prev: dvicopy invocation, Up: DVI utilities
-9.2 DVItype: Plain text transliteration of DVI files
-====================================================
+10.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
@@ -2619,8 +2653,8 @@ program.

File: web2c.info, Node: dvitype output example, Up: dvitype invocation
-9.2.1 DVItype output example
-----------------------------
+10.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
@@ -2697,7 +2731,7 @@ example in 'The TeXbook', with '-output-level=4' and '-show-opcodes' on.

File: web2c.info, Node: Font utilities, Next: Legalisms, Prev: DVI utilities, Up: Top
-10 Font utilities
+11 Font utilities
*****************
The Web2c programs described here convert between various TeX-related
@@ -2725,7 +2759,7 @@ mentioned below are in the source files that read them; 'pktype.web',

File: web2c.info, Node: Font file formats, Next: gftopk invocation, Up: Font utilities
-10.1 Font file formats
+11.1 Font file formats
======================
(For another perspective on this, *note (dvips)Font concepts::).
@@ -2790,7 +2824,7 @@ 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
+11.2 GFtoPK: Generic to packed font conversion
==============================================
GFtoPK converts a generic font (GF) file output by, for example,
@@ -2820,7 +2854,7 @@ 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
+11.3 PKtoGF: Packed to generic font conversion
==============================================
PKtoGF converts a packed font (PK) file to a generic font (GF) file.
@@ -2849,7 +2883,7 @@ 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
+11.4 PKtype: Plain text transliteration of packed fonts
=======================================================
PKtype translates a packed font (PK) bitmap file (as output by GFtoPK,
@@ -2928,7 +2962,7 @@ Explanation:

File: web2c.info, Node: gftype invocation, Next: tftopl invocation, Prev: pktype invocation, Up: Font utilities
-10.5 GFtype: Plain text transliteration of generic fonts
+11.5 GFtype: Plain text transliteration of generic fonts
========================================================
GFtype translates a generic font (GF) bitmap file (as output by
@@ -3047,7 +3081,7 @@ Explanation:

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
+11.6 TFtoPL: TeX font metric to property list conversion
========================================================
TFtoPL translates a TeX font metric (TFM, *note (dvips)Metric files::)
@@ -3165,7 +3199,7 @@ translation of 'cmr10.tfm':

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
+11.7 PLtoTF: Property list to TeX font metric conversion
========================================================
PLtoTF translates a property list file (as output by TFtoPL, for
@@ -3189,7 +3223,7 @@ Common options::).

File: web2c.info, Node: vftovp invocation, Next: vptovf invocation, Prev: pltotf invocation, Up: Font utilities
-10.8 VFtoVP: Virtual font to virtual property lists
+11.8 VFtoVP: Virtual font to virtual property lists
===================================================
VFtoVP translates a virtual font metric (VF, *note (dvips)Virtual
@@ -3235,7 +3269,7 @@ VFtoVP (see the next section).

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
+11.9 VPtoVF: Virtual property lists to virtual font
===================================================
VPtoVF translates a virtual property list file (as output by VFtoVP, for
@@ -3258,7 +3292,7 @@ Common options::).

File: web2c.info, Node: Font utilities available elsewhere, Prev: vptovf invocation, Up: Font utilities
-10.10 Font utilities available elsewhere
+11.10 Font utilities available elsewhere
========================================
The Web2c complement of font utilities merely implements a few basic
@@ -3319,42 +3353,27 @@ 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 (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.
+ The Stanford TeX programs and Web2c system itself are in the public
+domain (<https://tug.org/texlive/copying.html>). The sources may be
+copied verbatim, or used as the starting point of new software under
+different names; however, per the wishes of the authors, they should be
+modified only through a '.ch' file, but this is in the nature of a
+development request rather than a legal requirement.
+
+ MLTeX, pdfTeX, LuaTeX, XeTeX, and all the other derived engines have
+used various license terms for their additions to the base code, often
+the GPL (see <https://www.gnu.org/licenses/#GPL> or (for example) the
+file 'web2c/pdftexdir/COPYINGv2'. They also mostly make use of
+additional libraries with their own (compatible) terms. Please see each
+program's sources.
+
+ The Kpathsea library is covered by the GNU Lesser General Public
+License (*note (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
+<https://gnu.org/licenses/#LGPL> or the file
+'kpathsea/COPYING.LESSERv2'.

File: web2c.info, Node: References, Next: Index, Prev: Legalisms, Up: Top
@@ -3380,92 +3399,81 @@ Appendix B References
7. [Bil87] Neenie Billawala. Write-white printing engines and tuning
fonts with Metafont. 'TUGboat', 8(1):29-32, April 1987.
- <http://tug.org/TUGboat/tb08-1/tb17billawala.pdf>.
-
- 8. [GMS94] Michel Goossens, Frank Mittelbach, and Alexander Samarin.
- 'The LaTeX Companion'. Addison-Wesley, Reading, MA, USA, 1994.
+ <https://tug.org/TUGboat/tb08-1/tb17billawala.pdf>.
- 9. [Hob89] John D. Hobby. A Metafont-like system with PS output.
+ 8. [Hob89] John D. Hobby. A Metafont-like system with PS output.
'TUGboat', 10(4):505-512, December 1989.
- <http://tug.org/metapost>.
+ <https://tug.org/metapost>.
- 10. [Hob92] John D. Hobby. A User's Manual for MetaPost. Technical
+ 9. [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
+ 10. [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
+ 11. [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
+ 12. [KL93] Donald E. Knuth and Silvio Levy. 'The CWEB System of
Structured Documentation, Version 3.0'. Addison-Wesley, Reading,
- MA, USA, 1993.
+ MA, USA, 1993. <https://ctan.org/pkg/cweb>.
- 14. [Knu84] Donald E. Knuth. A torture test for TeX. Report No.
+ 13. [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.
+ 14. [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
+ 15. [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
+ 16. [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
+ 17. [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
+ 18. [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
+ 19. [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
+ 20. [Knu89] Donald E. Knuth. The errors of TeX. 'Software--Practice
and Experience', 19(7):607-681, July 1989. This is an updated
version of Knuth:1988:ET.
- 22. [Knu90] Donald Knuth. Virtual Fonts: More Fun for Grand Wizards.
+ 21. [Knu90] Donald Knuth. Virtual Fonts: More Fun for Grand Wizards.
'TUGboat', 11(1):13-23, April 1990.
- <http://tug.org/TUGboat/tb11-1/tb27knut.pdf>.
+ <https://tug.org/TUGboat/tb11-1/tb27knut.pdf>.
- 23. [Knu92] Donald E. Knuth. 'Literate Programming'. CSLI Lecture
+ 22. [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:
+ 23. [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.
+ USA, second edition, 1994. Reprinted with corrections, 1996.
- 25. [Lia83] Franklin Mark Liang. Word hy-phen-a-tion by com-pu-ter.
+ 24. [Lia83] Franklin Mark Liang. Word hy-phen-a-tion by com-pu-ter.
Technical Report STAN-CS-83-977, Stanford University, August 1983.
- <http://tug.org/docs/liang/liang-thesis.pdf>.
+ <https://tug.org/docs/liang/liang-thesis.pdf>.
- 26. [Mac91] Pierre A. MacKay. Looking at the pixels: Quality control
+ 25. [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
@@ -3661,7 +3669,7 @@ Index
(line 12)
* afmtopl: Font utilities available elsewhere.
(line 12)
-* Aleph: TeX extensions. (line 14)
+* Aleph: TeX extensions. (line 15)
* aliases for fonts: Path searching. (line 14)
* alpha.bst: Basic BibTeX style files.
(line 22)
@@ -3671,7 +3679,7 @@ Index
(line 25)
* architecture dependencies: Hardware and memory dumps.
(line 6)
-* array limit, fixed: Runtime options. (line 35)
+* array limit, fixed: Runtime options. (line 45)
* array sizes: Runtime options. (line 6)
* assembly language routines: Compile-time options.
(line 21)
@@ -3693,7 +3701,7 @@ Index
* BDF and GF conversion: Font utilities available elsewhere.
(line 15)
* beginfig: mpost invocation. (line 35)
-* Berry, Karl: Introduction. (line 42)
+* Berry, Karl: Introduction. (line 41)
* BIBINPUTS, search path for bib files: bibtex invocation. (line 18)
* bibliographies, creating: BibTeX. (line 6)
* bibliography: References. (line 6)
@@ -3711,7 +3719,7 @@ Index
* braced filename for \input: \input braced filename.
(line 6)
* breakpoints, memory for: Runtime options. (line 20)
-* Breitenlohner, Peter: Introduction. (line 9)
+* Breitenlohner, Peter: Introduction. (line 8)
* BSTINPUTS, search path for bst files: bibtex invocation. (line 18)
* btex for MetaPost labels: mpost invocation. (line 48)
* btxdoc.bib: bibtex invocation. (line 52)
@@ -3764,7 +3772,6 @@ Index
* 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)
@@ -3783,7 +3790,7 @@ Index
* cross-references, omitting: weave invocation. (line 22)
* current directory, used for output: Output file location.
(line 6)
-* Curtis, Pavel: Introduction. (line 42)
+* Curtis, Pavel: Introduction. (line 41)
* Cweb: WEB. (line 12)
* CWEB: WEB. (line 12)
* date and time, in memory dumps: Hardware and memory dumps.
@@ -3823,7 +3830,7 @@ Index
* dx horizontal escapement: pktype invocation. (line 57)
* dx horizontal escapement <1>: gftype invocation. (line 106)
* dy vertical escapement: gftype invocation. (line 106)
-* dynamic array allocation: Runtime options. (line 35)
+* dynamic array allocation: Runtime options. (line 45)
* 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)
@@ -3852,6 +3859,8 @@ Index
* 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)
+* expand_depth: Runtime options. (line 24)
+* expansion limit, recursive: Runtime options. (line 25)
* expansion, and \input filenames: \input filename caveats.
(line 6)
* extensions to TeX: TeX extensions. (line 6)
@@ -3896,14 +3905,13 @@ Index
* fonts, basic: Installation. (line 33)
* fontutils: Font utilities available elsewhere.
(line 42)
-* font_mem_size: Runtime options. (line 24)
* format files: Initial TeX. (line 13)
* formats for TeX: Formats. (line 6)
* formats Make target: Additional targets. (line 17)
* fraction routines: Compile-time options.
(line 21)
* Free Software Foundation documentation system: Formats. (line 47)
-* freedom of Web2c: Introduction. (line 23)
+* freedom of Web2c: Introduction. (line 22)
* ftp.math.utah.edu: bibtex invocation. (line 58)
* generating source specials: tex invocation. (line 133)
* geometric designs: Metafont. (line 6)
@@ -3937,17 +3945,15 @@ Index
(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 95)
* height, in pixels: pktype invocation. (line 62)
* help, online: Common options. (line 11)
-* Henry, Patrick: Introduction. (line 23)
+* Henry, Patrick: Introduction. (line 22)
* Herberts, Mathias: Online Metafont graphics.
(line 20)
* hex character codes, in TCX files: TCX files. (line 77)
-* history: Introduction. (line 42)
-* Hobby, John: Introduction. (line 9)
+* history: Introduction. (line 41)
+* Hobby, John: Introduction. (line 8)
* horizontal escapement: pktype invocation. (line 57)
* horizontal escapement <1>: gftype invocation. (line 106)
* hp2627: Online Metafont graphics.
@@ -3959,11 +3965,11 @@ Index
* 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 20)
+* hypertext: TeX extensions. (line 22)
* hyphenation and languages: Languages and hyphenation.
(line 6)
* hyphenation patterns, creating: patgen invocation. (line 6)
-* ice cream: Introduction. (line 23)
+* ice cream: Introduction. (line 22)
* identifier case: tangle invocation. (line 35)
* identifier collisions: tangle invocation. (line 46)
* identifier length: tangle invocation. (line 27)
@@ -3996,7 +4002,7 @@ Index
* job name: Common options. (line 55)
* kerning table, in TFM files: tftopl invocation. (line 101)
* keyboard character code, translating: TCX files. (line 101)
-* Knuth, Donald E.: Introduction. (line 9)
+* Knuth, Donald E.: Introduction. (line 8)
* Knuth, Donald E. <1>: mft invocation. (line 56)
* KPATHSEA_DEBUG: Common options. (line 59)
* KRN property: tftopl invocation. (line 101)
@@ -4011,7 +4017,8 @@ Index
* left side bearing: pktype invocation. (line 66)
* left side bearing <1>: gftype invocation. (line 82)
* legalisms: Legalisms. (line 6)
-* licensing terms: Introduction. (line 23)
+* libsigsegv library: Runtime options. (line 33)
+* licensing terms: Introduction. (line 22)
* LIG property: tftopl invocation. (line 101)
* ligature table, in TFM files: tftopl invocation. (line 101)
* LIGTABLE property: tftopl invocation. (line 101)
@@ -4021,9 +4028,10 @@ Index
* literate programming: WEB. (line 6)
* LittleEndian machines: Hardware and memory dumps.
(line 6)
+* location of texmf.cnf in TeX Live: Runtime options. (line 56)
* log file, BibTeX: bibtex invocation. (line 14)
-* Lua: TeX extensions. (line 26)
-* luaTeX: TeX extensions. (line 26)
+* Lua: TeX extensions. (line 28)
+* LuaTeX: TeX extensions. (line 28)
* machine dependencies: Hardware and memory dumps.
(line 6)
* machine-readable, converting property lists to: pltotf invocation.
@@ -4092,7 +4100,7 @@ Index
* MFTERM: Online Metafont graphics.
(line 11)
* mftmac.tex: mft invocation. (line 6)
-* micro-typography: TeX extensions. (line 20)
+* micro-typography: TeX extensions. (line 22)
* mktexmf, disabling: mf invocation. (line 24)
* mktextfM, disabling: tex invocation. (line 41)
* mltex: MLTeX. (line 6)
@@ -4102,7 +4110,8 @@ Index
* modes.mf recommended modes file: Modes. (line 10)
* mode_def: Modes. (line 15)
* mode_setup: Modes. (line 15)
-* Morgan, Tim: Introduction. (line 42)
+* modifying texmf.cnf in TeX Live: Runtime options. (line 56)
+* Morgan, Tim: Introduction. (line 41)
* Morris, Bob: Introduction. (line 52)
* MPEDIT: Editor invocation. (line 10)
* mpgraph.ps: mpost invocation. (line 18)
@@ -4133,6 +4142,7 @@ Index
(line 12)
* octal character codes, in TCX files: TCX files. (line 77)
* offset for overflow labels: gftodvi invocation. (line 59)
+* Omega: TeX extensions. (line 15)
* online Metafont graphics: Online Metafont graphics.
(line 6)
* opcodes, showing DVI: dvitype invocation. (line 52)
@@ -4147,6 +4157,7 @@ Index
* output files, written by TeX programs: tex invocation. (line 48)
* output_comment for DVI files: tex invocation. (line 112)
* overflow label offset: gftodvi invocation. (line 59)
+* overflow, of runtime stack: Runtime options. (line 25)
* packet length: pktype invocation. (line 50)
* page, starting: dvicopy invocation. (line 28)
* page, starting <1>: dvitype invocation. (line 46)
@@ -4155,9 +4166,9 @@ Index
* patgen: patgen invocation. (line 6)
* path searching: Path searching. (line 6)
* path searching debugging: Common options. (line 59)
-* PDF: TeX extensions. (line 20)
+* PDF: TeX extensions. (line 22)
* PDF, and .mps files: mpost invocation. (line 86)
-* pdfTeX: TeX extensions. (line 20)
+* pdfTeX: TeX extensions. (line 22)
* permissions, legal: Legalisms. (line 6)
* PFA and PFB conversion: Font utilities available elsewhere.
(line 39)
@@ -4228,6 +4239,7 @@ Index
* ps2pk: Font utilities available elsewhere.
(line 35)
* psfonts.map, read by MetaPost: mpost invocation. (line 80)
+* pTeX: TeX extensions. (line 40)
* PXL files, explained: Font file formats. (line 39)
* pxtoch: Font utilities available elsewhere.
(line 23)
@@ -4239,7 +4251,8 @@ Index
(line 15)
* readonly directory, running TeX in <1>: Output file location.
(line 19)
-* reallocation of arrays: Runtime options. (line 35)
+* reallocation of arrays: Runtime options. (line 45)
+* recursive expansion limit: Runtime options. (line 25)
* redefined character substitutions: \tracingcharsubdef. (line 6)
* reference pixel: pktype invocation. (line 66)
* references: References. (line 6)
@@ -4253,10 +4266,11 @@ Index
* restricted shell escapes: Shell escapes. (line 6)
* right side bearing: pktype invocation. (line 66)
* right side bearing <1>: gftype invocation. (line 82)
-* Rokicki, Tomas: Introduction. (line 42)
+* Rokicki, Tomas: Introduction. (line 41)
* run length encoded bitmaps: pktype invocation. (line 76)
* run length encoded bitmaps <1>: gftype invocation. (line 89)
* runtime options: Runtime options. (line 6)
+* runtime stack overflow: Runtime options. (line 25)
* scaled pixels: pktype invocation. (line 57)
* scaled pixels <1>: gftype invocation. (line 106)
* scaling of fonts: Font file formats. (line 21)
@@ -4266,6 +4280,7 @@ Index
* security, and shell escapes: Shell escapes. (line 6)
* security, and write: mpost invocation. (line 92)
* security, and \openout: tex invocation. (line 48)
+* segmentation fault: Runtime options. (line 25)
* shapes: Metafont. (line 6)
* sharing memory dumps: Hardware and memory dumps.
(line 6)
@@ -4276,6 +4291,7 @@ Index
(line 35)
* side bearings: pktype invocation. (line 66)
* side bearings <1>: gftype invocation. (line 82)
+* SIGSEGV: Runtime options. (line 25)
* slant font: gftodvi invocation. (line 39)
* slides, producing: Formats. (line 61)
* SliTeX: Formats. (line 61)
@@ -4290,7 +4306,7 @@ Index
* Steele Jr., Guy L.: Hardware and memory dumps.
(line 34)
* stopping at the first error: Common options. (line 41)
-* strategy, overall: Introduction. (line 17)
+* strategy, overall: Introduction. (line 16)
* string numbers, displaying: pooltype invocation. (line 6)
* string pool, writing: tangle invocation. (line 16)
* string representation: pooltype invocation. (line 30)
@@ -4305,7 +4321,7 @@ Index
(line 43)
* SunView: Online Metafont graphics.
(line 43)
-* swap space, as array limit: Runtime options. (line 35)
+* swap space, as array limit: Runtime options. (line 45)
* swapping bytes: Hardware and memory dumps.
(line 13)
* syntax of TCX files: TCX files. (line 65)
@@ -4318,6 +4334,7 @@ Index
* tangle: tangle invocation. (line 6)
* targets, additional Make: Additional targets. (line 6)
* TCX character translation files: TCX files. (line 6)
+* technical illustrations, creating: MetaPost. (line 6)
* tek: Online Metafont graphics.
(line 47)
* Tektronix: Online Metafont graphics.
@@ -4339,23 +4356,26 @@ Index
* 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, Web2c implementation of: Introduction. (line 8)
* tex.fmt: Initial TeX. (line 13)
* TEXBIB, search path for bib files: bibtex invocation. (line 18)
* TEXEDIT: Editor invocation. (line 10)
* texfonts.map: Path searching. (line 14)
* Texinfo: Formats. (line 47)
* texmf.cnf: Path searching. (line 6)
+* texmf.cnf <1>: Runtime options. (line 6)
+* texmf.cnf for editors: Editor invocation. (line 10)
+* texmf.cnf for shell escapes: Shell escapes. (line 6)
* texmfmp.c: Online Metafont graphics.
(line 79)
* TEXMFOUTPUT, used for reading: Output file location.
(line 25)
* TEXMFOUTPUT, used if . unwritable: Output file location.
(line 19)
+* texmf_casefold_search: Runtime options. (line 42)
* texput: tex invocation. (line 33)
* TFM files, converting property lists to: pltotf invocation. (line 6)
* TFM files, explained: Font file formats. (line 12)
-* 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 35)
* TFM width of characters: pktype invocation. (line 53)
@@ -4371,16 +4391,17 @@ Index
(line 59)
* torture tests: Triptrap. (line 6)
* translation file for TeX, specifying: Common options. (line 98)
-* translation from WEB to C: Introduction. (line 17)
+* translation from WEB to C: Introduction. (line 16)
* trap Make target: Additional targets. (line 41)
* trap test: Triptrap. (line 6)
* trapman.tex: Triptrap. (line 6)
-* Trickey, Howard: Introduction. (line 42)
+* 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, and MetaPost: mpost invocation. (line 65)
+* troff, supported in MetaPost: MetaPost. (line 12)
* Troff, WEB for: WEB. (line 12)
* Trojan horses and TeX programs: tex invocation. (line 48)
* TUGboat bibliography: bibtex invocation. (line 58)
@@ -4395,13 +4416,14 @@ Index
* typeface specimen sheets: Font utilities available elsewhere.
(line 42)
* typesetting: TeX. (line 6)
-* Unicode: TeX extensions. (line 14)
-* Unicode <1>: TeX extensions. (line 31)
+* Unicode: TeX extensions. (line 15)
+* Unicode <1>: TeX extensions. (line 34)
* Unicode input: tex invocation. (line 86)
* uniterm: Online Metafont graphics.
(line 50)
* unsrt.bst: Basic BibTeX style files.
(line 39)
+* upTeX: TeX extensions. (line 40)
* UTF-8 input: tex invocation. (line 86)
* validation, of DVI files: dvitype invocation. (line 6)
* validation, of GF files: gftype invocation. (line 6)
@@ -4428,7 +4450,7 @@ Index
* WEB programs, compiling: tangle invocation. (line 6)
* WEB programs, typesetting: weave invocation. (line 6)
* WEB2C, search path for TCX files: TCX files. (line 35)
-* Weber, Olaf: Introduction. (line 42)
+* Weber, Olaf: Introduction. (line 41)
* webmac.tex: weave invocation. (line 22)
* webman.tex: WEB. (line 12)
* whitespace, in TCX files: TCX files. (line 68)
@@ -4451,7 +4473,7 @@ Index
* xampl.bib: bibtex invocation. (line 55)
* xbfe, bitmap font editor: Font utilities available elsewhere.
(line 23)
-* XeTeX: TeX extensions. (line 31)
+* XeTeX: TeX extensions. (line 34)
* xfed, bitmap font editor: Font utilities available elsewhere.
(line 23)
* xfedor, bitmap font editor: Font utilities available elsewhere.
@@ -4471,79 +4493,79 @@ Index

Tag Table:
-Node: Top2765
-Node: Introduction3760
-Node: Installation6918
-Node: configure options9020
-Node: Compile-time options11042
-Node: Additional targets12144
-Node: Triptrap13421
-Node: Runtime options14948
-Node: Commonalities16706
-Node: Option conventions17307
-Node: Common options18530
-Node: Path searching22910
-Node: Output file location23882
-Node: Three programs25207
-Node: Initial and virgin25973
-Node: Memory dumps26902
-Node: Creating memory dumps27358
-Node: Determining the memory dump to use28569
-Node: Hardware and memory dumps30150
-Node: Editor invocation32600
-Node: \input filenames33467
-Node: \input quoted filename35012
-Node: \input braced filename35793
-Node: \input filename caveats36727
-Node: TeX38245
-Node: tex invocation39396
-Node: Initial TeX46299
-Node: Formats47663
-Node: Languages and hyphenation50589
-Node: MLTeX51019
-Node: \charsubdef52507
-Node: \tracingcharsubdef54830
-Node: TCX files55405
-Node: patgen invocation60845
-Node: Shell escapes61551
-Node: IPC and TeX65131
-Node: TeX extensions65701
-Node: Metafont66832
-Node: mf invocation68120
-Node: Initial Metafont71957
-Node: Modes73587
-Node: Online Metafont graphics75837
-Node: gftodvi invocation79262
-Node: mft invocation82082
-Node: MetaPost86080
-Node: mpost invocation86842
-Node: Initial MetaPost92018
-Node: dvitomp invocation92940
-Node: BibTeX93605
-Node: bibtex invocation93966
-Node: Basic BibTeX style files96440
-Node: WEB97770
-Node: tangle invocation98979
-Node: weave invocation101102
-Node: pooltype invocation102509
-Node: DVI utilities103639
-Node: dvicopy invocation104571
-Node: dvitype invocation105854
-Node: dvitype output example108183
-Node: Font utilities111234
-Node: Font file formats112414
-Node: gftopk invocation115683
-Node: pktogf invocation116874
-Node: pktype invocation118040
-Node: gftype invocation120863
-Node: tftopl invocation125366
-Node: pltotf invocation129959
-Node: vftovp invocation131010
-Node: vptovf invocation133245
-Node: Font utilities available elsewhere134272
-Node: Legalisms136652
-Node: References138806
-Node: Index143373
+Node: Top2759
+Node: Introduction3830
+Node: Installation7155
+Node: configure options9199
+Node: Compile-time options11221
+Node: Additional targets12323
+Node: Triptrap13600
+Node: Commonalities15103
+Node: Option conventions15636
+Node: Common options16859
+Node: Path searching21239
+Node: Output file location22211
+Node: Three programs23513
+Node: Runtime options24220
+Node: Initial and virgin27361
+Node: Memory dumps28310
+Node: Creating memory dumps28762
+Node: Determining the memory dump to use29969
+Node: Hardware and memory dumps31546
+Node: Editor invocation33992
+Node: \input filenames34855
+Node: \input quoted filename36396
+Node: \input braced filename37173
+Node: \input filename caveats38103
+Node: TeX39617
+Node: tex invocation40769
+Node: Initial TeX47672
+Node: Formats49036
+Node: Languages and hyphenation51962
+Node: MLTeX52392
+Node: \charsubdef54020
+Node: \tracingcharsubdef56343
+Node: TCX files56918
+Node: patgen invocation62358
+Node: Shell escapes63064
+Node: IPC and TeX66644
+Node: TeX extensions67214
+Node: Metafont68764
+Node: mf invocation70052
+Node: Initial Metafont73889
+Node: Modes75519
+Node: Online Metafont graphics77769
+Node: gftodvi invocation81194
+Node: mft invocation84014
+Node: MetaPost88012
+Node: mpost invocation88848
+Node: Initial MetaPost94024
+Node: dvitomp invocation94946
+Node: BibTeX95611
+Node: bibtex invocation95972
+Node: Basic BibTeX style files98446
+Node: WEB99776
+Node: tangle invocation100985
+Node: weave invocation103108
+Node: pooltype invocation104515
+Node: DVI utilities105645
+Node: dvicopy invocation106579
+Node: dvitype invocation107864
+Node: dvitype output example110195
+Node: Font utilities113248
+Node: Font file formats114428
+Node: gftopk invocation117697
+Node: pktogf invocation118888
+Node: pktype invocation120054
+Node: gftype invocation122877
+Node: tftopl invocation127380
+Node: pltotf invocation131973
+Node: vftovp invocation133024
+Node: vptovf invocation135259
+Node: Font utilities available elsewhere136286
+Node: Legalisms138666
+Node: References140112
+Node: Index144200

End Tag Table
diff --git a/Build/source/texk/web2c/doc/web2c.texi b/Build/source/texk/web2c/doc/web2c.texi
index d44a2e480b2..41a3f29418a 100644
--- a/Build/source/texk/web2c/doc/web2c.texi
+++ b/Build/source/texk/web2c/doc/web2c.texi
@@ -12,7 +12,7 @@ The latest version is available from ftp://ftp.tug.org/tex/texinfo.tex.}
@end tex
@set version 2020
-@set month-year March 2020
+@set month-year June 2020
@c Define new indices for commands in auxiliary files, filenames, and options.
@defcodeindex cm
@@ -44,7 +44,7 @@ The latest version is available from ftp://ftp.tug.org/tex/texinfo.tex.}
* 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.
+* mpost: (web2c)mpost invocation. Generating PostScript.
* patgen: (web2c)patgen invocation. Creating hyphenation patterns.
* pktogf: (web2c)pktogf invocation. Packed to generic fonts.
* pktype: (web2c)pktype invocation. PK to human-readable text.
@@ -115,6 +115,7 @@ corresponds to Web2c version @value{version}, released in
* Introduction:: A brief introduction.
* Installation:: How to compile and install Web2c.
* Commonalities:: Option syntax, standard options, memory dumps.
+* Three programs:: TeX, Metafont, MetaPost have much in common.
* TeX:: Typesetting.
* Metafont:: Typeface design.
* MetaPost:: Technical illustrations.
@@ -141,8 +142,8 @@ This manual corresponds to version @value{version} of Web2c, released in
@cindex @TeX{}, Web2c implementation of
@cindex Hobby, John
@cindex Breitenlohner, Peter
-@dfn{Web2c} is the name of a @TeX{} implementation, originally for Unix,
-but now also running under DOS, Amiga, and other operating systems. By
+@dfn{Web2c} is the name of a @TeX{} implementation, originally for
+Unix, but now also running under various operating systems. By
@dfn{@TeX{} implementation}, we mean all of the standard programs
developed by the Stanford @TeX{} project directed by Donald E. Knuth:
Metafont, DVItype, GFtoDVI, Bib@TeX{}, Tangle, etc., as well as @TeX{}
@@ -170,14 +171,15 @@ kpathsea, Kpathsea}, 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 (@pxref{Copying, , , kpathsea, Kpathsea}). The
-GPL covers the Web2c executables, including @code{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
+practical implication for redistributors of Web2c is that most of the
+executables are covered by the GNU General Public License or GNU
+Lesser General Public License, and therefore anyone who gets a binary
+distribution must also get the sources, as explained by the terms of
+the GPL (@url{https://gnu.org/licenses/}. The GPL covers the Web2c
+executables, including @code{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.
@cindex history
@@ -189,19 +191,21 @@ covered by the GPL.
@cindex Weber, Olaf
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
-@file{ChangeLog} files.
+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,
+and then in 2006, Karl started taking care of it again. No
+significant development or changes have been needed for many
+years. Dozens of other people have contributed; their names are listed
+in the @file{ChangeLog} files.
@cindex acknowledgements
@cindex Martin, Rick
@cindex Morris, Bob
@cindex Stallman, Richard
-Other acknowledgements: The University of Massachusetts at Boston
+Other acknowledgements by Karl: The University of Massachusetts at Boston
(particularly Rick Martin and Bob Morris) 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
@@ -222,14 +226,13 @@ Further reading: @xref{References}.
@cindex commonalities
Many aspects of the @TeX{} system are the same among more than one
-program, so we describe all those pieces together, here.
+program, so we describe 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.
@end menu
@@ -507,7 +510,7 @@ simply checked as given.
@node Three programs
-@section Three programs: Metafont, MetaPost, and @TeX{}
+@chapter Three programs: Metafont, MetaPost, and @TeX{}
@cindex three programs
@cindex @TeX{}, Metafont, and MetaPost
@@ -515,12 +518,11 @@ simply checked as given.
@cindex MetaPost, @TeX{}, and Metafont
@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
-@ref{Runtime options}.
+Besides the ones here, command-line options and other commonalities
+are described in the previous section.
@menu
+* Runtime options:: The @file{texmf.cnf} configuration file.
* Initial and virgin:: Making memory dumps vs. production runs.
* Memory dumps:: .fmt/.base files for fast startup.
* Editor invocation:: The `e' response at errors.
@@ -528,8 +530,99 @@ control some array sizes and other features are described in
@end menu
+@node Runtime options
+@section Runtime options
+
+@cindex runtime options
+
+@cindex configuration file values
+@cindex array sizes
+@flindex texmf.cnf
+Besides the configure- and compile-time options described in the
+installation section (@pxref{Installation}), you can control a number
+of parameters in the @file{texmf.cnf} runtime file read by Kpathsea
+(@pxref{Config files,,, kpathsea, Kpathsea}).
+
+The main purpose of @file{texmf.cnf} is to specify search paths, but
+array sizes and other options are also set there. Most are rather
+obscure. Here are a few of the more interesting values:
+
+@vtable @samp
+@item main_memory
+Total words of memory available, for @TeX{}, Metafont, and MetaPost.
+Must remake the format file after changing.
+
+@item extra_mem_bot
+@cindex boxes, memory for
+@cindex glue, memory for
+@cindex breakpoints, memory for
+@cindex PiC@TeX{}, increasing memory for
+Extra space for ``large'' @TeX{} data structures (default 0): boxes,
+glue, breakpoints, et al. If you use PiC@TeX{}, you may well want to
+set this.
+
+@item expand_depth
+@cindex recursive expansion limit
+@cindex expansion limit, recursive
+@cindex runtime stack overflow
+@cindex overflow, of runtime stack
+@cindex segmentation fault
+@vindex SIGSEGV
+Limit on recursive expansion calls before @TeX{} aborts (default
+10000). If a @TeX{} program does an unterminated recursive expansion,
+@TeX{} will dutifully expand macros until the system's runtime stack
+overflows, typically with a segmentation fault (SIGSEGV). This
+parameter was introduced to minimize the chance of that unpleasant
+(though not dangerous) crash, instead allowing @TeX{} to quit with a
+more informative message.
+
+@pindex libsigsegv @r{library}
+The crash can still happen, though, if the system has an exceptionally
+small memory allocation for its stack. There is no quantitative way to
+determine the limit, and it does not seem worth implementing
+system-dependent heuristics to guess at the number, since it's highly
+improbable that any real @TeX{} code will ever need more than 10000
+recursive expansions (it has never happened). For the same reason,
+using the libsigsegv library (@url{https://gnu.org/s/libsigsegv}) does
+not seem worth the effort.
+
+@item texmf_casefold_search
+@xref{Casefolding search,,, kpathsea, Kpathsea}.
+
+@end vtable
+
+@cindex array limit, fixed
+@cindex swap space, as array limit
+@cindex reallocation of arrays
+@cindex dynamic array allocation
+Ideally all arrays would be dynamically expanded as necessary, so the
+only limiting factor would be the amount of swap space available, or
+some configurable limit much larger than can currently be supported.
+
+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 Bib@TeX{} implementation does do true
+dynamic reallocation of some arrays.)
+
+@cindex modifying @file{texmf.cnf} in @TeX{} Live
+@cindex location of @file{texmf.cnf} in @TeX{} Live
+Nowadays there is rarely a reason to modify the values. But if you do
+wish to modify @file{texmf.cnf}, in @TeX{} Live the best approach is
+to put your changes, and only your changes at the top of the TL
+installation tree. That is, if the system @file{texmf.cnf} is
+installed in
+@file{/some/path/to/texlive/YYYY/texmf-dist/web2c/texmf.cnf} is put
+your custom settings in @file{/some/path/to/texlive/YYY/texmf.cnf},
+where @var{YYYY} is the year of installation (if you use that
+subdirectory; it's the default). That way, unrelated changes to the
+system @file{texmf.cnf} can happen with normal updates, without
+affecting your local values.
+
+
@node Initial and virgin
-@subsection Initial and virgin
+@section Initial and virgin
@cindex executables, shared initial and virgin
The @TeX{} and Metafont programs each have two main variants, called
@@ -564,7 +657,7 @@ memory dump file.
@node Memory dumps
-@subsection Memory dumps
+@section Memory dumps
@cindex memory dumps
@@ -584,7 +677,7 @@ code.
@node Creating memory dumps
-@subsubsection Creating memory dumps
+@subsection Creating memory dumps
@cindex memory dumps, creating
@cindex creating memory dumps
@@ -620,7 +713,7 @@ difficulties.
@node Determining the memory dump to use
-@subsubsection Determining the memory dump to use
+@subsection Determining the memory dump to use
@cindex memory dump to use, determining
@cindex fmt file, determining
@@ -675,7 +768,7 @@ will be used.
@node Hardware and memory dumps
-@subsubsection Hardware and memory dumps
+@subsection Hardware and memory dumps
@cindex hardware and memory dumps
@cindex memory dumps and hardware
@@ -758,7 +851,7 @@ main ()
@node Editor invocation
-@subsection Editor invocation
+@section Editor invocation
@cindex editor invoked at error
@cindex errors, editor invoked at
@@ -772,6 +865,7 @@ responds with @kbd{e} or @kbd{E}, the program invokes an editor.
@vindex MFEDIT
@vindex MPEDIT
@opindex --with-editor=@var{cmd}
+@flindex texmf.cnf @r{for editors}
Specifying @samp{--with-editor=@var{cmd}} to @code{configure} sets the
default editor command string to @var{cmd}. The environment
variables/configuration values @code{TEXEDIT}, @code{MFEDIT}, and
@@ -785,7 +879,7 @@ and @samp{%s} is replaced by the name of the current input file.
@node \input filenames
-@subsection @code{\input} filenames
+@section @code{\input} filenames
@cindex input filenames
@cindex filename conventions, in input files
@@ -835,7 +929,7 @@ to the appropriate search path.
@node \input quoted filename
-@subsubsection @code{\input} quoted filename: @code{\input "some name"}
+@subsection @code{\input} quoted filename: @code{\input "some name"}
@cindex @code{\input} quoted filename
@cindex quoted filename for @code{\input}
@@ -864,7 +958,7 @@ There is no way to quote the quote character.
@node \input braced filename
-@subsubsection @code{\input} braced filename: @code{\input@{some name@}}
+@subsection @code{\input} braced filename: @code{\input@{some name@}}
@cindex @code{\input} braced (grouped) filename
@cindex braced filename for @code{\input}
@@ -891,7 +985,7 @@ within the filename.
@node \input filename caveats
-@subsubsection @code{\input} filename caveats
+@subsection @code{\input} filename caveats
@cindex @code{\input} filename caveats
@cindex caveats for @code{\input} filenames
@@ -1330,15 +1424,20 @@ the @samp{slides} document class, along with the @samp{beamer},
@cindex substitutions of font glyphs
Multi-lingual @TeX{} (@code{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
+Raichle. With the advent of Unicode, it has become obsolete, though
+it is still supported in Web2c in the event of bugs or compilation
+bugs.
+
+ML@TeX{} 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 @code{\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 ML@TeX{} 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.
+This substitution is automatically done behind the scenes, if
+necessary, and thus ML@TeX{} 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.
ML@TeX{} works at @file{.fmt}-creation time: the basic idea is to
specify the @samp{-mltex} option to @TeX{} when you @code{\dump} a
@@ -1660,6 +1759,7 @@ options}).
@findex \immediate\write18
@findex \write18 @r{shell escape extension}
@findex system @r{C library function}
+@flindex texmf.cnf @r{for shell escapes}
@TeX{} can execute @dfn{shell escapes}, that is, arbitrary shell
commands. Although tremendously useful, this also has obvious
@@ -1788,14 +1888,16 @@ partial list.
@cindex e-@TeX{}
@cindex primitives, new
Adds many new primitives, including right-to-left typesetting and more
-registers. Now frozen.
+registers. Now frozen. More info: @url{https://ctan.org/pkg/etex}.
@item Aleph
@cindex Aleph
+@cindex Omega
@cindex Unicode
This adds 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{}. Aleph is not actively maintained.
+More info: @url{https://ctan.org/pkg/aleph}, @url{https://ctan.org/pkg/omega}.
@item pdf@TeX{}
@cindex pdf@TeX{}
@@ -1807,20 +1909,29 @@ e-@TeX{} extensions, new primitives for hypertext and
micro-typography, reading/writing from pipes, and much more. Home
page: @url{http://pdftex.org}.
-@item lua@TeX{}
-@cindex lua@TeX{}
+@item Lua@TeX{}
+@cindex Lua@TeX{}
@cindex Lua
-Based on pdf@TeX{}, this also embeds the Lua programming language
-(@url{http://lua.org}) and opens up the @TeX{} typesetting engine to
-control from Lua. Home page: @url{http://luatex.org}.
+Embeds the Lua programming language (@url{http://lua.org}) and opens
+up the @TeX{} typesetting engine to control from Lua. Also supports
+Unicode input and OpenType- and system fonts. Home page:
+@url{http://luatex.org}.
@item Xe@TeX{}
@cindex Xe@TeX{}
@cindex Unicode
Combines support for Unicode input and OpenType- and system fonts
with the capabilities of pdf@TeX{}.
-Home page: @url{http://tug.org/xetex}.
-
+Home page: @url{https://tug.org/xetex}.
+
+@item p@TeX{}
+@itemx up@TeX{}
+@cindex p@TeX{}
+@cindex up@TeX{}
+With additional support for Japanese; p@TeX{} was the original engine,
+and up@TeX{} has native Unicode support and thus is more useful for
+Chinese and Korean. More info: @url{https://ctan.org/pkg/ptex},
+@url{https://ctan.org/pkg/uptex}.
@end table
@@ -2435,16 +2546,19 @@ configure @TeX{} to print these properly.
@node MetaPost
-@chapter MetaPost: Creating technical illustrations
+@chapter MetaPost: Generating PostScript
@cindex MetaPost
@cindex PostScript meets Metafont
@cindex Metafont meets PostScript
+@cindex technical illustrations, creating
MetaPost is a picture-drawing language similar to Metafont
(@pxref{Metafont}), but instead of outputting bitmaps in a ``font'', it
outputs PostScript commands. It's primarily intended for creating
-technical illustrations.
+technical illustrations, but can also be used to create PostScript or
+OpenType fonts (@url{https://ctan.org/pkg/metatype1}).
+@pindex troff@r{, supported in MetaPost}
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.
@@ -4162,45 +4276,27 @@ Virtual font creation: @file{@var{CTAN:}/fonts/utilities/fontinst}.
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.
-
-@file{tex.web}, the ML@TeX{} code, @file{mf.web}, and @file{bibtex.web},
-are copyrighted by their authors. They may be copied verbatim, but may
-be modified only through a @file{.ch} file.
-
-MetaPost-related files, including @file{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 (@pxref{Introduction,,, kpathsea, Kpathsea}). Therefore,
-the @emph{binaries} resulting from a standard Web2c compilation are also
+The Stanford @TeX{} programs and Web2c system itself are in the public
+domain (@url{https://tug.org/texlive/copying.html}). The sources may
+be copied verbatim, or used as the starting point of new software
+under different names; however, per the wishes of the authors, they
+should be modified only through a @file{.ch} file, but this is in the
+nature of a development request rather than a legal requirement.
+
+ML@TeX{}, pdf@TeX{}, Lua@TeX{}, Xe@TeX{}, and all the other derived
+engines have used various license terms for their additions to the
+base code, often the GPL (see @url{https://www.gnu.org/licenses/#GPL}
+or (for example) the file @file{web2c/pdftexdir/COPYINGv2}. They also
+mostly make use of additional libraries with their own (compatible)
+terms. Please see each program's sources.
+
+The Kpathsea library is covered by the GNU Lesser General Public
+License (@pxref{Introduction,,, kpathsea, Kpathsea}). Therefore, the
+@emph{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 @file{LGPL} for complete details on the LGPL.
-
-The following notice must be included by the terms of the MetaPost
-copyright.
-
-@quotation
-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.
-@end quotation
-
+binaries. See @url{https://gnu.org/licenses/#LGPL} or the file
+@file{kpathsea/COPYING.LESSERv2}.
@node References
@appendix References