MathML

From Free net encyclopedia

For help writing formulae in Wikipedia, please see Help:Formula.

Mathematical Markup Language (MathML) is an application of XML for representing mathematical symbols and formulae, aimed at integrating them into World Wide Web documents. It is a recommendation of the W3C math working group.

The specification of version 1.01 of the format was released in July 1999 and version 2.0 appeared in February 2001. In October 2003, the second edition of MathML Version 2.0 was published as the final release by the W3C math working group.

MathML deals not only with the presentation but can optionally also include information about the meaning of formula components (the latter part of MathML is known as MathML-Content). Because the meaning of the equation is preserved separate from the presentation, how the content is communicated can be left up to the user. For example, web pages with MathML embedded in them can be viewed as normal web pages with many browsers but visually impaired users can also have the same MathML read to them through the use of screen readers (e.g. using the MathPlayer plugin for Internet Explorer).

Another standard called OpenMath which has been designed (largely by the same people who devised MathML-Content) more specifically for storing formulae semantically can also be used to complement MathML.

Contents

Example

The well-known quadratic formula:

<math>x = \frac{-b \pm \sqrt{b^2 - 4ac}}{2a}</math>

would be marked up using TeX syntax like this:

x = \frac{-b \pm \sqrt{b^2 - 4ac}}{2a}

and like this in MathML:

<math>
 <mrow>
  <mi>x</mi>
  <mo>=</mo>
  <mfrac>
    <mrow>
      <mrow>
        <mo>-</mo>
        <mi>b</mi>
      </mrow>
      <mo>&PlusMinus;</mo>
      <msqrt>
        <mrow>
          <msup>
            <mi>b</mi>
            <mn>2</mn>
          </msup>
          <mo>-</mo>
          <mrow>
            <mn>4</mn>
            <mo>&InvisibleTimes;</mo>
            <mi>a</mi>
            <mo>&InvisibleTimes;</mo>
            <mi>c</mi>
          </mrow>
        </mrow>
      </msqrt>
    </mrow>
    <mrow>
      <mn>2</mn>
      <mo>&InvisibleTimes;</mo>
      <mi>a</mi>
    </mrow>
  </mfrac>
 </mrow>
</math>

Although less compact compared to TeX, the XML structuring promises to make it widely usable and allows for instant display in applications such as Web browsers and facilitates a straightforward interpretation of its meaning in mathematical software products. MathML is not intended to be written or edited directly by humans.

Software support

Several utilities for converting mathematical expressions to MathML are available, including converters [1] between TeX and MathML. ConTeXt does the reverse and uses TeX for typesetting MathML (usually resulting in PDF documents). MathType from Design Science allows users to create equations in a WYSIWYG window and export them as MathML. Also, Wolfram Research provides a web page to convert typed mathematical expressions to MathML.

Another WYSIWYG MathML-as-is editor, Formulator [2] provides a means for importing/exporting MathML with support for some abstract entities such as &ExponentialE; and &DifferentialD;. The W3C Browser/Editor Amaya can also be mentioned as a WYSIWYG MathML-as-is editor.

Of the major web browsers, those that directly support the format are recent versions of Mozilla and its derivatives.[3] Other browsers support the format using external plugins. For example, Internet Explorer supports MathML using the Design Science MathPlayer plugin.

MathML is also supported by major office products such as Microsoft Word, OpenOffice.org and KOffice and by mathematical software products such as MathType and Mathematica.

However, except for Mozilla, MathPlayer and Amaya, none of the above mentioned products support all of the basic elements of MathML 2.0 (e.g. <mmultiscripts> element) and its intricacies.

See also

External links

cs:MathML de:Mathematical Markup Language es:MathML fr:MathML it:MathML nl:Mathematical Markup Language ja:Mathematical Markup Language pl:MathML pt:MathML ru:MathML sv:MathML th:MathML vi:MathML zh:数学置标语言