MathML (от англ. Mathematical Markup Language — «язык математической разметки») — это язык разметки на основе XML для представления математических символов и формул в документах WWW. MathML рекомендован математической группой W3C.
MathML рассматривает не только представление, но и смысл элементов формулы. Также разрабатывается система разметки математической семантики, призванная дополнить MathML. Она называется OpenMath.
MathML имеет 2 версии — Presentation MathML и Content MathML.
В TeX описание x = \frac{-b \pm \sqrt{b^2 - 4ac}}{2a}
используется для представления формулы
Ниже приведено описание этой формулы с помощью MathML:
XML-структура MathML обеспечивает широкую область использования и позволяет быстро отображать формулы в приложениях, таких как браузеры, а также легко интерпретировать их значения в математических программных продуктах.
Следует с осторожностью относиться к информации о том, что программный продукт поддерживает MathML, поскольку как правило не сообщается о версии поддерживаемого MathML.
Существует множество утилит для преобразования математических выражений в MathML, включая конвертеры между TeX и MathML.
Язык разметки MathML поддерживается многими современными браузерами[]: Mozilla Firefox поддерживает MathML 2.0, начиная с версии Firefox 1.5. В настоящее время в разработке поддержка MathML 3.0. Opera частично[] поддерживала MathML начиная с версии 9.5 (сборки 9656) (от 16 ноября 2007), но после перехода на WebKit поддержка была прекращена.
Google Chrome официально поддерживал MathML в версии 24[], но позже поддержка была прекращена.[] Многие другие браузеры поддерживают этот формат при установке соответствующих плагинов.
MathJax позволяет поддерживать MathML в браузерах, не имеющих родной поддержки формата, при помощи JavaScript.
Кроме того, MathML поддерживается основными офисными программами, такими как Microsoft Word и OpenOffice.org, а также математическими программными продуктами, например, Mathematica, Maple.
В Windows 7 реализована поддержка рукописного ввода формул. Результат распознавания представлен в виде выражения MathML[].