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

Mathematica symbol fonts




When reading the documentation of Alan Hoenig's `mathinst' and
`mathkit' utilities, I noticed a comment mentioning some math symbol
fonts that come with Mathematica.  Given the fact that we happen to
have Mathematica 3.0 here, I searched throgh the installation tree 
and found that there are indeed five symbol fonts named "Math1" 
to "Math5", which are provided in Type 1 format (pfa + afm).

Although I'm not sure about the legal issues about their use outside
of Mathematica, I set out to anaylze what these fonts provide:

General observations: 

All five fonts have the following layout:

  slots 0--31: empty (usually)
  slot 32:     space
  slot 127:    empty (ASCII DEL)
  slot 202:    non-breaking space (I have no idea, why this slot.)

The AFM files use the symbol names from the Adobe Standard Encoding, 
not the true symbol names (quite unlike the AFM of Adobe Symbol).


Math1: 
   
- This font is a symbol font encoded very similar to Adobe Symbol.
  The range 128--159 is filled, some slots are allocated differently.

- Greek letters are upright for captials, italics for lowercase.

- Among the new symbols, there are ready-made horizontal long arrows 
  and arrow extension pieces (both horizontal and vertical).
  This also includes suitable mapto/mapsfrom/Mapsto/Mapsfrom chars.

- There are dedicated slots for "DifferentialD", "ExponentialE",
  "ImaginaryI", which in Mathematica are indicated by double-stroked 
  italics letters.

- There are centered prime and double prime symbols as needed in TeX.
  A similar backprime and double backprime are found in Math4, raised
  versions of single and double prime and backprime exist in Math2.

Math2:

- This font is an extension font, containing big delimiters, bigops,
  and math accents.

- Big delimiters (the usual choice + semantic brackets) are provided 
  in 4 sizes + extensible versions where possible.  Ther are separate
  slots for left, right, and middle versions of single and double 
  vertical bars, each of them in 4 sizes.  There are no extensible 
  vertical arrows in this font, but extension pieces exist in Math1.

- Big radicals are provided in 4 sizes + extensible version, including
  an extension piece for the top of the sqrt sign (which in TeX is
  rendered by a horizontal rule).  There are two or three different
  versions of big radicals (growing towards the top or the bottom),
  as well as separate slots for the top piece in 4 different sizes.

- Big operators come in 3 sizes, not just 2 sizes as in TeX.  There
  are some new variants of integrals, but the coproduct and the big 
  circled operators are missing.  (The new integrals include clockwise
  and counterclowise contour integrals, a square contour integral, 
  and a slashed integral.)

- Wide accents exists in a basic size + 4 more sizes, but only for 
  the tilde.  All other math accents only exist in the basic size.

- Extensible over/underbraces are found elsewhere in Math4, including
  ready-made versions in 4 different widths and extension pieces.
  There also exists over/under delimiters for parens/bracekts/angles.
  
Math3:

- This is a secondary symbol font that complements Math1.  It contains
  binary operators and relations, including ready-made negated ones.
  However, the choice is limited and comes nowhere near MSAM/MSBM.
 
- Apart from symbols, this font contains some letter-like symbols:
 
  * dotless i and j in both upright and italics shapes

  * variant lowercase greek letters that are missing in Math1
    (varepsilon, varkappa, varrho, but no such thing as varbeta)

  * hebrew beth, gimel, daleth, complementing the aleph in Math1

  * ready-made versions of hbar and lambdabar (acutally slashed
    and only in italics,  there is no such thing as Vbar)

  * greek exotic letters (digamma, quoppa, sampi and stigma, 
    all of them in upper- and lowercase)

  * dedicated slots for "ImaginaryJ", "CapitalDifferentialD",
    as well a double-struck version of pi and gamma

  * a special script-E that's different from the script alphabet
    in Math5.  Does this have some sort of special meaning?

Math4:

- This font contains an arrow construction kit, which I haven't
  analyzed in detail.  It is clearly different form MS2, though.

- There are ready-made versions of diagonal arrows in two sizes.

- There are over/under delimiters in 4 sizes + extension pieces
  (where applicable) for parens, brackets, braces and angles.

- At least 32 slots in the upper range a wasted for a symbolic
  representation of ASCII control characters.

Math5:

- This font provides three complete math alphabets in script, fraktur, 
  and blackbord bold, all of them provided in upper- and lowercase, 
  but without digits.

- A few slots in the range between 0--31 contain some funny icons, 
  which are probably specific to Mathematica, if used at all.
 
- The range of slots between 32--64 is empty.
 
- There exists a separate symbol for `lscript' (ell) and a variant 
  of the blackbord bold N (one with double stroked stem on the left, 
  the other with double stroked diagonal).

- The last two slots contain a "MATHE", "MATICA" icon.


I have started experimenting with these fonts, but it takes time
to write suitable .etx files.  Since the AFM files do not tell
the symbol names, they are unfortunately not usuable directly.

It appears that there are good chances to implement the MX1 and MC
encodings with these fonts (if restricted to only one set of greek).
As for MSP/MS1/MS2, there are probably still some symbols missing,
but there shouldn't be any problems about the math alphabets.
Perhaps there might a way of redistributing MSP/MS1, so that MSP
would contain only those symbols which are available, while MS1
gets the remaining ones that have to taken from the AMS fonts.

(In this case, the requirements for Plain/LaTeX compatiblity
and the availablitiy of symbols would take precedence over the 
desire to group similar symbols together.)

I'll try to investigate this further, but don't expect any actual
patches for an implementation before next week.  In other words,
don't take this as a reason to delay another release, in case
Matthias is preparing another one anyhow.

Cheers, Ulrik.