MathML:OperatorDictionary

From MozillaWiki
Jump to: navigation, search

The MathML 3 Operator Dictionary indexes each operator by a character (an unicode code point) in a given form (prefix, infix or postfix). Each operator has the following attributes:

  • a priority
  • leading and trailing spaces (in 1/18th of em). A value between 0 and 7.
  • minsize/maxsize
  • properties (fence, separator, stretchy, symmetric, largeop, movablelimits, accent, mirrorable). Mentioned iff it is true.

Our implementation uses a property file with entries similar to what is described above. The property name is operator.\u[NNNN].[form] where [NNNN] is the unicode code point and [form] the operator form. The value of the property is a list of several AttributeName or AttributeName:AttributeValue (depending whether it is a boolean valued attributes or not) separated by whitespaces. Compared to the MathML3 dictionary, we don't include the "priority" attribute but have the additional attribute:

  • direction: horizontal, vertical (XXXfred add updiagonal, downdiagonal later?)

Finally, the end of the line after a sharp is considered as a comment: we use this to give the glyph or name of the character. Thus, a typical entry is:

operator.\u0028.prefix = direction:vertical stretchy fence symmetric lspace:0 rspace:0 # (

Our Operator Dictionary is stored in mathfont.properties.