diff options
-rw-r--r-- | Master/texmf-dist/doc/etex/base/etex_gen.tex | 62 |
1 files changed, 31 insertions, 31 deletions
diff --git a/Master/texmf-dist/doc/etex/base/etex_gen.tex b/Master/texmf-dist/doc/etex/base/etex_gen.tex index 795aaf36884..c9dd037c4e2 100644 --- a/Master/texmf-dist/doc/etex/base/etex_gen.tex +++ b/Master/texmf-dist/doc/etex/base/etex_gen.tex @@ -1,4 +1,4 @@ -% etex_gen.tex --- How to generate e-TeX --- last modified 22 Oct 1996 +% etex_gen.tex --- How to generate e-TeX --- last modified 06 Mar 1998 \font\eighttt= cmtt8 \font\eightrm= cmr8 @@ -22,7 +22,7 @@ \vfill \centerline{\titlefont How to generate \eTeX} \vskip 6pt -\centerline{({\sl Version 1, October 1996\/})} +\centerline{({\sl Version 2, March 1998\/})} \vskip 18pt \centerline{by The \NTS\ Team} \vskip 6pt @@ -31,7 +31,7 @@ \centerline{Philip Taylor, RHBNC, University of London} \vfill \centerline{\vbox{\hsize 4in -\noindent Given an implementaion of \TeX82 for a particular system, this +\noindent Given an implementation of \TeX82 for a particular system, this report describes how to generate a corresponding implementation of \eTeX.}} \vskip 24pt @@ -60,10 +60,10 @@ Deutschsprachige Anwendervereinigung \TeX\ e.V.\hfil\break \section Introduction. Let us first review the process of generating an implementation of \TeX82 for a particular system from the source files as, e.g., described -in the \.{WEB} manual [1]. The system independent source file +in the \.{WEB} manual [1]. The system-independent source file \.{tex.web} must remain unmodified. All changes to \.{tex.web} necessary for a particular operating system and\slash or compiler are to -be collected in a system dependent change file, typically named +be collected in a system-dependent change file, typically named \.{tex.ch}. Both files \.{tex.web} and \.{tex.ch} are effectively merged when input by the \.{WEB} system programs \.{WEAVE} and \.{TANGLE}. When \.{WEAVE} processes this merged input, a file @@ -91,11 +91,11 @@ the same executable program used with different run time options. \vskip 24pt plus 24pt \section Generating \eTeX. The process of generating \eTeX\ is essentially the same as that of -generating \TeX\ as described above. Conceptually there is a system -independent source file \.{etex.web} and a system dependent change file -\.{etex.sys}. Processing these two files by \.{TANGLE} yields a string -pool file \.{etex.pool} as well as a Pascal file \.{etex.pas}, whilst -processing by \.{WEAVE} produces a \TeX\ source file, \.{etex.tex}. +generating \TeX\ as described above. Conceptually there is a +system-independent source file \.{etex.web} and a system-dependent change +file \.{etex.sys}. Processing these two files by \.{TANGLE} yields a +string pool file \.{etex.pool} as well as a Pascal file \.{etex.pas}, +whilst processing by \.{WEAVE} produces a \TeX\ source file, \.{etex.tex}. It may, however, be necessary to increase some of the constants defined in \.{TANGLE} and \.{WEAVE}. The following values should suffice in @@ -115,15 +115,15 @@ The source file \.{etex.web} for \eTeX\ does not, however, exist as a physical file. It is the hypothetical file obtained by applying the changes in the actual source file \.{etex.ch} to \.{tex.web}. Thus \.{etex.web} inherits the bulk of code from \.{tex.web}, whilst the -system independent source file \.{etex.ch} for \eTeX\ defines the +system-independent source file \.{etex.ch} for \eTeX\ defines the differences between \.{etex.web} and \.{tex.web}. In order to generate an implementation of \eTeX\ two change files have to be applied to \.{tex.web}, one after the other (the actual file names may differ): $$ \vcenter{\halign{#\hfil&\qquad\.{#}\hfil&\qquad#\hfil\cr -0.&tex.web&system independent \.{WEB} source for \TeX\cr -1.&etex.ch&system independent changes for \eTeX\cr -2.&etex.sys&system dependent changes for \eTeX\cr +0.&tex.web&system-independent \.{WEB} source for \TeX\cr +1.&etex.ch&system-independent changes for \eTeX\cr +2.&etex.sys&system-dependent changes for \eTeX\cr }} $$ @@ -144,7 +144,7 @@ Every implementor of \eTeX\ is responsible for creating and maintaining a suitable \.{etex.sys} in the same way as every implementor of \TeX\ is responsible for creating and maintaining \.{tex.ch}. Since the bulk of code in \.{etex.web} is identical to that in \.{tex.web} the bulk of -the system dependent changes in \.{etex.sys} for a particular system +the system-dependent changes in \.{etex.sys} for a particular system will be identical to those in \.{tex.ch} for the same system. In the following we try to give some hints where \.{etex.sys} for a particular system might deviate from the corresponding \.{tex.ch}. @@ -161,18 +161,18 @@ in addition to those occupied by strings from the pool file. It is, therefore, sufficient to increase \\{pool\_size} (or reduce \\{string\_vacancies}) by the number of \eTeX's additional string characters and to increase \\{max\_strings} by the number of \eTeX's -additional strings. The later will, however, be unnecessary for most +additional strings. The latter will, however, be unnecessary for most implementations as \\{max\_strings} is usually increased substantially beyond its standard value in order to accommodate large \TeX\ macro packages. -For Version~1 of \eTeX, there are less than 100 additional strings with -less that 1000 additional string characters. The precise numbers can be +For Version~2 of \eTeX, there are about 100 additional strings with +about 1500 additional string characters. The precise numbers can be obtained by running \.{POOLTYPE} on \TeX's and \eTeX's pool files (\.{POOLTYPE} reports the total number of strings and string characters in a pool file). -Next, \.{etex.sys} may contain a system dependent modification of the +Next, \.{etex.sys} may contain a system-dependent modification of the \\{eTeX\_banner} string. The modified \\{eTeX\_banner} string must contain `\.{e-TeX}' as well as the \eTeX\ version number. Note, however, that the \\{banner} string modified by \.{tex.ch} will not be @@ -185,24 +185,24 @@ different pool file name and\slash or format file extension (see below). Finally, \.{etex.sys} will necessarily deviate whenever \.{etex.ch} and \.{tex.ch} try to change the same piece of \.{WEB} code or when the -system independent \eTeX\ changes from \.{etex.ch} and the system -dependent \TeX\ changes from \.{tex.ch} interfere in some other way. In -case of any such interference implementors must first of all determine +system-independent \eTeX\ changes from \.{etex.ch} and the +system-dependent \TeX\ changes from \.{tex.ch} interfere in some other way. +In case of any such interference implementors must first of all determine how to combine the respective changes from \.{etex.ch} and \.{tex.ch} in order to obtain \eTeX's functionality for a particular system. Obviously, this process cannot be automated since it requires human insight. The \NTS\ team has tried to formulate \.{etex.ch} such that -interferences with system dependent change files \.{tex.ch} are +interferences with system-dependent change files \.{tex.ch} are unlikely. Suggestions by implementors how any remaining such interferences could be avoided by a reformulation of \.{etex.ch} will -be taken under serious consideration. Such interferences can be further -reduced by reformulating the system dependent change file \.{tex.ch} for +be taken into serious consideration. Such interferences can be further +reduced by reformulating the system-dependent change file \.{tex.ch} for \TeX, e.g.\ by reducing the range of change entries from entire modules to the pieces of code that are actually changed. -Implementors might prefer to maintain the system dependent change file +Implementors might prefer to maintain the system-dependent change file \.{etex.sys} not as a physical file but as a hypothetical file defined through its deviation from \.{tex.ch}. If there are no interferences of the kind mentioned above, then the effect of applying the changes from @@ -211,10 +211,10 @@ achieved by applying 3 change files, one after the other, to \.{tex.web} (using some tool such as \.{TIE}, \.{PATCHWEB}, or \.{WEBMERGE}): $$ \vcenter{\halign{#\hfil&\qquad\.{#}\hfil&\qquad#\hfil\cr -0.&tex.web&system independent \.{WEB} source for \TeX\cr -1.&etex.ch&system independent changes for \eTeX\cr -2.&tex.ch&system dependent changes for \TeX\cr -3.&tex.ech&additional system dependent changes for \eTeX\cr +0.&tex.web&system-independent \.{WEB} source for \TeX\cr +1.&etex.ch&system-independent changes for \eTeX\cr +2.&tex.ch&system-dependent changes for \TeX\cr +3.&tex.ech&additional system-dependent changes for \eTeX\cr }} $$ The third change file \.{tex.ech} will be rather short and contains just @@ -236,7 +236,7 @@ choice is, of course, an extended feature of \eTeX. Once \eTeX\ has chosen compatibility mode it is, however, a legitimate implementation of \TeX\ (assuming the \TeX\ implementation itself is legitimate). The only differences between \eTeX\ in compatibility mode and \TeX\ are -those allowed by D.E.~Knuth [2] between different implementations of +those allowed by D.~E.~Knuth [2] between different implementations of \TeX. An \.{e-TRIP} test suite [3] defines the criteria by which a program can |