РОССИЙСКИЙ НАУЧНЫЙ ЭЛЕКТРОННЫЙ ЖУРНАЛ Электронные библиотеки
2005 - Том 8 - Выпуск 6

Представление математических текстов в Веб

Л.Н. Шиолашвили
ВЦ РАН


В статье содержится обзор известных инструментов подготовки математических текстов, а также обсуждаются различные способы представления их в Веб: TeX/LaTeX, MathML, графические форматы. Рассмотрены основные функции и возможности данных инструментов, их достоинства и недостатки. Представлен обзор инструментов для конвертирования математических данных из формата TeX/LaTeX в MathML, из MathML в TeX/LaTeX, из формата содержательной разметки MathML в формат презентационной разметки MathML.

Введение

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

Существенным элементом реализации цифровых библиотек научной информации является поддержка математических данных (математических конструкций). С этим связаны вопросы организации создания, хранения, представления математических материалов, обеспечение возможности поиска математических выражений и т.п.

Наиболее распространенными являются редакционно-издательские системы, подготавливающие математические тексты в формате TeX.

Одной из первых редакционно-издательских систем для создания математических текстов стала разработка известного математика-программиста Дональда Кнута — TeX. Это была первая система с развитой поддержкой математических формул. Позже появились такие известные расширения пакета TeX, как LaTeX и AmS-TeX. На сегодняшний день большинство математических текстов представлено в TeX-формате или в расширениях данного формата.

LaTeX самый распространенный макропакет по подготовке статей, книг, отчётов и деловых писем. Его создателем является Лэсли Лэмпорт.

AmS-TeX - пакет, подготавливающий математические тексты в соответствии со стандартом Американского Математического общества.

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

Для решения данной проблемы консорциум World Wide Web (W3C) в 1994 году создал рабочую группу по разработке языка математической разметки. Была предложена спецификация MathML. Язык MathML создан на основе расширяемого языка разметки XML [1]. К настоящему времени консорциум W3C опубликовал вторую редакцию версии 2.0 спецификации языка MathML. Язык MathML позволяет представлять математический материал в виде презентационной и содержательной разметки. Презентационная разметка передает математическую нотацию, содержательная разметка отражает математическое знание.

Презентационная разметка MathML фиксирует синтаксис математического выражения. Данная разметка позволяет кодировать синтаксис математического выражения достаточно абстрактно, что может быть удобно для медиа?приложений. Одна и та же презентационная разметка для математического выражения может быть использована для отображения на экране, в приложениях речевого воспроизведения, при выводе на печать и т.д.

Содержательная разметка MathML фиксирует содержание (семантику) математического выражения. Данная разметка позволяет кодировать содержание математического выражения достаточно регулярным образом, что может быть удобно для обработки программным обеспечением [2].

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

Приведем пример двух видов разметки информации на языке MathML: презентационной и содержательной (см. Таблица 1)

пример

презентационная

содержательная

a-b
<mrow><mi>a</mi><mo>-</mo><mi>b</mi></mrow>
<apply><minus/><ci>a</ci><ci>b</ci></apply>

Таблица 1. Виды разметки MathML

Презентационная разметка имеет инфиксную форму записи, а содержательная разметка - префиксную форму.

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

Общий принцип использования MathML состоит во встраивании математических конструкций в XHTML/HTML-документ.

Для создания, конвертирования, просмотра, печати документов MathML предлагаются специальные редакторы формул, конвертеры и другие специализированные программные средства.

Средства отображения TeX и MathML

Существуют следующие способы просмотра математических текстов:

  • Использование браузеров, которые поддерживают возможность отображения математических формул, выражений.
  • Использование обычных браузеров, функциональность которых расширяется специальными дополнительными модулями, называемыми «плагинами» (plug-in, add-on), реализующими возможность отображения математических формул, выражений.

К первой категории относятся браузеры: Amaya, Dadzilla, Firefox 1.1 или Mozilla 1.0, Netscape 7.0.

Ко второй категории можно отнести: IE 5.5 + Math Player, IE 5.0 +  IBM techexplorer, Netscape 6.1 +  IBM techexplorer, IE 5.5 + Integre techexplorer, Netscape 4.0 + Integre techexplorer.

Браузеры

Netscape и  Mozilla /Firefox являются браузерами Gecko- поколения, которые поддерживают такие стандарты Интернет, как HTML 4.0, CSS 1/2, W3C Document Object Model, XML 1.0, RDF, и JavaScript. Ранее браузеры Gecko-поколения были известны под такими названиями, как Raptor или NGLayout. Воспроизводят презентационную разметку MathML. Данные браузеры при работе с  MathML могут потребовать установку дополнительных шрифтов CMYS10, CMEX10, Math1, Math2, Math4, которые можно взять по адресу http://www.mozilla.org/projects/mathml/fonts.

Amaya - браузер для просмотра математических текстов в формате MathML презентационного вида, включает редактор подготовки математических текстов в этом же формате [3] (Рис. 1).

Версия 9.1 браузера/WYSIWYG-редактора Amaya поддерживает  HTML 4.01, XHTML 1.0, XHTML Basic, XHTML 1.1, HTTP 1.1, MathML 2.0 презентационного вида, многое из CSS 2, SVG, SMIL-анимацию. Браузер позволяет просматривать и редактировать XML-документы. Amaya представляет документы в структурированном виде с соблюдением DTD. Позволяется одновременно просматривать и редактировать HTML-документы с MathML и SVG-включениями (Scalable Vector Graphics). Amaya позволяет расширять и модифицировать функциональность. Доступны также исходные коды этого браузера для платформ Linux, Windows (NT, XP, 2000, 98) и Mac OSX.

Рис. 1 Окно браузера Amaya

Dadzilla - браузер для представления арабской формы записи математических выражений с использованием MathML, которые содержат специфические символы и записываются справа налево (Рис. 2).

Dadzilla является адаптированной версией Mozilla 1.5.1. Предполагается поддержка как латинских, так и арабских символов. Остается нерешенной проблема элемента <rl>, который определяет RTL (right to left) направление чтения.

Рис. 2 Окно браузера Dadzilla

Плагины

Math Player является продуктом компании Design Science. Это быстродействующий плагин показа MathML для веб-браузера Microsoft's Internet Explorer версии 5.5 и выше. Поддерживает презентационную разметку MathML. Math Player является свободно распространяемым.

Integre techexplorer Hypermedia Browser - это плагин к браузерам IE, NN 4.0 (6.0, 7.0), Mozilla для работы с большими и расширенными математическими выражениями в Интернете, представленными в LaTeX- и MathML-формате презентационного и содержательного вида. Допускает смешанное представление математических выражений в HTML-документе LaTeX- и MathML-формата. Однако возможности его несколько шире, что будет показано ниже.

IBM techexplorer  Этот плагин динамически формирует и отображает документы, которые содержат выражения TeX /LaTeX, поддерживаемые только частично [4]. Существуют его реализации для платформ Windows 95, Windows NT, UNIX, Macintosh. IBM предлагает конвертер, выполненный на технологи Java+XSLT, который позволяет выполнять конвертирование из Latex-формата в dvi-, gif- и ps-форматы. Предполагаемое использование - в jsp-страницах. Является свободно распространяемым продуктом для академических структур.

Таким образом, браузеры Amaya, Firefox или Mozilla 1.0, Netscape 7.0, Dadzilla имеют встроенную поддержку MathML. Для воспроизведения MathML браузерами Microsoft IE, Netscape 6.0 и ниже требуется дополнительная установка плагинов.

Создание веб-страниц с использованием MathML

Cоздание веб-страниц с использованием MathML возможно тремя способами: HTML + презентационный MathML, XHTML + презентационный MathML, XML + MathML [5].

Веб-страница HTML + MathML (презентационная разметка) имеет разное оформление под разные браузеры.

Выделим первый вид веб-страниц (HTML + презентационный MathML) под браузеры Gecko-поколения (о них говорилось выше). Надо отметить, что браузеры Gecko-поколения воспроизводят  некорректно MathML на HTML-странице. Решение этой проблемы описывается ниже. HTML-страница с презентационной разметкой MathML под браузеры Gecko-поколения имеет одинаковое оформление.

Второй вид веб-страниц – это страницы под браузеры с плагинами. Веб-страницы имеют разное оформление под плагины MathPlayer, Integre techexplorer, IBM techexplorer.

Веб-страница XHTML + презентационный MathML имеет единый вид оформления для всех браузеров.

Веб-страница XML+MathML позволяет использовать содержательную и презентационную разметку MathML. Как описано в спецификации  MathML, содержательная разметка предназначена для обработки программным обеспечением и не допускает неоднозначности. Следовательно, данный вид страниц может быть использован при взаимодействии с другими информационными системами, организации поиска по математическим формулам.

HTML+MathML

Веб-страница HTML+ MathML имеет одинаковое оформление для браузеров Amaya, Firefox или Mozilla 1.0, Netscape 7.0.

Веб-страница HTML+ MathML имеет разное оформление для браузеров Microsoft Internet Explorer и Netscape в зависимости от используемых плагинов. Для браузера Microsoft Internet Explorer используют плагины  MathPlayer и  Integre techexplorer. Для  браузера Netscape используют плагины Integre techexplorer и IBM techexplorer.

Таким образом, можно определить следующие виды HTML-страниц c презентационной разметкой MathML для просмотра браузерами Amaya, Firefox или Mozilla 1.0, Netscape 7.0, Microsoft Internet Explorer, Netscape 6.0 и ниже:

  • для браузера MS IE + MathPlayer
  • для браузера MS IE + Integre techexplorer
  • для браузера MS IE + IBM techexplorer
  • для браузера Netscape + Integre techexplorer
  • для браузера Netscape + IBM techexplorer
  • для браузеров Amaya, Firefox или Mozilla 1.0, Netscape 7.0

Вариант для браузера Netscape +  IBM Techexplorer/Integre techexplorer необходим, если пользователем системы для работы будет использоваться Netscape версии 6.0 и ниже, а также при необходимости отображения на странице TeX-выражений. Вариант  для браузера MS IE + Integre techexplorer удобен при воспроизведении на странице TeX- и MathML-выражений при просмотре браузером Microsoft Internet Explorer.

Браузер MS IE + MathPlayer

Ниже приведен образец HTML-страницы. Необходимо указать явное обращение к плагину Integre techexplorer:

<object id=MathPlayer
classid="clsid:32F66A20-7614-11D4-BD11-00104BD3F987"
codebase="http://www.dessci.com/dl/mathplayer.cab">
</object>

Математические выражения могут быть записаны внутри тега <math>…</math> презентационной разметкой MathML.

<html xmlns:m="http://www.w3.org/1998/Math/MathML">
<head>
<object id=MathPlayer
classid="clsid:32F66A20-7614-11D4-BD11-00104BD3F987"
codebase="http://www.dessci.com/dl/mathplayer.cab">
</object>
<?import namespace="m" implementation="#MathPlayer">
</head>
<body>
<m:math>
…
</m:math>
</body>
</html>

Браузер MS IE + Integre techexplorer

Ниже приведен образец HTML-страницы. Осуществляется явное обращение к  плагину Integre techexplorer. Возможно включать как TeX -выражения, так и MathML –выражения обеих видов разметки. Следует обратить внимание, что для TeX-выражений параметр обращения к типу данных выглядит следующим образом:

<param name="DataType" value="0">
а для MathML-выражений как
<param name="DataType" value="1">.

TeX-выражение записывается в параметре value и обрамляется знаками $$...$$.

<html xmlns:m="http://www.w3.org/1998/Math/MathML">
<body>
<object height="100" width="200" classid="clsid:5AFAB315-AD87-11D3-98BB-002035EFB1A4">
<param name="AutoSize" value="true">
<param name="DataType" value="0">
<param name="Data" value="$$...$$">
<br><br>
<object height="100" width="200" classid="clsid:5AFAB315-AD87-11D3-98BB-002035EFB1A4">
<param name="AutoSize" value="true">
<param name="DataType" value="1">
<param name="Data" value=" <math>
…
</math>">
</object>
</body>
</html>

Возможно создание HTML-страницы, где присутствуют и Tex-, и MathML-выражения. Разрешено включать MathML-выражения в TeX-выражения. При этом параметр value равен: “0” в обращении к типу данных <param name="DataType" value="0">. (“0” — TeX/LaTeX данные,“1” — MathML-выражения, “2”— TeX /LaTeX файл, “3” — MathML файл)

MathML-выражения заключаются внутри конструкции \begin{MathML}… \end{MathML}.

<html xmlns:m="http://www.w3.org/1998/Math/MathML">
<body>
<object height="100" width="200" classid="clsid:5AFAB315-AD87-11D3-98BB-002035EFB1A4">
<param name="AutoSize" value="true">
<param name="DataType" value="0">
<param name="Data" value=" $$...$$

\begin{MathML}
…
\end{MathML}

">
</object>
</body>
</html>

Браузер MS IE + IBM techexplorer

Ниже приведен образец HTML-страницы. Здесь необходимо явное обращение к плагину IBM techexplorer:

<object ID="eqn" height=100 width=200

classid="clsid:5AFAB315-AD87-11D3-98BB-002035EFB1A4">

Внутри тега <math> необходимо объявить пространство имен MathML в параметре xmlns.

<html>
<head></head>
<body>
<h2>Here is a simple equation</h2>
<object ID="eqn" height=100 width=200
classid="clsid:5AFAB315-AD87-11D3-98BB-002035EFB1A4">
<param name="autosize" value="true">
<param name="datatype" value="1">
<param name="data" value=
"<math xmlns='http://www.w3.org/1998/Math/MathML'>
...
</math>">
</object>
</body>
</html>

Браузер Netscape + Integre  techexplorer

Ниже приведен образец HTML-страницы. Здесь явно указывается обращение к плагину Integre  techexplorer:

<embed type="application/x-techexplorer"
mmldata="<math xmlns='http://www.w3.org/1998/Math/MathML'>
…
</math>"
pluginspage="http://www.integretechpub.com/techexplorer/"
…
</embed>

Внутри тега <math> необходимо объявить пространство имен MathML в параметре xmlns.

<html>
<head></head>
<body>
<h2>Here is a simple equation.</h2>
<object id="matrix" height=100 width=200
classid="clsid:5afab315-ad87-11d3-98bb-002035efb1a4">
<param name="autosize" value=true>
<param name="datatype" value="1">
<embed type="application/x-techexplorer"
 mmldata="<math xmlns='http://www.w3.org/1998/Math/MathML'>
…
</math>"
pluginspage="http://www.integretechpub.com/techexplorer/"
height=100 width=200 name="difference">
</embed>
</object>
</body>
</html>

Браузер Netscape + IBM techexplorer

Ниже приведен образец HTML-страницы. Здесь явно указывается обращение к плагину IBM techexplorer:

<embed type="application/x-techexplorer"
pluginspage='http://www.software.ibm.com/techexplorer/'
…
</embed>

Внутри тега <math> необходимо объявить пространство имен MathML в параметре xmlns.

<html>
<head></head>
<body>>
<h2>Here is a simple equation.</h2>
<embed type="application/x-techexplorer"
pluginspage='http://www.software.ibm.com/techexplorer/'
height=100 width=200 name="equation" mmldata=
"<math xmlns='http://www.w3.org/1998/Math/MathML'>
...
</math>">
</embed>
</body>
</html>

Браузеры Amaya, Firefox или Mozilla 1.0, Netscape 7.0

MathML на HTML-странице браузерами Gecko-поколения воспроизводится некорректно. Данную проблему позволяет решить программа, написанная  Питером  Джипсеном. (Peter Jipsen) на языке JavaScript.

Ниже приведен образец HTML-страницы.

Параметр xmlns указывает пространство имен MathML через префикс m, что является необходимым  для работы программы Питера Джипсена.

<html xmlns:m="http://www.w3.org/1998/Math/MathML">
<head>
<script>
…
function convert() {
…
}
</script>
<body onload="convert()">
<math>
…
</math>
</body>
</html>

Пример работы программы Питера Джипсена на HTML-странице можно посмотреть по адресу http://www1.chapman.edu/~jipsen/mathml/mathhtmltest.phtml

XHTML+MathML

Веб-страница XHTML+ MathML имеет одинаковое оформление для браузеров Amaya, Firefox или Mozilla 1.0, Netscape 7.0, Microsoft Internet Explorer + MathPlayer/Integre techexplorer.

При создании XHTML страницы с MathML-включениями необходимо объявить пространства имен двух языков: XHTML и MathML. Возможно использовать только презентационную разметку MathML.

Браузеры Amaya, Firefox или Mozilla 1.0, Netscape 7.0, IE+MathPlayer/Integre techexplorer

Подготовленная для просмотра этими браузерами XHTML-страница с математическими формулами должна выглядеть так:

<?xml version="1.0" encoding ="windows-1251"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1 plus MathML 2.0//EN"
"http://www.w3.org/TR/MathML2/dtd/xhtml-math11-f.dtd" [
<!ENTITY mathml "http://www.w3.org/1998/Math/MathML">
]>
<html xmlns="http://www.w3.org/1999/xhtml">
<body>
<math xmlns="&mathml;">
…
</math>
</body>
</html>

XML+MathML

Веб-страница XML+MathML имеет одинаковое оформление для браузеров Amaya, Firefox или Mozilla 1.0, Netscape 7.0, Microsoft Internet Explorer + MathPlayer/Integre techexplorer.

В случае включения разметки MathML в XML-документ можно использовать и презентационную, и содержательную разметку MathML. Данный способ является наиболее универсальным среди приведенных. В XML-документе необходимо указать стилевую таблицу, а именно mathml.xsl. Таблица mathml.xsl включает стилевые таблицы ctop.xsl и pmathml.xsl. Таблица ctop.xsl обрабатывает содержательную разметку MathML, преобразовывая ее в презентационную разметку MathML. Таблица pmathml.xsl приводит поступивший XML-документ к виду, соответствующему стандарту XML (нормализация), поддерживает воспроизведение веб-страницы плагинами MathPlayer и Techexplorer.

Браузеры Amaya, Firefox или Mozilla 1.0, Netscape 7.0, IE+MathPlayer/Integre techexplorer

Подготовленная для просмотра этими браузерами XML-страница с математическими формулами должна включать обращение к стилевым таблицам:

<?xml-stylesheet type="text/xsl"
href="http://www.w3.org/Math/XSL/mathml.xsl"?>

В случае размещения стилевых таблиц на стороне сервера, где располагается сама страница, ссылка на XSL-файл выглядит так:

<?xml-stylesheet type= "text/xsl" href="mathml.xsl">.

<?xml version="1.0" encoding ="windows-1251"?>
<?xml-stylesheet type="text/xsl"
href="http://www.w3.org/Math/XSL/mathml.xsl"?>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html" />
<title>Presentation Examples</title>
</head>
<body>
<h2> содержательный MathML</h2>
<p>
<math xmlns="http://www.w3.org/1998/Math/MathML">
<mrow>
<apply>
…
</apply>
</mrow>
</math>
</p>
<h2> презентационный MathML</h2>
<p>
<math xmlns="http://www.w3.org/1998/Math/MathML">
<mrow>
<msqrt>
…
</msqrt>
</mrow>
</math>
</p>
</body>
</html>

Здесь презентационная и содержательная разметки MathML оформлены  в отдельных тегах <math>.

Возможно включение презентационной разметки MathML внутри содержательной разметки MathML, а также включение содержательной разметки MathML внутри презентационной разметки MathML по схеме смешанного или параллельного комбинирования. Более подробно об этом можно почитать на сайте консорциума W3C в разделе по спецификации MathML 2.0 http://www.w3.org/TR/MathML/chapter5.html.

Средства создания MathML-документов

Средства презентационной разметки MathML языка состоят из 30 элементов и 50 атрибутов. Средства содержательной разметки языка MathML состоят из 120 элементов и 12 атрибутов. MathML-документ можно создавать либо вручную, напрямую программируя формулы, либо используя многочисленные редакторы. Редакторы, как правило, имеют интуитивно понятный интерфейс пользователя и способны генерировать презентационную и содержательную разметку MathML.

Поскольку большая часть математических текстов представлена в TeX-формате, появляется необходимость в конвертировании TeX-документов в MathML-документы.

Можно выделить следующие способы создания MathML-документов:

  • прямое программирование формул с использованием описаний на языке MathML
  • использование редакторов
  • использование конвертеров из TeX-формата в MathML-формат.

Актуальным является вопрос по генерированию графического формата по математическим выражениям. Графический формат можно получать как из MathML-выражений, так и из TeX-выражений. Ситуация с программным обеспечением по этому вопросу описывается ниже.

Существует ряд конвертеров TeX-документов в MathML-документы.

Редакторы

EzMath

Приложение EzMath позволяет вводить математические выражения в текстовом виде на английском языке в стиле WYSIWYG - "What you see is what you get". Воспроизводит визуально и генерирует содержательную разметку MathML (Рис. 3).

Рис. 3 Редактор EzMath

MathML Equation Editor - редактор, предлагаемый фирмой Integre, позволяет выполнять описание математических выражений в виде содержательной и презентационной разметки (Рис. 4).

Рис. 4 Редактор Integre MathML Equation Editor

Abacus

Abacus - это плагин под Mozilla для написания и редактирования MathML-выражений. Выражения могут быть представлены в презентационной и содержательной разметке.

Abacus многое унаследовал от  Amaya, рекомендованного W3C, применяет JavaScript и XUL для создания удобного интерфейса редактирования MathML.

Рис. 5 Редактор Abacus MathML Editor

MathType

MathType является профессиональной версией приложения Equation Editor, которое представлено в Microsoft Office Word. MathType – это редактор для набора математических выражений, работает с текстовыми процессорами, презентационными программами, HTML-редакторами. Включает транслятор математических выражений в MathML-формат.

Доступна бесплатная пробная версия на 30 дней. Есть версии для платформ Windows (98SE, Me, 2000, XP), Macintosh (MacOS 9.x, OS X 10.1).

Рис. 6 Редактор MathType Lite

WebEQ

WebEQ – это мощный программный инструмент, который позволяет создавать веб-страницы с использованием интерактивной математики. WebEQ реализован на Java-технологиях, что обеспечивает его платформо- и браузеро-независимость. Поддерживает версии для платформы Windows (95, 98, 2000, Me, NT, XP), Macintosh (OS 9, OS X), Solaris, Linux. WebEQ включает модули WebEQ Editor и WebEQ Publisher, позволяющие генерировать разметку MathML как презентационного, так и содержательного вида. WebEQ Editor – это редактор для набора математических выражений с интуитивно понятным интерфейсом пользователя. Принцип его работы схож с редактором  Equation Editor в Microsoft Office. Генерирует выходные данные в трех видах: презентационный и содержательный MathML, в виде графического изображения (PNG, JPG, GIF), в виде аплета. WebEQ Publisher позволяет публиковать данные в веб-формате. Входными данными могут быть MathML и WebTeX. Результатом работы могут быть опять же данные в виде MathML-формата, графического изображения и аплета.

Рис. 7 Модуль WebEQ Editor редактора WebEQ

Рис. 8 Модуль WebEQ Publisher редактора WebEQ

Конвертеры

В настоящее время большая часть математических документов представлена в TeX-формате, поэтому становятся актуальными конвертеры из TeX в MathML и обратно.

Конвертер из  TeX/LaTex в MathML

Это — разработка исследовательского центра в Онтарио по компьютерной алгебре (ORCCA). Преобразует данные из TeX в презентационный MathML и обратно. Для тестирования предлагается on-line версия. Реализован на Java технологиях, что обеспечивает кросс-платформенность. Возможна настройка конвертера с помощью файла отображения  (mapping file). По сути, файл отображения – это набор шаблонов. Каждый шаблон преобразует свой фрагмент TeX- или MathML-выражения в другой формат. Шаблон - это тройка объектов, определяющая соответствие фрагментов TeX- и MathML-выражений. Для обработки узла TeX- или MathML-выражения может существовать более одного шаблона. В этом случае шаблоны рассматриваются в соответствии с указанными у них приоритетами. Если несколько шаблонов имеют одинаковый приоритет,  то они рассматриваются в том порядке, в котором они указаны в файле отображения.

Рис. 9 Окно конвертера из TeX в MathML

Конвертер из MathML в LaTeX

Это — также разработка исследовательского центра в Онтарио по компьютерной алгебре (ORCCA). Пользователь может применить несколько файлов отображений (mapping-файлов) для определения спецификации преобразования MathML. Файл отображений представляет собой xml-файл, который описывает соответствие TeX-элементов MathML-элементам. Позволяет работать с TeX-, LaTeX- и AmSTeX-выражениями. Для online?версии указывается ограничение, позволяющее обрабатывать не более одного TeX-документа размером 100 Кб за 1 секунду времени.

Рис. 10 Окно конвертера из MathML в TeX

Было замечено, что при преобразовании TeX-документ — MathML-документ — TeX-документ (назовем его преобразование I) посредством конвертеров от исследовательского центра ORCCA нарушается правило транзитивности. Исходный TeX?документ имеет отличия от TeX?документа, полученного после преобразования I. Цепочка преобразований MathML-документ — TeX-документ — MathML-документ (назовем его преобразование II) дает стабильное решение. Исходный MathML ?документ совпадает с MathML –документом, полученным в результате преобразования II.

Конвертер из содержательного в презентационный  MathML

Этот конвертер — разработка исследовательского центра в Онтарио по компьютерной алгебре (ORCCA). При помощи XSLT–преобразования он преобразует из содержательного или смешанного вида (содержательный + презентационный) MathML в презентационный вид.

Integre techexplorer

Является свободно распространяемым продуктом. Производит преобразование из LaTeX-выражений в презентационную разметку MathML-выражений (Рис. 11), из презентационной и содержательной разметки MathML- в LaTeX-выражения (Рис. 12). Поддерживает разработку плагинов, предоставляя доступ из модулей Java или Си++ к структуре документов через Document Object Model (DOM) API.

Рис. 11 Окно конвертера Integre techexplorer

Полный цикл  конвертирования в Integre techexplorer LaTeX-формат — MathML-формат — LaTeX-формат работает некорректно. Исходное состояние, конвертирование из LaTeX-выражения в MathML-выражение, приведено на Рис. 12. На Рис. 13 приведен пример конвертирования из сгенерированного Integre techexplorer-ом  MathML-выражения обратно в LaTeX-выражение. Как мы видим, наблюдается некоторое искажение формулы.

Рис. 12 Конвертирование в Integre techexplorer из LaTeX-формата в MathML-формат

Рис. 13 Конвертирование в Integre techexplorer из MathML-формата в LaTeX-формат

Integre techexplorer осуществляет неявное конвертирование из LaTeX-формата в графический формат (Рис. 14).

Рис. 14 Конвертирование в Integre techexplorer из LaTeX-формата в графический формат

Конвертер из MathML 2.0  в LaTeX

Проект является разработкой В. Ярошевича (Vasil I. Yaroshevich). Это - библиотека xslt-спецификаций для конвертирования MathML-документов в LaTeX-документы. Производит преобразование из содержательного и презентационного MathML версии 2.0 в TeX. Продукт является свободно распространяемым [12]. Для подключения используется стандартный синтаксис XSLT: <xsl:import href="mmltex.xsl"/>. Предлагается тестовая online версия.

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

TTM: конвертер из TEX в MathML, и TTH: конвертер из TEX в графический формат

TtM – это программа для конвертирования документов TeX или LaTeX в документы HTML +  MathML (Рис. 15) Для платформы Linux версия является бесплатной, для платформы Windows версия условно бесплатна.

Программа TtH генерирует HTML, конвертируя формулы TeX-документа в графические изображения, а TtM конвертирует формулы в презентационную разметку MathML.

TtM поддерживает многое из характерных особенностей LaTeX: макросы, таблицы, библиографию. Программа не требует отдельной установки программного обеспечения TeX. Предлагается online версия. Предоставление исходных текстов программ TtM и TtH является платным.

Рис. 15 Окно конвертера TtM

TeX4ht: конвертер из TeX /LaTeX  в MathML

TeX4ht (реализован на языке С) конвертирует TeX-документ в HTML-документ с картинками. Другая компонента TeX4moz конвертирует TeX-документ в XHTML + MathML-документ. Предложенный для просмотра тестовый xml-документ содержит MathML презентационной разметки. Обе компоненты устанавливаются под пакет программы MicTex.

ASCIIMathML – это плагин, выполненный как JavaScript, который конвертирует текст с TeX-фрагментами в XHTML + MathML-документ. Требует обрамления TeX–фрагментов в одинарные знаки $. Скрипт работает как с XML-, так и с HTML-страницами. Относится к продуктам с открытым  программным кодом и распространяется по лицензии GNU. Доступна online-версия данного конвертера http://www1.chapman.edu/~jipsen/mathml/asciimatheditor.xml (Рис. 16)

Рис. 16 Конвертер ASCII из TeX-документа в XHTML+MathML-документ

А это ссылка на другую модификацию конвертера с использованием HTML-редактора - Xinha (Рис. 17).

http://math.chapman.edu/~jipsen/mathml/xinhaASCIImatheditor.html

Рис. 17 Конвертер ASCII из TeX-документа в XHTML+MathML-документ с HTML-редактором Xinha

В случае использования данного скрипта на своей веб-странице авторы просят сообщить об этом по адресу jipsen@chapman.edu с указанием URL.

Конвертер расширенного XHTML+MathML в стандартный XHTML+MathML

Разработчик данного конвертера сначала предлагает воспользоваться программой XML Cleaner, которая нормализует XML-документ (редактирует избыточное объявление пространства имен, удаляет комментарии, определяет , нужно ли объявлять или не объявлять <!DOCTYPE>  и т. д.).

Конвертер позволяет преобразовывать расширенный XHTML-документ с MathML-включениями в стандартный XHTML-документ с MathML-включениями. Конвертер реализован как xslt-библиотека для процессора XSLT версии 1.0 и выше. Следует обратить внимание, что предлагается первая версия конвертера. Разработчик (Victor Porton) предлагает участие в дальнейшей разработке. Программа отвечает следующим требованиям:

  • генерирует файлы стандартного XHTML-формата
  • удобна для работы с разметкой MathML, включенной в XHTML-файл
  • отдельные части MathML генерирует в отдельные файлы; заменяет MathML на ссылки картинками, после этого возможно программой html12ps трансформировать в PostScript, а затем в PDF, файл с математическими формулами (выполнено не полностью)
  • конвертирует содержательный MathML в презентационный MathML
  • поддерживает нумерованные теоремы, определения, леммы (выполнено не полностью)
  • производится разбиение структуры документа с использованием XHTML-тегов от разработчика конвертера.

Объявлено о добавлении в следующей версии конвертера трансформации из XML-формата в LaTeX-формат.

Средства генерирования графических форматов по математическим выражениям

Конвертеры из TeX формата в графический формат

Textogif – это программа, реализованная на Perl для преобразования выражений в небольших LaTeX-файлах в картинки. При работе обращается к средствам TeX.

Mimetex CGI-программа, реализованная на С. На вход принимает TeX-формулу. В веб-странице формула указывается в качестве параметра URL-обращения к программе (значение атрибута src тега img).

Например, <img src="../cgi-bin/mimetex.exe?\Vert \varphi \Vert_\infty \leq \Big(\frac{p_1}{p_1-r} \Vert \psi \Vert_{p_1/(p_1-r),1}\Big)^{1/r} \Vert \varphi \Vert_{p_1,\infty}.">

MathML и SVG

SVG – это язык для описания  двухмерной графики и графических приложений на основе стандарта XML SVG 1.1, рекомендован консорциумом W3C [13], [14], [16]. Для просмотра SVG–формата необходимо установить соответствующий плагин к браузеру. Существует ряд коммерческих программных продуктов конвертирования из MathML в SVG формат: Mathematica, WeBEQ Publisher.

WebMathematica и Mathematica

Система Mathematica [15], [17] компании Wolfram Research была впервые выпущена 23 июня 1988 года и незамедлительно получила высочайшую оценку как научных, и технических кругов.

Mathematica – это полностью интегрированная техническая вычислительная система. Она сочетает в себе полные вычислительные возможности и удобный интерфейс. Система включает:

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

Mathematica обладает высокой интегрируемостью, широкими возможностями экспорта и импорта данных, архитектурой клиент-сервер и мощным протоколом соединения MathLink. Возможен доступ к документам клиентов извне без установки системы Mathematica. Последнее возможно выполнить через свободно распространяемый пакет MathReader, который отображает и выводит на печать мультимедийные документы, созданные в системе Mathematica.

Документы среды Mathematica можно сохранять в HTML-формате. Компания Wolfram Research была одним из участников рабочей группы консорциума W3C по созданию средств поддержки математики в HTML, названных MathML.

Mathematica 4 позволяет сохранять выражения в MathML. Пакет webMathematica [18] позволяет соединить специальное ядро Mathematica и веб-страницы, напрямую подключаясь к веб-серверу. Пакет webMathematica поддерживает стандартные технологии Java, реализует технологию MSP (Mathematica Server Pages). Технология допускает включение команд из пакета Mathematica в HTML-страницы или в формы, которые помогают  генерировать различные представления формул на HTML-странице. Поддерживается интерактивная математика на веб-страницах. Имеется возможность конвертирования MathML-выражений в изображения форматов GIF, JPEG, SVG или выражения Mathematica. Пакет также может выполнять конвертирование содержательной разметки MathML в презентационную разметку MathML, корректно воспроизводимую рекомендованными W3C браузерами и плагинами.

Заключение

При представлении математических текстов в Веб мы сталкиваемся с двумя проблемами: просмотр и создание документа с математическими выражениями.

Для представления математического текста в сети рекомендуется использовать язык математической разметки MathML.

Браузеры Gecko-поколения поддерживают воспроизведение MathML-выражений. Для другой части браузеров необходима установка плагина.

Создавать  MathML позволяют многочисленные редакторы или браузеры-редакторы.

Язык MathML предлагает два вида разметки: презентационную и содержательную. Преимущества использования презентационной разметки заключается в простоте записи и чтения математических выражений. Содержательная разметка рекомендуется при необходимости взаимодействия с другими информационными системами и дальнейшей обработки математических выражений программным обеспечением. 

В настоящее время  браузеры  поддерживают только презентационную разметку MathML.

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

Опробованные конвертеры  позволяют получать из TeX-формата презентационную разметку MathML и обратно.

Стоит учитывать тот факт, что большинство пользователей Интернета будут просматривать документы с математическими выражениями при помощи браузеров Microsoft Internet Explorer, Netscape 6.0 и ниже, не прибегая к помощи плагинов. Поэтому остается актуальным генерирование HTML-документов с изображениями в формате GIF, JPEG, PNG. Графический формат математических выражений можно получить генерированием из TeX/LaTex- или MathML-формата. О свободной поддержке конвертирования из MathML в SVG было заявлено фирмой Adobe, но, к сожалению, это пока не реализовано.

На основе свободно распространяемых программных продуктов можно получить следующий цикл преобразований:

Рис. 18. Цикл преобразований форматов TeX, MathML и графического

Пакет Mathematica позволяет в ряде случаев генерировать содержательный MathML.

Для публикации математических данных в сети возможно создание документов вида: HTML + графическое изображение, HTML + презентационный MathML,  XHTML + презентационный MathML, XML + MathML.

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

Из рассмотренного в статье программного обеспечения для создания веб-страниц + графический формат и веб-страниц + MathML-формат можно использовать следующие программные продукты:


конвертер из TeX/LaTex в MathML (ORCCA), конвертер из MathML в LaTeX (ORCCA), конвертер из содержательного в презентационный MathML (ORCCA), Mimetex (CGI-программа).

Линейка программ центра ORCCA выполнена на технологиях Java и XSLT

В настоящее время получить графический формат из MathML-формата на основе свободно распространяемых программных продуктов невозможно. Генерирование графического формата возможно проводить из TeX-формата, что позволяет сделать, например, программный продукт Mimetex.

В Приложении приводятся таблицы сводных данных об инструментах представления, конвертирования и просмотра математических данных.

Список используемых источников

[1] Kennedy J. Technical Report for the Mathematically Inclined on the MathML Internet Markup Language and the Unicode Character Standard. http://homepage.smc.edu/kennedy_john/JKMATHMLTECHREPORT.PDF#search='Pavi%20Sandhu%20XML%20and%20Mathematica'

[2] Why Two Different Kinds of Markup? http://www.w3.org/TR/MathML/chapter5.html#mixing.pmincm

[3] Ian Hutchinson. Comparative Review of World-Wide-Web Mathematics Renderers, 2002. http://hutchinson.belmont.ma.us/tth/mmlreview/

[4] Michael Yuan. Building dynamic Web sites with mathematical content, 2002. http://www-128.ibm.com/developerworks/java/library/j-jspmath/ 

[5] Галактионов В.В. Представление математических формул в Web-страницах, 2003. http://dbserv.jinr.ru/js/content/mathML/MathML.html

[6] Dave Raggett , Davy Batsalle. Add Math to Web pages with HP EzMath v1.1, 1998. http://www.w3.org/People/Raggett/EzMath/

[7] Gurari E. TeX4ht: LaTeX and TeX for Hypertext, 2005.  http://www.cse.ohio-state.edu/~gurari/TeX4ht/mn.html

[8] Mathematical Markup Language (MathML) Version 2.0.  http://www.w3.org/TR/2003/REC-MathML2-20031021/

[9] Projects involving MathML in progress.  http://www.w3.org/Math/iandi/impl-interop02.html#intro

[10] Smirnova E.,  Watt S. MathML to TeX Conversion: Conserving high-level semantics http://www.MathMLconference.org/2002/presentations/smirnova/#1

[11] The W3C MathML software list. http://www.w3.org/Math/Software/

[12] XSLT MathML Library http://sourceforge.net/projects/xsltml/

[13] SVG Conversion Tools.  http://www.w3.org/Graphics/SVG/SVG-Implementations.htm8#convert   

[14] Гурский Ю. Работа с форматом SVG в Adobe Illustrator 10, 2003. http://www.hardline.ru/3/37/3381/

[ 15] Система Mathematica и базы данных http://www.wolfram.com/products/mathematica/index.html

[16] Namon Nuttayasakul. LaTeX and MathML without Plugins using VML and SVG. http://www.mathcs.sjsu.edu/faculty/pollett/masters/Semesters/Spring02/Namon/CS297Proposal.html

[17] Система Mathematica и базы данных. http://www.elbook.bsu.by/OurMath/Library/Articles/from_wolfram.htm

[18] Tom Wickham-Jones. webMathematica: How to Deliver Computational and Visualization Services from a Web Server, 2002. http://www.MathMLconference.org/2002/presentations/twj/

Приложение

Таблица 1. Инструменты представления и конвертирования математических данных

Прогр. продукты

Редактор (през.) MathML

Редактор (содерж.) MathML

Из TeX в през. MathML

Из през. MathML в TeX

Из содерж. MathML в TeX

Из содерж. MathML в през. MathML

Из TeX в граф. формат (GIF, JPG, PNG)

Из MathML в граф. формат (SVG, GIF, JPG, PNG)

Mathematica/ webMathematica

+

+

+

+

+

+

+

+

Amaya

+

+

EzMath

+

+

MathML Equation Editor

+

+

MathType

+

+

WebEQ

+

+

+

Конвертер из TeX/LaTex в MathML (ORCCA)

+

Конвертер из MathML в LaTeX (ORCCA)

+

Конвертер из содержательного в презентационный MathML (ORCCA)

+

Integre techexplorer Hypermedia Browser

+

+

+

Конвертер из MathML 2.0 в LaTeX Ярошевича

+

+

Конвертер расширенного XHTML+MathML в стандартный XHTML+MathML

+

+

TTM: конвертер из TEX в MathML

+

TTH: конвертер из TEX в графический формат

+

TeX4ht: конвертер из TeX /LaTeX  в MathML

+

+

Textogif

+

Mimetex

+

      - коммерческие программные продукты

      - условно бесплатные программные продукты (цена в рамках 100 у.е. и на ограниченный срок доступна версия продукта)

      - свободно распространяемые программные продукты

Таблица 2. Инструменты просмотра математических выражений

Браузеры и плагины

TeX

Презентационный MathML

Содержательный MathML

Amaya 9.1

+

Math Player  (IE 5.5)

+

Integre techexplorer (IE, NN 4.0, Mozilla)

+

+

+

IBM techexplorer (NN 2.0, IE 5.5)

+

+

Abacus (Mozilla)

+

Dadzilla

+

Firefox 1.1

+

Mozilla 1.0

+

Netscape 7.0

+

  - браузер

-  плагин


Об авторе

Шиолашвили Лали Николаевна - аспирант Вычислительного центра РАН им. академика А. А. Дородницына
E-mail: lalysh@mathnet.ru
Тел.: (095) 938 3709


©  Л.Н. Шиолашвили, 2005
Последнее обновление страницы было произведено: 2005-12-23

Все предложения и пожелания по содержанию и структуре портала направляйте по адресу rdlp@iis.ru