Обзор средств публикации и просмотра математических документов в сети Интернет.

Автор: Митюнин В.А., Московский Государственный Университет

До недавнего времени не этой проблеме не уделялось должного внимания, и сложилась до некоторой степени парадоксальная ситуация: только благодаря науке стало возможным сущестование самой глобальной сети, а ведь математика � язык науки. Изменить состояние дел в настоящий момент взялось немалое количество специалистов, в число которых входят все компании, производящие браузеры, однако задача далеко не тривиальна, и ее полного решения еще никем не было предложено. Целью данного обзора является, по возможности объективно, изложить текущее состояние средств создания и публикации математических документов на страницах сети Интернет.

Возможные пути решения задачи.

Решение проблемы, по видимому, будет основано на комбинации следующих подходов:

  • Отображение графических страниц.

  • Чистый HTML ( с недавних пор -
    • XHTML ) с использованием тэгов шрифтов.

  • Графические фрагменты, встроенные в
    • XHTML страницы.

  • Java-
    •  апплеты, генерирующие математические формулы.

  • Отображение формул с помощью
    • plug-in расширений браузеров.

  • Встроенная поддержка спецификации
    • MathML в программу просмотра.

Рассмотрим подробнее достоинства и недостатки изложенных методов.

Отображение графических страниц.

Этот метод позволяет отобразить математические тексты в точности так, как они были созданы TeX-ом � например, в Poscript � формате. Лучше их отобразить едва ли кто в состоянии, но на этом достоинства такого подхода и заканчиваются. В чем же его недостатки? Во первых, размеры графических файлов намного превышают размер текста, замедляя загрузку страницы в программе просмотра. Во вторых, для просмотра таких форматов, как PDF и Poscript требуются специальные программы. ( этого, конечно можно избежать, конвертируя страницы, например, в GIF формат ). Однако как в том, так и в другом случае теряется возможность использования гиперссылок в тексте ( хотя есть продукт фирмы IBM � HyperTeX, предлагающий вариант решения этой проблемы, но он распространяется отнюдь не бесплатно ).

Таким образом, этот подход по своей сути эквивалентен помещению на странице исходного TeX-файла.

Чистый XHTML с использованием тэгов шрифтов.

Этот подход жертвует эстетической стороной в пользу простоты. Однако и �простота� здесь обманчива � просто показать, но сложно конвертировать. Кроме того, далеко не каждую формулу удастся закодировать с помощью тэгов шрифтов. Существует по крайней мере один пакет, реализующий этот метод � TtH ( TeX to HTML ), доступный в исходных текстах. Правда, с учетом перехода на новый стандарт � XHTML, похоже, нет ни одного.

Графические фрагменты, встроенные в XHTML страницы

Этот подход реализован в пакете LaTex2HTML ( он также доступен в исходных текстах ). Этот пакет конвертирует в HTML формулы, для которых это возможно, а остальные отображает в виде графических фрагментов. В результате документ превращается в немаленькое количество GIF-вкраплений, которые приходится подгружать. Однако для просмотра таких документов ничего, кроме браузера не требуется, и это несомненный плюс.

Java-апплеты, генерирующие математические формулы.

Возможно, на данный момент наиболее качественно реализованное решение. Прекрасным примером этого подхода является пакет WebEQ. Закодированное в одном из двух форматов, один из которых � разработанный специально для этой программы формат WebTeX ( представляющий собой просто урезанный TeX ), а вот другой � MathML, (что важно!), передаются Java-апплету в качестве параметров, после чего он генерирует вполне качественную картинку, отображаемую браузером.

Отображение формул с помощью plug-in расширений браузеров.

Подход, во многом схожий с Java-решением. Недостаток � в отличие от Java-апплета, plug-in придется установить самому, прежде чем его можно будет использовать. Эти подходы могут получить развитие, если будут поддержаны производителями браузеров.

Встроенная поддержка спецификации MathML в программу просмотра.

Во-первых, стоит поподробнее остановиться на самой спецификации.

В настоящий момент MathML - это официальная рекомендация консорциума W3C, одобренная математическим сообществом. Она представляет из себя определение типа документа (DTD) для языка XML.

В данный момент существует один браузер, в котором частично реализован MathML. Это браузер W3C Amaya, доступный в исходных кодах. К сожалению, этот браузер вряд ли кто нибудь захочет в данный момент использовать как программу просмотра из-за огромного количества ошибок. Стоит добавить, что Microsoft обещала реализовать этот стандарт в следующей версии InternetExplorer. По видимому, MathML - это � самый перспективный способ публикации математики в сети. Однако есть еще одна проблема, связанная с этим стандартом: использование для редактирования MathML текстов обычных XML-редакторов нереально в силу многословности этого стандарта. Таким образом, для создания MathML-документа необходим либо WYSIWYG-редактор, либо хороший конвертер TeX в HTML. В данный момент не существует полнофункциональных средств, решающих хотя бы одну из этих задач ( возможно, с задачей сможет справиться пакет TtM пока пробный конвертер TeX в MathML, сделанный на основе TtH, бета-версия которого доступна на данный момент в исходных кодах ).

Сравнительный анализ средств создания и публикации математических документов.

Браузер Amaya.

Программа заслуживает внимания по нескольким причинам. Во-первых, это единственный на данный момент браузер с встроенной ( хотя и не полной ) поддержкой MathML. Во-вторых, Amaya сочетает в себе возможности как браузера, так и WYSIWYG HTML-редактора с оригинальным представлением документа ( в частности, это относится и к MathML ). В-третьих, распространяется этот браузер в исходных кодах и его можно свободно скачивать с сайта W3C. Наконец, в нем реализована технология CSS и поддержка XHTML. Его главным недостатком, на мой взгляд, является большое количество ошибок. Стоит, однако, заметить, что проект, разрабатываемый в стиле базар, вполне может преодолеть эти трудности за счет работы энтузиастов. Что же касается реализации MathML, то здесь, по-видимому, просто еще слишком много недоделок.

Вот пример математики, отображенной Amaya:

WebEQ.

Этот Java-апплет обладает, по-видимому, самыми широкими возможностями как по поддерживаемым символам TeX-а, так и по внешнему виду результата. В нем очень легко отобразить формулы, которые не сможет воспроизвести качественно ни одна из других рассматриваемых систем. Для автоматизации публикации документов ( ведь их надо преобразовывать в параметры Java-апплета ) предусмотренны конвертер WebEQ Wizard и WYSIWYG-редактор WebEQ Equation Editor ( отметим, что все эти утилиты написаны на языке Java ). Первый способен конвертировать документы на некотором подмножестве TeX. В качестве результата вы можете получить по вашему выбору код апплета в WebTeX, код на MathML( пожалуй, наиболее ценная возможность � она означает, например, что в качестве параметра апплету можно передать стандартный MathML-скрипт ), или графический файл в формате JPEG или PNG. Основные недостатки заключаются в неполной реализации MathML и невозможности конвертировать полноценные LaTeX-документы. Достоинство пакета � высокое качество генерируемой графики.

Вот пример того же уравнения, созданного с помощью WYSIWYG-редактора �WebEq equation editor�:

Как ни странно, при отображении его с помощью апплета возникли некоторые проблемы � часть символов не была отображена корректно.

Вот код на MathML, сгенерированный редактором для этого уравнения

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

Microsoft IE.

Возможности редактирования здесь отсутствуют полностью. Для несложных формул это, возможно, и неплохой вариант, но в силу своей ограниченности до выхода следуещей версии фирме нечего предложить на этом рынке.

Вот пример формулы, отображенной в IE5.0:

Для ее кодирования был использован вот такой фрагмент HTML

Очевидно, что несмотря на неплохо выглядящий конечный результат, исправить что-либо в этом коде крайне непросто. Как следствие � единственный способ получения такого кода � конвертация TeX-файлов. Кроме того, возможности шрифтов в браузере далеко небезграничны. Видны также непропорциональные вертикальные и горизонтальные пробелы.

Ссылки:

[1] http://www.w3c.org/Math/

[2] http://www.w3.org/Amaya/

[3] http://www.microsoft.com/windows/IE/

[4] http://hutchinson.belmont.ma.us/tth/

[5] http://www.webeq.com/webeq/

[6] http://www-dsed.llnl.gov/files/programs/unix/latex2html/