Некоторые атрибуты принимают горизонтальные и вертикальные размеры как числа, за которыми следует 'идентификатор единицы измерения' (часто называемый 'единицей измерения'). Синтаксические символы h-unit и v-unit относятся к горизонтальным и вертикальным размерам соответственно. Возможные единицы измерения и размеры, к которым они относятся, перечислены в таблице, расположенной далее; они совпадают для горизонтальных и вертикальных размеров, но синтаксические символы отличаются (как напоминание используемого в них направления).
Идентификаторы единиц измерения и их смысловое значение взяты из. Тем не менее, синтаксис числа с последующим идентификатором в MathML не идентичен синтаксису в CSS, так как числа в CSS не могут заканчиваться десятичной точкой и могут начинаться со знака '+'.
Допустимые горизонтальные и вертикальные единицы измерения в MathML:
Идентификатор | Описание |
em | em (единица измерения, зависящая от размера шрифта и обычно применяемая для горизонтальных размеров) |
ex | ex (единица измерения, зависящая от размера шрифта и обычно применяемая для вертикальных размеров) |
px | пиксель |
in | дюйм (1 дюйм = 2.54 сантиметра) |
cm | сантиметр |
mm | миллиметр |
pt | пункт (1 пункт = 1/72 дюйма) |
pc | picas (1 pica = 12 пунктов) |
% | процент от величины |
Типографские единицы измерения em и ex обсуждаются далее в пункте 'Дополнительные замечания'.
% является 'относительной единицей измерения'; когда значение атрибута задано в виде n% (для любого числового значения n), значение определяется как значение по умолчанию, умноженное на n и поделенное на 100. Значение по умолчанию (или способ, которым его можно получить, если оно не является константой) описано в таблице атрибутов для каждого элемента, а его смысл описан в последующей документации по атрибуту. (Элемент mpadded имеет свой синтаксис для% и не позволяет использовать его как идентификатор единицы измерения)
Для согласованности с CSS, единицы измерения длины в MathML могут быть необязательными. Когда это так, символ единицы измерения в синтаксисе атрибута заключается в квадратные скобки, например, число [h-unit]. Смысл значения атрибута без единиц измерения описан в документации для каждого атрибута; обычно указанное число умножается на значение по умолчанию. (В этом случае число nnn без единицы измерения эквивалентно числу nnn умноженному на 100 и со знаком %. Например, <mo maxsize="2"> (</mo> эквивалентно <mo maxsize="200 %"> (</mo>)
Как исключение (тоже для совместимости с CSS), числовые значения равные нулю не требуют указания идентификатора единицы измерения даже если этого требует синтаксис. В этом случае наличие или отсутствие идентификатора единицы измерения не играет роли, так как любое число умноженное на 0 есть 0.
Для большинства атрибутов в данной спецификации в качестве стандартных единиц измерения выбраны единицы, используемые в типографском наборе; когда не указано конкретное значение величины, то стандартные единицы измерения обычно указаны в таблице или в описании атрибута. Чаще всего используются такие единицы измерения как em или ex. Однако, могут использоваться любые единицы, если в описании конкретного атрибута не указано обратное.
Отметим, что некоторые атрибуты, например framespacing в <mtable>, могут содержать более одного числового значения, после каждого из которых следует своя единица измерения.
Принято использовать единицы измерения ex в основном для задания вертикальных размеров, а em - для горизонтальных, хотя это не является обязательным требованием. Эти единицы измерения зависят от шрифта, используемого для отображения элемента, в атрибутах которого они применяются, и его размера. А значит, они должны интерпретироваться после таких атрибутов, как fontfamily и fontsize, если они встречаются в одном элементе, так как изменение текущего шрифта или его размера может привести к изменению размера единиц измерения.
Определение длины каждой единицы измерения (но не синтаксис MathML для значений длины) такое же как в CSS, за исключением тех случаев, когда шрифт устанавливает специальные значения для em и ex, отличающиеся от значений, определенных в CSS (font size и 'x'-height соответственно).
CSS-совместимые атрибуты
Некоторые атрибуты MathML, перечисленные ниже, соответствуют свойствам отображения текста, определенным в CSS1. Это сделано для того, чтобы программы отображения могли запросить CSS-окружение о соответствующих свойствах при определении значений атрибутов по умолчанию.
Возможность определения стилевых свойств через атрибуты MathML и CSS имеет и недостатки. Как минимум, это запутывает, а в худшем случае, это приводит к непреднамеренному изменению смысла уравнений при изменении CSS для всего документа. Поэтому, эти атрибуты осуждаются. В свою очередь, MathML 2.0 вводит четыре новых математических стилевых атрибута. Эти атрибуты используют логические значения для того, чтобы лучше передать абстрактные категории используемых в математике символов, и предоставляют четкое разделение между MathML и CSS.
Следующая таблица показывает соответствие осуждаемых стилевых атрибутов MathML 1.01 и их CSS-аналогов:
Атрибут MathML | Свойство CSS | синтаксический символ | Элемент MathML |
fontsize | font-size | - | токены представления; mstyle |
fontweight | font-weight | - | токены представления; mstyle |
fontstyle | font-style | - | токены представления; mstyle |
fontfamily | font-family | css-fontfamily | токены представления; mstyle |
color | color | css-color-name | токены представления; mstyle |
background | background | css-color-name | mstyle |
Порядок обработки атрибутов и стилевых таблиц.
CSS или аналогичные стилевые таблицы могут задавать изменения свойств отображения элементов MathML. Так как свойства отображения могут изменяться как атрибутами элемента, так и программой отображения, необходимо определить порядок, в котором происходят изменения из разных источников. Примером автоматического согласования является ситуация с fontsize. В случае 'абсолютных' изменений, например, установки нового значения свойства, независимого от старого значения (в отличие от 'относительных' изменений, таких как инкремент или умножение на число), действуют только последние абсолютные изменения, поэтому источник изменений с наивысшим приоритетом должен обрабатываться последним.
В случае CSS, порядок обработки изменений, действующих на свойства отображения элемента MathML, из различных источников должен быть следующим: (изменяется первым; самый низкий приоритет)
Автоматические изменения свойств или атрибутов, основанных на типе родительского элемента и положении элемента в родительском (как упоминается выше об изменениях fontsize в соответствии с scriptlevel; такие изменения обычно применяются самим родительским элементом перед передачей свойств отображения текущему элементу
Из стилевых таблиц читателя: стили, которые не объявлены 'важными'
Явно заданные атрибуты текущего элемента MathML
Из стилевых таблиц автора: стили, которые не объявлены 'важными'
Из стилевых таблиц автора: стили, которые объявлены 'важными'
Из стилевых таблиц читателя: стили, которые объявлены 'важными' (изменяется последним; самый высокий приоритет).
Отметим, что порядок изменений, производимых стилевыми таблицами CSS, определен в самих CSS (это порядок, определяемый CSS2). Следующее объяснение относится только к случаю, когда в этом порядке происходят изменения, вызванные точным заданием атрибутов MathML.
Объяснение: Атрибуты отображения в MathML аналогичны атрибутам отображения в HTML (таким как align), которые, согласно определенному в CSS порядку, должны обрабатываться с одинаковым приоритетом. Более того, такой выбор очередности позволяет читателям решить, определяя стили CSS 'важными', какие из их установок должны переопределять явные установки MathML. Так как выражения MathML, состоящие из элементов содержания или представления, в первую очередь предназначены для передачи смысла, а 'графическое представление' (если таковое имеется) должно помогать этому (но не является важным само по себе), вероятно, что читатели захотят, чтобы их стилевые предпочтения имели приоритеты. Основным исключением является ситуация, когда атрибуты отображения предполагают изменение смысла выражения.
Дата: 2019-04-23, просмотров: 260.