Skip to content

@texmorph/mathjax ​

MathJax 4 (SVG output) renderer and the createMorph entry point. Re-exports the same @texmorph/dom members as @texmorph/katex.

createMorph ​

ts
function createMorph(
  host: HTMLElement,
  from: FormulaInput,
  to: FormulaInput,
  options?: MathMorphOptions<SafeMathJaxOptions> & {
    renderer?: FormulaRenderer<SafeMathJaxOptions>;
    mathjax?: MathJaxRendererOptions;
  },
): Promise<MathMorph>;
OptionDescription
rendererA renderer from mathjaxRenderer(). Takes precedence over mathjax.
mathjaxOptions for a new renderer created for this call.
(neither)A shared default renderer is used.

All other options are MathMorphOptions.

mathjaxRenderer ​

ts
function mathjaxRenderer(options?: MathJaxRendererOptions): FormulaRenderer<SafeMathJaxOptions>;

interface MathJaxRendererOptions {
  packages?: readonly string[];
  macros?: Readonly<Record<string, string | [string, number]>>;
  loadFont?: (range: string) => Promise<unknown>;
  preloadFonts?: readonly string[];
}
OptionDescription
packagesTeX packages. Default ['base', 'ams', 'newcommand', 'color', 'cancel', 'boldsymbol']. Unregistered packages, and html, require or autoload, throw a TypeError.
macrosMacro definitions; [body, argumentCount] for macros with arguments.
loadFontLoads one dynamic newcm font range by name (e.g. "latin-b"). Page-global.
preloadFontsRanges to load in ready().

The renderer provides stylesheet() (the mjx-container CSS) for shadow roots and honors AbortSignal in ready() and render().

SafeMathJaxOptions ​

ts
interface SafeMathJaxOptions {
  containerWidth?: number; // CSS px for percentage widths; default 80ex
}

Pass it as rendererOptions.

Released under the MIT License.