CTAN Comprehensive TeX Archive Network

Directory systems/tex-extensions/clasen

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

  Implements hyphen classes.  There is a corresponding change file
  patgen-hyf.ch which enables patgen to produce patterns for multiple 
  hyphen classes.

  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
  better justification.

  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
  extension factors.

  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                   maclas@gmx.de

Download the contents of this package in one zip archive (217.8k).

tex-extensions – Proposals for extensions to

A bundle of proposals for extensions to , 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.

Version 2003-02-07
MaintainerMatthias Clasen
Guest Book Sitemap Contact Contact Author