summaryrefslogtreecommitdiff
path: root/systems/tex-extensions/clasen/README
blob: 9048148e4cef763884d6c77a7bc6d963a6768629 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
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                   maclas@gmx.de