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.
- 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.