Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/viktorstrate/algebra-latex

Parse and calculate latex formatted math
https://github.com/viktorstrate/algebra-latex

algebra asciimath cas latex math nodejs parse parser

Last synced: 3 months ago
JSON representation

Parse and calculate latex formatted math

Awesome Lists containing this project

README

        

# algebra-latex

[![Build Status](https://travis-ci.org/viktorstrate/algebra-latex.svg?branch=master)](https://travis-ci.org/viktorstrate/algebra-latex)
[![npm version](https://badge.fury.io/js/algebra-latex.svg)](https://www.npmjs.com/package/algebra-latex)

An npm module, with no dependencies, for parsing LaTeX math to a regular math string ([ascii math](http://asciimath.org/)),
that can be parsed to other algebra or math libraries like [algebrite](http://algebrite.org/) and [algebra.js](http://algebra.js.org/)

## Example

```javascript
const AlgebraLatex = require('algebra-latex')

// Parse from LaTeX ...
const latexInput = '\\frac{1}{\\sqrt{2}}\\cdot x=10'
const algebraObj = new AlgebraLatex().parseLatex(latexInput)

// ... or parse from regular math string
const mathInput = '1/sqrt(2)*x=10'
const algebraObj = new AlgebraLatex().parseMath(mathInput)

console.log(algebraObj.toMath()) // output: 1/sqrt(2)*x=10
console.log(algebraObj.toLatex()) // output: \frac{1}{\sqrt{2}}\cdot x=10
```

### Parse to other libraries

**Supported libraries**

- [algebra.js](http://algebra.js.org/)
- [algebrite](http://algebrite.org/)
- [coffeequate](http://coffeequate.readthedocs.io/)

> NOTE: The above libraries are optional, and have to be installed before use

_continuing from example above_

```javascript
...

var algebraJS = require('algebra.js')
var algebrite = require('algebrite')
var coffeequate = require('coffeequate')

// For algebra.js
algebraObj.toAlgebra(algebraJS) // Will either return an algebra.js expression or equation

// For algebrite
algebraObject.toAlgebrite(algebrite)

// For coffequate
algebraObject.toCoffeequate(coffeequate)
```