Хоть интернет во многом создан усилиями физиков и математиков, путь математической формулы на его страницах был весьма долог и тернист. Только в последние годы можно сказать, что математические формулы прочно обосновались в Сети.
Дело в том, что в языке 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 стал де-факто стандартом для отображения формул на веб-страницах.
Значит ли это, что все проблемы остались в прошлом? Нет, конечно. Так, Академия Ха́на, старающаяся сделать качественное образование доступным каждому, нуждается в быстром отображении формул на старых и слабых компьютерах. Для этого они разрабатывают собственную библиотеку KaTeX, которая в перспективе должна заменить MathJax. Пока KaTeX не может сравниться с MathJax по функциональности, предстоит еще решить проблемы с работой на старых браузерах, зато она существенно быстрее MathJax. Те же задачи решает библиотека jqMath, которая также занимает меньше места и работает быстрее MathJax, но хуже последней поддерживает MathML.
Мы не зря так часто упоминаем здесь о MathML. Он необходим для организации автоматической обработки формул. Например, если вам понадобится организовать поиск по формулам, то MathML — как раз то, что нужно.
Создавать формулы непосредственно с помощью MathML неудобно. Для этого есть визуальный редактор Firemath, выполненный в виде расширения браузера Firefox или конвертер из TeX в MathML — TeXZilla, также доступный в виде расширения Firefox. Ну, и MathJax, конечно.
Дмитрий Храмов
![Версия для печати Версия для печати](https://www.kv.by/sites/all/modules/print/icons/print_icon.png)
Комментарии
Страницы
поздравляю всех с днем числа "Пи", дааа, такое раз в 100 лет случается
Ох уж эти журналисты...
3,14159... ~3,1416
Поэтому в празднуем в следующем году. 14-го марта 2016 г.
mike > 3,14159... ~3,1416 Поэтому в празднуем в следующем году. 3-го марта 2016 г.
14 марта, ты описался, но это ясно, но вот - Не надо терять точность. НЕ НАДО! имхо.
3.14159265359...
14 марта в 1 час 59 минуту и 26 секунд!
Логично. ;)
А праспяваць?:
Страницы