MathML was introduced in 1998 as the first application of XML. Since that time, the web has seen a tremendous amount of change. Among those changes is the inclusion of MathML into HTML5. As the following version history shows, MathML has been remarkably stable and the vast majority of the original features are still present today.
This was in fact the first definition of an XML vocabulary, coming just two months after the publication of the XML recommendation. It predates the XML namespace Recommendation so does not use XML Namespaces, but otherwise defines the core MathML features that are immediately recognizable today.
It also introduced the set of character entity names, still used in MathML and HTML. At this point the majority of them were defined in terms of private use areas of Unicode, based on the codepoints used in the STIX submission to Unicode for the inclusion of mathematical characters.
This version made editorial corrections to the initial draft and also completed the DTD.
The element select
was renamed to selector
to avoid a clash with an element of the same name in HTML.
Completely revised and reformatted the MathML character tables to reflect changes in the STIX submission to Unicode
The document itself also took on a different form, switching to the style for W3C Recommendations that is still in use for all W3C Recommendations today, and also the build system for the MathML Documents was switched to an XML input form (the xmlspec markup also used for the XML Recommendation) and an XSLT based production pipeline (although XSLT was not published as a Recommendation until later that year).
A fairly major update to MathML 1, with editorial revisions throughout the document.
The MathML namespace was introduced, and the MathML DTD refactored using the mechanisms developed for XHTML Modularization, to allow Namespace prefixes to be specified.
Presentation MathML extended with a discussion of bidirectional
layout, introduction of new math style attributes
mathvariant
, mathsize
,
mathweight
, and mathcolor
and linebreaking
attributes on mspace
. New elements
mglyph
,menclose
and mlabeledtr
were added. Control over the layout of fractions was improved with
new attributes beveled
, numalign
and
denomalign
on mfrac
.
A fairly major extension to Content MathML: reln
and
fn
deprecated in favour of consistent use of
apply
, several new elements added: csymbol
domain
, codomain
, image
,
domainofapplication
, arg
, real
,
imaginary
, lcm
, floor
,
ceiling
, equivalent
, approx
,
divergence
, grad
, curl
,
laplacian
, card
,
cartesianproduct
, momentabout
,
vectorproduct
, scalarproduct
,
outerproduct
, integers
, reals
,
rationals
, naturalnumbers
,
complexes
, primes
,
exponentiale
, imaginaryi
,
notanumber
, true
, false
,
emptyset
, pi
, eulergamma
,
infinity
, piecewise
, piece
andotherwise
.
A complete description of a Document Object Model (MathML DOM) was introduced.
Completely revised and reformatted the MathML character tables to reflect changes in Unicode since MathML 1.01 and to replace the private use area codepoints with codepoints proposed for Math Characters in the drafts of Unicode versions 3.1 and 3.2.
Extensive editorial changes and enhancements throughout the specification.
Completely revised and reformatted the MathML character tables to reflect the final character assignments in Unicode versions 3.1 and 3.2.
This specification essentially removed the character entity definitions from MathML and updated them to reflect changes in Unicode (up to version 5.1) and to make them compatible as possible with (mutually incompatible) definitions used in HTML and in common XML formats such as DocBook. Originally intended to also be a draft of an update to ISO 9573-13 defining the ISO Entity sets (which did not have mappings to Unicode in the existing ISO definitions). However ISO/IEC SC34 later decided instead to withdraw the ISO 9573-13 and ask the Math Working Group to maintain the Entity definitions going forward. So this was published (just) as a W3C Recommendation. It does however list definitions for all the ISO entity sets, as well as the entities used in MathML and HTML.
A major overhaul of MathML:
The attribute href
added to the common MathML attributes, to allow
hypertext links without relying on XLink.
Presentation MathML extended with finer control over
bidirectional layout, following the earlier note detailing use of
MathML for Arabic mathematical typesetting.
New attributes controlling linebreaking, both explicit and automatic
were added. New elements mstack
, mlongdiv
,
msgroup
, msrow
, mscarries
,
mscarry
, and msline
added for elementary
math layouts for multiplication and long division etc.
Content MathML extended and restructured, making the links with
OpenMath more explicit. New elements bind
,
share
, cerror
, cs
and
cbytes
added.
A new chapter specifying MathML clipboard formats was introduced.
The MathML DOM previously specified, was dropped as a section of MathML, it may be re-introduced as a separate document if needed.
This document shows one way of implementing a restricted subset of MathML just using the features available in CSS 2.1. It has been used as a basis of an implementation of MathML, but its main use is really to formalize the features missing from CSS that mean that it is hard to define Math formatting purely in terms of CSS layout.
Editorial revision of MathML3, with no schema changes other than some minor bug fixes. The main focus of the revision was to accommodate the use of MathML within HTML as opposed to XML (XHTML) documents, as specified in HTML5. This required minor rewordings throughout the specification removing assumptions about XML parsing.
The lists of character entities were removed and are now defined by
reference to the XML Entity definitions specification. As a related
change some entities such as &
previously only
defined in HTML, are now also allowed in MathML.
An editorial revision with no changes to the defined entities. In the non normative parts of the document the two main changes were updating the files to match Unicode 6.3, in particular the inclusion of Arabic Mathematical alphabets (which were added to Unicode at version 6.1 based on the proposed Arabic alphabet forms in MathML 3) and updating the text to reflect the fact that the entities defined here are now used in HTML (the definitions are copied into the HTML5 document rather than being defined by reference, but taken from these source files).