Рефераты. MathML (Mathematical Markup Language)

В случае CSS, порядок обработки изменений, действующих на свойства отображения элемента MathML, из различных источников должен быть следующим: (изменяется первым; самый низкий приоритет)

Автоматические изменения свойств или атрибутов, основанных на типе родительского элемента и положении элемента в родительском (как упоминается выше об изменениях fontsize в соответствии с scriptlevel; такие изменения обычно применяются самим родительским элементом перед передачей свойств отображения текущему элементу

Из стилевых таблиц читателя: стили, которые не объявлены 'важными'

Явно заданные атрибуты текущего элемента MathML

Из стилевых таблиц автора: стили, которые не объявлены 'важными'

Из стилевых таблиц автора: стили, которые объявлены 'важными'

Из стилевых таблиц читателя: стили, которые объявлены 'важными' (изменяется последним; самый высокий приоритет).

Отметим, что порядок изменений, производимых стилевыми таблицами CSS, определен в самих CSS (это порядок, определяемый CSS2). Следующее объяснение относится только к случаю, когда в этом порядке происходят изменения, вызванные точным заданием атрибутов MathML.

Объяснение: Атрибуты отображения в MathML аналогичны атрибутам отображения в HTML (таким как align), которые, согласно определенному в CSS порядку, должны обрабатываться с одинаковым приоритетом. Более того, такой выбор очередности позволяет читателям решить, определяя стили CSS 'важными', какие из их установок должны переопределять явные установки MathML. Так как выражения MathML, состоящие из элементов содержания или представления, в первую очередь предназначены для передачи смысла, а 'графическое представление' (если таковое имеется) должно помогать этому (но не является важным само по себе), вероятно, что читатели захотят, чтобы их стилевые предпочтения имели приоритеты. Основным исключением является ситуация, когда атрибуты отображения предполагают изменение смысла выражения.

1.7.4.4 Значения атрибутов по умолчанию

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

Значения по умолчанию, описанные как inherited, берутся из среды отображения, как описано для mstyle, или, в некоторых отдельно описанных случаях, из значений других атрибутов окружающих элементов, или из определенной части этих значений. Всегда используется значение, которое может быть задано точно, если оно известно; оно никогда не зависит от содержания или атрибутов данного элемента, только от его окружения. (Его смысл при использовании может, тем не менее, зависеть от этих атрибутов или содержания)

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

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

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

Отметим, что, как правило, не существует значений, которые точно могут быть присвоены атрибутам MathML и имитируют эффект их отсутствия для атрибутов, являющихся inherited или automatic. Указание 'inherited' или 'automatic' точно не будет работать, и вообще запрещено. Более того, даже для атрибутов представления (для которых здесь приведены конкретные значения по умолчанию), должен использоваться элемент mstyle для изменения содержащихся в нем элементов. Поэтому, MathML DTD определяет большинство значений по умолчанию для атрибутов представления как #IMPLIED, что не позволяет обработчикам XML добавлять к этим атрибутам любые специальные значения по умолчанию. MathML schema работает по тем же правилам.

1.7.4.5 Значения атрибутов в MathML DTD

В XML DTD, разрешенные значения атрибутов могут быть определены как общие строки, или могут быть различными способами ограничены (перечислением возможных значений, или указанием определенного типа данных). Выбор типа атрибута XML влияет на объем, в котором могут быть проведены проверки корректности с использованием DTD.

MathML DTD определяет формальные типы атрибутов XML для всех атрибутов MathML, включая в некоторых случаях перечисления допустимых значений. В общем, тем не менее, MathML DTD является относительно нестрогим, часто определяя значения атрибутов как строки; это сделано для совместимости с парсерами SGML, которые допускают, чтобы несколько атрибутов одного элемента MathML принимали одинаковые значения (такие как true и false), и для того, чтобы позволить расширять список предопределенных значений.

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

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

1.7.5 Атрибуты, общие для всех элементов MathML

Для того чтобы облегчить использование таких стилевых механизмов, как XSLT и CSS2, все элементы MathML имеют атрибуты class, style, и id в дополнение к атрибутам, описанным для каждого элемента. Программы отображения MathML, не поддерживающие CSS, могут игнорировать эти атрибуты. MathML определяет значения этих атрибутов как общие строки, даже если стилевые механизмы имеют для них более строгий синтаксис. Поэтому, любое значение для них является допустимым в MathML.

Для того чтобы обеспечить совместимость с механизмами связывания, все элементы MathML имеют атрибут xlink: href.

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

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

1.7.6 Свертывание пробелов во вводе

MathML игнорирует пробельные символы, встречающиеся вне токенов. Непробельные символы здесь запрещены. Пробельные символы, встречающиеся в содержании токенов, удаляются на концах, то есть удаляются все пробельные символы в начале и конце содержания. Пробельные символы, расположенные внутри содержания элементов MathML свертываются кононически, то есть каждая последовательность из 1 или более таких символов заменяется на 1 (иногда называемый пустым символом).

В MathML, как и в XML, под пробельными символами подразумеваются простой пробел, табуляция, новая строка или перевод строки, то есть символы с кодами Unicode U+0020, U+0009, U+000A, U+000D соответственно.

Например,

<mo> (</mo> эквивалентно <mo> (</mo>, и

<mtext>

Теорема

1:

</mtext>

эквивалентно <mtext>Теорема 1: </mtext>.

Авторы, желающие поместить пробельные символы в начале или конце содержания токена, или последовательность более чем из одного пробельного символа так, чтобы они не были проигнорированы, должны использовать &nbsp; или другие неотображаемые пробельные символы. Например, сравните

<mtext>

Теорема

1:

</mtext>

с

<mtext>

&nbsp; Теорема &nbsp; 1:

</mtext>

Когда отображается первый пример, перед словом 'Теорема' нет пробельных символов, один - между 'Теорема' и '1: ', и нет после '1: '. Во втором примере одиночный пробел будет отображен перед словом 'Теорема', два - перед '1: ', и ни одного после '1: '.

Отметим, что атрибут xml: space в данной ситуации неприменим, так как процессоры XML передают пробельные символы в токенах процессору MathML; удаление происходит по правилам обработки MathML.

Для пробельных символов, встречающихся вне содержания токенов mi, mn, mo, ms, mtext, ci, cn и annotation, должен использоваться элемент mspace, в противоположность элементу mtext содержащий только пробельные символы

2. Возможности современных браузеров при работе с MathML

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

быть корректным xml-документом;

корневым элементом должен быть элемент html в пространстве имен XHTML, например:

<html xmlns="http://www.w3.org/1999/xhtml">

должен содержать декларацию типа документа. В нашем случае это:

<! DOCTYPE html PUBLIC "- // W3C // DTD XHTML 1.1 plus MathML 2.0 // EN"

"http://www.w3.org/TR/MathML2/dtd/xhtml-math11-f. dtd">

MathML-фрагменты должны принадлежать пространству имен MathML, например:

<math xmlns="http://www.w3.org/1998/Math/MathML">... </math>

Тестовый пример, который используется ниже: test. xhtml.

2.1 Mozilla & Firefox

Используемая версия: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv: 1.7 5) Gecko/20041107 Firefox/1.0.

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

Решением этой проблемы может служить использование специальных XSLT-стилей "XSLT stylesheets for MathML". Такой подход возможен, так как поддержка XSLT-трансформаций встроена в браузер. Для этого надо скачать набор XSLT-стилей и в первой строчке нашей страницы указать ссылку на заглавный файл mathml. xsl:

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

По соображениям безопасности Mozilla позволяет использовать XSLT-стили расположенные в другом домене просмотра исходного кода MathML с подсветкой выделенного фрагмента. Правда, при использовании разметки содержания и XSLT-стилей мы увидим не исходный код, а результат преобразования.

Из других возможностей следует отметить интеграцию с поисковыми системами. При выделенном фрагменте формулы контекстное меню позволяет отправить запрос к поисковой системе.

Но пока это задел на будущее, так как пока подобный поиск результатов не дает.

2.2 Microsoft Internet Explorer

Используемая версия: 6.0.2800.1106 (SP1; Q867801; Q823353; Q833989)

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

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

Из недостатков следует отметить отсутствие возможности выделить или скопировать фрагмент математического выражения. Также нет возможности (как и в Mozilla) корректно скопировать формулу с окружающим текстом.

2.3 Opera

Используемая версия: 7.54u1 (Build 3918; Platform Win32; System Windows 2000; Java not installed).

Этот браузер на данном своего развития этапе не имеет возможностей для корректного отображения разметки MathML.

Список использованной литературы

Дорофеев А.В., Федотов А.М. Электронные публикации в среде Internet и множественность кодировок русского языка // Вычислительные технологии, 1997, т.2, N 3, c.31-44.

Олейник О.В., Толкачева Е.М., Федотов А.М. Электронные издания и представление математических текстов на WWW // Вычислительные технологии, 1997, т.2, N 3, c.60-67.

Шокин Ю.И., Федотов А.М., Знаменский С.В. Электронные публикации и проблемы множественности кодировок русского языка // Информационные технологии и вычислительные системы, 1997, N 2, c.90-101.

Знаменский С.В. Стандартизация русского TeX: утопия или неизбежность // Вычислительные технологии, 1997, т.2, N 3, c.51 - 59.

Галактионов В.В. Расширяемый язык разметки XML (Extensible Mark-up Language): промышленный стандарт, определяющий архитектуру программных средств Интернет следующего поколения. Сообщение ОИЯИ, Р10-2000-44, Дубна, 2000.

Митюнин В.А. Обзор средств публикации и просмотра математических документов в сети Интернет - http://mathmag. spbu.ru/article/4/

Math on the Web: A Status Report - http://www.dessci.com/ webmath /status/

Including Math Notation in Web Pages - http://mathforum.org/typeseting/

MathML 1.01 - http://www.w3.org/TR/REC-MathML/

MathML 2.0 - http://www.w3.org/TR/MathML2/

Страницы: 1, 2, 3, 4



2012 © Все права защищены
При использовании материалов активная ссылка на источник обязательна.