Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Приложения Microsoft 365 (Word, PowerPoint, Excel и OneNote) могут импортировать и экспортировать MathML (математический язык разметки). В этом документе описывается, какие элементы, атрибуты и шаблоны MathML поддерживаются, а также какие ограничения применяются.
Импорт MathML (MathML → Office Math)
Поддерживаемая версия MathML
Средство импорта поддерживает MathML 3 (Presentation MathML), включая элементы и атрибуты, нерекомендуемые в MathML Core, но по-прежнему mathvariant используемые, такие как <mfenced>, <maligngroup>, <malignmark>и атрибут .
Обработка пространства имен
Корневой <math> элемент должен использовать пространство http://www.w3.org/1998/Math/MathMLимен MathML . Принимаются префиксы пространства имен (например, <m:math xmlns:m="...">). Распространенная ошибка разработки — пропуск http: протокола — автоматически исправляется перед импортом.
Атрибут display="block" в <math> распознается и создает уравнение режима отображения (по центру). Без него уравнение является встроенным.
Поддерживаемые элементы
Элементы token
| Элемент | Описание |
|---|---|
<mi> |
Идентификатор (переменная, имя функции) |
<mo> |
Оператор или символ ограждения |
<mn> |
Номер |
<mtext> |
Текст |
<ms> |
Строковый литерал (с атрибутами lquote/rquote ) |
<mspace> |
Явное пространство (с width, height, depth) |
<mglyph> |
Ссылка на глиф |
Элементы макета
| Элемент | Описание |
|---|---|
<mrow> |
Горизонтальная группа вложенных выражений |
<mfrac> |
Дробь |
<msqrt> |
Квадратный корень |
<mroot> |
n-й корень |
<msub> |
Subscript |
<msup> |
Superscript |
<msubsup> |
Подстрочный и надстрочный знаки |
<munder> |
Underscript (ограничение ниже) |
<mover> |
Overscript (ограничение выше / акцент) |
<munderover> |
Под скриптами и более |
<mmultiscripts> |
Несколько предписок и постскриптовок |
<mprescripts/> |
Разделитель между постскрипторами и прескрипторами в <mmultiscripts> |
<none/> |
Пустой заполнитель скрипта в <mmultiscripts> |
<mfenced> |
Огражденное (разделенное) выражение — устаревшая версия MathML 3 |
<menclose> |
Корпус (коробка, круг, забастовка и т. д.) |
<mphantom> |
Невидимое содержимое (занимает место) |
<mpadded> |
Прямоугольник с регулируемым интервалом |
<mstyle> |
Изменение стиля (наследуемые атрибуты) |
<merror> |
Отображение ошибки (отображается в виде упакованой формулы) |
Элементы таблицы
| Элемент | Описание |
|---|---|
<mtable> |
Матрица или таблица |
<mtr> |
Строка таблицы |
<mlabeledtr> |
Строка таблицы с метками |
<mtd> |
Ячейка таблицы |
<maligngroup> |
Маркер группы выравнивания |
<malignmark> |
Маркер выравнивания края |
Элементы заметки
| Элемент | Описание |
|---|---|
<semantics> |
Оболочка семантических заметок |
<annotation> |
Текстовая заметка (например, источник LaTeX) |
<annotation-xml> |
Заметка XML (например, Content MathML) |
При <semantics> наличии для отрисовки используется первый дочерний элемент (Presentation MathML).
<annotation> и <annotation-xml> дочерние элементы в настоящее время игнорируются.
Прочее
| Элемент | Описание |
|---|---|
<maction> |
Элемент Action — первый дочерний элемент, используемый для отрисовки |
Поддерживаемые атрибуты
Глобальные атрибуты
Эти атрибуты принимаются для большинства элементов:
| Атрибут | Значения | По умолчанию | Описание |
|---|---|---|---|
mathvariant |
См. таблицу ниже | normal* |
Вариант шрифта |
mathsize |
small, normal, bigили длина |
Унаследовал | Размер шрифта |
mathcolor |
Имя цвета или #RRGGBB |
Унаследовал | Цвет переднего плана |
mathbackground |
Имя цвета или #RRGGBB |
transparent |
Цвет фона |
* Для элементов маркера по умолчанию MathML имеет значение normal, но для односимвных <mi> элементов по умолчанию используется курсив.
Параметр dir не поддерживается.
mathvariant Значения
Распознаются все 18 значений MathML 3 mathvariant :
| Значение | Сопоставление OMML |
|---|---|
normal |
Вертикальное (простое) |
bold |
Полужирный |
italic |
Курсив |
bold-italic |
Полужирный курсив |
double-struck |
Двойной удар (полужирный шрифт доски) |
script |
Сценарий (каллиграфический) |
bold-script |
Полужирный → скрипт, сопоставленный со скриптом |
fraktur |
Фрактур |
bold-fraktur |
Полужирный → fraktur, сопоставленный с fraktur |
sans-serif |
Без засечек |
bold-sans-serif |
Полужирное → без засечек, сопоставленное с полужирным шрифтом |
sans-serif-italic |
Курсив без засечек →, сопоставленный курсивом |
sans-serif-bold-italic |
Без засечек полужирный курсив → сопоставлен с полужирным курсивом |
monospace |
Monospace |
initial |
Начальный (арабский) |
tailed |
Хвост (арабский) |
looped |
Циклическое (арабский) |
stretched |
Растянутый (арабский) |
<mo> Атрибуты оператора
| Атрибут | Значения | По умолчанию | Описание |
|---|---|---|---|
stretchy |
true, false |
словарь операторов | Растягивается ли оператор |
fence |
true, false |
словарь операторов | Является ли оператор забором или скобкой |
separator |
true, false |
словарь операторов | Является ли оператор разделителем |
largeop |
true, false |
словарь операторов | Является ли оператор крупным оператором |
accent |
true, false |
словарь операторов | Является ли оператор акцентом |
movablelimits |
true, false |
словарь операторов | Могут ли ограничения перемещаться |
lspace |
Длина | словарь операторов | Левый интервал |
rspace |
Длина | словарь операторов | Правый интервал |
form |
prefix, infix, postfix |
автоматический (определяется из положения) | Форма оператора |
Значения по умолчанию для атрибутов определяются из словаря операторов. Только stretchy, largeop, separatorи fence можно переопределить явными значениями.
<mfrac> Атрибуты
| Атрибут | Значения | По умолчанию | Описание |
|---|---|---|---|
linethickness |
Длина, medium или 0 |
medium |
Толщина полосы дроби.
0 создает биномиальный коэффициент (без баров).
thin и thick не поддерживаются. |
bevelled |
true, false |
false |
Наклонная (встроенная) доля |
<mfenced> атрибуты (устаревшая версия MathML 3)
| Атрибут | По умолчанию | Описание |
|---|---|---|
open |
( |
Открытие символа разделителя |
close |
) |
Закрывающий символ разделителя |
separators |
, |
Символы-разделители между дочерними элементами |
<mfenced> внутренне расширяется до эквивалента <mrow> с разделителями <mo> . Например, вы можете:
<mfenced open="[" close="]" separators=",">
<mi>a</mi><mi>b</mi><mi>c</mi>
</mfenced>
эквивалентен:
<mrow>
<mo>[</mo><mi>a</mi><mo>,</mo><mi>b</mi><mo>,</mo><mi>c</mi><mo>]</mo>
</mrow>
Примечание. Когда U+251C ├ и U+2524 ┤ используются в качестве разделителей забора, они становятся невидимыми. Более ранние версии приложений Microsoft 365 могли экспортировать их для невидимых разделителей.
<menclose> Атрибуты
| Атрибут | Значения | По умолчанию | Описание |
|---|---|---|---|
notation |
bottom, box, downdiagonalstrike, horizontalstrike, left, madruwb, none, radical, right, top, updiagonalstrike, verticalstrike |
none (MathML 3 по умолчанию longdiv не поддерживается.) |
Стиль корпуса.
actuarial, circle, longdiv, phasorangleи roundedbox не поддерживаются. |
Можно объединить несколько значений нотации (разделенных пробелами).
<munder>
/
<mover>
/
<munderover> Атрибуты
| Атрибут | Значения | По умолчанию | Описание |
|---|---|---|---|
accent |
true, false |
automatic |
Является ли переписка акцентом |
accentunder |
true, false |
automatic |
Является ли нижний индекс акцентом |
<msub>
/
<msup>
/
<msubsup> Атрибуты
subscriptshift и superscriptshift не поддерживаются.
<mtable> Атрибуты
rowalign, columnalign, columnwidth, rowspacingcolumnspacing, width, alignmentscope, frameи framespacing не поддерживаются.
<mtr>атрибуты и <mtd>
rowalign, columnalign, rowspanи columnspan не поддерживаются.
<mpadded> Атрибуты
width, lspace, heightи depth не поддерживаются.
<mspace> Атрибуты
width, heightи depth не поддерживаются.
Ссылки на символы
Standard ссылки на числовые символы XML (√, √) поддерживаются во всех входных данных MathML.
Html именованные символьные ссылки (α, , ⁢, и т. д.) поддерживаются только в том случае, ≤если MathML внедрен в HTML. Они не входят в спецификации XML или MathML и не распознаются при импорте автономного XML-кода MathML. Дополнительные сведения см. в разделе HTML ниже.
Ссылки на именованные символы никогда не записываются во время экспорта MathML. Все символы записываются в виде литерала Юникода, <за исключением , >и &, которые должны быть закодированы в ФОРМАТЕ XML.
Словарь операторов
Импорт включает встроенный словарь операторов, который предоставляет свойства отрисовки по умолчанию для общих операторов. К ним относятся:
-
Символы ограждения:
(,),[,{], ,|}, ,‖,⌈,⌉,⌋⌊,⟨,⟩, ,⟦,⟧, и CJK - Операторы Stretchy: Стрелки, скобки, целые знаки, радикалы, фигурные скобки и скобки
- Крупные операторы: ∑, ∏, ∐, ∫, ∮, ∮∮, ⊕, ⊗, ⊙, ⋂, ⋃, ⋀, ⋁и т. д.
- Операторы акцента: Циркумфлекс, тильда, макрон, буква-модификатор макрон, breve, точка, острая, могила, карон, стрелки (в виде оверскриптов), фигурные скобки и скобки
- Операторы movable-limits: ∑, ∏, ⋂, ⋃, lim, max, min и др.
Перевод акцентов между интервалами и комбинированием
Символы междустрочных знаков в MathML (например, U+02C6, U+02DC тильда) автоматически преобразуются в их объединяющие формы для использования в конструкциях акцентов OMML. Это необходимо, так как MathML использует формы с интервалами в, <mo> а OMML требует объединения символов.
Экспорт MathML (Office Math → MathML)
Формат вывода
Экспорт MathML в большинстве случаев создает выходные данные, совместимые с MathML Core. Это позволяет избежать устаревших функций MathML 3:
Нет
<mfenced>. Выражения с разделителями записываются как<mrow>с явным<mo>открывателем, содержимым и<mo>ближе, за исключением копирования математики в буфер обмена в OneNote.Нет
<maligngroup>или<malignmark>: столбцы добавляются в<mtable>для выравнивания содержимого в точках выравнивания с интервалом между столбцами 0. Обратите внимание, что интервалы между столбцами и выравнивание имеют ограниченную поддержку в экосистеме.Нет атрибута
mathvariant="bold"<mi>для стилевых символов: вместо в экспорте из дополнительного уровня (U+1D400–U+1D7FF) или буквенные математические символы Юникода из диапазона U+2100–U+214F отсутствуютmathvariant. Например, полужирный курсив x записывается как U+1D499 вместо<mi mathvariant="bold-italic">x</mi>, а скрипт H записывается как U+210B, а не<mi mathvariant="script">H</mi>. Атрибутmathvariant="normal"используется только для идентификаторов с несколькими символами, которые не должны быть курсивом.
Исключением является то, что <menclose> может использоваться в экспортируемом MathML.
Сопоставление элементов OMML с MathML
В следующей таблице показано, как элементы OMML преобразуются в MathML.
| Элемент OMML | Выходные данные MathML |
|---|---|
<m:oMathPara> |
<math display="block"> |
<m:oMath> (встроенный) |
<math> |
<m:f> (дробь, гистограмма) |
<mfrac> |
<m:f> (дробь, без полосы) |
<mfrac linethickness="0"> (биномиальная) |
<m:f> (дробь, перекос) |
<mfrac bevelled="true"> |
<m:f> (дробный, линейный) |
<mrow>num<mo>/</mo>den</mrow> |
<m:rad> (без степени) |
<msqrt> |
<m:rad> (со степенью) |
<mroot> |
<m:d> (разделитель) |
<mrow><mo>(</mo>...<mo>)</mo></mrow> |
<m:d> (с разделителями) |
<mrow><mo>(</mo>...<mo>\|</mo>...<mo>)</mo></mrow> |
<m:nary> |
<munderover>, <munder>или<msup><msub>/с <mo> оператором |
<m:acc> |
<mover accent="true"> |
<m:bar> (вверху) |
<mover> с символом <mo> строки |
<m:bar> (снизу) |
<munder> с символом <mo> строки |
<m:groupChr> |
<munder> или <mover> с символом группировки |
<m:limLow> |
<munder> |
<m:limUpp> |
<mover> |
<m:func> |
<mrow> with <mo>⁡</mo> (ApplyFunction) |
<m:sSub> |
<msub> |
<m:sSup> |
<msup> |
<m:sSubSup> |
<msubsup> |
<m:sPre> |
<mmultiscripts> с <mprescripts/> |
<m:m> (матрица) |
<mtable> / <mtr> / <mtd> |
<m:eqArr> |
<mtable> с выравниванием |
<m:borderBox> |
<menclose notation="box"> |
<m:box> |
<mpadded> |
<m:phant> |
<mphantom> |
<m:r> (запуск) |
<mi>, <mn>, <mo>или <mtext> в зависимости от содержимого |
Атрибуты, записанные во время экспорта
| Атрибут | Когда используется |
|---|---|
display="block" |
Включено <math> для уравнений режима отображения |
mathvariant="normal" |
Несколько символов <mi> , которые должны быть вертикальными (например, имена функций) |
mathcolor |
Если выполнение имеет цвет переднего плана, отличный от цвета переднего плана по умолчанию |
mathbackground |
Если выполнение имеет цвет фона, отличный от цвета фона по умолчанию |
accent="true" |
О <mover> том, когда переписка является акцентом |
accentunder="true" |
О <munder> том, когда нижний индекс является акцентом |
stretchy |
Включено <mo> для растянутого разделителя и операторов |
separator="true" |
Включено <mo> для символов разделителя в выражениях с разделителями |
fence="true" |
Включено <mo> для символов забора или квадратных скобок |
linethickness="0" |
Включено <mfrac> для безлибочных дробей (биномиалы) |
bevelled="true" |
Включено <mfrac> для перекосов или встроенных дробей |
columnalign |
Включено <mtable> или <mtd> для выравнивания столбцов |
rowalign |
Включено <mtable> или <mtr> для выравнивания строк |
notation |
Включено <menclose> для стилей box/strike |
Обработка шрифтов во время экспорта
Вместо использования атрибута mathvariant для символов стиля экспорт преобразует символы в их математические буквенно-цифровые эквиваленты Юникода:
| Стиль OMML | Блок Юникода | Пример |
|---|---|---|
| Полужирный | U+1D400–U+1D433 | A → 𝐀 |
| Курсив | U+1D434–U+1D467 | → |
| Полужирный курсив | U+1D468–U+1D49B | x → x |
| Script | U+1D49C–U+1D4CF | L → L |
| Фрактур | U+1D504–U+1D537 | g → g |
| Двойной удар | U+1D538–U+1D56B | R → R |
| Без засечек | U+1D5A0–U+1D5D3 | x → x |
| Monospace | U+1D670–U+1D6A3 | x → x |
В некоторых случаях записываются буквенно-математические символы Юникода в диапазоне U+2100–U+214F.
Этот подход создает выходные данные, совместимые с MathML Core, и не зависит от поддержки отрисовщика атрибута mathvariant .
Кодировка символов
Импорт кодировки
Импортер MathML принимает входные данные в следующих кодировках:
- UTF-16LE — используется при получении MathML через буфер обмена.
-
UTF-8 — используется, когда MathML считывается из файлов (например, документов ODF, HTML-файлов). Объявление XML (
<?xml version="1.0" encoding="UTF-8"?>) в начале входных данных является необязательным.
Обе кодировки поддерживают полный диапазон Юникода. Для UTF-16LE суррогатные пары поддерживаются для символов дополнительной плоскости (U+10000 и выше).
Экспорт кодировки
- UTF-16LE — значение по умолчанию для вывода буфера обмена.
- UTF-8 — для экспорта на основе файлов (атрибуты ODF, PDF).
В экспортируемом MathML используются литеральные символы Юникода. Ссылки на именованные символы (например, α) никогда не записываются. Ссылки на числовые символы используются только в том случае, если это требуется для сериализатора XML (например, ⁡ для невидимых операторов в некоторых путях кода).
Поддержка буфера обмена
Приложения могут копировать и вставлять MathML для эффективного взаимодействия с другими приложениями, поддерживающими MathML.
MathML, помещенный в буфер обмена во время копирования
| Имя формата буфера обмена | Описание |
|---|---|
MathML |
Разметка презентации MathML (UTF-16LE) |
MathML Presentation |
То же содержимое, что MathMLи , зарегистрировано как отдельный формат для совместимости с приложениями, которые используют это имя |
Форматы CF_TEXT и CF_UNICODETEXT также заполняются MathML, если пользователь включил параметр для него.
Форматы, принятые во время вставки
При вставке приложения проверка буфер обмена для математических форматов в следующем порядке приоритета:
-
MathMLилиMathML Presentation -
CF_UNICODETEXT/CF_TEXT— выполняется импорт, так как выполняется попытка выполнения MathML и если он успешно выполняется, сохраняется. В противном случае приложение будет пытаться импортировать другие форматы.
HTML
MathML в импорте HTML
Когда MathML внедряется в HTML-документ (например, вставлен с веб-страницы или открыт в виде HTML-файла), средство синтаксического анализа HTML извлекает блоки <math>...</math> и передает их в средство импорта MathML. В этом контексте распознаются более 2000 именованных ссылок на символы HTML, в том числе:
- Греческие буквы:
α,β,Γи т. д. - Операторы:
+,−,×,⁢и т. д. - Отношения:
≤,≥,≠,≡,⊂и т. д. - Стрелки:
→,←,↔,⇒и т. д. - Letterlike:
𝔄(fraktur A),𝔸(двойной удар A),𝒜(скрипт A) и т. д. - Невидимые операторы:
⁢(U+2062),⁡(U+2061),⁣(U+2063)
Эти именованные ссылки на символы определяются спецификацией HTML, а не XML или MathML. Они не распознаются при импорте автономного XML-файла MathML (который поддерживает только числовые ссылки на символы, такие как α и α).
MathML как остров данных XML с префиксом xmlns в HTML также импортируется, даже если веб-браузеры не отображают его как математические.
MathML в экспорте HTML
MathML в настоящее время не записывается при экспорте HTML. Уравнения при экспорте HTML отображаются в виде изображений или опущены в зависимости от параметров приложения и экспорта.
Формат Open Document (ODF)
При загрузке и сохранении документов в формате открытого документа (.odt, ODP) в качестве формата уравнения используется MathML. При загрузке и сохранении формата открытого документа MathML импортируется и экспортируется таким же образом, как описано выше.
Специальные возможности
модель автоматизации пользовательского интерфейса (Windows)
В Windows представление MathML каждого уравнения предоставляется в дереве специальных возможностей с помощью пользовательского свойства модель автоматизации пользовательского интерфейса (UIA). Вспомогательные технологии, такие как средства чтения с экрана, могут считывать это свойство, чтобы получить структурированное математическое описание содержимого уравнения.
Экспорт PDF/UA
При экспорте в PDF уравнения записываются с пользовательским атрибутомMSFT_MathML в дереве тегов PDF/UA. Этот атрибут содержит разметку MathML для уравнения. Средства чтения PDF, поддерживающие этот атрибут, могут использовать его, чтобы сделать математическое содержимое доступным для специальных возможностей.
Ограничения
Ограничения импорта
Content MathML не поддерживается. Импортируется только файл Presentation MathML. Элементы MathML содержимого (
<apply>,<ci>,<cn>,<csymbol>и т. д.) внутри<annotation-xml>игнорируются.<maction>частично поддерживается. Отрисовывается только первый дочерний элемент<maction>. Атрибутыactiontypeи поведение выбора и переключения не поддерживаются.<mlabeledtr>обрабатывается как<mtr>. Метка (первый дочерний) обрабатывается как обычная<mtd>.<mstyle>наследование атрибутов. Большинство атрибутов наследуются через<mstyle>, но некоторые сложные цепочки наследования могут быть не полностью разрешены.<mpadded>Размеров. Корректировкиwidth,height,depthиlspaceанализируются, но сопоставляются с фантомными конструкциями OMML, которые имеют ограниченный контроль размера по сравнению с гибкой моделью MathML.Разрыв линий. Атрибуты разбиения строк MathML (
linebreak,linebreakstyle,lineleadingи т. д.) не поддерживаются.<menclose>нотация покрытия. Поддерживается только подмножество значенийnotation. Неподдерживаемые значения (например,phasorangle,longdiv,actuarial) игнорируются.<ms>отрисовка строк. Элемент<ms>обрабатывается аналогично<mtext>. Настраиваемыеlquoteатрибуты иrquoteраспознаются, но поведение цитирования может отличаться от спецификации MathML.Диапазон столбцов или строк.
rowspanАтрибуты иcolumnspanв<mtd>анализируются, но матрицы OMML не поддерживают охват, поэтому они игнорируются.intent. Атрибут MathML 4intentне поддерживается.
Ограничения экспорта
Нет
<semantics>или<annotation>. Экспортируемый MathML не включает семантические заметки или альтернативные представления.Нет нумеровки уравнений. Числа и теги уравнений не экспортируются.
Экспорт размера и цвета.
mathsize,mathcolor, иmathbackgroundне экспортируются.Выравнивание матрицы. Выравнивание столбцов из OMML экспортируется, но сложные шаблоны выравнивания (несколько групп выравнивания, области выравнивания) могут сохраняться не полностью.
Невидимые операторы. Конструкции OMML для применения функций экспортируются с помощью
<mo>⁡</mo>(ApplyFunction), но не все невидимые различия операторов сохраняются.Нет MathML в экспорте HTML. При сохранении в HTML уравнения не записываются как MathML.
Рекомендации по круговой поездке
Импорт → экспорт: MathML, импортированный в Office Math, а затем экспортированный обратно в MathML, создает семантически эквивалентные выходные данные, но структура разметки может отличаться. Например,
<mfenced>во входных данных становится<mrow>с<mo>элементами в выходных данных.mathvariant→ буквенно-цифровых символов Юникода. Входные данныеmathvariant="bold"экспортируются с использованием математических буквенно-цифровых символов Юникода (U+1D400–U+1D7FF) или буквенно-подобных математических символов Юникода (U+2100–U+214F).Ссылки на символы → Символы: Ссылки на именованные символы во входных данных HTML (например,
α) экспортируются в виде литеральных символов Юникода (α). Оба семантически идентичны.
Требования
Если не указано иное, описанные здесь функции поддерживаются в Microsoft 365 версии 2606 (сборка 20131.xxxxx) для Windows и версии 16.110 для Mac и более поздних версий. Более ранние версии поддерживают некоторые, но не все функции, описанные здесь.