latex2sympy parses LaTeX math expressions and converts them into the equivalent SymPy form.
sh scripts/setup.sh
If you plan to edit the parser grammar, ensure you have java installed on your machine.
The script below should be run every time the file LATEX.g4
or src/latex2sympy/latex2antlrJson.cpp
are modified.
sh scripts/compile.sh
Optionally, you can append the -n
option for "no clean", which will not completely delete the old build files, allowing for faster development.
sh scripts/compile.sh -n
Pre-compiled parsers are stored in src/latex2sympy/lib
. src/latex2sympy/lib/linux
contains the parser used in azure functions (see below).
compile.sh
will only compile for the current system.
Run compile.sh
on an M1 Mac
Run compile.sh
on an Intel Mac, or inside a "Rosetta" Terminal on an M1 Mac
- Use docker to get the azure function image from https://hub.docker.com/_/microsoft-azure-functions-python, e.g.
mcr.microsoft.com/azure-functions/python:4-python3.11
- Start a new instance and open its terminal
- Install git, build-essentials, default-jre
apt-get update && \ apt-get upgrade -y && \ apt-get install -y git && \ apt-get install -y build-essential && \ apt-get install -y default-jre
- clone latex2sympy with git and compile
# make a dir for the repo cd / mkdir git cd git # clone repo git clone https://github.com/purdue-tlt/latex2sympy.git cd latex2sympy # setup venv sh scripts/setup.sh # compile sh scripts/compile.sh
- copy
latex2antlrJson.so
from containerdocker cp container_name:/git/latex2sympy/src/latex2sympy/lib/linux/latex2antlrJson.so ~/git/purdue/github/latex2sympy/src/latex2sympy/lib/linux/
- commit the updated file
sh scripts/test.sh
In Python:
from latex2sympy.latex2sympy import process_sympy
process_sympy("\\frac{d}{dx} x^{2}")
# => "diff(x**(2), x)"
To modify parser grammar, view the existing structure in LATEX.g4
.
To modify the action associated with each grammar, look into src/latex2sympy/latex2antlrJson.cpp
and src/latex2sympy/latex2sympy.py
.