From 5aa316dade254d63421b0d2de32a1812429050af Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Mon, 22 Jun 2020 22:11:50 +0000 Subject: doc updates for expand_depth, etc. git-svn-id: svn://tug.org/texlive/trunk@55629 c570f23f-e606-0410-a88d-b1316a301751 --- Build/source/texk/web2c/ChangeLog | 9 + Build/source/texk/web2c/doc/install.texi | 59 --- Build/source/texk/web2c/doc/ref.txi | 28 +- Build/source/texk/web2c/doc/web2c.info | 720 ++++++++++++++-------------- Build/source/texk/web2c/doc/web2c.texi | 278 +++++++---- Build/source/texk/web2c/pdftexdir/COPYINGv2 | 339 +++++++++++++ 6 files changed, 912 insertions(+), 521 deletions(-) create mode 100644 Build/source/texk/web2c/pdftexdir/COPYINGv2 (limited to 'Build/source/texk/web2c') diff --git a/Build/source/texk/web2c/ChangeLog b/Build/source/texk/web2c/ChangeLog index 1a3b547037d..97740344552 100644 --- a/Build/source/texk/web2c/ChangeLog +++ b/Build/source/texk/web2c/ChangeLog @@ -1,3 +1,12 @@ +2020-06-22 Karl Berry + + * doc/web2c.texi (Runtime options): move from install.texi, + and mention expand_depth and texmf_casefold_search. + (Three programs): make its own chapter to reduce sectioning depth. + Various historical and current updates, e.g., mention (u)pTeX. + * doc/install.texi (Runtime options): moved. + * doc/ref.txi: remove some older references, use https for urls. + 2020-06-20 Andreas Scherer * cwebboot.cin: Regenerate boot module. 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 (. 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, . * 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 + () 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: + . 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: , + . 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: . -luaTeX - Based on pdfTeX, this also embeds the Lua programming language - () and opens up the TeX typesetting engine to - control from Lua. Home page: . +LuaTeX + Embeds the Lua programming language () and opens up + the TeX typesetting engine to control from Lua. Also supports + Unicode input and OpenType- and system fonts. Home page: + . XeTeX Combines support for Unicode input and OpenType- and system fonts with the capabilities of pdfTeX. Home page: - . + . + +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: , + .  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 (). 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 (). 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 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 + 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. - . - - 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. + 8. [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 + 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. . - 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. - . + . - 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. - . + . - 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 diff --git a/Build/source/texk/web2c/pdftexdir/COPYINGv2 b/Build/source/texk/web2c/pdftexdir/COPYINGv2 new file mode 100644 index 00000000000..d159169d105 --- /dev/null +++ b/Build/source/texk/web2c/pdftexdir/COPYINGv2 @@ -0,0 +1,339 @@ + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Lesser General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + , 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. -- cgit v1.2.3