Открыть сервис

MathML

MathML (от англ. Mathematical Markup Language — язык математической разметки) — это язык разметки на основе XML, предназначенный для описания математических обозначений и передачи их структуры и содержания в веб-документах и других приложениях. MathML является частью стандарта HTML5 и рекомендуется Консорциумом Всемирной паутины (W3C) как средство для представления математики в интернете. Основное назначение MathML — обеспечить семантически корректное отображение математических формул, уравнений и выражений, доступное как для визуального восприятия, так и для машинной обработки (например, в системах компьютерной алгебры или для людей с ограниченными возможностями).

История

Разработка MathML началась в 1996 году в рамках деятельности рабочей группы W3C по математике. Первая версия, MathML 1.0, была опубликована в апреле 1998 года. Она включала базовые элементы для описания простых математических структур, таких как дроби, индексы и суммы. Вторая версия, MathML 2.0, вышла в феврале 2001 года и расширила функциональность за счет поддержки более сложных конструкций (например, матриц и интегралов), а также улучшила интеграцию с CSS и другими веб-технологиями.

Ключевым этапом стало принятие MathML 3.0 в октябре 2010 года. Эта версия добавила поддержку линейных уравнений, улучшенную обработку многострочных формул и возможность использования в сочетании с другими языками разметки, такими как SVG (Scalable Vector Graphics) для визуализации. MathML 3.0 также ввел механизм «токенизации» для более точного представления символов и операторов. Начиная с HTML5 (рекомендация W3C 2014 года), MathML вошел в состав базового набора технологий для веба, хотя его поддержка браузерами оставалась неполной.

Архитектура и синтаксис

MathML построен на принципах XML и использует теги для описания математических объектов. Различают два основных подхода к разметке:

Презентационная разметка (Presentation MathML)

Описывает внешний вид формулы: расположение символов, размеры, шрифты и стили. Основные элементы включают:

Пример разметки для формулы x² + y² = z²: ``xml <mrow> <msup><mi>x</mi><mn>2</mn></msup> <mo>+</mo> <msup><mi>y</mi><mn>2</mn></msup> <mo>=</mo> <msup><mi>z</mi><mn>2</mn></msup> </mrow> ``

Содержательная разметка (Content MathML)

Описывает математическую семантику: что означает выражение, а не как оно выглядит. Используются теги, соответствующие математическим операциям и функциям:

Пример разметки для того же выражения: ``xml <apply><eq/> <apply><plus/> <apply><power/><ci>x</ci><cn>2</cn></apply> <apply><power/><ci>y</ci><cn>2</cn></apply> </apply> <apply><power/><ci>z</ci><cn>2</cn></apply> </apply> ``

Презентационная разметка чаще используется для отображения в браузерах, а содержательная — для обмена данными между математическими программами.

Поддержка в браузерах и программном обеспечении

Поддержка MathML в веб-браузерах исторически была неравномерной. Наиболее полную поддержку обеспечивают браузеры на основе движка Gecko (Firefox, SeaMonkey), которые поддерживают MathML с версии 2.0 (2001 год). В браузерах на основе WebKit (Safari) поддержка появилась с версии 5.1 (2011 год), но ограничена презентационной разметкой. Google Chrome долгое время не поддерживал MathML напрямую, полагаясь на JavaScript-библиотеки (например, MathJax или KaTeX). С версии Chrome 109 (2023 год) была добавлена экспериментальная поддержка MathML, но она не является полной. В Internet Explorer поддержка отсутствовала.

Для отображения MathML в браузерах без встроенной поддержки используются полифиллы и библиотеки:

Вне веба MathML используется в офисных пакетах (например, LibreOffice, Apache OpenOffice), системах компьютерной алгебры (Wolfram Mathematica, Maple) и редакторах формул (например, в Microsoft Word через вставку OMML — Office MathML, который является вариантом MathML).

Применение

MathML применяется в следующих областях:

Научные публикации и электронные книги

MathML используется в форматах EPUB3 и HTML5 для встраивания математических формул в электронные книги и научные статьи. Это позволяет сохранять структуру формул при изменении размера шрифта или переформатировании текста.

Образование

В системах дистанционного обучения (LMS) и интерактивных учебниках MathML обеспечивает отображение формул на веб-страницах. Например, платформы Khan Academy и Coursera используют MathML (через MathJax) для отображения уравнений.

Доступность

MathML позволяет создавать математические выражения, доступные для программ экранного доступа (скринридеров). Содержательная разметка особенно полезна для людей с нарушениями зрения, так как позволяет озвучивать формулы в виде речи или преобразовывать их в шрифт Брайля.

Обмен данными

В научных базах данных и репозиториях (например, arXiv, MathSciNet) MathML используется для хранения и передачи математических статей. Формат MathML является частью стандарта OpenMath, который ориентирован на обмен математическими объектами между программами.

Критика и ограничения

Основные недостатки MathML включают:

Альтернативой MathML является использование LaTeX с последующей конвертацией в SVG или PNG, что обеспечивает более широкую поддержку, но теряет семантическую структуру. Также существует формат AsciiMath, который проще для написания, но менее выразителен.

Примеры использования

Простая дробь

``xml <mfrac><mn>1</mn><mn>2</mn></mfrac> `` Отображается как: ½

Интеграл

``xml <mrow> <msubsup><mo>∫</mo><mn>0</mn><mn>∞</mn></msubsup> <msup><mi>e</mi><mrow><mo>−</mo><msup><mi>x</mi><mn>2</mn></msup></mrow></msup> <mi>dx</mi> </mrow> `` Отображается как: ∫₀^∞ e^(−x²) dx

Матрица

``xml <mrow> <mo>[</mo> <mtable> <mtr><mtd><mn>1</mn></mtd><mtd><mn>0</mn></mtd></mtr> <mtr><mtd><mn>0</mtd><mtd><mn>1</mn></mtd></mtr> </mtable> <mo>]</mo> </mrow> `` Отображается как: [1 0; 0 1]

Источники

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →