Freigeben über


MathML To-Do List

In my MathML 3.0 post, I noted that several things were postponed for future consideration. The present post lists math document properties and equation numbers. Other members of the MathML Working Group can undoubtedly add to the list.

Default Document Math Properties

A number of math display properties have document defaults. They are the ones used if explicit attributes do not appear. The properties generally pertain to “displayed” math zones, that is, math zones that begin either at the start of the document or at a hard/shift Enter (CR/VT) and end at the following hard/shift Enter. The options determine math indents and things such as whether integral limits are positioned below and above the integral or as subscript and superscript. In Russia, for example, it is common to see integral limits below and above the integral, while in the United States integral limits are displayed as subscript and superscript. MathML does not formalize document defaults for math, but MathML math zones can inherit them depending on the implementation. Therefore, such defaults are compatible with MathML and currently need to be expressed in some way outside of MathML.

The feeling of the MathML 3.0 working group is that these concepts belong to the document container in which the MathML <math> elements reside. However, presumably the MathML specification should list math document properties along with recommendations for default values, since they’re important and no other W3C group offers such information. An example of a current problem is that one browser currently left aligns equations by default, whereas the common convention is to center equations. An earlier blog post gives a detailed discussion of math document properties.

A possible syntax would be to express default math properties as new attributes in a leading, empty MathML <math> element. In principle, this could work today, since MathML allows undefined attributes to be added with the caveat to ignore them if you do not know what they mean. The following table gives math document properties with default values for the United States listed first and possible attributes for use with the MathML <math> element. The values listed are the same as for the OMML <mathPr> element.

 

Parameter

Values

Attribute

Math font

Cambria Math, STIX

mathFont

Equation alignment (justification)

Center as a group, left, right, center

defJc

Display n-ary limit placement

Over/under, subscript/superscript

naryLim

Display integral limit placement

Subscript/superscript, over/under

intLim

Break on operator

Before, after, duplicate

brkBin

Break on - duplicate

--, -+, +-

brkBinSub

Reduce nested-fraction size

Current text size, up 1 script level

smallFrac

Use math display spacings

True (false: use para spacings)

dispDef

Display left margin indent

0

lMargin

Display right margin indent

0

rMargin

Display left margin wrapped indent

1"

wrapIndent

Right align wrapped display equations

false

wrapRight

Space before set of equations

0

preSp

Space after set of equations

0

postSp

Intraequation spacing between  lines in an equation

0

intraSp

Spacing between equations

0

interSp

Style for  differential d and related characters (U+2145..U+2149)

Math italic, upright, open slant

ddStyle

What to display for invisible times (U+2063) if line break occurs at invisible times

× (U+00D7)

visiTimes

Equation number alignment (justification)

right, left

eqnoJc

 

Equation Numbering

The current number one feature request for Microsoft Office math is native equation numbering. Clearly, equation numbering is a very important part of technical documents and should be part of a math specification like MathML. Hang ups in implementing equation numbers seem to be that people want all the generality of section numbering and want a user interface consistent with other numbering features. Such wants are not trivial to implement.

One approach that handles the vast majority of cases would be to use a <math> element with an “eqno” attribute. The content of the <math> element could include a <semantics> tag that has both what a basic Presentation MathML renderer would display along with an <annotation> element containing what the parent application would display. Attributes could be included to specify that section/chapter numbers should appear as prefixes, etc. CSS could also be useful in such specifications.

By default the equation number would be right aligned relative to the display <math> element that precedes it. Additional attributes could specify other alignments, such as left-aligned and/or vertically centered relative to a consecutive set of equations (display <math> elements).  A reference to an equation number could be inline empty <math> element with the same eqno attribute.

This approach to equation numbering is similar to the one described in an earlier post. There an equation (display <math> element) contains a simple unused construct (noop phantom) instead of an eqno attribute, since OMML is not as friendly toward undefined attributes as MathML is.