# Renderer support

Per-package coverage and high-frequency gaps for MathJax, KaTeX, and XeTeX, with the status legend and how statuses are determined.

https://texform.dev/latex/renderers

This page reports how the cataloged commands and environments render across three engines: MathJax, KaTeX, and XeTeX. Use it to answer "I target KaTeX — which common commands should I avoid?" For a single command, see its detail page; to filter interactively, use the [commands index](https://texform.dev/latex/commands).

## Status legend [#status-legend]

Each entry carries one support status per renderer:

* **Full** — every positive test case for the entry rendered without error.
* **Partial** — some positive cases rendered, but at least one failed. A command with a bare-argument or optional-argument form that one renderer rejects lands here.
* **None** — no positive case rendered, or the renderer does not recognize the entry.

Statuses are derived by rendering generated test cases against each engine, not from documentation. See [renderer validation](https://texform.dev/docs/renderer-validation) for how the cases are produced and how the three statuses are computed.

## Coverage by package [#coverage-by-package]

Counts are entries at each status, shown as full / partial / none per renderer across all supported packages. They are a snapshot of the current validation run; the totals row aggregates all entries.

| Package | Entries | MathJax full / partial / none | KaTeX full / partial / none | XeTeX full / partial / none |
| --- | --- | --- | --- | --- |
| ams | 63 | 63 / 0 / 0 | 39 / 1 / 23 | 58 / 0 / 5 |
| base | 277 | 272 / 1 / 4 | 182 / 5 / 90 | 176 / 14 / 87 |
| bboldx | 12 | 12 / 0 / 0 | 1 / 0 / 11 | 4 / 0 / 8 |
| boldsymbol | 1 | 1 / 0 / 0 | 1 / 0 / 0 | 1 / 0 / 0 |
| braket | 11 | 11 / 0 / 0 | 9 / 0 / 2 | 1 / 0 / 10 |
| color | 5 | 5 / 0 / 0 | 0 / 4 / 1 | 5 / 0 / 0 |
| physics | 183 | 183 / 0 / 0 | 25 / 0 / 158 | 183 / 0 / 0 |
| textmacros | 78 | 75 / 1 / 2 | 60 / 3 / 15 | 57 / 4 / 17 |
| All | 630 | 622 / 2 / 6 | 317 / 13 / 300 | 485 / 18 / 127 |

MathJax accepts nearly every cataloged entry. KaTeX has a smaller built-in command set, so its gaps are concentrated in `physics` and `bboldx`. XeTeX is validated under a math-mode, package-scoped harness, so its gaps include text-mode and cross-package commands that XeTeX renders only in a wider document context; read its column with that scope in mind (see [renderer validation](https://texform.dev/docs/renderer-validation)).

## High-frequency gaps [#high-frequency-gaps]

For each renderer, the commands below are both common in real corpora and not fully supported. Frequencies are the share of formulas containing the command in a large LaTeX corpus. Each row links to its detail page.

### KaTeX [#katex]

| Command | Support | Frequency |
| --- | --- | --- |
| [mbox](https://texform.dev/latex/commands/mbox) | none | 2.9899% |
| [dagger](https://texform.dev/latex/commands/dagger) | none | 1.1006% |
| [ensuremath](https://texform.dev/latex/commands/ensuremath) | none | 0.9993% |
| [Bbb](https://texform.dev/latex/commands/Bbb) | partial | 0.1005% |
| [frak](https://texform.dev/latex/commands/frak) | partial | 0.0698% |
| [hfill](https://texform.dev/latex/commands/hfill) | none | 0.0341% |
| [scalebox](https://texform.dev/latex/commands/scalebox) | none | 0.028% |
| [sideset](https://texform.dev/latex/commands/sideset) | none | 0.0248% |
| [buildrel](https://texform.dev/latex/commands/buildrel) | none | 0.0232% |
| [label](https://texform.dev/latex/commands/label) | none | 0.0174% |
| [*](https://texform.dev/latex/commands/-star) | none | 0.012% |
| [color](https://texform.dev/latex/commands/color) | partial | 0.0119% |
| [hspace](https://texform.dev/latex/commands/hspace) | partial | 0.0096% |
| [ddagger](https://texform.dev/latex/commands/ddagger) | none | 0.0079% |
| [strut](https://texform.dev/latex/commands/strut) | none | 0.0062% |

### XeTeX [#xetex]

Many of these render in a full XeTeX document but fall outside the math-mode, single-package validation scope:

| Command | Support | Frequency |
| --- | --- | --- |
| [\](https://texform.dev/latex/commands/-5c-) | partial | 24.2964% |
| [mathbb](https://texform.dev/latex/commands/mathbb) | partial | 10.3149% |
| [text](https://texform.dev/latex/commands/text) | none | 8.6962% |
| [mathfrak](https://texform.dev/latex/commands/mathfrak) | none | 1.8014% |
| [dagger](https://texform.dev/latex/commands/dagger) | none | 1.1006% |
| [mathscr](https://texform.dev/latex/commands/mathscr) | none | 0.6769% |
| [underset](https://texform.dev/latex/commands/underset) | none | 0.5019% |
| [overset](https://texform.dev/latex/commands/overset) | none | 0.4109% |
| [hbox](https://texform.dev/latex/commands/hbox) | partial | 0.4108% |
| [cr](https://texform.dev/latex/commands/cr) | none | 0.1758% |
| [pmb](https://texform.dev/latex/commands/pmb) | none | 0.1273% |
| [Bbb](https://texform.dev/latex/commands/Bbb) | none | 0.1005% |
| [mod](https://texform.dev/latex/commands/mod) | none | 0.0892% |
| [frak](https://texform.dev/latex/commands/frak) | none | 0.0698% |
| [boxed](https://texform.dev/latex/commands/boxed) | partial | 0.0318% |

### MathJax [#mathjax]

| Command | Support | Frequency |
| --- | --- | --- |
| [text](https://texform.dev/latex/commands/text) | partial | 8.6962% |
| [ensuremath](https://texform.dev/latex/commands/ensuremath) | none | 0.9993% |
| [emph](https://texform.dev/latex/commands/emph) | none | 0.069% |
| [scalebox](https://texform.dev/latex/commands/scalebox) | none | 0.028% |
| [hspace](https://texform.dev/latex/commands/hspace) | partial | 0.0096% |

## Per-command queries [#per-command-queries]

For a specific command rather than a renderer-wide list, look it up in the [commands index](https://texform.dev/latex/commands) and filter by renderer status, or open its detail page for the full per-renderer matrix.

