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

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

SUB и SUP

Допустимый Контекст: %math
Модель Содержимого: %math

SUB и SUP элементы используются для указания верхних и нижних индексов, соответственно, и преимущественно представляются уменьшенным шрифтом. SUB и SUP элементы используются в интегралах для указания соответствующих знаков нижнего и верхнего предела, например:

   &sum;<sub>n = 0</sub><sup>&inf;</sup>

представляется как (в пределах ascii символов):

  infinity
    ---
    \
    /
    ---
   n = 0

SGML SHORTREF символы «_» и «^» могут быть использованы в качестве сокращений. Приведённый выше пример сокращается до:

    &sum;_n = 0_^&inf;^

Нужно указывать имена сущностей, когда вам нужны символы «_» и «^»!

Но при этом вам необходимо возвращаться к полной форме тегов, когда устанавливается верхний индекс или устанавливается нижний индекс, как показано ниже:

    X<sub>a<sub>i</sub></sub>  который является  X    
                                                  a   
                                                   i                     

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

    4LiH + AlCl_3_ &rarr;^эфир^ LiAlH_4_ + 3LiCl

которая представляется, как:

                   эфир
     4LiH + AlCl  ------>  LiAlH  +  3LiCl
         3                      4

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

Примечание: Не используйте shortref для SUB и SUP в обычном тексте - они работают только в пределах MATH элементов!

Размещение верхних и нижних индексов

Бывают случаи когда вам необходимо несколько раз разместить верхний индекс слева от термина. Самый простой способ сделать это с помощью shortrefs, например

    _4_^9^Be + _2_^4^He &rarr; _6_^12^C + _0_^1^n

который представляется как (в пределах ascii символов):

     9      4        12    1
      Be +   He  -->   C +  n
     4      2         6    0

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

                          b                              b
    X_a_ ^b^Y  соотв.  X   Y ,  где  X_a_^b^Y   соотв.  X   Y
                        a                                a
                                        a  b
    но и X^a^ ^b^Y и X^a^^b^Y  соотв.  X    Y   

Последний случай является неоднозначным, однако два верхних индекса не могут оба относится к предыдущему термину поскольку они не могут оба быть размещены в одной и той же позиции. То же самое относится к двум элементам нажних индексов. Если есть какие-либо сомнения, то мудрым решением будет вставить пробел для того, чтобы сделать ваш замысел более понятным! Если вы предпочитаете фигурные скобки, то вы можете использовать фигурные скобки, например: {X_a_}{^b^Y}. Эти скобки являются shortrefs для BOX элемента и при этом они не показываются, когда выражение полностью представлено.

Те же правила применяются в случаях, когда вы используете полную форму SUB и SUP элементов. Атрибут ALIGN может быть использован для того, чтобы переопределить позицию, в которой по умолчанию представляется индекс, и которая, как правило, устанавливается на основе расположения элемента индекса относительно термина, к которому он относится. Например:

    X<sub align=right>a</sub> <sup align=left>b</sup>Y
    X<sub align=right>a</sub>Y<sup align=left>b</sup>
    
                                  b
    оба представляются как    X    Y
                               a

    в то время как  X<sub align=right>a</sub><sup align=left>b</sup>Y

                            b
    представляется как       X   Y
                              a

В последнем случае элемент SUP выступает в качестве префикса верхнего индекса X до тех пор, пока нет разделителя между ним и предыдущим элементом SUB. Если у вас возникли сомнения то, вам следует использовать скобки или пробельные символы для внесения в код большей ясности.

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

Атрибуты ID, LANG и CLASS для SUB и SUP не используются в пределах MATH элементов.

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

align=left
Индекс (или интервал значений) размещается слева от термина.
align=center
Индекс отцентрирован относительно термина и размещается ниже него для нижних индексов, и размещается выше него (для верхних индексов).
align=right
Индекс размещается справа от этого термина.

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

&int;<sub align=right>0</sub><sup align=right>&inf;</sup>

Примечание: Агентам пользователей следует игнорировать атрибут ALIGN для SUB и SUP элементов, расположенных вне MATH элементов.