Преобразование числового выражения Python в LaTeX

Мне нужно преобразовать строки с допустимым синтаксисом Python, например:

'1+2**(x+y)'

и получить эквивалентный LaTeX:

$1+2^{x+y}$

Я пробовал латексную функцию sympy, но она обрабатывает фактическое выражение, а не его строковую форму:

>>> latex(1+2**(x+y))
'$1 + 2^{x + y}$'
>>> latex('1+2**(x+y)')
'$1+2**(x+y)$'

, но даже для этого требуется, чтобы x и y были объявлены как введите «символы».

Мне нужно что-то более простое, желательно выполнимое с помощью анализатора из модуля компилятора.

>>> compiler.parse('1+2**(x+y)')
Module(None, Stmt([Discard(Add((Const(1), Power((Const(2), Add((Name('x'), Name('y'))))))))]))

И последнее, но не менее важное: почему: мне нужно сгенерировать эти латексные фрагменты, чтобы я мог показать их в веб-страницу с mathjax.

26
задан fccoelho 5 October 2010 в 19:33
поделиться