MathML inside!

Публикация математических текстов в Web с помощью MathML

(перевод статьи "Putting mathematics on the Web with MathML")

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

Для тестирование своего браузера загрузите простой пример, использующий Presentation MathML, или более сложный пример, демонстрирующий Content MathML (генерация страницы может занять некоторое время).

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

Подробное техническое описание происходящего можно посмотреть на странице, посвященной XSLT-таблицам для MathML. Смотрите также слайды с выступления David'а Carlisle на конференции, посвященной MathML.

Вставка MathML в страницу

Чтобы документ можно было просмотреть на максимальном числе платформ, он должен быть написан по описанным ниже правилам. Заметьте, что при использовании редактора, следующего стандартам W3C (например, Amaya), все описанное произойдет автоматически.

1. Создайте XHMTL-страницу со встроенным MathML

Веб-страница должна быть написана в формате XHTML со встроенной в нее разметкой MathML. Например:

<?xml version="1.0"?>
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>...</head>
  <body>
    <h1>Пример</h1>
    ....
    <math xmlns="http://www.w3.org/1998/Math/MathML">
      <mi>x</mi><mo>+</mo><mn>3</mn>
    </math>
  </body>
</html>

Разметка MathML не должна находиться внутри тэга <object> и не должна быть в отдельном файле, подключаемом из тэга <embed>.

2. Добавьте обработку с помощью таблицы стилей

Выделенную жирным шрифтом строку нужно вставить в начало XHTML-страницы, перед открытием тэга <html>, но после XML-объявления <?xml...?> (если оно есть, конечно):

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="http://www.w3.org/Math/XSL/mathml.xsl"?>
<html xmlns="http://www.w3.org/1999/xhtml">
...

Это будет работать не во всех случаях (Например, Internet Explorer, в связи с обеспечением безопасности, не позволяет выполнять XSLT-таблицу, если она находится на сервере, отличном от сервера с XHTML-страницей. В этом случае следуйте инструкциям в пункте "Режим оффлайн" (ниже). Также в конце документа есть дополнительная информация о безопасности в Internet Explorer). Поэтому есть альтернативы:

Вот и все. Дополнительную информацию смотрите ниже.

Указание предпочтений

Возможна ситуация, когда в браузере есть несколько способов обработать разметку MathML (например, Internet Explorer с плагином Techexplorer может еще отображать формулы с помощью CSS). Для таких случаев предоставляется возможность указать предпочтительный метод обработки, изменяя значение атрибута renderer. Например:

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

<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:pref="http://www.w3.org/2002/Math/preference"
      pref:renderer="css">
<head>...</head>
<body>...</body>
</html>

Здесь указывается, что предпочтителен метод с использованием CSS. Значения атрибута renderer:

Безопасность Microsoft Internet Explorer

По умолчанию, Internet Explorer не позволяет применять XSLT-таблицу к документу, если она находится на сервере, отличном от сервера с документом. Поэтому так работать не будет:

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

Вместо этого необходимо скопировать таблицы стилей на тот же сервер, где находится документ (как описано выше). В качестве альтернативы можно изменить настройки безопасности Internet Explorer, но такой способ нельзя порекомендовать, так как изменение настроек повлияет на всю работу браузера, а не только на загрузку таблицы стилей.

Презентация на MathML конференции

Эта таблица стилей была представлена на 2-ой Международной MathML конференции. Там были продемонстрированы примеры использования таблиц стилей для просмотра в полноэкранном режиме браузера. Для показа примеров одновременно использовались IE6, Mozilla 1.0, Amaya 6.1, и Netscape 7.0PR1.

В дополнение к MathML был также продемонстрирован небольшой пример расширения этой таблицы стилей для использования с SVG.


The W3C Math Working Group. Send comments, questions and fixes to www-math@w3.org

Translated by Alexey Shamrin