2013-04-04 8 views
15

Desidero analizzare le formule LaTeX e utilizzarle direttamente come espressioni SymPy. In altre parole, ciò che mi serve è qualcosa di simile a sympify:Convertire una formula LaTex in un tipo che può essere utilizzato all'interno di SymPy

from sympy import sympify 
f = sympify('x^2 + sin(y) + 1/2') 
print f 

ma che può assumere espressioni LaTeX (stringhe) come input, ad esempio:

f = latex_sympify('\frac{x}{1+x}') 

Dato che sympify è in grado di convertire un stringa con un'espressione matematica regolare in un oggetto SymPy, se c'è qualcosa che può convertire LaTeX in un'espressione matematica regolare, immagino che farebbe il trucco --- ma preferirei fare tutto in Python.

Qualsiasi suggerimento sarà molto apprezzato.

+0

Credo che una cosa del genere non esiste ... In ogni caso, LaTeX ha tonnellate di funzionalità per le formule, quindi quale dovrebbe essere incluso almeno? Hai bisogno di gestire matrici/matrici/binomi ecc.? – Bakuriu

+0

Non esiste ancora alcuna funzione SymPy per questo. Vedi https://code.google.com/p/sympy/issues/detail?id=2319. Potresti riuscire a trovare un parser secondario in grado di convertire LaTeX in qualcosa di simile a Python, che SymPy può quindi analizzare. – asmeurer

+0

Anche le patch sono benvenute :) – asmeurer

risposta

2

vorrei guardare strumenti che convertono lattice per MathML, come (tramite la ricerca Google): http://www.mathtowebonline.com/

Quindi è possibile elaborare l'XML che viene fuori da questo. Tuttavia, dovresti fare attenzione a interpretare il risultato come un'espressione matematica. Tali strumenti possono garantire che la rappresentazione testuale sia uguale, ma il bracketing (raggruppamento) degli operandi con i loro operatori potrebbe non essere quello che ci si aspetta. In generale vedrai meno nidificazione. Gli operatori che si trovano l'uno accanto all'altro e che interpretiamo per convenzione come nidificati verranno semplicemente convertiti in elementi di pari livello nel formato XML. Se si tenta di interpretare questo come formule, rimane ancora del lavoro da fare (recuperare la struttura nidificata nel modo giusto).

Problemi correlati