Latex->PNG mit PHP (mimetex Ersatz?) |
28.05.2004, 11:32 | MatheBlaster | Auf diesen Beitrag antworten » | ||||||||||||
Latex->PNG mit PHP (mimetex Ersatz?) wie bereits erwähnt, arbeite ich gerade an einem PHP Skript, welches Latex erzeugt und daraus schöne PNG Bilder erzeugt, und vielleicht mal als mimetex Ersatz dienen kann. http://217.160.92.215/~burn/math2png/math2png.php?f=\cos^2%20x%20%2B%20\sin^2%20x%20=%201\intertext{Eine%20schoene%20Ueberleitung}\cosh^2%20x%20-%20\sinh^2%20x%20=%201 Hier könnt ihr es schon mal ausprobieren: http://217.160.92.215/~burn/math2png/math2png.php?f= Wie man sieht, werden die gewünschten Anweisungen einfach als Parameter f= an den PHP Skript übergeben. Da der Ausdruck einfach nur in eine
Das '+' Zeichen muss leider noch als %2B in der URL übersetzt werden (danke an Jürgen), ansonsten sind mir keine Bugs bekannt. Die Übergabe in der URL wird aber sicherlich noch weitere Einschränkungen haben. Also, happy testing und über alle Anregungen bin ich dankbar. |
||||||||||||||
28.05.2004, 11:37 | m00xi | Auf diesen Beitrag antworten » | ||||||||||||
Hmm, ja das mit der Übergabe ist natürlich nicht so einfach, da da ja einige Sonderzeichen Probleme machen. Einen großen Gefallen würdest du jedem tuen, wenn du ein kleines Skript programmierst, welches in einer Textarea eingegebenen LaTeX Code so formatiert, dass er als Parameter deiner PHP-Skripts aufgerufen werden kann. Da reicht ja auch ein einfacherer Converter der alle Zeichen in ihre Hexadezimalschreibweise überführt. Noch ne anregung: warum align-env? warum nimmst du nicht Array? Damit gibt es für mathematische Ausdrücke viel schönere Möglichkeiten, oder nicht? Ansonsten, schöne Sache. Mit ein wenig "In-Ascii-Tabelle-Guggn" habe ich auch was Schönes hinbekommen: http://217.160.92.215/~burn/math2png/math2png.php?f=(a%2Bb)^n=\sum_{i=0}^{n}{{n\choose%20i}a^{n-i}b^i} Gruß Hanno |
||||||||||||||
28.05.2004, 11:54 | m00xi | Auf diesen Beitrag antworten » | ||||||||||||
Yeah, das ist spaßig! http://217.160.92.215/~burn/math2png/math2png.php?f=f(x)%26=%26%20x^n\\f'(x)%26=%26\lim_{x\to%200}\frac{dy}{dx}\\%26=%26\lim_{x\to%200}\frac{f(x%2Bdx)-f(x)}{dx}\\%26=%26\lim_{x\to%200}\frac{(x%2Bdx)^n-x^n}{dx}\\%26=%26\lim_{x\to%200}\frac{\sum^{n}_{i=0}{{n\choose%20i}x^{n-i}dx^i}-x^n}{dx}\\%26=%26\lim_{x\to%200}\frac{\sum^{n}_{i=1}{{n\choose%20i}x^{n-i}dx^i}}{dx}\\%26=%26\lim_{x\to%200}\frac{dx\left(\sum^{n}_{i=1}{{n\choose%20i}x^{n-i}dx^{i-1}}\right)}{dx}\\%26=%26\lim_{x\to%200}\sum^{n}_{i=1}{{n\choose%20i}x^{n-i}dx^{i-1}}\\%26=%26\sum^{n}_{i=1}{{n\choose%20i}x^{n-i}0^{i-1}}\\%26=%26nx^{n-1}\\%26%26q.e.d Und gleich noch einen Drauf!! http://217.160.92.215/~burn/math2png/math2png.php?f=f(x)%26=%26%20x^n\\f'(x)%26=%26\lim_{x\to%200}\frac{dy}{dx}\\%26=%26\lim_{x\to%200}\frac{f(x%2Bdx)-f(x)}{dx}\\%26=%26\lim_{x\to%200}\frac{(x%2Bdx)^n-x^n}{dx}\\%26=%26\lim_{x\to%200}\frac{\sum^{n}_{i=0}{{n\choose%20i}x^{n-i}dx^i}-x^n}{dx}\\%26=%26\lim_{x\to%200}\frac{\sum^{n}_{i=1}{{n\choose%20i}x^{n-i}dx^i}}{dx}\\%26=%26\lim_{x\to%200}\frac{dx\left(\sum^{n}_{i=1}{{n\choose%20i}x^{n-i}dx^{i-1}}\right)}{dx}\\%26=%26\lim_{x\to%200}\sum^{n}_{i=1}{{n\choose%20i}x^{n-i}dx^{i-1}}\\%26=%26\sum^{n}_{i=1}{{n\choose%20i}x^{n-i}0^{i-1}}\\%26=%26nx^{n-1}\\%26%26q.e.d\\\\\sum_{i=1}^{k}{{k%20\choose%20i}(-1)^{i%2B1}}%20%26%20=%20%26%20-\left(%20\sum_{i=1}^{k}{{k%20\choose%20i}(-1)^i}\right)%20\\%20%26%20=%20%26%20-\left(%20\sum_{i=0}^{k}{{k%20\choose%20i}(-1)^i}-1\right)%20\\%26%20=%20%26%20-\left(%20\sum_{i=0}^{k}{{k%20\choose%20i}{1}^{k-i}(-1)^i}-1\right)%20\\%26%20=%20%26%20-\left(%20(1-1)^{n}-1\right)%20\\%26%20=%20%26%201%20\\%26%20%26%20q.e.d :P :P |
||||||||||||||
28.05.2004, 12:06 | jama | Auf diesen Beitrag antworten » | ||||||||||||
Das sieht seeeeehr gut aus! Danke Dir Georg Wenn das mal nicht leserlicher geworden ist
Hm, welche wären das denn zum Beispiel? Gruß, Jama |
||||||||||||||
28.05.2004, 12:11 | MatheBlaster | Auf diesen Beitrag antworten » | ||||||||||||
Wow, fettes Teil m00xi. Hast Du irgendwas spezielles gemacht, damit die '=' Zeichen untereinander ausgerichtet wurden? Das aus der URL rauszufischen ist doch nicht so ganz einfach Was kann ich denn mit array schönes machen? Irgendwie benutze ich das nie, und war mit align immer sehr zufrieden. Ich lasse mich aber gerne eines besseren belehren. @jama: relevante Sonderzeichen sind bisher '+' und '&', welches man zum anordnen braucht. |
||||||||||||||
28.05.2004, 12:13 | Thomas | Auf diesen Beitrag antworten » | ||||||||||||
Hi, das ist ja ein super Teil :] 8) Gruß, Thomas |
||||||||||||||
Anzeige | ||||||||||||||
|
||||||||||||||
28.05.2004, 12:32 | juergen | Auf diesen Beitrag antworten » | ||||||||||||
Auch Fehlermeldungen funktionieren :] http://217.160.92.215/~burn/math2png/math2png.php?f=1\4
%26 entspricht dem & Zeichen http://217.160.92.215/~burn/math2png/math2png.php?f=4/8%26=%262/4\\%26=%261/2
|
||||||||||||||
28.05.2004, 12:36 | m00xi | Auf diesen Beitrag antworten » | ||||||||||||
Ich programmier grad ein kleines Skript, vielleicht hilft das was :-? ich hoffe ich kriegs gleich mal hin. EDIT: So, mit den paar Zeilen, die ihr in den Forum code einfügen müsstet:
Sollte das wunderbar gehen. Natürlich müsst ihr die Quelle für $code anpassen und die Zeile am Ende weglassen, aber $ende enthält nach der Schleife gut anwendbaren Code ( sollte es :P :P ) Ich habe das mal getestet auf http://www.Hanno-Becker.de/Converter. Da hab ich einfach meinen LaTeX Code reingepackt und das fertige lief gut. Gruß Hanno |
||||||||||||||
28.05.2004, 13:15 | juergen | Auf diesen Beitrag antworten » | ||||||||||||
Ähm, ja. Warum nicht einfach mit einer Zeile z.B. das Pluszeichen umwandeln
|
||||||||||||||
28.05.2004, 13:20 | m00xi | Auf diesen Beitrag antworten » | ||||||||||||
Was weiß ich welche Zeichen noch falsch übertragen werden :-) |
||||||||||||||
28.05.2004, 14:49 | sommer87 | Auf diesen Beitrag antworten » | ||||||||||||
http://217.160.92.215/~burn/math2png/math2png.php?f=Spitze\%20sieht\%20das\%20aus! :] genial!! |
||||||||||||||
28.05.2004, 15:17 | juergen | Auf diesen Beitrag antworten » | ||||||||||||
http://217.160.92.215/~burn/math2png/math2png.php?f=%26ic\int\int\int\int\frac{\partial T_{1n}}{\partial x_{n}}dV\,dt\\=%26ic\int\int\int\int\left(\frac{\partial T_{1x}}{\partial x}%2B\frac{\partial T_{1y}}{\partial y}%2B\frac{\partial T_{1z}}{\partial z}%2B\frac{\partial T_{14}}{ic\,dt}\right)dV\,dt\\=%26ic\int dt \oint T_{1N}\,d\sigma - \frac{i}{c} \int S_x\,\,dV\\=%26ic\int dt \oint T_{1N} \,d\sigma - icG_x^{(f)} Ich will ja nicht mecken...... Aber vielleicht könnte man an dem Zeilenabstand noch arbeiten, bei großen Konstrukten hängen die Zeilen doch etwas eng beieinander. (Es möge mich übrigens keiner Fragen, wozu die Formel gut ist - keine Ahnung!!) :P |
||||||||||||||
28.05.2004, 15:42 | m00xi | Auf diesen Beitrag antworten » | ||||||||||||
Sieht aber hübsch aus deine Formel :-) Ich werde mal im #latex auf freenode fragen ob man in einer align* env. die Zeilenabstände regulieren kann. Gruß Hanno |
||||||||||||||
28.05.2004, 16:03 | juergen | Auf diesen Beitrag antworten » | ||||||||||||
Notfalls so: \usepackage{setspace} ... \begin{spacing}{3} %oder welche Abstand sonst gewünscht wird \begin{align*} ... \end{align*} \end{spacing} |
||||||||||||||
28.05.2004, 21:08 | MatheBlaster | Auf diesen Beitrag antworten » | ||||||||||||
Also das übersetzen der Zeichen lässt sich simplerweise mit der PHP Funktion urlencode realisieren, und entsprechend mit urldecode wieder zurückübersetzen. Ich werde da mal schnell was zusammenhacken... Das mit den Zeilenabständen scheint echt Sinn zu machen. Mal schauen, was die amsmath Doku dazu zu sagen hat. Sonst noch irgendwelche Ideen für weitere Pakete / Befehle, die eingebaut werden sollten? Edit: So, unter http://217.160.92.215/~burn/math2png/form.php kann man jetzt tollen Latex Code eingeben, Zeilenumbrüche \\ und Alignments & sollten einwanfrei funktionieren. |
||||||||||||||
28.05.2004, 21:40 | DeGT | Auf diesen Beitrag antworten » | ||||||||||||
Wieso funktionieren die Formeln im Moment nicht? |
||||||||||||||
29.05.2004, 03:12 | WebFritzi | Auf diesen Beitrag antworten » | ||||||||||||
http://217.160.92.215/~burn/math2png/math2png.php?f=2x+%26%3D+y%5C%5C%0D%0Ax+%2B+y+%26%3D+2 Aha. Jetzt hab ich's auch kapiert. Wäre natürlich noch schöner, wenn man LaTeX-Tags dazu machen könnte. Ist das schwer? Ich fänd es auch ehrlich gesagt besser, wenn man Umgebungen selber einfügen könnte, so dass man auch mathematische Zeichen mitten im Text haben kann. Das geht ja so nicht. |
||||||||||||||
29.05.2004, 07:51 | juergen | Auf diesen Beitrag antworten » | ||||||||||||
Wieso geht das nicht. Mal probieren: http://217.160.92.215/~burn/math2png/math2png.php?f=y=x^2 - hm, geht doch. Da könnte man natürlich noch etwas dran rumfummeln, daß es besser in die Zeile paßt (ist einwenig nach oben verschoben); ggf auch an der Hintergrundfarbe (da die aber hier von Beitrag zu Beitrag wechselt, ist das wohl nicht ganz einfach -- oder doch, gibt es bei PNG nicht auch transparente Hintergrundfarben) (Hm, das war jetzt mehr in Klammern gesprochen denn richtig. Das nur mal nebenbei in Klammern gesagt. :P) |
||||||||||||||
29.05.2004, 10:37 | MatheBlaster | Auf diesen Beitrag antworten » | ||||||||||||
Wie man sieht, oder, da sie transparent ist, nicht sieht, ist die Hintergrundfarbe transparent @WebFritzi: was genau meinst du mit Latex Tags? Also \cos etc. funktioniert natürlich. Ich werde nochmal probieren, die Formeln auf Zeilenhöhe zu verschieben. Oder ich bastle einfach zwei verschiedene Skripts, eins in der align Umgebung, eins in der normalen $...$ Umgebung, das passt dann wahrscheinlich besser. Das Problem mit dem völlig wahlfreien Zugriff der Umgebungen sehe ich darin, dass sich so sehr leicht, absichtlich oder auch nicht, das Format des Boards sprengen lässt. Weiterhin meine ich irgendwo gelesen zu haben, dass sich an Latex auch Shell Befehle übergeben lassen. Weiß jemand darüber genaueres? |
||||||||||||||
29.05.2004, 11:12 | juergen | Auf diesen Beitrag antworten » | ||||||||||||
Oja. Man siehts :] oder man siehts nicht Wenn man es transparent sieht, nutzt man Mozille et.al. Wenn man es nicht transparent sieht, nutzt man MS-IE Ich habe nicht d'ran gedacht, daß ME-IE ja den Alpha-Kanal bei PNG nicht richtig verarbeitet/darstellt. :P Mal was probieren http://217.160.92.215/~burn/math2png/math2png.php?f=a^2\end{align*}\Huge bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla \normalsize $$x^2$$\begin{align*} Ah-ho! Womit die {align*}-Umgebung ausgehebelt wäre. |
||||||||||||||
29.05.2004, 17:26 | MatheBlaster | Auf diesen Beitrag antworten » | ||||||||||||
Oh, echt nicht transparent? Da ich sowohl unter Linux als auch Windows Mozilla Firefox benutze, kam ich nicht mal auf den Gedanken, dass irgendwelche Browser damit nicht zurecht kommen. Welches Grafikformat bietet denn entsprechende Möglichkeiten? GIF? Oh, und weiterhin sollte sich jetzt der normale $...$ Mathe Modus benutzen lassen, wenn an die URL einfach noch &mode=inline angehängt wird, also ungefähr so: gegeben ist http://217.160.92.215/~burn/math2png/math2png.php?f=y%2Bx&mode=inline. woraus folgt, dass http://217.160.92.215/~burn/math2png/math2png.php?f=x%2By&mode=inline Hm, funktioniert überhaupt nicht Jürgen, Du Lümmel! Dein Name kommt gleich auf die Liste :P |
||||||||||||||
29.05.2004, 17:37 | juergen | Auf diesen Beitrag antworten » | ||||||||||||
Ja, mit GIF geht es natürlich. Aber da gibt es möglicherweise ein klitzekleines Problemchen in Bezug auf PHP und GIF: Ab Version 1.6 wurde das GIF aus der GD-Bibliothek entfernt (wenn ich recht informiert bin aus urheberrechtlichen Gründen; das Format ist ja geschützt). |
||||||||||||||
30.05.2004, 03:27 | WebFritzi | Auf diesen Beitrag antworten » | ||||||||||||
Ich meinte, dass man sowas schreiben kann wie: . Damit wäre ich vollkommen zufrieden. Und den Modus könnte man dann ändern durch [latex="inline"]x = 2y - z[/latex] oder so... |
||||||||||||||
31.05.2004, 02:13 | MatheBlaster | Auf diesen Beitrag antworten » | ||||||||||||
Achso, das kommt natürlich noch. Zurzeit ist das Skript aber in keinster Weise mit dem Matheboard assoziiert und distanziert sich entschieden von jeglicher mathematischer Benutzung, daher gibts (noch) keine Tags fürs Board. So, nun werden transparente GIFs erstellt. Das scheint mit dem Internet Explorer ebensowenig zu funktionieren. Funktioniert da eigentlich irgendwas? |
||||||||||||||
31.05.2004, 02:36 | Ben Sisko | Auf diesen Beitrag antworten » | ||||||||||||
Das matheboard zur IE-freien Zone zu machen, ist wohl nicht praktikabel, was? Edit: Damit navigieren die User im matheboard:
|
||||||||||||||
31.05.2004, 11:35 | juergen | Auf diesen Beitrag antworten » | ||||||||||||
Ach. Das sollen also GIF sein? Sind es wohl nicht! Wenn ich mir so ein Bildchen (mit der Endung .gif) in IrfanView angucke, dann meckert er: "Die Datei ... ist eine PNG Datei mit falscher Dateiendung". |
||||||||||||||
31.05.2004, 11:43 | MatheBlaster | Auf diesen Beitrag antworten » | ||||||||||||
So, nach einen kräftigen Schlag auf den Hinterkopf :rolleyes: könnten es nun tatsächlich GIF Bilder sein. |
||||||||||||||
31.05.2004, 12:12 | jama | Auf diesen Beitrag antworten » | ||||||||||||
Jetzt funktioniert´s sowohl mit IE als auch mit Mozilla. Gruß, Jama |
||||||||||||||
31.05.2004, 12:28 | Thomas | Auf diesen Beitrag antworten » | ||||||||||||
Ja bei mir funktionierts nun auch, gut gemacht :] Gruß, Thomas |
||||||||||||||
31.05.2004, 12:52 | juergen | Auf diesen Beitrag antworten » | ||||||||||||
:] :] :] |
||||||||||||||
31.05.2004, 12:54 | m00xi | Auf diesen Beitrag antworten » | ||||||||||||
Und wie geht es jetzt damit weiter? Wird mimetex jetzt dadurch ersetzt? |
||||||||||||||
31.05.2004, 22:08 | MatheBlaster | Auf diesen Beitrag antworten » | ||||||||||||
Genau so wäre mein Plan, aber Matheboard- technisch ist da noch nichts offiziell. Weiß denn nun jemand, ob und wie man '+' Zeichen in der URL übergeben kann? Mimetex schafft es irgendwie, dazwischen zu unterscheiden. |
||||||||||||||
31.05.2004, 23:08 | WebFritzi | Auf diesen Beitrag antworten » | ||||||||||||
Ich würde vorschlagen, beides nebeneinander laufen zu lassen. Dann gibt's auch keine Kompatibilitätsprobleme. |
||||||||||||||
01.06.2004, 15:19 | juergen | Auf diesen Beitrag antworten » | ||||||||||||
Eigentlich sollte es nicht gehen, da ein Pluszeichen, wenn die Variable in PHP ausgelesen wird ($_GET['f']) als Leerzeichen interpretiert wird. Kann Mimetex denn das wirklich? Vor übergabe an Mimetex werden doch vermutlich die Daten vom Script des Boards ausgewertet und was zwischen den [ mimetex ] und [ /mimetex ] Tags steht, wird dann übergeben. Hier kann man natürlich alle möglichen Anpassungen zwischenschalten. Wenn man hier ein Tag [ latex ] und [ /latex ] Tag einführen würde, dann könnte man natürlich auch alles was dazwischen steht entsprechend mit urlencode() codieren - eben auch das Pluszeichen. |
||||||||||||||
01.06.2004, 16:55 | Thomas | Auf diesen Beitrag antworten » | ||||||||||||
Was sagt ihr dazu? Der [ latex ]-Tag ist nun ins Board implementiert, und ich denke wir können die Eingabe und den Formeleditor bald auf den [ latex ]-Tag ummünzen. Der [ mimetex ]-Tag bleibt aus Gründen der Abwärtskompatibilität natürlich weiterhin Bestandteil des Boards Der Code für oben lautet übrigens: [ latex ]5+5=10[/ latex ] Hab das mit dem + hinbekommen Gruß, Thomas |
||||||||||||||
01.06.2004, 16:58 | jama | Auf diesen Beitrag antworten » | ||||||||||||
Ausgezeichnet! Vielen Dank Ihr beiden! Gruß, Jama |
||||||||||||||
01.06.2004, 17:10 | juergen | Auf diesen Beitrag antworten » | ||||||||||||
Ich nehme alles zurück und behaupte nun das Gegenteil. Es geht doch! :P übergibt man etwa folgendes: http://www.domain.de&f=a+b c dann kann man die Daten im PHP auslesen mit $uebergabe = $_GET['f']; -> Als Ergebnis erhält man: a b c Aber es gibt noch einen anderen Weg: Man kann die Daten auch auslesen mit: $uebergabe = $_SERVER['QUERY_STRING']; ->Als Ergebnis erhält man: f=a+b%20c |
||||||||||||||
01.06.2004, 17:13 | Thomas | Auf diesen Beitrag antworten » | ||||||||||||
Danke für den Hinweis. Mittlerweile hab ich das ganze aber per Javascript gelöst, funktioniert doch, oder? Gruß, Thomas |
||||||||||||||
01.06.2004, 18:19 | MatheBlaster | Auf diesen Beitrag antworten » | ||||||||||||
Jürgen, komm in meine Arme, lass Dir die Hand drücken oder was auch immer dir zusagt. Wunderbar, danke! Danke auch an Thomas So, nun brauche ich mal ein paar fachmännische Ratschläge. Sollten die User ihre Umgebung selber auswählen dürfen? Zur Zeit werden alle Ausdrücke, außer irgendein ganz Gewiefter startet einen Ausbruchsversuch , in eine align* Umgebung gezwungen. Macht das Sinn? Was für Einschränkungen hat align*? Was für Bedenken hättet ihr gegen eine freie Auswahl der Umgebung? Mit \end{document} ließe sich das TeX Dokument in diesem Fall beenden. Können irgendwelche bösen Befehle angehängt werden? etc. pp... Ich bitte um zielgerichtetes Brainstorming |
||||||||||||||
01.06.2004, 21:01 | juergen | Auf diesen Beitrag antworten » | ||||||||||||
Ich würde sagen: erstmal so lassen. Falls es Probleme gibt, dann zeigen sich dieser eh' erst in der Anwendung. |
|
Verwandte Themen
Die Beliebtesten » |
|
Die Größten » |
|
Die Neuesten » |