Last updated: Fri Feb 7 11:00:13 CET 2003 This directory contains some proposals for extensions to TeX which I have implemented in a series of change files. These have only been tested with web2c 7.2 as contained on the TeX live III CD. glue/glue.ch and glue/glue-post-web2c.ch: Adapt Knuth's glue.web to replace all cases of floating-point arithmetic in TeX by fixed-point counterparts. To make this change file work, you must also apply the patch glue/glueratio.patch and compile with XCFLAGS=-DHAVE_GLUERATIO_TYPE. hyphenation/classes.ch: Implements hyphen classes. There is a corresponding change file patgen-hyf.ch which enables patgen to produce patterns for multiple hyphen classes. hyphenation/count.ch: Implements demerits for more than 2 consecutive hyphens. (The changes in classes.ch and count.ch are described in more detail in hyphenation/hyphenation.tex. There is a combined change file hyphenation/hyphenation.ch.) math/accent.ch: Implements nestable and under math accents. math/cramp.ch: Implements primitives to switch to cramped styles. math/radical.ch: Implements generalized radicals with a left and right delimiter. math/fraction.ch: Implements \mathstyle and \fraction. (There is a combined change file math/math.ch.) hz/hz.ch and hz/hz-post-web2c.ch: Implement the hz-algorithm, ie using variants of a font to achieve better justification. hz/hz-glue.ch; Removes the floating-point operations reintroduced by hz.ch. This can only be used in conjunction with glue.ch. margin/margin.ch and margin/margin-post-web2c.ch: Implement \marginchar for hanging punctuation and hyphenation and optical margin correction. This can currently only be used *after* hz.ch. These change files can all be used together with the three change files in this directory in the following order (assuming web2c.ch is the tex.ch change file coming with web2c): pre.ch classes.ch count.ch accent.ch cramp.ch radical.ch fraction.ch glue.ch hz.ch hz-glue.ch margin.ch pre-web2c.ch web2c.ch post-web2c.ch glue-post-web2c.ch hz-post-web2c.ch margin-post-web2c.ch Since this list is rather long, you will need more than one run of tie/webmerge to create a single change file. Alternatively, it should be possible to use only a subset of the above list. There are also some example files. All example files are present with tex, dvi and log files. To avoid messing with the fonts, you can also use the ps versions (generated with dvips -D600 -mode ljfive). examples/example1/*: Multiple hyphen classes. This file must be processed with initex, since it uses \patterns. For this example, the log file is more interesting than the dvi file. examples/example2/*: Demerits for more than 2 consecutive hyphens. LaTeX file. examples/example3/*: The various math features. This LaTeX file uses the fonts tf5, tf7, and tf10 whose source can be found in the same directory. examples/example4/*: The hz-algorithm. This LaTeX file uses the fonts hz1cmr10,...,hz6cmr10 whose source can be found in the same directory. There are also some gifs which compare glyphs at different extension factors. examples/example5/*: Hanging punctuation/hyphenation. The LaTeX file uses the font ocmr10, whose source can be found in the same directory. examples/example6/*: Another example showing the hz-Algorithm. This time demonstrating a prototype for a LaTeX-interface integrated with NFSS. I'd be glad to hear comments on the ideas and their implementation! Matthias Clasen email@example.com
Download the contents of this package in one zip archive (217.8k).
tex-extensions – Proposals for extensions to TeX
A bundle of proposals for extensions to TeX, implemented as change files to web2c v7.2. The extesions cover:
- replacing floating point by integer arithmetic, in glue calculations;
- introducing hyphenation classes (with a corresponding change to patgen);
- implenting demerits for more than 2 consecutive hyphens;
- providing ‘nestable’ and ‘under’ math accents; a primitive to switch to ‘cramped’ styles; provides generalised radicals with a left- and right-delimiter; implementation work for using the hz algorithm;
- marginal tokens for hanging punctuation and hyphens.
Several files offering examples of use are also provided.