**MathML** eli matemaattinen merkintäkieli (sanoista *Mathematical Markup Language*) on XML:n sovellus, jolla voidaan esittää matemaattisia symboleja ja kaavoja. Tarkoituksena on sisällyttää verkkosivuihin matemaattisia kaavoja. 

MathML on W3C:n suositus.

Historia
--------

Ensimmäinen määrittelyversio 1.01 julkaistiin heinäkuussa 1999 ja versio 2.0 ilmestyi helmikuussa 2001. Lokakuussa 2003 MathML:n versio 2.0 julkaistiin lopullisena versiona.

MathML kehitettiin ennen XML:n nimiavaruuksia. Siksi MathML ei usein käytä nimiavaruuksia ja ohjelmat, jotka käsittelevät MathML:ää, kuten Mozilla-selain, eivät vaadi nimiavaruuksien määrittämistä. Ohjelmissa, jotka käyttävät nimiavaruuksia MathML:ssä, suositeltu nimiavaruus-URI on .

Esitys ja merkitys
------------------

XML:n tavoin MathML ei kuvaa ainoastaan esitysmuotoa, vaan se voi myös sisältää kaavojen osien merkityksen. Tämä jälkimmäinen osa tunnetaan nimellä MathML-Content (content tarkoittaa sisältöä). Koska laskua tai kaavaa säilytetään erillään esityksestä se, miten sisällyksen tarkoitus kerrotaan, jätetään käyttäjälle. Esimerkiksi nettisivut, jotka sisältävät MathML:llä toteutetun kaavan, voidaan näyttää normaaleina sivuina monilla eri selaimilla, mutta ruudunlukuohjelma voi lukea näkövammaiselle käyttäjälle saman MathML:n ääneen. (esimerkiksi käyttäen MathPlayer-lisäosaa Internet Explorerissa).

Esimerkki
---------

Tunnettu toisen asteen yhtälön ratkaisukaava

{\displaystyle x={\frac {-b\pm {\sqrt {b^{2}-4ac}}}{2a}}}
merkittäisiin TeX-syntaksilla näin:

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

```

Ja MathML:llä näin:

```
<math>
 <mi>x</mi>
 <mo>=</mo>
 <mfrac>
  <mrow>
   <mrow>
    <mo>-</mo>
    <mi>b</mi>
   </mrow>
   <mo>±</mo>
   <msqrt>
    <msup>
     <mi>b</mi>
     <mn>2</mn>
    </msup>
    <mo>-</mo>
    <mrow>
     <mn>4</mn>
     <mo>⁢</mo>
     <mi>a</mi>
     <mo>⁢</mo>
     <mi>c</mi>
    </mrow>
   </msqrt>
  </mrow>
  <mrow>
   <mn>2</mn>
   <mo>⁢</mo>
   <mi>a</mi>
  </mrow>
 </mfrac>
</math>

```

Vaikka MathML-merkintä on TeX-esitystä pidempi, XML-muotoilu laajentaa merkinnän käsittelyä ohjelmallisesti ja mahdollistaa tulostuksen erilaisissa ohjelmissa kuten esimerkiksi selaimessa. MathML-koodia ei ole tarkoitettu suoraan ihmisen muokattavaksi.

Ohjelmistotuki
--------------

### Editorit

Suoran MathML tuki (mm. MathML:n leikkauksen ja liimauksen) sisältäviä editoreja ovat julkaisseet Wolfram Research (Publicon) ja Soft4science (SciWriter).

MathML:ää tukevia toimisto-ohjelmistoja ovat muun muassa LibreOffice ja KOffice ja matemaattisista ohjelmistoista Mathematica.

### Muunto

Monia muunto-ohjelmia matemaattisen ilmaisun muuntamiseen MathML:ksi on markkinoilla, sisältäen muuntajia TeXin ja MathML:n välillä. ConTeXt kääntää MathML:n TeXiin (käyttökohteena pdf-tiedostot). Design Sciencen MathTypellä voi WYSIWYG-editorissa käsiteltyjä kaavoja muuntaa MathML:ksi. Wolfram Research tarjoaa nettisivun kirjoitettujen kaavojen kääntämiseksi 
MathML:ksi.

GNU TeXmacs on WYSIWYG-editori, joka luotu matematiikan esitystä silmällä pitäen. MathML-muuntajia on kumpaankin suuntaan. TeXmacsia voidaan käyttää kirjoittamaan matemaattisia XHTML-artikkeleita, jotka sisältävät MathML:ää. 

Amaya, W3C:n selain-editori voidaan myös mainita wysiwyg-MathML-editorina.

### Selaimet

Yleisimmistä selaimista vain Gecko-moottoria käyttävät selaimet (eli Firefox) osaavat sellaisinaan esittää MathML:ää. Muut selaimet tarvitsevat lisäosia MathML:n sisällön näyttämiseen.

Muita standardeja
-----------------

OpenMath on standardi, joka on pikemminkin suunniteltu sisältämään kaavan tarkoituksen, mutta sitä voidaan käyttää myös MathML:n lisänä. OpenMathin suunnittelijat ovat suurimmaksi osaksi osallistuneet MathML-Contentin suunnitteluun.

Lähteet
-------

1. ↑  Mathematical Markup Language *w3.org*. Viitattu 28.2.2020. (englanniksi)

Aiheesta muualla
----------------

CommonsCommons
Wikimedia Commonsissa on kuvia tai muita tiedostoja aiheesta **MathML**.

* W3C Math Home -sisältää määrittelyn ja listan MathML:ää tukevista ohjelmista (englanniksi)
* Viimeisimmät MathML suositukset (englanniksi)
* Zvon MathML Reference (englanniksi)

* GNU TeXmacs -ilmainen wysiswyg editori (englanniksi)
* MathType (englanniksi)
* MathPlayer – Design Sciensen plugin, jolla Internet Explorer pystyy näyttämään MathML:llä muodostetun kaavan (englanniksi)
* MathFlow XML workflow tools to interpret, create, edit, and export MathML. (englanniksi)
* MathML Central (englanniksi)
* Native MathML lisäosa Mozilla Firefox verkkoselaimeen. (englanniksi)
* itexToMML (englanniksi)
* ASCIIMath – JavaScript kirjasto wiki-tyypisen syntaksin muuntamiseksi MathML:ksi (englanniksi)
* LaTeXMathML – JavaScript ohjelma, joka dynaamisesti muuttaa LaTeX matematiikka notaation MathML:ksi(englanniksi)