%%% ==================================================================== %%% @LaTeX-file{ %%% author = "Alan Jeffrey", %%% version = "0.01", %%% date = "03 August 1993", %%% time = "22:26:08 BST", %%% filename = "mfgaston.tex", %%% address = "School of Cognitive and Computing Sciences %%% University of Sussex %%% Brighton BN1 9QH %%% UK", %%% telephone = "+44 273 606755 x 3238", %%% FAX = "+44 273 678188", %%% checksum = "18638 273 1528 10597", %%% email = "alanje@cogs.sussex.ac.uk", %%% codetable = "ISO/ASCII", %%% keywords = "TeX fonts mathematics", %%% supported = "yes", %%% abstract = "This is a summary of the MFG Aston workshop.", %%% docstring = "The checksum field above contains a CRC-16 %%% checksum as the first value, followed by the %%% equivalent of the standard UNIX wc (word %%% count) utility output of lines, words, and %%% characters. This is produced by Robert %%% Solovay's checksum utility.", %%% package = "stands alone", %%% dependencies = "none", %%% } %%% ==================================================================== \documentstyle{ltugboat} \title{Summary of MFG Aston workshop} \author{Alan~Jeffrey} \address{University of Sussex} \netaddress{alanje@cogs.susx.ac.uk} \def\rtitlex{MFG discussion document} \def\midrtitle{{\sl Summary of Aston workshop\/}} \setcounter{page}{1} \def\T#1{${\fam0 T}_{#1}$} \def\X#1{${\fam0 X}_{#1}$} \def\MX{$\fam0 MX$} \def\MS#1{${\fam0 MS}_{#1}$} \def\MC{$\fam0 MC$} \def\psname#1{{\normalshape $\langle$#1$\rangle$}} \def\psnon#1{{\it $\langle$#1\/$\rangle$}} \begin{document} \maketitle \section{Introduction} At the 1993 \TUG\ 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. \section{Motivation} The current situation (as discussed by Berthold Horn in his stimulating talk {\em Where are the math fonts?\/}) is that there are over 14,000 text fonts available for use in \TeX, but only five math fonts: \begin{itemize} \item Computer Modern \item Computer Concrete and Euler \item Lucida Math \item Lucida New Math \item MathTime \end{itemize} 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: \begin{itemize} \item complex {\em ad hoc\/} macro packages for using each math font. \item it is difficult to set mathematics with Cork text, since the Cork encoding does not include the upper case Greek. \item installing PostScript math fonts such as Mathematical Pi is very difficult. \end{itemize} 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 \LaTeX3 project \TUG\ 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, \LaTeX, \AmSTeX\ and \AmS-\LaTeX. The only effect most users should notice is that more symbols, and more math fonts will be available for use in \TeX. \section{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: \begin{itemize} \item \T1 `Cork' text encoding \item \MC\ math core encoding \item \MX\ math extension encoding \item \MS1 math symbol 1 encoding \item \MS2 math symbol 2 encoding \item \MS3 math symbol 3 encoding \end{itemize} In addition, we are proposing an \X1 `companion text' encoding, to hold the text glyphs such as `\dag' that are currently in math fonts. Glyphs are being allocated to math encodings on the grounds of: \begin{description} \item[Glyph shape.] All glyphs of a similar design should be in the same encoding. For example, all the Greek glyphs should live together. \item[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 \TB\ for more details.) \item[Ligaturing.] Any glyphs which may need to ligature should be in the same encoding. For example, some fonts do not have a separate \psnon{mapstochar} glyph, and will instead use a ligature between \psnon{mapstochar} and \psnon{rightarrow} to produce \psnon{mapsto}. \item[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 \times 4 \times 3 \times 3 = 3600$ VFs. \item[Slots.] Some glyphs have preferred slots, for example it would be useful if the letter `A' was always in slot~65. \end{description} 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 \T1 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 \verb|\boldsymbol|. \section{\T1 encoding} The \T1 (or Cork) encoding will be used for multi-letter identifiers such as `log', `sin' and `lim'. Using the \T1 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 {\em 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 \T1 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 \T1 encoded font. \section{\MC\ encoding} The \MC\ encoding will contain: \begin{itemize} \item The default Latin letters (for example `$f$'). \item The default numerals (for example `$1$'). \item The default punctuation (for example `$($'). \item The slanted and upright Greek (for example `$\alpha$' and `$\Gamma$'). \end{itemize} 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 \verb|\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: \begin{itemize} \item Design size \item Suggested script and scriptscript design size \item Suggested values for \verb|\mathsurround|, \\ \verb|\thickmuskip|, \verb|\medmuskip| and \verb|\thinmuskip|. \end{itemize} Family~2 will contain a \MC\ encoded font. \section{\MX\ encoding} The \MX\ encoding will contain the extension glyphs from \verb|cmex| and \verb|ms*m|, plus frequently requested glyphs such as longer math accents, double brackets, and \verb|\bigsqcap|. Family~3 will contain an \MX\ encoded font. \section{\MS{i} encodings} The \MS1, \MS2 and \MS3 encodings will contain the geometric glyphs from \verb|cm*| and \verb|ms*m|, plus frequently requested glyphs such as \verb|\mapsfrom|. In addition: \begin{itemize} \item \MS1 will contain calligraphic upper and lower case \item \MS2 will contain open (or `inline' or `outline' or `blackboard bold') upper and lower case \item \MS3 will contain black letter (or `fraktur') upper and lower case \end{itemize} 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 \MS1 font. Another is to ask that script letters be provided in \T1 encoded fonts. This point is still up for discussion. Families 1, 4 and 5 will contain \MS1, \MS2 and \MS3 encoded fonts. \section{\X1 encoding} There are a number of text glyphs that currently live in math fonts, such as `\dag' or `\copyright'. 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 \X1 encoding is not designed to be used in math mode. \section{Work to do} There is still quite a lot of work to be done! \begin{itemize} \item Propose and document the math encodings. \item Implement the math encodings with \MF\ or virtual fonts. \item Provide user interfaces for \plain~\TeX\ and \LaTeX. \end{itemize} We have set up a mailing list where we will discuss the encodings and ask for your help in developing and implementing them: \begin{verbatim} math-font-discuss@cogs.susx.ac.uk \end{verbatim} \makesignature \end{document}