[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

A story about depths and heights

Yesterday, I have spent some time on creating an extended version of 
cmex which contains more sizes of big delimiters and wide accents
-- very much like yhcmex10 by Yannis Haralambous. I took some ideas from 
there, e.g. the numbers of different sizes:

14 delimiters (but only 7 if the extensible is appropriate) 
in the sizes 2d, 2.5d, 3d, 3.5d, 4d, 4.5d, 5d, 5.5d, 6d, 7d, 8d, 9d, 10d,
11d (where d is a shorthand for dh#)

12 wide accents (whose heights vary slightly).
I was rather badly surprised when all the extensible delimiters came out
broken and it took my some time to realise that the problem was that mf
had changed the depths and/or heights of the repeatable pieces. Is it pure
coincidence that mf does not break the extensible delimiters in yhcmex10 ?
Or is this the reason for the omission of the size 6d there (the size
5dh# is duplicated) ? 

It took me quite some time to find a fix for the problem: The salient
feature of TeX is that it centers big operators and delimiters wrt the
axis, so one can change the height and depth of these as long as 
their sum stays the same. 

I came up with the following set of heights and depths
(here r is a shorthand for rule_thickness#):

heights: 0 r .5d+r d+r plus 12 accent heights    =>  15 heights+zero 
depths: 0 -2r .5d-r 2d-r 3d-r ... 11d-r 10/6d-r  =>  15 depths+zero
         50/27d-r 100/27d-r

This does allow the textstyle and displaystyle operators to have 
their height+depth unchanged, it allows the radicals to have height r,
it allows horizontal brace pieces of height 3r, it allows accents of
twelve different heights and even many more heights of big delimiters
than listed above (e.g the largest possible one is 12d). After I did
necessary changes to all the beginchar statements, there was another
bad surprise: The metafont programs for the big operators all depend 
on the condition h=0, so I had to find all equations of the form
y=0 or y=eps and insert an h there.

After all these changes, mf did no longer complain about the necessity
to adjust heights or depths and my extensibles started working again. 

The conclusion of all this seems to be that the restrictions of the tfm
format might be appropriate for text fonts, but they can pose major
problem for math extension fonts, where the aim is to provide many
different sizes.

I hope that someone will find an interesting bit of information in this
lengthy message. 

On to a concrete question: Is there a way to find out which heights or 
depths have been changed or even to influence mf's decision about that.
One might e.g. want to prohibit changes to extensible pieces - on the 
other hand, mf should be clever enough to know that changing these will
be desastrous, shouldn't it ?

Regards, Matthias