# Differences from Actual TeX

Since MathJax renders for the web and TeX is a print layout engine, there are natural limitations to which parts of TeX can be supported in a reasonable way. Accordingly, there are several differences between “real” TeX/LaTeX systems and MathJax’s TeX Input.

First and foremost, the TeX input processor implements only the math-mode macros of TeX and LaTeX, not the text-mode macros. MathJax expects that you will use standard HTML tags to handle formatting the text of your page; MathJax only handles the mathematics. So, for example, MathJax does not implement `\emph` or `\begin{enumerate}...\end{enumerate}` or other text-mode macros or environments. You must use HTML to handle such formatting tasks. If you need a LaTeX-to-HTML converter, you should consider other options.

There are two exception to this rule. First, MathJax supports the `\ref` macro outside of math-mode. Second, MathJax supports some macros that add text within math-mode (such as `\text{}`) as well as `$...$` and `\(...\)` to switch back into math-mode, along with `\$` to escape a dollar sign. MathJax does not perform other macros inside these text blocks, however, in general. So, for example, `\text{some \textbf{bold} text}` will produce the output “some \textbf{bold} text”, not “some bold text”.

There is an extension (new in version 3.1) that implements a number of text-mode macros within the `\text{}` macro and other ones that produce text-mode material. See the textmacros documentation for details.

Second, some features in MathJax might be necessarily limited. For example, MathJax only implements a limited subset of the `array` environment’s preamble; i.e., only the `l`, `r`, `c`, and `|` characters alongside `:` for dashed lines — everything else is ignored.