ProgrammerBook.ru: Обратите внимание, что

  1. данный документ является переводом документа «HTML Math» (The ARRAY element);
  2. данный документ может содержать неточности, опечатки и ошибки перевода;
  3. официальным документом по данной тематике является оригинальный документ на английском языке, расположенный на сайте W3C.

Элемент ARRAY

Допустимый Контекст: %math
Модель Содержимого: от одного и более ROW элементов, которые содержат от одного и более ITEM элементов

Элемент <ARRAY> используется для обозначения LaTeX-подобных массивов. Он может быть использован только в пределах MATH элементов. Например:

    a      a    ...   a
     11     12         1n
     
    :      :    ...    :

    a      a    ...   a
     n1     n2         nn

В HTML math этот пример репрезентируется как:

    <array>
     <row><item>a_11_<item>a_12_<item>&cdots;<item>a_1n_
     <row><item>&vdots;<item>&vdots;<item>&ddots;<item>&vdots;
     <row><item>a_n1_<item>a_n2_<item>&cdots;<item>a_nn_
    </array>

Вы можете указывать символы «+», «-» или «=» в качестве разделителей столбцов:

    a   x   +  a   x   +  ...  +  a   x    =   b
     11  1      12  2              1n  n        1

    a   x   +  a   x   +  ...  +  a   x    =   b
     22  1      22  2              2n  n        2
 
    .............................................

    a   x   +  a   x   +  ...  +  a   x    =   b
     n2  1      n2  2              nn  n        n

Этот пример репрезентируется как:

<array coldef="C+C+C+C=C">
 <row><item>a_11_x_1_<item>a_12_x_2_<item>&cdots;<item>a_1n_x_n_<item>b_1_
 <row><item>a_21_x_1_<item>a_22_x_2_<item>&cdots;<item>a_2n_x_n_<item>b_2_
 <row><item colspan=5>&dotfill;
 <row><item>a_n1_x_1_<item>a_n2_x_2_<item>&cdots;<item>a_nn_x_n_<item>b_n_
</array>

Определение количества строк и столбцов оставляется синтаксическому анализатору для самостоятельного вычисления, путем подсчёта количества ROW элементов, а также количества ITEM элементов в каждой строке. Процесс подсчёта немного осложняется тем, что некоторые элементы массива могут занимать несколько строк и столбцов. Если после учёта объединённых элементов, оказывается что в строке количество элементов строки меньше ожидаемого количества элементов, то предполагается заполнение недостающих элементов с правой стороны, которые следует рассматривать как пустые. Количество строк следует основывать на количестве элементов ROW, а дополнительные строки, подразумеваемые элементами массива, объединяющими строки, выходящие за пределы массива, следует игнорировать.

Допустимые Атрибуты

ALIGN
По умолчанию, массивы расположены по вертикали таким образом, что предшествующие и последующие выражения выравнивались по средней точки массива. Атрибут ALIGN может принимать следующие значения:

TOP
Верхняя строка массива выравнивается по той же базовой линии, что и предыдущее или следующее выражение.
MIDDLE
Средняя строка массива выравнивается по той же базовой линии, что и предыдущее или следующее выражение. Это значение по умолчанию. Если в массиве чётное число строк, то вместо этого используется середина массива.
BOTTOM
Нижняя строка массива выравнивается по той же базовой линии, что и предыдущее или следующее выражение.
COLDEF
По умолчанию столбцы выравниваются по центру. Этот атрибут может быть использован для определения горизонтального выравнивания отдельно для каждого столбца с помощью строки символов, в которой каждая отдельная буква будет указывать выравнивание каждого отдельного столбца; L для выравнивания содержимого столбца по левому краю, C для выравнивания по центру и R для выравнивания по правому краю, например, «LLCR» для таблицы из 4 столбцов.

Атрибут COLDEF, также может быть использован для указания символов «+», «-» или «=» между столбцами, например coldef="C+C+C+C=C". Пробелы внутри атрибута COLDEF игнорируется.

LDELIM
Сущность или символ для левого разделителя, например, ldelim="[" для указания левой квадратной скобки, либо ldelim="|". Значение по умолчанию отсутствует.
RDELIM
Имя сущности или символа для правого разделителя, например, rdelim="}", либо rdelim="|". Значение по умолчанию отсутствует.
LABELS
Наличие этого атрибута имеет тот же эффект, что и TeX команда bordermatrix. Первая строка и столбец отделены от остальной части массива.

Пример маркированного массива:

      i     j     k
      
 a  (X     X     X  )
    ( 11    21    31)    <array ldelim="(" rdelim=")" labels>
    (               )     <row><item>муляж<item>i<item>j<item>k
 b  (X     X     X  )     <row><item>a<item>X_11_<item>X_21_<item>X_31_
    ( 12    22    32)     <row><item>b<item>X_12_<item>X_22_<item>X_32_
    (               )     <row><item>c<item>X_31_<item>X_32_<item>X_33_
 c  (X     X     X  )    </array>
    ( 13    23    33)

Примечание: в массиве первый элемент первой строки всегда является обязательным, хотя его содержимое будет проигнорировано для маркированных массивов. Это было подчёркнуто выше значением «муляж».