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.
Implements hyphen classes. There is a corresponding change file
patgen-hyf.ch which enables patgen to produce patterns for multiple
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
Implements nestable and under math accents.
Implements primitives to switch to cramped styles.
Implements generalized radicals with a left and right delimiter.
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
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*
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).
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.
Demerits for more than 2 consecutive hyphens. LaTeX file.
The various math features. This LaTeX file uses the fonts
tf5, tf7, and tf10 whose source can be found in the same
The hz-algorithm. This LaTeX file uses the fonts
hz1cmr10,...,hz6cmr10 whose source can be found in the same
There are also some gifs which compare glyphs at different
Hanging punctuation/hyphenation. The LaTeX file uses the font
ocmr10, whose source can be found in the same directory.
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 firstname.lastname@example.org