2016-04-11 11 views
1

Ich führe einen Python-Code im Terminal aus und möchte eine hübsche ASCII-Darstellung eines LaTeX-Ausdrucks ausgeben. Mir ist klar, dass ich mit matplotlib ein separates Fenster öffnen kann, aber ich möchte den Text nicht in einem separaten Fenster haben. Sympy druckt gut, scheint LaTeX aber nicht zu importieren (zumindest nicht das ich gefunden habe).LaTeX-Ausdruck lesen und hübsch als ASCII mit Python drucken

Idealerweise Es wäre so etwas wie dies funktioniert:

print('$x^2$') 

ausgeben würde in der Konsole:

2 
x 

Genau wie sympy würde, wenn ich ein sympy Symbol x hergestellt und gedruckt x ** 2 .

Kompliziertere Ausdrücke müssten entsprechend behandelt werden. Zum Beispiel:

\lim_{n \to \inf} \sum_{x=1}^{n} \frac{1}{x} 

könnte so gemacht werden:

 n 
     ----- 
     \  1 
lim  > ----- 
n->inf/ x 
     ----- 
     x=1 

Zeichen, die in ASCII nicht wie $ \ alpha unterstützt werden $ in einem ASCII-äquivalent wie „alpha“ erweitert werden könnten oder einen Fehler könnte geworfen werden.

+0

Können Sie die Art der Latex-Ausdrücke, die Sie konvertieren möchten, auflisten und sie in Sympy-Strings konvertieren ... das Beispiel, das Sie haben, kann leicht konvertiert werden ... – trans1st0r

+0

Was passiert, wenn die Eingabe eine der vielen, vielen Funktionen enthält von LaTeX, die schwierig oder unmöglich in reinem ASCII darzustellen sind? Griechische Buchstaben, verschieden große Buchstaben usw. Etwas wie '$ lim_ {n \ bis \ inf} \ sum_ {x = 1}^{n} \ frac {1} {x} $ 'wäre völlig unbrauchbar. – user2357112

+0

Ich werde die Frage bearbeiten, um kompliziertere Ausdrücke zu behandeln. – ZSG

Antwort

1

LaTeX Parsing ist derzeit nicht in SymPy enthalten, obwohl es speculated since 2012 mit einer anständig hohen Priorität war.

Die Drittanbieter-latex2sympy möglicherweise in der Lage, Ihre Bedürfnisse zu erfüllen.

+0

Etwas wie latex2sympy und dann SymPys hübscher Drucker ('pprint (expr, use_unicode = False)' wird einen Ausdruck mit nur ASCII-Zeichen drucken) sollte funktionieren, obwohl beachten Sie, dass SymPy die Form von Eingabeausdrücken nicht vollständig beibehält Die Ausgabe kann sich von der Eingabe unterscheiden (obwohl sie mathematisch äquivalent ist) (z. B. kann sie die Terme neu anordnen). – asmeurer

+0

Scheint zu arbeiten. Es wäre schön, wenn es sympatisch wäre. – ZSG

Verwandte Themen