Mathematics input widget for the web


  • WYSIWYG, backslashes optional.
  • Keyboard only; optional mouse interface.
  • Mobile keyboard.
  • Outputs LaTeX and plain text.
  • Supports matrices and custom symbols.


  • Stores data in semantic XML.
  • Outputs XML or JSON.
  • Generates and evaluates syntax trees.


  • Scriptable. Flexible API.
  • Easily configured.
  • Style adjustable using CSS.
  • MIT license.

Looks great; let's get to work!

  • How do I get started?

    Pop over to the quick start guide for instructions on setting up.

    Check the examples page for many more things you can do.

  • Can I evaluate expressions numerically?

    Yes! See the calculator and graphing examples.
  • Can I compare an input to a given expression?

    Yes, using the math-expressions library. Check out the quiz example.
  • Can I use it to just render mathematics on a page without an editor?

    Yes! Check out the article example.
  • What formats does it support?

    Export formats: LaTeX, ASCIIMath, plain text, JSON syntax tree, JSON equation list, Javascript function, and XML.
    Import formats: XML, JSON syntax tree, plain text, a semantic LaTeX, and also a subset of standard LaTeX through a third party library.
    See the Import/Export example for all natively supported formats, and see the LaTeX import example for limited import from standard LaTeX.
  • Who is using it?

  • How does it work?

    Data is stored internally in a custom XML format. Editing operations correspond loosely to XPath queries, and rendering to various output formats is a simple recursive transform (formerly XSLT). Display is done with KaTeX (with some modification).
  • Can I help with development?

    If you have time and coding skill to donate, start here. To donate money, go here.