Fork me on GitHub

mathlive

The functions in this module are the main entry points to the MathLive public API.

To invoke these functions, use the global MathLive object. For example:

const markup = MathLive.toMarkup('e^{i\\pi}+1=0');

Methods

latexToAST(latex: string) → string

latex string
string   
Source

latexToMarkup(text: string, displayMode: string, formatopt: string) → string

Convert a LaTeX string to a string of HTML markup.

text string

A string of valid LaTeX. It does not have to start with a mode token such as $$ or \(.

displayMode string

If 'displaystyle' the "display" mode of TeX is used to typeset the formula. Most appropriate for formulas that are displayed in a standalone block. If 'textstyle' is used, the "text" mode of TeX is used, which is most appropriate when displaying math "inline" with other text.

format string optional = 'html'

For debugging purposes, this function can also return a text representation of internal data structures used to construct the markup. Valid values include 'mathlist' and 'span'

string   
Source

latexToMathML(latex: string) → string

latex string
string   
Source

latexToSpeakableText() → string

string   
Source

makeMathField(element: HTMLElement,string, configopt: Object.<string, *>)MathField

Convert a DOM element into an editable math field.

element HTMLElement | string

An HTML DOM element, for example as obtained by .getElementById() or a string representing the ID of a DOM element.

config Object.<string, *> optional
config.namespace string optional = ''

Namespace that is added to data- attributes to avoid collisions with other libraries. It is empty by default. The namespace should be a string of lowercase letters.

config.substituteTextArea function optional

A function that returns a focusable element that can be used to capture text input. This can be useful when a <textarea> element would be undesirable. Note that by default on mobile devices the TextArea is automatically replaced with a <span> to prevent the device virtual keyboard from being displayed.

config.onFocus mathfieldCallback optional

Invoked when the mathfield has gained focus

config.onBlur mathfieldCallback optional

Invoked when the mathfield has lost focus

config.onKeystroke mathfieldCallback optional

Invoked when a keystroke is about to be processed. First argument is a string describing the keystroke, the second is the keyboard event. Return false to stop handling of the event.

config.overrideDefaultInlineShortcuts boolean optional = false

If true the default inline shortcuts (e.g. 'p' + 'i' = 'π') are ignored.

config.inlineShortcuts Object.<string, string> optional

A map of shortcuts → replacement value. For example { 'pi': '\\pi'}. If overrideDefaultInlineShortcuts is false, these shortcuts are applied after any default ones, and can therefore override them.

config.smartFence boolean optional = true

If true, when an open fence is entered via typedText() it will generate a contextually appropriate markup, for example using \left...\right if applicable. If false, the literal value of the character will be inserted instead.

config.virtualKeyboardToggleGlyph string optional

If specified, the markup to be used to display the virtual keyboard toggle glyph.

config.virtualKeyboardMode string optional = ''

If 'manual', pressing the command bar toggle will display a virtual keyboard instead of the command bar. If 'onfocus', the virtual keyboard will be displayed whenever the field is focused. In that case, the command bar toggle is not displayed. When this setting is not empty, config.overrideDefaultCommands and config.commands are ignored.

config.virtualKeyboards string optional = 'all'

A space separated list of the keyboards that should be available. The keyboard 'all' is synonym with:

  • 'numeric', 'roman', 'greek', 'functions' and 'command'

The keyboards will be displayed in the order indicated.

config.virtualKeyboardRomanLayout string optional = 'qwerty'

The arrangement of the keys for the layers of the roman virtual keyboard. One of 'qwerty', 'azerty', 'qwertz', 'dvorak' or 'colemak'.

config.customVirtualKeyboardLayers Object optional

Some additional custom virtual keyboard layers. A keyboard is made up of one or more layers (think of the main layer and the shift layer on a hardware keyboard). Each key in this object define a new keyboard layer (or replace an existing one). The value of the key should be some HTML markup.

config.customVirtualKeyboards Object optional

An object describing additional keyboards. Each key in the object is an ID for a separate keyboard. The key should have a value made up of an object with the following keys:

  • tooltip: a string label describing the keyboard.
  • label: a string, displayed in the keyboard switcher to identify this
     keyboard
  • layers: an array of strings, the ID of the layers used by this keyboard. These layers should be defined using customVirtualKeyboardLayers.
  • classes: a string, the classes to be added to the label for this keyboard Possible values are 'tex' to use a TeX font to display the label.
  • layer: optional, the ID of the layer to switch to when the label of this keyboard is clicked on in the keyboard switcher.
  • command: optional, a selector to perform when the label is clicked. Either the command or layer key must be present.

config.virtualKeyboardTheme boolean optional = ''

The visual theme used for the virtual keyboard. If empty, the theme will switch automatically based on the device it's running on. The two supported themes are 'material' and 'apple' (the default).

config.keypressVibration boolean optional = 'on'

When a key on the virtual keyboard is pressed, produce a short haptic feedback.

config.keypressSound boolean optional = ''

When a key on the virtual keyboard is pressed, produce a short audio feedback. The value should be either a URL to a sound file or an object with the following keys:

  • delete URL to a sound file played when the delete key is pressed
  • return ... when the return/tab key is pressed
  • spacebar ... when the spacebar is pressed
  • default ... when any other key is pressed. This key is required, the others are optional. If they are missing, this sound is played as well.

config.onMoveOutOf mathfieldWithDirectionCallback optional

A handler called when keyboard navigation would cause the insertion point to leave the mathfield.

By default, the insertion point will wrap around.

config.onTabOutOf mathfieldWithDirectionCallback optional

A handler called when pressing tab (or shift-tab) would cause the insertion point to leave the mathfield.

By default, the insertion point jumps to the next point of interest.

config.onDeleteOutOf mathfieldWithDirectionCallback optional

A handler called when deleting an item would cause the insertion point to leave the mathfield.

By default, nothing happens. @todo Not implemented yet.

config.onSelectOutOf mathfieldWithDirectionCallback optional

A handler called when the selection is extended so that it would cause the insertion point to leave the mathfield.

By default, nothing happens. @todo Not implemented yet.

config.onUpOutOf mathfieldCallback optional

A handler called when the up arrow key is pressed with no element to navigate to.

By default, nothing happens. @todo Not implemented yet.

config.onDownOutOf mathfieldCallback optional

A handler called when the up down key is pressed with no element to navigate to.

By default, nothing happens. @todo Not implemented yet.

config.onEnter mathfieldCallback optional

A handler called when the enter/return key is pressed and it is not otherwise handled. @todo

config.onContentWillChange mathfieldCallback optional

A handler called just before the content is about to be changed.

config.onContentDidChange mathfieldCallback optional

A handler called just after the content has been changed.

config.onSelectionWillChange mathfieldCallback optional

A handler called just before the selection is about to be changed.

config.onSelectionDidChange mathfieldCallback optional

A handler called just after the selection has been changed.

config.onVirtualKeyboardToggle mathfieldCallback optional

A handler
called after the virtual keyboard visibility has changed. The first argument is true if the virtual keyboard is visible, the second argument is a DOM element containing the virtual keyboard, which can be used to determine its size (and therefore the portion of the screen it obscures)

MathField   
Source

renderMathInDocument(optionsopt: Object)

Transform all the elements in the document body that contain LaTeX code into typeset math.

See: Usage Guide

options Object optional

See renderMathInElement() for details

Source

renderMathInElement(element: Element,string, optionsopt: Object)

Transform all the children of element, recursively, that contain LaTeX code into typeset math.

See: Usage Guide

element Element | string

An HTML DOM element, or a string containing the ID an element.

options Object optional
options.namespace string optional = ''

Namespace that is added to data- attributes to avoid collisions with other libraries. It is empty by default. The namespace should be a string of lowercase letters.

options.macros Array.<object> optional = {}

Custom macros

options.skipTags Array.<string>

an array of tag names whose content will not be scanned for delimiters

options.ignoreClass string optional = 'tex2jax_ignore'

a string used as a regular expression of class names of elements whose content will not be scanned for delimiters

options.processClass string optional = 'tex2jax_process'

a string used as a regular expression of class names of elements whose content will be scanned for delimiters, even if their tag name or parent class name would have prevented them from doing so.

options.preserveOriginalContent boolean optional = true

if true, store the original textual content of the element in a data-original-content attribute. This value can be accessed for example to restore the element to its original value:

     elem.innerHTML = elem.dataset.originalContent;

options.TeX.processEnvironments boolean

if false, math expression that start with \begin{ will not automatically be rendered. (true by default)

options.TeX.delimiters.inline Array
options.TeX.delimiters.display Array

TeX.delimiters.display arrays of delimiters that will trigger a render of the content in 'textstyle' or 'displaystyle', respectively.

Source

revertToOriginalContent(element: string,Element,MathField, optionsopt: Object)

element string | Element | MathField
options Object optional = {}
options.namespace string

The namespace used for the data- attributes. If you used a namespace with renderMathInElement, you must use the same namespace here.

Source

revertToOriginalContent(element: string,Element,MathField, optionsopt: Object) → string

element string | Element | MathField
options Object optional = {}
options.namespace string

The namespace used for the data- attributes. If you used a namespace with renderMathInElement, you must use the same namespace here.

string   

the original content of the element.

Source

Type Definitions

mathfieldWithDirectionCallback(direction: number) → boolean

Mathfield
Mathfield
direction number
boolean   

False to suppress default behavior.

Source