Программы поддерживающие mathml. Основные способы вставки формул в html-документы. Синтаксические нотации, используемые в спецификации MathML
Необходимость разметки MathML вызвана тем, что формат HTML, несмотря на множество замечательных свойств, имеет довольно-таки ограниченные возможности передачи математических обозначений. Чаще всего формулы на HTML-страницах представляются в виде графики (растровой или векторной), но этот способ имеет очевидные недостатки. Например, формулу-рисунок практически невозможно отредактировать, а качество ее при печати обычно оставляет желать лучшего. Развитие идей и привело к созданию целого семейства языков математической разметки, к которым относится и MathML. Разработчики осознавали глубину проблематики и поставили цель создать спецификацию, удовлетворяющую следующим ограниченным, но все же достаточно важным требованиям:
ü легкость освоения и ручного набора основных математических обозначений
ü максимальная совместимость с другими математическими форматами, которая должна обеспечиваться соответствующими конвертами
ü возможность вывода формул на различные терминальные устройства
ü поддержка расширяемости, т. е. введения новых символов, схем.
Общий принцип использования MathML состоит в том, что математические конструкции встраиваются в обычный HTML-документ и воспроизводятся при загрузке документа из сети.
Язык MathML предлагает гибкую и расширяемую систему записи математического материала, позволяющую взаимодействовать с внешними программами и осуществлять высококачественное отображение в различных информационных средах. Общий принцип использования MathML состоит во встраивании математических конструкций в XHTML/HTML-документ. Cоздание веб-страниц с использованием MathML возможно тремя способами: HTML + презентационный MathML, XHTML + презентационный MathML, XML + MathML
Для преобразования математических выражений в MathML существует множество утилит . Основными браузерами , непосредственно поддерживающими MathML, являются последние версии Mozilla и его разновидности. Многие другие браузеры поддерживают этот формат при установке соответствующих плагинов . Кроме того, MathML поддерживается основными офисными программами, такими как Microsoft Word и OpenOffice.org , а также математическими программными продуктами например, Mathematica , Maple . MathML — о чень мощный и универсальный язык разметки формул. Правда, ред актировать формулы (и читать) довольно тяжело . Язык MathML построен по XML-технологии и для задания фрагментов формул используются свои теги.
Пример описания простой формулы
Пример 2
Вставка формул в html-документы с помощью разметки TeX
TeX – это популярный язык разметки, который используют многие люди, особенно в математическом мире, текстовый процессор, система форматирования документов.
Пакет позволяет автоматизировать многие задачи набора текста и подготовки статей, включая набор текста на нескольких языках, нумерацию разделов и формул, перекрёстные ссылки, размещение иллюстраций и таблиц на странице, ведение библиографии и др.
Формулы в LaTeX набираются с помощью специальных команд. Например, формула для нормального распределения в LaTeX будет выглядеть так: \frac{1}{\sigma\sqrt{2\pi}}\exp\left(-\frac{(x-\mu) ^2}{2\sigma^2}\ right)
а отображаться будет так:
Исходный код математической формулы записывается внутри тега Пробелы игнорируются (ТеХ их сделает сам). Пустые строки не разрешаются.
Достоинства TEX:
- программные реализации TEX есть практически для всех типов компьютеров
- низкие требования к аппаратным ресурсам (для работы достаточно IBM PC совместимого компьютера с 286/386 процессором)
- переносимость исходных текстов, (результаты форматирования, т.е. конечный вид вашего документа, будет идентичен для все платформ)
- при печати получается текст типографского качества,
- большое количество бесплатных реализаций
- возможность подготовки математических и других формул любой сложности которые будут прекрасно смотреться при печати, затрачивая при этом минимум усилий
- расширяемость (на основе имеющихся базовых команд можно создавать свои, более сложные)
Одной из основных функций, заложенных в TeX при его проектировании, была возможность простого набора математических формул.
Набор сложных формул существенно легче и быстрее «визуальных» редакторов (M$ Equation, MathCAD). В особенности это заметно, где требуется выравнивание формул относительно друг друга, расстановка нумерации, а также при использовании нестандартных математических обозначений.
Формулы поддерживаются только в нотации TeX. Пример:
notation=’TeX’>E=mc^2
что будет выглядеть так:
Вставка формул в html-документы в виде рисунков
Самый простой способ — вставлять формулы как растровые картинки с помощью тэга img . Изображение формулы может быть получено как вручную (из визуального редактора формул), так и автоматически. Формулы представляются в виде вставных объектов, внедренных в документ. Они могут содержать многоэтажные простые дроби, греческие буквы, матрицы.
Преимущества:
отображаются так же, как и в оригинале во всех браузерах, отображающих картинки
сравнительно легко копируется в документы Office
Недостатки:
самый большой размер страницы с формулами из всех рас смативаемых вариантов
невозможно изменить размер формулы - зачастую она либо слишком мелкая, либо слишком крупная относительно текста либо слишком мелкая, либо слишком крупная относительно текста
плохо смотрится при выводе на печать - не совпадают разрешения
невозможно изменить формулу без её исходного кода и специальной программы
довольно тяжело отцентровать формулу, находящуюся в тексте
невозможно перенести формулу по словам - разбить на несколько строк при необходимости
Использованная литература.
1. Галактионов В.В. Расширяемый язык разметки XML (Extensible Mark-up Language): промышленный стандарт, определяющий архитектуру программных средств Интернет следующего поколения. Сообщение ОИЯИ, Р10-2000-44, Дубна, 2000.
2. Д. Кнут. «Все про TeX.»
3. http://math.accent.kiev.ua
4. http://www.raleigh.ru/ MathML /MathML2/chapter2.html ·
5. www.elbib.ru/index.phtml?page=elbib/rus/journal/2005/
6. http://www.ibb.ru/articles/ tex /node3.phtml
Используемое для представления и формул в документах . MathML рекомендован математической группой .
Спецификация MathML версии 1.01 вышла в июле , в феврале появилась версия 2.0. В октябре была опубликована вторая редакция MathML версии 2.0, которая является на настоящий момент последней спецификацией, выпущенной математической группой .
MathML рассматривает не только представление , но и смысл элементов формулы. Также разрабатывается система разметки математической семантики, призванная дополнить MathML. Она называется OpenMath.
Пример
Поддержка программного обеспечения
Основными , непосредственно поддерживающими MathML, являются последние версии и его разновидности. Многие другие браузеры поддерживают этот формат при установке соответствующих . Например, в для поддержики MathML используется плагин MathPlayer.
Кроме того, MathML поддерживается основными офисными программами, такими как и , а также математическими программными продуктами, например,
До выхода HTML5 использование формул было сущим наказанием. Судите сами: в 2005-м необходимо было иметь под рукой либо специальный браузер, либо разбивать текст на собственно HTML и вставки из изображений или PDF. Поиск и прочие операции редактирования и/или вывода на экран/бумагу был неоднозначной задачей, коей посвящались целые монографии .
В 2012-м было уже попроще. Появилась возможность подключать необходимые плагины (Firemath для FireFox и Daum Equation Editor для Chrome). Но неоднозначность стандартов (и поддержки) фактически заставляла писать одну и ту же статью для каждого из браузеров (и для их версий). Или встречать пользователей волшебным приветствием «Ваш браузер надо обновить/дополнить расширением».
Неудобно? - Да! Отнимало много времени на поиск универсального решения? - Да! Заставляет думать о том, какой тип записи лучше (презентационный или содержательный), каким конвертером пользоваться (а их только общеизвестных с десятка полтора)? - ДА! ДА! ДА!
В результате работа по публикации превращалась в освоение двух-трех лексиконов разметки и изучения работы минимум одной программы-перекодировщика.
Теперь, с приходом HTML5, все стало намного проще. В нем появился новый контейнер
Атрибуты тэга
В дополнение к следующим атрибутам, тэг .Рассмотрим элементы для верстки таблиц и матриц.
Пример 2.
Различные математические символы при необходимости нужно отыскивать в кодировочной таблице Unicode.
Пример .
Довольно значительное количество примеров с интегралами можно найти на , поэтому не будем здесь на них останавливаться, рекомендуем читателю ознакомиться с примерами на указанном ресурсе.
Как отмечалось выше, MathML позволяет использовать презентационное и семантическое представления. Здесь мы сосредоточились на презентационном как наиболее удобоваримом и чаще используемом. Тем не менее, чтобы дать хотя бы некоторое представление о другом варианте, рассмотрим небольшой иллюстративный пример и запишем его в двух вариантах представления.
Пример . x 2 - 6x + 9 = 0
Конечно, набор формул в MathML - занятие довольно длительное и требует определенных усилий. Впрочем, кто работал достаточно долго в LaTeX, особой разницы не заметит. Тем не менее чаще пользователь предпочитает применять различные инструменты. Назовем некоторые .
Во-первых, математические пакеты, скажем, Mathematica или Maple, позволяют сохранять набранные в них формулы в формате MathML.
Этот ресурс использует Java-скрипт ASCIIMathML.js (ver 2.0; сентябрь 2007; http://www1.chapman.edu/~jipsen/mathml/asciimath.html , автор скрипта - Peter Jipsen), работающий на компьютере пользователя, который загружается при загрузке демонстрационной страницы http://www1.chapman.edu/~jipsen/mathml/asciimathdemo.html . Поэтому, в частности, этот ресурс может использоваться локально: достаточно сохранить упомянутую демонстрационную html-страницу и можно производить конвертацию простых формул без подключения к Интернету.
В заключение отметим, что MathML как средство разметки также неплохо подходит при генерации различных математических заданий (см. примеры выше). При этом для программирования можно использовать, например, JavaScript, тогда пользователь получит возможность генерировать произвольное количество вариантов заданий по своему усмотрению. Также можно предусмотреть и генерацию ответов ко всем заданиям, что весьма несложно.
Рассчитываем, что на этом знакомство читателя со средствами верстки математических текстов не завершается и далее он сможет самостоятельно выбрать заинтересовавший его инструмент, а может быть, и применить на практике описанные технологии.
Литература и ресурсы Интернета
Хоть интернет во многом создан усилиями физиков и математиков, путь математической формулы на его страницах был весьма долог и тернист. Только в последние годы можно сказать, что математические формулы прочно обосновались в Сети.
Дело в том, что в языке HTML, с помощью которого создаются веб-страницы, нет средств для изображения формул. Создателям сайтов приходилось как-то выкручиваться: использовать таблицы, индексы и другие обходные пути. Список подобных приемов приведен , и резюмировать его можно так - путь труден, а результат жалок.
Частичным выходом из положения стала вставка формул в виде рисунков. Для их создания существует немало инструментов . Можно использовать визуальный редактор (например, Equation Editor из Microsoft Office) или преобразовать формулу, набранную в LaTeX , с помощью онлайнового конвертера . Наконец, есть Google Docs , редактор формул которого реализует обе эти возможности. Но подбирать размеры и позиционировать рисунок приходилось веб-мастеру. А значит, об интерактивности сайта оставалось только мечтать. Для этого нужен был язык, который позволил бы посетителю сайта самому набирать формулы.
Таких языков на рубеже 2000-х годов существовало два: LaTeX - для визуального представления формул, и MathML - для описания их структуры. К тому времени LaTeX уже много лет использовался для подготовки математических текстов, поэтому неудивительно, что именно его стали использовать для сетевой математики. Одной из первых попыток такого рода стала программа LaTeXML . Написанная на Perl, она обрабатывает документ LaTeX и выводит результат в файл XML. Затем ее постпроцессор конвертирует полученный XML в другие текстовые форматы, например, в HTML и XHTML (а теперь - и в MathML) или в рисунки. Результаты работы LaTeXML можно посмотреть .
Сравнение записи формулы в MathML и LaTeX
Однако это не решало проблем с интерактивностью. Для этого программа-обработчик должна была выполняться непосредственно в браузере. Первым на сторону клиента перешел jsMath Дэвида Сервона (Davide Cervone). Он преобразовывал формулы, набранные пользователем на языке LaTeX, в изображения, выполненные средствами HTML и CSS. Так появилась возможность создавать по-настоящему интерактивные математические веб-страницы.
Первый шаг был сделан, но проблем оставалось еще много. Нужно было добиться, чтобы программа работала во всех браузерах (начиная с ветеранов, вроде Internet Explorer 6) и наладить экспорт формул в различные форматы, в первую очередь, в MathML. Решить эти задачи призван был проект MathJax, начатый в 2009 г. под руководством Американского математического общества при поддержке и портала Stack Exchange . Созданная в результате библиотека MathJax работает во всех браузерах и умеет сохранять формулы в HTML+CSS, SVG и MathML. Пользователю не нужно устанавливать плагины или шрифты - теперь он просто работает.
Ввод формулы в MathJax…
и ее отображение
Если jsMath оживил математику в интернете, то MathJax "выпустил джинна из бутылки", позволив за короткое время реализовать массу замечательных идей. Хотите получить математическое образование в Сети? Загляните сюда и сюда . Нужно пообщаться с коллегами? Извольте . Создать публикации с «живыми» кодом и формулами? Вот и вот . Интересует система компьютерной алгебры на Android? Почему бы и нет . Чат с математической поддержкой? Легко . Создать блог, чтобы рассказать о своей работе? Пожалуйста . А еще MathJax использует Wikipedia , бесплатный архив электронных публикаций arXiv и Общероссийский математический портал . Так MathJax стал де-факто стандартом для отображения формул на веб-страницах.
Значит ли это, что все проблемы остались в прошлом? Нет, конечно. Так,