1234567891011121314151617181920212223242526272829303132333435 |
- from sympy.external import import_module
- from sympy.utilities.decorator import doctest_depends_on
- from .errors import LaTeXParsingError # noqa
- @doctest_depends_on(modules=('antlr4',))
- def parse_latex(s):
- r"""Converts the string ``s`` to a SymPy ``Expr``
- Parameters
- ==========
- s : str
- The LaTeX string to parse. In Python source containing LaTeX,
- *raw strings* (denoted with ``r"``, like this one) are preferred,
- as LaTeX makes liberal use of the ``\`` character, which would
- trigger escaping in normal Python strings.
- Examples
- ========
- >>> from sympy.parsing.latex import parse_latex
- >>> expr = parse_latex(r"\frac {1 + \sqrt {\a}} {\b}")
- >>> expr
- (sqrt(a) + 1)/b
- >>> expr.evalf(4, subs=dict(a=5, b=2))
- 1.618
- """
- _latex = import_module(
- 'sympy.parsing.latex._parse_latex_antlr',
- import_kwargs={'fromlist': ['X']})
- if _latex is not None:
- return _latex.parse_latex(s)
|