Summary of MFG Aston workshop

Alan Jeffrey

1 Introduction

At the 1993 TEX Users Group meeting at Aston University, the math font group held a workshop at which we discussed the need for new math font encodings, and our work so far at meeting these needs.

This document contains a short summary of the material presented at the workshop, for the benefit of those unable to intend, or people like me with faulty memory!

The panel consisted of barbara beeton, Alan Jeffrey, Frank Mittelbach, Chris Rowley and Justin Ziegler. There were many useful questions and suggestions from the audience.

2 Motivation

The current situation (as discussed by Berthold Horn in his stimulating talk Where are the math fonts?) is that there are over 14,000 text fonts available for use in TEX, but only five math fonts:

• Computer Modern

• Computer Concrete and Euler

• Lucida Math

• Lucida New Math

• MathTime Each of these fonts use different encodings, and each comes with its own selection of TEX macros. Although the Cork encoding is rapidly being established as the standard encoding for European Latin text, there is no similar encoding for mathematics. The result is:

• complex ad hoc macro packages for using each math font.

• it is difficult to set mathematics with Cork text, since the Cork encoding does not include the upper case Greek.

• installing PostScript math fonts such as Math-

ematical Pi is very difficult. This is a bottleneck for uptake of the Cork fonts, and use of TEX for mathematical setting with anything other than the Computer Modern fonts.

The math font group (MFG, or Joint L^{A}TEX3 project TEX Users Group Technical Working Group on Extended Math Font Encodings to give it its full title!) was formed in order to develop new encodings for setting mathematics.

These encodings should be fully upwardly compatible with plain TEX, L^{A}TEX, AMS-TEX and AMS-L^{A}TEX. The only effect most users should notice is that more symbols, and more math fonts will be available for use in TEX.

3 Overview

The MFG has developed an outline for a proposed math encoding, although the details of each encoding have yet to be worked out. There is still plenty of room for change!

The current math encoding proposal uses:

• T_{1} ‘Cork’ text encoding

• MC math core encoding

• MX math extension encoding

• MS_{1} math symbol 1 encoding

• MS_{2} math symbol 2 encoding

• MS_{3} math symbol 3 encoding In addition, we are proposing an X_{1} ‘companion text’ encoding, to hold the text glyphs such as ‘†’ that are currently in math fonts.

Glyphs are being allocated to math encodings on the grounds of: Glyph shape. All glyphs of a similar design should be in the same encoding. For example, all the Greek glyphs should live together.

Kerning. Any glyphs which may need to have a kern pair should be in the same encoding. For example, one common request is for kerning between ‘f’ and ‘(’, and so these glyphs should live together. (The situation is somewhat more complex than this, since TEX will only kern or ligature when the first glyph is a math atom consisting only of a single-character mathord. See Rule 14 of Appendix G of The TEXbook for more details.)

Ligaturing. Any glyphs which may need to ligature should be in the same encoding. For example, some fonts do not have a separate ⟨mapstochar⟩ glyph, and will instead use a ligature between ⟨mapstochar⟩ and ⟨rightarrow⟩ to produce ⟨mapsto⟩.

Orthogonality. Each encoding should use as few different glyph styles as possible, to minimize the number of virtual fonts needed. For example, the Computer Modern Symbol encoding includes roman glyphs, geometric symbols, calligraphic letters, and dingbats, and so a different VF is required for each combination of roman, geometric, calligraphic and dingbat font. A site with 100 text romans, four geometric symbol fonts, three calligraphic fonts, and three dingbat fonts would need 100 × 4 × 3 × 3 = 3600 VFs.

Slots. Some glyphs have preferred slots, for example it would be useful if the letter ‘A’ was always in slot 65.

Summary of Aston workshop  Summary of Aston workshop 2  Summary of Aston workshop  MFG discussion document

None of the encodings will specify bold or sans glyphs, since these are expected to be kept in separate bold or sans math fonts, with the same encoding. The most commonly used bold glyphs will be placed in the T_{1} and MC encoding, so if many bold glyphs are used in a document, only two extra families need to be used. If few bold glyphs are requested, these can be set using macros similar to \boldsymbol.

4 T_{1} encoding

The T_{1} (or Cork) encoding will be used for multiletter identifiers such as ‘log’, ‘sin’ and ‘lim’. Using the T_{1} encoding allows arbitrary text fonts to be used for multi-letter identifiers. In many texts this will the same as the text roman, but this will not always be the case (for example Barandregt’s The Lambda Calculus, North-Holland, 1984, has some multi-letter identifiers set in bold sans!).

This font will not normally be used for anything other than upper and lower case Latin letters. The symbol glyphs such as ‘+’, ‘=’ and ‘/’ will be taken from the MS_{i} encodings.

Although the multi-letter identifier font will be T_{1} encoded, it does not necessarily have to be a text font. In particular it may have the glyph width and italic correction adjusted to produce good subscript and superscript positioning, as long as this is not to the detriment of setting multi-letter identifiers.

Family 0 will contain a T_{1} encoded font.

5 MC encoding

The MC encoding will contain:

• The default Latin letters (for example ‘f’).

• The default numerals (for example ‘1’).

• The default punctuation (for example ‘(’).

• The slanted and upright Greek (for example ‘α’

and ‘Γ’). Other glyphs (such as the math accents and Hebrew) will be included if there is space!

The font will also contain enough font dimensions to be used as \fam2, since the positioning of subscripts and superscripts depends much more on the math core font than the symbol fonts. It may also contain font dimensions for:

• Design size

• Suggested script and scriptscript design size

• Suggested values for \mathsurround,

    \thickmuskip, \medmuskip and \thinmuskip.

Family 2 will contain a MC encoded font.

6 MX encoding

The MX encoding will contain the extension glyphs from cmex and ms*m, plus frequently requested glyphs such as longer math accents, double brackets, and

                                              \bigsqcap.

Family 3 will contain an MX encoded font.

7 MS_{i} encodings

The MS_{1}, MS_{2} and MS_{3} encodings will contain the geometric glyphs from cm* and ms*m, plus frequently requested glyphs such as \mapsfrom. In addition: • MS_{1} will contain calligraphic upper and lower

case

• MS_{2} will contain open (or ‘inline’ or ‘outline’ or ‘blackboard bold’) upper and lower case

• MS_{3} will contain black letter (or ‘fraktur’) up-

per and lower case There was quite a lively discussion about what to do with script upper and lower case! One possibility is to allow font implementors to replace the calligraphic letters by script letters in an MS_{1} font. Another is to ask that script letters be provided in T_{1} encoded fonts. This point is still up for discussion.

Families 1, 4 and 5 will contain MS_{1}, MS_{2} and MS_{3} encoded fonts.

8 X_{1} encoding

There are a number of text glyphs that currently live in math fonts, such as ‘†’ or ‘\begin{matrix}c \\ ◯ \end{matrix}’. These glyphs will be put into a ‘text companion’ encoding, along with the Adobe standard and expert glyphs missing from the Cork encoding, such as ‘f’ (florin) and ‘^{1}/_{2}’. The X_{1} encoding is not designed to be used in

math mode.

9 Work to do

There is still quite a lot of work to be done! • Propose and document the math encodings.

• Implement the math encodings with or virtual fonts.

• Provide user interfaces for plain TEX and L^{A}TEX. We have set up a mailing list where we will discuss the encodings and ask for your help in developing and implementing them:

                                                 math-font-discuss@cogs.susx.ac.uk

⋄ Alan Jeffrey University of Sussex

                                                                     alanje@cogs.susx.ac.uk