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

Re: math fonts

I have put an updated version of my experimental math font implementation
at the address posted earlier in this thread. The fonts are more complete
now and the encodings have been reorganized a bit. The most important
deviation from Jusin Zieglers proposals is that I have split the encoding
containing TeX-specific characters in two parts, MX1 and MX2. I have
written a note on why I think this is a good idea; see below.

Comments are welcome and, in fact, needed.


                            Splitting MX ?

While in general the proposals given in the `Technical Report on math font
encoding' (J. Ziegler) are very sound, there is one place where a
deviation might have big advantages.

After having seen the yhmath package by Yannis Haralambous, I think that
the role of the MX encoding is a bit different from the other proposed
math encoding. In MX many characters are not accessed directly, but just
through charlists or extensible recipes.  This gives the font designer
quite a bit flexibility in deciding e.g. how many big variants of a delimiter
or an accents to put in the font. This does not affect the macro
programmer in any way, as long as the entry points to the charlists are in
the same slots and at least as many sizes as in cmex are given (for
But this flexibility can only be exploited if there is enough room in the
encoding. The MX proposed in the cited paper leaves very little room
(every delimiter has room for four sizes, the accents have room for eight
sizes), since it includes many new delimiters and operators in an attempt
to collect all TeX-specific glyphs in one font. This goal is not achieved
anyway, since some wide accents have to live in other symbol fonts. The
new delimiters and operators in MX do not have to live in the first 4 (or
6) families, since they are neither in plain LaTeX nor in AMSLaTeX. So one
might argue that anybody who wants to use these glyphs has to use another
(fifth/seventh) family anyway, so why not put them in an additional MX2
encoding containing more TeX-specific glyphs ?
If the new big delimiters are no longer in the first 6 families, there is
not much point in keeping their basic size counterparts in MC. These
should also go to MX2, freeing some valuable slots in that encoding.

I think the splitting of MX in MX1 and MX2 has many advantages:

 - giving all users of plain LaTeX or AMSLaTeX improved quality of
   big delimiters and wide accents (since there is enough room to provide
   more sizes, a la yhmath).

 - giving users who need the new delimiters or wide accents improved
   quality compared to the MX-proposal (since there is enough room in
   MX2), while not forcing them to load more than one additional family,
   which they would have to do anyway with current LaTeX or AMSLaTeX,
   so that there won't be compatibility problems.

 - freeing some valuable slots in MC. These could e.g. be used to
   turn the group and moustache delimiters into `first-class delimiters'
   by giving them basic size counterparts.

 - moving *all* charlist-accessed glyphs (even the wide accents) out of
   MC, MSP, MS1 and MS2 .

 - there is now enough room in MX2 to add some more wide accents, like
   wide triangles or parens (found in yhmath).

I have updated my implementation skeleton to reflect these thoughts.
Are there any serious disadvantages, I have overlooked ?