# Input Components

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

- input/tex

- input/mml

- input/asciimath

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/mml

The input/mml 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/mml 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.