Alternative zu PhpMathPublischer

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Benutzeravatar
mathman
User
Beiträge: 92
Registriert: Mittwoch 19. November 2008, 08:27
Wohnort: Magdeburg
Kontaktdaten:

Hallo,

für eine Bachalorarbeit muss ein Bemessungshilfenprogramm geschrieben werden.
Ursprünglich hatten wir vor das ganze in PHP zu schreiben, da die Syntax rtc. uns
zum großen Teil bekannt ist.

Da aber unter Python ein ComputerAlgebraSystem zur Verfügung steht wollen
wir unser Projekt nun in Python realisieren :D

Nachdem wir komplexe Berechnungen im Programm durchgeführt haben, wollen
wir einen Lösungsweg ausgeben. Dieser soll mit aufbereitten Formeln daher kommen.
Als Lösung dafür wollten wir PhpMathPublischer nutzen.

Da unser Interface für die Ein- sowie Ausgabe eine HTML Seite (Über ein Framework bereitgestellt) ist,
kann man die generierten Bildeer sehr schön laden.

Leider haben wir bis dato keine Alternativlösung zu PhpMathPublischer gefunden.
Kann uns evtl. jmd. mit einer Pythonvariante weiterhelfen?

Gruß
Mathman
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

In Welchem Format stehen denn die Formeln zur Verfügung? Sieht ja nach LaTeX aus...

Prinzipiell einfach mal bei pypi recherchieren, ob es nicht einen Wrapper um LaTeX2HTML o.ä. gibt.

Ansonsten funktioniert evtl. etwas in Richtung MathML vom w3c?
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
Benutzeravatar
cofi
Python-Forum Veteran
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

Nun MathML gibt es, aber der Browser-Support kommt erst langsam voran (mittlerweile unterstuetzen es aber alle aktuellen Browser - wenn man fuer den IE Version 9 hernimmt).

Daneben gibt es noch jsmath: http://sourceforge.net/projects/jsmath/.

Die dritte Moeglichkeit waere es die Fragmente selbst als Bild per LaTeX zu erstellen.

Aber eine direkte Python-Loesung ist mir nicht bekannt.

Edit: Es gibt noch MathJax: http://www.mathjax.org/ - ebenfalls JavaScript.
Benutzeravatar
mathman
User
Beiträge: 92
Registriert: Mittwoch 19. November 2008, 08:27
Wohnort: Magdeburg
Kontaktdaten:

MathJax, das ist besser als ich es mir vorgestellt habe,
ich bin geflasht :D
Da kann man einfach LaTEX Code übergeben und dann schreibt das
Skript im Browser die Formel rein, d.h. der Server wird minimal belastet :)

Falls das Programm dann von einem HIWI (im besten Fall von uns) nach Abgabe
erweitert wird, soll evtl. ein Interface geschrieben werden in QT oder weiß der Teufel.

Gibt es denn auch ein Bibliothek die die Formel als Bilder generieren würde, damit
diese dann im Interface stehen? Ist wie gesagt nur eine Frage am Rande, für unsere
Zwecke gibt es glaube ich keine bessere Lösung als deine mit MathJax :mrgreen:

Was ist pypi ? So nen Wrapper wäre natürlich auch cool :)
Benutzeravatar
HerrHagen
User
Beiträge: 430
Registriert: Freitag 6. Juni 2008, 19:07

matplotlib kann u.A. auch Formeln rendern und das Ergebnis als Bild abspeichern.
Benutzeravatar
cofi
Python-Forum Veteran
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

In QuickTime kann man Interfaces schreiben?

Das ist PyPI: http://pypi.python.org/pypi

Hier hat jemand fuer orgmode eine statische Version von mathjax auf Xulrunner-Basis gebastelt, evtl kannst du dir was abschauen.
Benutzeravatar
mathman
User
Beiträge: 92
Registriert: Mittwoch 19. November 2008, 08:27
Wohnort: Magdeburg
Kontaktdaten:

Wunderbar :)

Mit QT meine ich Qt ermöglicht die plattformübergreifende Entwicklung von grafischen Benutzeroberflächen (GUIs).
Also einfach nur nen GUI-Toolkits. War nur ein Beispiel, in dem Buch was ich z.Z. lese wird glaube ich später auf TkInter eingegangen. Aber das ist erst einmal
in weiter Ferne, erst mal die Arbeit hin bekommen. Wie gesagt, wir wollen das erst einmal für Browser programmieren, dann kann man das Programm
auch auf den Fachbereichswebserver stellen und alle Studenten könnten damit arbeiten. Man braucht als Client ja nur den Browser. Meiner Meinung
nach läuft in der Zukunft eh alles dezentral.

wir wollen u.A. einen dekompressionsnachweiß führen,
problem ist, dass dafür die formel halt immer anders ist.
das kann man wunderbar mit einem ComputerAlgebraSystem wie
numpy lösen. Kann man sich dann den Lösungsweg von numpy
in LaTEX geschrieben ausgeben lassen ? Würde nur gerne wissen
ob so etwas möglich ist, ich würde dann zu geraumer Zeit noch einmal
darauf zurück kommen.

++Nachtrag++

MathJax ist ja 50 MB groß, das würde sicherlich schön Traffic
verursachen wenn da Teile immer geladen werden müssen :lol:

mathplotlib wäre da sicherlich günstiger vom Traffic her. Wenn man da
die Formel in Latex übergibt, wird dann die Bildgröße automatisch angepasst,
also nicht das dann die hälfte der Formel im Bild fehlt ? :D
Darii
User
Beiträge: 1177
Registriert: Donnerstag 29. November 2007, 17:02

mathman hat geschrieben:wir wollen u.A. einen dekompressionsnachweiß führen,
problem ist, dass dafür die formel halt immer anders ist.
das kann man wunderbar mit einem ComputerAlgebraSystem wie
numpy lösen.
numpy ist kein CAS. Vielleicht suchst du SAGE?
MathJax ist ja 50 MB groß, das würde sicherlich schön Traffic
verursachen wenn da Teile immer geladen werden müssen :lol:

mathplotlib wäre da sicherlich günstiger vom Traffic her.
Bezweifle ich. MathJax ist nur so groß, weil für alte Browser die einzelnen Glyphen in verschiedenen Größen als Bild vorgehalten werden. Bei modernen Browsers können SVGs, eingebettete Schriften oder sogar die MathML-Fähigkeiten des Browsers verwendet werden. Und selbst bei den Bildern können die einzelnen Glyphen vom Browser gecached werden. Die matplotlib-Lösung verwendet immer ein neues Bild pro Formel. Wenn MathJax bei dem von dir angepeilten Zielpublikum funktioniert würde ich dem den Vorzug gegenüber eine Frickel-Lösung mit Latex oder matplotlib geben.
Benutzeravatar
HerrHagen
User
Beiträge: 430
Registriert: Freitag 6. Juni 2008, 19:07

Mit QT meine ich Qt ermöglicht die plattformübergreifende Entwicklung von grafischen Benutzeroberflächen (GUIs).
Also einfach nur nen GUI-Toolkits. War nur ein Beispiel, in dem Buch was ich z.Z. lese wird glaube ich später auf TkInter eingegangen.
Wenn du Qt kennst, dann solltest du am besten auch mit Qt unter Python weitermachen. Tkinter ist nicht so dolle im vgl. dazu. Die Zeit kannst du dir sparen.
Benutzeravatar
mathman
User
Beiträge: 92
Registriert: Mittwoch 19. November 2008, 08:27
Wohnort: Magdeburg
Kontaktdaten:

Hmm,
ich kam wahrscheinlich auf Numpy weil
man da Gleichungssysteme lösen konnte ...
Werde mir aber Sage anschauen, danke.

Versteh ich das richtig, ich schicke an MathJax einen String
wo Latex Code drinne steht. MathJax ermittelt den Browser und
sucht dann das günstigste raus. Also am besten dass nichts
nach geladen werden muss, sondern dass im Browser MathML
genutzt wird?

Qt war wie gesagt nur ein Beispiel. Was dann letztendlich genutzt wird,
hängt von den wünschen des Profs ab :)
Benutzeravatar
HerrHagen
User
Beiträge: 430
Registriert: Freitag 6. Juni 2008, 19:07

Als etwas einfachere Variante empfiehlt sich auch sympy (ist auch Bestandteil von Sage).
Antworten