ProgrammerBook.ru: Обратите внимание, что

  1. данный документ является переводом документа «HTML Math»;
  2. данный документ может содержать неточности, опечатки и ошибки перевода;
  3. официальным документом по данной тематике является оригинальный документ на английском языке, расположенный на сайте W3C.

HTML Math

Допустимый Контекст: %text
Модель Содержимого: %math

Элемент <MATH> используется для включения математических выражений в текущую строку. HTML math является достаточно мощным инструментом для описания диапазона математических выражений, которые вы можете создать в обычных пакетах обработки текста, а также HTML math пригоден для речевого представления математических выражений. Когда медиа представляет только текст с фиксированным шагом, для математических символов, таких как знак интеграла может быть использована простая текстовая графика, в то время как другие символы могут быть представлены с помощью их имён сущностей. Возможность SGML SHORTREF используется с целью обеспечения сокращения для скрытых скобок, верхних и нижних индексов.

Разработка HTML math во многом обязана математическому режиму LaTeX, который был признан эффективным для самых разнообразных вариантов математической вёрстки. Куда практичнее, HTML math использует имена тегов, соответствующие LaTeX командам, например, ATOP, CHOOSE и SQRT действуют таким же образом как и их LaTeX тёзки. Конечно, SGML и LaTeX имеют совершенно разные синтаксические соглашения. В результате, HTML math для символов использует ISO имена сущностей, а не TeX имена. В LaTeX, символ команды «^» указывает, что следующий символ является показателем степени, в то время как символ команды «_» указывает, что следующий символ является индексом. Если показатель степени или индекс содержит более одного символа, то группа символов должна быть заключена в фигурные скобки «{ }». Этот синтаксис не подходит для SGML, поэтому HTML math вместо обработки «_ и «^» как shortref символов вводит SUB и SUP элементы, которые используются для индексов и показателей степени, соответственно.

Я не могу найти ISO имена сущностей для «_» и «^» символов!

HTML math разрабатывался как краткий и сравнительно легко читаемый. На практике формулы будут немного больше, чем в LaTeX, но гораздо короче, чем в других предложениях математической разметки для SGML, например таких как EuroMath или ISO 12083. Такое упрощение было достигнуто благодаря мощному элементу BOX, который заменяет многие элементы в других предложениях, а также простым соглашениям для связывания SUB и SUP элементов и их использования в качестве универсального способа смещения операторов вверх и вниз. HTML math различает термины, например, бинарные операторы, переменные, константы, интегральные знаки, разделители и т.д. Это упрощает представление и отражает допущения, принятые в LaTeX. Кроме того, HTML math позволяет такое же смещение операторов вверх и вниз, которые будут использоваться для множества различных ролей в зависимости от условий их применения. HTML math не обеспечивает прямую поддержку многострочных уравнений, так как они могут быть эффективно созданы путём сочетая математической разметки с TABLE элементами.

Пример - интеграл от a до b из f(x) над 1+x

    <MATH>&int;_a_^b^{f(x)<over>1+x} dx</MATH>

который может быть представлен средой выводящей только текст с фиксированным шагом как:

         b
         /   f(x)
         | ------- dx
         /  1 + x
         a

В этом примере используются { и } как shortrefs для <BOX> и </BOX> соответственно. Они используются для невидимых скобок, эластичных разделителей и интегральных знаков, а также размещения одного над другим. Shortref символы «_» и «^» используются как подстрочные и надстрочные индексы соответственно.

HTML math следует общей практике вариантов математической вёрстки по представлению функций, чисел и других констант в виде вертикального шрифта, в то время как переменные представляются курсивом. Вы можете установить определённые термины жирным вариантом, а для химических формул, вы можете принудительно использовать вертикальный шрифт. Пределы для символов, таких как знаки интеграла и суммирования размещаются непосредственно над (под) символом или непосредственно справа в зависимости от символа.

Расстояние между константами, переменными и операторами определяется автоматически. Дополнительное расстояние может быть вставлено с помощью сущностей, таких как &thinsp;, &sp; и &quadsp;. Пробельное пространство в разметке используется только для разделения соседних переменных или констант. Вам не нужны пробелы до или после бинарных операторов или других специальных символов, поскольку они распознаются HTML math токенизатором. Пробельное пространство может быть полезно, для улучшения читаемости в процессе создания.
Мне нужно проверить ISO имена сущностей для пробелов!

Math Разметка

Следующие элементы допустимы в пределах MATH элементов:

BOX
Используется для скрытых скобок, эластичных разделителей, и размещения одного выражения над другим (например, числителей и знаменателей).
SUB, SUP
Верхние и нижние индексы. Также используются для указания интервалов значений.
ABOVE
Используется для указания стрелок, линий или символов над выражением.
BELOW
Используется для указания стрелок, линий или символов под выражением.
VEC, BAR, DOT, DDOT, HAT, TILDE
Это удобные теги для указания общих надсимвольных элементов в качестве альтернативы использованию ABOVE.
SQRT, ROOT
Для квадратных корней и других корневых выражений.
ARRAY
Для матриц и других видов массивов.
TEXT
Используется для включения в math элемент короткого фрагмента текста, который часто используется в сочетании с SUB или SUP элементами.
B, T, BT
Эти элементы используются для переопределения метода представления, используемого по умолчанию. B представляет вложенное выражение полужирным видом. T обозначает термин, который будет представлен в виде вертикального шрифта, в то время как BT обозначает термин, который будет представлен в виде полужирного вертикального шрифта. Атрибут class может быть использован для описания такого термина как, например, вектора, тензора или матрицы.

HTML Math Сущности

Документы обозначенные следующими ссылками находятся в стадии разработки ...

Представление HTML Math

Выражение, представляется в три этапа:

  1. Первый шаг рекурсивного разбора выражений заключается в построении комбинационной иерархии структур данных (с ограничительными рамками), соответствующих последовательности вложенных выражений. Math токенизатору необходимо уметь различать константы, переменные, функции, операторы, разделители и специальные символы, такие как интегралы, которые могут иметь пределы и могут быть эластичными.
  2. Следующий шаг устанавливает размер внутренних выражений в зависимости от размера доступных шрифтов. Если возможно, то для выражений верхних и нижних индексов следует использовать более мелкий шрифт. Размер и относительное расположение соседних и вложенных выражений затем распространяется вверх по иерархии от середины наружу, так как процедура стека, сформированного в шаге (1) раскручивается.
  3. Заключительным шагом является представление иерархии выражений в выводящей среде. Теперь это является простой задачей, так как и позиционирование и размеры специальных символов и текстовых строк уже установлены.

Примечание: На практике, подходит только ограниченный диапазон размеров шрифтов, в результате (как результат), глубоко вложенные выражения, как непрерывные дроби не могут использовать всё более мелкие шрифты. Это просто обрабатывается параметром ParseExpression процедуры, который устанавливает размер шрифта, используемого для данного выражения. ParseExpression вызывается рекурсивно для вложенных выражений и использует всё более мелкий шрифт, пока он не достигнет нижнего предела наименьшего доступного шрифта. Параметр size соответствует нумерации доступных размеров шрифта.

Допустимые Атрибуты

ID
SGML-идентификатор используется в качестве цели для гипертекстовых ссылок или для именования отдельных элементов в присоединённых таблицах стилей. Идентификаторы NAME лексем должны быть уникальными в рамках текущего документа.
CLASS
Это разделённый пробелами список SGML NAME лексем, которые используются для именования подклассов тега. По соглашению, имена классов интерпретируются иерархически, с самого общего класса слева до наиболее специфичного справа, где классы разделены точкой.

Для элемента MATH, CLASS может быть использован для описания разновидности сложного математического выражения. Он может быть использован для изменения способа представления формулы и поддержки экспорта выражения в программу математических символов. Класс «chem» полезен для химических формул, которые используют вертикальный шрифт для переменных, а не курсивный шрифт, используемый по умолчанию. Например:

    <math class=chem> Fe_2_^2+^Cr_2_O_4_</math>
                                 2+
который будет представлен как  Fe  Cr  O
                                 2   2  4

В противном случае, соглашения по выбору имён классов выходят за рамки данной спецификации.

BOX
Присутствие этого атрибута побуждает агента пользователя, нарисовать прямоугольную рамку вокруг формулы.