数学置标语言

歷史

它是由W3C的數學工作群組提出的。語言規格1.01版於1999年7月公布，2.0版於2001年2月出現。W3C的數學工作群組在2003年10月發布了MathML 2.0的第二版, 之後又在2010年10月發布了MathML 3.0.

結構和語法

MathML十分類似HTML，但非常繁瑣。它繼承了角括號和雙標籤（<標籤>內容</標籤>）的用法。
MathML不但規定數學式子的表現，而且也規定數學數字的含義（前者叫做「Presentation MathML」，後者叫做「Content MathML」)。由於數學式子的意義與表現是分離開的，如何交流內容留給了用戶。例如，內嵌MathML的網頁可以讓許多瀏覽器按照正常的網頁一樣瀏覽。但是視覺受損者也可以用相同的MathML，通過屏幕閱讀器（例如IE瀏覽器的MathPlayer外掛程式、Opera瀏覽器9.50構建號9656+、火狐瀏覽器的Fire Vox附加元件）有聲朗讀出來。

Content MathML

Content MathML 側重於運算式的語意，而不是布局。中間的 Content MathML 是用<apply>元素來表示功能的具體應用。被應用的功能的長子元素放在<apply>下，並且它的運算元或參數是剩下來的子元素， Content MathML 只有少許屬性。
識別元和數字之類的記號被單獨標記，就像 Presentation MathML 一樣，但是元素類似 ci 和 cn。不同於僅僅是另一個類型的記號，操作符表示具體的元素。它們的數學語意可以從MathML中的製鞋符號中看出來：times、power等等。為不同的功能和操作符超過100個不同的元素（見）。
例如，<apply><sin/><ci>x</ci></apply>代表，而<apply><plus/><ci>x</ci><cn>5</cn></apply>代表。表示操作符和功能的元素是空元素，因為它們的運算元是其它在下面包含有<apply>的元素。
運算式可以被表示為：
<math>
    <apply>
        <plus/>
        <apply>
            <times/>
            <ci>a</ci>
            <apply>
                <power/>
                <ci>x</ci>
                <cn>2</cn>
            </apply>
        </apply>
        <apply>
            <times/>
            <ci>b</ci>
            <ci>x</ci>
        </apply>
        <ci>c</ci>
    </apply></math>
Content MathML 近乎是同構於一個功能語言（例如Scheme）中的運算式。<apply>...</apply>的數量就是Scheme的(...)，而且許多操作符和功能元素的就是Scheme的函式。有了這些精細的文字轉換，外加去標籤的單獨記號，上面的例子就成為：
  (plus
    (times a (power x 2))
    (times b x)
    c)
這放映出XML元素結構和LISP或Scheme的S-運算式的長期的親密關係。

在XHTML或HTML5檔案中內嵌MathML

MathML是一種XML，可以通過使用XML命名空間來嵌入XML檔案中，例如XHTML檔案。現代瀏覽器例如火狐瀏覽器版本3以上版本和Opera瀏覽器9.6以上版本（不完全支援）可以展示XHTML內嵌的MathML。
例如 math-test.xhtml:
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1 plus MathML 2.0//EN" "http://www.w3.org/Math/DTD/mathml2/xhtml-math11-f.dtd"><html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
<title>Example of MathML embedded in an XHTML file</title>
<meta name="description" content="Example of MathML embedded in an XHTML file" />
<meta name="keywords" content="Example of MathML embedded in an XHTML file" />
</head>
<body>
<h1>Example of MathML embedded in an XHTML file</h1>
<p>
Given the quadratic equation
<math xmlns="http://www.w3.org/1998/Math/MathML">
<mrow>
<mi>a</mi>
<mo>&#x2062;<!-- &InvisibleTimes; --></mo>
<msup>
<mi>x</mi>
<mn>2</mn>
</msup>
<mo>+</mo>
<mi>b</mi>
<mo>&#x2062;<!-- &InvisibleTimes; --></mo>
<mi>x</mi>
<mo>+</mo>
<mi>c</mi>
<mo>=</mo>
<mi>0</mi>
</mrow>
</math>
, the roots are given by
<math xmlns="http://www.w3.org/1998/Math/MathML">
<mrow>
<mi>x</mi>
<mo>=</mo>
<mfrac>
<mrow>
<mo form="prefix">&#x2212;<!-- − --></mo>
<mi>b</mi>
<mo>&#x00B1;<!-- &PlusMinus; --></mo>
<msqrt>
<msup>
<mi>b</mi>
<mn>2</mn>
</msup>
<mo>&#x2212;<!-- − --></mo>
<mn>4</mn>
<mo>&#x2062;<!-- &InvisibleTimes; --></mo>
<mi>a</mi>
<mo>&#x2062;<!-- &InvisibleTimes; --></mo>
<mi>c</mi>
</msqrt>
</mrow>
<mrow>
<mn>2</mn>
<mo>&#x2062;<!-- &InvisibleTimes; --></mo>
<mi>a</mi>
</mrow>
</mfrac>
</mrow>
</math>
.
</p>
</body></html>
而行內MathML同樣被HTML5檔案支援。支援的瀏覽器有目前版本的WebKit（Safari）和Gecko（Firefox）。
例如： math-test.htm
<!DOCTYPE html><html lang="en">
<head>
<meta charset="UTF-8">
<title>Example of MathML embedded in an HTML5 file</title>
</head>

<body>
<h1>Example of 
<abbr title="Mathematical Markup Language">MathML</abbr>
embedded in an 
<abbr title="HyperText Markup Language">HTML</abbr>
5 file
</h1>
<p>
Given the quadratic equation
<math>
<mrow>
<mi>a</mi>
<mo>&InvisibleTimes;</mo>
<msup>
<mi>x</mi>
<mn>2</mn>
</msup>
<mo>+</mo>
<mi>b</mi>
<mo>&InvisibleTimes;</mo>
<mi>x</mi>
<mo>+</mo>
<mi>c</mi>
<mo>=</mo>
<mi>0</mi>
</mrow>
</math>
, the roots are given by
<math>
<mrow>
<mi>x</mi>
<mo>=</mo>
<mfrac>
<mrow>
<mo form="prefix">−</mo>
<mi>b</mi>
<mo>&PlusMinus;</mo>
<msqrt>
<msup>
<mi>b</mi>
<mn>2</mn>
</msup>
<mo>−</mo>
<mn>4</mn>
<mo>&InvisibleTimes;</mo>
<mi>a</mi>
<mo>&InvisibleTimes;</mo>
<mi>c</mi>
</msqrt>
</mrow>
<mrow>
<mn>2</mn>
<mo>&InvisibleTimes;</mo>
<mi>a</mi>
</mrow>
</mfrac>
</mrow>
</math>
.
</p>
</body></html>

瀏覽器

在現在幾個主要的網頁瀏覽器中，基於Gecko的瀏覽器（如Firefox）有最完備的原生支援。
而WebKit排版引擎有針對MathML的開發版，這一特性只出現在Safari 5.1及更高版本、Chrome 24，但是不在後來的Chrome版本裡面。Google移除了MathML支援，宣稱架構上的安全問題和低使用量不會證明他們的維護時間有理。截至2013年10月年，WebKit/Safari的實現存在多個bug。
Opera 9.5—12支援MathML CSS組態，但不能使附加符號正確放置。9.5之前需要用戶指令碼或樣式以類比MathML支援。從Opera 14開始，Opera通過遷移到Chromium 25引擎移除了MathML支援。
Internet Explorer原生不支援MathML。IE6到IE9在安裝了MathPlayer外掛程式後也可以辨識MathML。IE10使用MathPlayer時存在一些崩潰bug，並且微軟決定在IE11完全禁止MathPlayer所需的二進位外掛程式介面。MathPlayer有協定條款會限制在商用頁面或軟體上面的使用或發行。使用或發行MathPlayer外掛程式以通過商用軟體中的WebBrowser控制項顯示HTML內容也有可能受到禁止。
基於KHTML的Konqueror不提供對MathML的支援。

編輯器

MathML還得到了主要辦公軟體的支援，如Apache OpenOffice、LibreOffice、Microsoft Office，以及數學軟體的支援,如Mathematica、Maple。
Firemath是火狐瀏覽器的附加元件，提供WYSIWYG的MathML編輯器。

手寫辨識

Windows 7內建工具名叫Math Input Panel。可以把手寫輸入轉換為MathML。