# Input Components¶

Currently there are three MathJax input formats, each packaged into its own component.

These are described in more detail below. See the Input Processor Options section for details about configuring these components.

## input/tex¶

The TeX input format is packaged in three different ways, depending on which extensions are included in the component. This gives you several possible trade-offs between file size and feature completeness. See the TeX and LaTeX input section for details about the TeX input processor.

When you include one of the TeX input components, MathJax will define a function to convert TeX strings into the output format that has been loaded. See the Converting a Math String to Other Formats section for details.

### input/tex¶

This is the standard TeX input component. It includes the main
TeX/LaTeX input parser, along with the base definitions for the most
common macros and environments. It also includes the ams,
newcommand, require, autoload,
configMacros, and noundefined extensions. The
remaining extensions (other than physics and
colorV2) are loaded automatically when needed, or you can
use `\require`

to load any of them explicitly. This will cause the
extensions to be loaded dynamically, so if you are calling MathJax’s
typesetting or conversion methods yourself, you should use the
promise-based versions in order to handle that properly.

See the TeX Input Processor Options section for information about configuring this component.

### input/tex-full¶

This is the most complete TeX input component. It includes the main
TeX/LaTeX input parser, along with all the TeX extensions, and is
configured to enable all of them other than physics and
colorV2. You can add these two to the `packages`

array
in the `tex`

section of your MathJax configuration, though you
should remove the color extension if you add the
colorV2 extension, and should remove the braket
extension if you enable the physics package.

See the TeX Input Processor Options section for information about configuring this component.

### input/tex-base¶

This is a minimal TeX input component. It includes the main TeX/LaTeX
input parser, along with the base definitions for the most common
macros and environments. No other extensions are included, so no
extensions are autoloaded, and you can not use `\require`

. For this
component, you must explicitly load the extensions you want to use,
and add them to the `packages`

array.

See the TeX Input Processor Options section for information about configuring this component.

### TeX Extension Packages¶

Each of the TeX extensions listed in the The TeX/LaTeX Extension List has its
own component. The name of the component is the name of the extension
preceded by `[tex]/`

; so the component for the `enclose`

extension is `[tex]/enclose`

. You can include any of the extension
components in the `load`

array of the `loader`

section of your
MathJax configuration, and add the extension to the `packages`

array
in the `tex`

block. For example:

```
window.MathJax = {
loader: {load: ['[tex]/enclose']},
tex: {
packages: {'[+]', ['enclose']}
}
};
```

Of course, if you are using one of the packages that includes the autoload extension, then you don’t have to load the extensions explicitly (except for physics and colorV2), as they will be loaded automatically when first used.

In addition, there is a `[tex]/all-packages`

component that includes
all the packages, and configures the TeX input processors to include
all of them except physics and colorV2. The
input/tex-base and [tex]/all-packages components together are
effectively the same as the input/tex-full component.

See the TeX Extension Options section for information about configuring the TeX extensions.

## input/mathml¶

The input/mathml component contains the MathML input processor, including the function that identifies MathML within the page. See the MathML input section for details concerning the MathML input processor. When you include the input/mathml component, MathJax will define a function to convert serialized MathML strings into the output format that has been loaded. See the Converting a Math String to Other Formats section for details.

- See the MathML Support section for details about MathML output.
- See the MathML Input Processor Options section for information about configuring this component.

## input/asciimath¶

The input/asciimath component contains the AsciiMath input processor, including the function that identifies AsciiMath within the page. See AsciiMath input section or details concerning the AsciiMath input processor. When you include the input/asciimath component, MathJax will define a function to convert AsciiMath strings into the output format that has been loaded. See the Converting a Math String to Other Formats section for details.

See the AsciiMath Input Processor Options section for information about configuring this component.

Note

The AsciiMath input jax has not been fully ported to version 3 yet. The AsciiMath component includes legacy MathJax 2 code patched into the MathJax 3 framework. That makes the AsciiMath component larger than usual, and slower than the other input components.