RETIRED — superseded by Plurimath
This repository was archived on 2026-11-02 and is no longer maintained. Its functionality — converting MathML to AsciiMath — is fully subsumed by Plurimath, which reads MathML natively and writes every math format, including AsciiMath.
Gem usage:
require "plurimath"
formula = Plurimath::Math.parse("<math><mfrac><mi>a</mi><mi>b</mi></mfrac></math>", :mathml)
formula.to_asciimath # => "frac(a)(b)"CLI usage:
plurimath convert --input-format mathml --output-format asciimath \
--input "<math><mfrac><mi>a</mi><mi>b</mi></mfrac></math>"Documentation: the formal specifications for every supported format live at https://plurimath.github.io/docs/ . ## DEPRECATION NOTICE: This repository is no longer maintained. Please visit Plurimath for the latest updates and features.
mathml2asciimath
Ruby gem to convert MathML into AsciiMath
Ignores style and MathML attributes (other than mfenced/@open, mfenced/@close, mo/@fence).
Processes the following MathML tags: mrow, mfenced, msqrt, mfrac, msup, msub, munderover, msubsup, munder, mover, mi, mn, ntext, mo, mtable, mtr, mtd.
Converts all the Unicode characters MathJax knows about into AsciiMath operators (e.g. \\beta, xx, oint)
As with the other two MathML to AsciiMath converters available online (Python: https://github.com/rochecompaan/upfront.mathml2asciimath, Node.js: https://github.com/learningobjectsinc/mathml-to-asciimath), this converter is not foolproof, production-ready, or complete, and you will need to post-edit output. It’s still a lot better than nothing. (And because it converts Unicode to Ascii, it’s a lot better than the other two.)