# <mmultiscripts>

The MathML `<mmultiscripts>` element allows you to create tensor-like objects. In a descriptive way tensors are multidimensional matrices (mathematical imprecise but exemplified). The degree of a tensor depends on the dimensionality of a representative array. For example, a number is a 0-dimensional array, or a 0th-order tensor. A 1-dimensional array (e.g. vectors) is a 1st-order tensor and so 2nd-order tensors are needed to represent square matrices. To learn more about the mathematical background of tensors refer to the entry on Wikipedia.

MathML uses a special syntax to describe subscripts and superscripts for both, postscripts and prescripts, attached to a base expression:

```<mmultiscripts>
base
(subscript superscript)*
[ <mprescripts/> (presubscript presuperscript)* ]
</mmultiscripts>
```

After the base expression you can specify a postsubscript and a postsuperscript. Prescripts are optional and are separated by the empty tag `<mprescripts/>` (only one <mprescripts /> element is allowed, otherwise you will get an `DuplicateMprescripts` error in the Error Console and "invalid-markup" in your rendering). In addition you are able to use `<none/>` as a placeholder for empty scripts (not for the base). See the examples section for a correct usage.

## Attributes

class, id, style
Provided for use with stylesheets.
href
Used to set a hyperlink to a specified URI.
mathbackground
The background color. You can use `#rgb`, `#rrggbb` and HTML color names.
mathcolor
The text color. You can use `#rgb`, `#rrggbb` and HTML color names.
subscriptshift
The minimum space by which to shift the subscript below the baseline of the expression, as a CSS length.
superscriptshift
The minimum space by which to shift the superscript above the baseline of the expression, as a CSS length.

## Examples

### Using `<mprescripts/>`

Sample rendering:

Rendering in your browser: ${}_{b}{}^{a}X_{d}^{c}$

```[itex]

<mmultiscripts>

<mi>X</mi>      <!-- base expression -->

<mi>d</mi>      <!-- postsubscript -->
<mi>c</mi>      <!-- postsuperscript -->

<mprescripts />
<mi>b</mi>      <!-- presubscript -->
<mi>a</mi>      <!-- presuperscript -->

</mmultiscripts>

[/itex]
```

### Using `<none/>`

Sample rendering:

Rendering in your browser: ${}_{b}X^{c}$

```[itex]

<mmultiscripts>

<mi>X</mi>      <!-- base expression -->

<none />        <!-- postsubscript -->
<mi>c</mi>      <!-- postsuperscript -->

<mprescripts />
<mi>b</mi>      <!-- presubscript -->
<none />        <!-- presuperscript -->

</mmultiscripts>

[/itex]
```

## Specifications

Specification Status Comment
MathML 3.0
The definition of 'mmultiscripts' in that specification.
Recommendation Current specification
MathML 2.0
The definition of 'mmultiscripts' in that specification.
Recommendation Initial specification

## Browser compatibility

We're converting our compatibility data into a machine-readable JSON format. This compatibility table still uses the old format, because we haven't yet converted the data it contains. Find out how you can help!

Feature Chrome Firefox (Gecko) Internet Explorer Opera Safari
Basic support No support 1.0 (1.7 or earlier) No support No support No support
`href` No support 7.0 (7.0) No support No support No support
`mathbackground` No support 4.0 (2.0) No support No support No support
`mathcolor` No support 4.0 (2.0) No support No support No support
Feature Android Chrome for Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
Basic support No support No support 1.0 (1.0) No support No support No support
`href` No support No support 7.0 (7.0) No support No support No support
`mathbackground` No support No support 4.0 (2.0) No support No support No support
`mathcolor` No support No support 4.0 (2.0) No support No support No support

## Gecko-specific notes

• Starting with Gecko 26.0 (Firefox 26 / Thunderbird 26 / SeaMonkey 2.23 / Firefox OS 1.2) it is no longer possible to use `<none />` as the base element. The rendering has been made more consistent with equivalent configurations of `<msup>` and `<msubsup>`. A bug with the incorrect application of `subscriptshift` and `superscriptshift` attributes has been fixed (see bug 827713 for details).

• `<msub>` (Subscript)
• `<msup>` (Superscript)
• `<msubsup>` (Subscript-superscript pair)