LaTeX -> MathJax

Neue Frage »

Airblader Auf diesen Beitrag antworten »
LaTeX -> MathJax
RavenOnJ brachte in einem anderen Thread die Idee auf, MathJax zu verwenden – eigentlich wollte er einen Thread aufmachen, aber dann mache ich das mal.

Ich fände die Ablösung von LaTeX zugunsten von MathJax auch eine coole Sache, denn MathJax bietet einige Vorteile:

  • Rendern im Browser, statt auf dem Server
  • Bessere Darstellung (da keine statische Grafik) und auch bessere Darstellungsmöglichkeiten (Textgröße etc.)
  • Der Text ist paste&copy-fähig (ein sehr oft gewünschtes Feature!)
  • Die Syntax muss sich nicht drastisch verändern (LaTeX als Sprache kann beibehalten werden)
  • (Vermutung) Suchmaschinen können auch Code durchsuchen
Thomas Auf diesen Beitrag antworten »

Danke für den Hinweis, ich seh mir das mal an. Weißt du spontan, ob das in allen Browsern funktioniert (das ist der Vorteil von der derzeit eingesetzten Lösung)?

Punkt 5 sollte jetzt schon möglich sein.
Airblader Auf diesen Beitrag antworten »

Zitat:
Original von Thomas
Weißt du spontan, ob das in allen Browsern funktioniert (das ist der Vorteil von der derzeit eingesetzten Lösung)?


http://www.mathjax.org/resources/browser-compatibility/ smile
Wenn das nicht genug ist, kann man für bestimmte Browser ja sicherlich den Server-Fallback einbauen.
Thomas Auf diesen Beitrag antworten »

Das sieht ja ganz gut aus, danke! Freude
RavenOnJ Auf diesen Beitrag antworten »

Danke Airblader, dass du dich dieser Sache schon angenommen hast! Ich hatte diese Initiative kurzzeitig wieder aus den Augen verloren.

@Thomas
mathjax funktioniert in allen relevanten Browsern. Die Implementierung auf dem Server sollte meiner Einschätzung nach nicht schwierig sein. Das Schriftbild sieht mit mathjax viel homogener aus als mit dem jetzigen serverseitigen Rendern des Latex-Codes. Ich sehe eigentlich nur einen Nachteil: Das Rendern auf dem Client beansprucht 2-3 Sekunden, bis der den Code per javascript umgesetzt hat.

Ich stelle mal ein Beispiel gegenüber (die Aufgabe 57 aus dem Mathe-Marathon Uni):
derzeitig:
Es sei ein Vektorraum über und eine konvexe, balancierte, absorbierende und "beschränkte" Teilmenge, wobei die letzten drei Eigenschaften folgendes bedeuten (Konvexität ist wohl bekannt):
Zu jedem gibt es , so dass für alle mit (absorbierend) und für alle mit .
Balanciertheit bedeutet: Für ist auch jedes in für .

Wir definieren nun das Minkowski-Funktional von als Funktional durch .

Nun die eigentliche Aufgabe:
Zeige, dass eine Norm auf definiert, so dass die abgeschlossene Einheitskugel von der Abschluss von (bezüglich ) ist.

Mit mathjax (von meiner persönlichen mathjax-Testseite als Screenshot):
[attach]30272[/attach]
RavenOnJ Auf diesen Beitrag antworten »
RE: LaTeX -> MathJax
Noch was dazu:

Zitat:
Original von Airblader

[*] Die Syntax muss sich nicht drastisch verändern (LaTeX als Sprache kann beibehalten werden)


Die Syntax ändert sich eigentlich überhaupt nicht. In mathjax ist für Mathematik-Darstellungen ausreichendes Latex möglich, sogar mehr als zur Zeit hier (siehe z.B. die Seltsamkeit mit dem fehlenden Hash \# Augenzwinkern ).
 
 
Che Netzer Auf diesen Beitrag antworten »
RE: LaTeX -> MathJax
Würde denn auch die [l]-[/l]- bzw. [la]-[/la]-Syntax beibehalten werden oder bräuchte man dazu neue Tags?
Würden sich die bisher bestehenden Beiträge verändern?

Am meisten stört mich ja, dass die Formeln immer etwas nach unten in den Zeilen rutschen (und ich bin zu faul, immer [mimetex]...[/mimetex] statt [l]...[/l] zu schreiben).
Das würde sich dann sicher auch ändern, oder?
RavenOnJ Auf diesen Beitrag antworten »

Selbst das mit den mimetex-Tags funktioniert ja nur begrenzt. Guck dir meinen Beitrag an, wo man sehen kann, wie mit mathjax alles auf der Zeilenkante ausgerichtet ist.

Zur align-Umgebung: Man müsste wohl wieder echtes Latex schreiben, also
code:
1:
2:
\[\begin{align*}
a+b&=0\\ c+d&=1\end{align*}\]												 


Man könnte aber auch die Möglichkeit der Codeeinfassung durch [l ]...[/l] und [la ]...[/la] beibehalten und der Server würde dies entsprechend umsetzen, also bei [la] den Code mit einer align-Umgebung einfassen. Er würde dann ein Preprocessing des Codes vornehmen und obiges zurückschicken. Ebenso muss zwischen inline-Code \(...\) und in einer neuen Zeile gerendertem Code mit \[...\] unterschieden werden, was ja zur Zeit einfach durch Zeileneinschub passiert.
Airblader Auf diesen Beitrag antworten »

Ich habe mathjax nur ein einziges Mal für eine Kleinigkeit verwendet, aber ich bin relativ überzeugt, dass man die Tags auch konfigurieren konnte. Die Preprocessing-Variante ginge natürlich auch.

Die Renderzeit ist IMHO vertretbar, Grafiken müssen schließlich auch erst laden – und wer innerhalb einer Sekunde schon Formeln liest, der muss wahnsinnig schnell unterwegs sein. Augenzwinkern

Da man auch alle alten Formeln künftig per mathjax rendern kann, kann man die Tags auch beibehalten, um auch Chés Frage einzugehen, man braucht also keine Sondertags für mathjax.
Che Netzer Auf diesen Beitrag antworten »

Naja, wenn $...$ auch funktionieren würde, fände ich das ganz praktisch (wobei das bei manchen Textaufgaben Probleme machen könnte).
Auch \[...\] ist ganz schön zu nutzen, aber muss man die align*-Umgebungen dort drinnen beginnen? Ein bloßes \begin{align*}... genügt nicht?

Ach ja, und würden die \[...\]-Formeln auch eingerückt oder zentriert dargestellt werden? (letzteres wäre bei vielleicht etwas zu extrem)
Airblader Auf diesen Beitrag antworten »

Auch hier – ich bin recht sicher, dass sich das alles konfigurieren lässt. Mathjax unterstützt aber auch so schon den Unterschied zwischen Inline- und abgesetzten Formeln.

Schau dir mal diese Seite an (http://www.mathjax.org/demos/tex-samples/) und den Quelltext dazu, dann siehst du eine Standard-Verwendung.
Che Netzer Auf diesen Beitrag antworten »

Ich habe jetzt hier noch etwas gefunden:
http://docs.mathjax.org/en/v1.1-latest/s...and-latex-input
Begrenzungen durch $ sind also optional. Gibt es irgendeine Möglichkeit, herauszufinden, wie oft das Zeichen hier benutzt wird/wurde?

Naja, auch mit \( wäre ich zufrieden. Ob man die bisherigen [la]-Tags umschalten sollte, käme wohl darauf an, ob das wirklich alles reibungslos klappt.
RavenOnJ Auf diesen Beitrag antworten »

Das Problem ist die Kompatibilität mit altem Code. Aber eigentlich muss der ja so nicht in der Datenbank stehen, man könnte ihn einmal beim Übergang auf mathjax-Code transformieren, dann wäre der Fisch gegessen.

Ich habe mein mathjax so konfiguriert, dass inline-Code statt mit \(...\) auch mit $....$ funktioniert:
code:
1:
inline-Code mit $\$ $: $a\in \mathbb R \text{ oder auch: $a\in \mathbb R $ in einem Textabschnitt }$ 


wird gerendert als:
[attach]30277[/attach]
Airblader Auf diesen Beitrag antworten »

Bei anderthalb Millionen Beiträgen (nur in sichtbaren Bereichen?) ist "mal kurz über die Datenbank bügeln" leider nicht ganz so einfach, schon gar nicht bei solchen Updates auf Textfelder, bei denen noch in Form von regulären Ausdrücken oder so prozessiert werden müsste.
RavenOnJ Auf diesen Beitrag antworten »

Ich weiß natürlich nicht, welche Tricks bisher innerhalb der Latex-Tags möglich waren, denn es geht wohl nur darum. Die Frage kann nur der Server-Entwickler beantworten. Ansonsten lässt sich der Latex-Code wohl 1-zu-1 umsetzen, nur anhand ener Heuristik muss festgestellt werden, ob das [l ] bzw. [/l ] ([latex ] bzw. [latex ]) durch \[ bzw. \] oder \( bzw. \) ersetzt werden soll. Die [la ]-Tags müssen natürlich gesondert behandelt werden.

Man kann ja auch erst mal zweigeteilt fahren: Alle Threads bzw. Beiträge ab einem bestimmten Datum werden in mathjax umgesetzt, die älteren wie bisher belassen. Es lässt sich auch innerhalb eines Threads alter Code und mathjax-code mischen, je nach Datum des Beitrags.
Airblader Auf diesen Beitrag antworten »

Diese Idee, Dinge ab einem gewissen Datum anders handzuhaben, gab es in der Vergangenheit auch schon bei anderen Themen und sind bei Thomas glaube ich auf wenig Gegenliebe gestoßen – und dem stimme ich durchaus auch zu.
RavenOnJ Auf diesen Beitrag antworten »

Dann mach einen besseren Vorschlag.

Warum ist das auf wenig Gegenliebe gestoßen? Vermutlich wegen Code-Duplizierung und nahezu doppelter Wartungsarbeit. Kann ich nachvollziehen. Übergangsphasen zwischen zwei Systemen sind immer mit erhöhtem Aufwand verbunden. Das ist aber nur temporär.

Migration ist immer ein hässliches Geschäft, das möchte man nach Möglichkeit vermeiden. Dummerweise sind nicht alle Systeme evolutionär entwickelbar.
Che Netzer Auf diesen Beitrag antworten »

Wieso sollen denn die bisherigen Formeln überhaupt umgestellt werden?
RavenOnJ Auf diesen Beitrag antworten »

Ich weiß nicht, wo die Probleme liegen sollen, da der Latex-Code im Wesentlichen gleich bleibt. Ich denke aber, dass auf dem Server irgendwelche Codeteile konvertiert werden.
Airblader Auf diesen Beitrag antworten »

Zitat:
Original von RavenOnJ
Übergangsphasen zwischen zwei Systemen sind immer mit erhöhtem Aufwand verbunden. Das ist aber nur temporär.


In diesem Fall ist deine Lösung aber nicht temporär, alte Beiträge verschwinden ja schließlich nicht.
Ich muss solche "Datenbankbereinigungen" (ich würde es hier gar nicht Migration nennen – das System wird nicht migriert) öfters mal durchführen, oft in der Größenordnung von 20.000 bis 500.000 betroffene Datensätze. Da spielt vor allem auch der Planungsaufwand eine gewisse Rolle, sowas kontrolliert man hinterher ja schließlich nicht per Hand; dementsprechend muss man sich vorher eine Menge Gedanken machen über alle möglichen Fälle, die auftreten könnten. Das kann schonmal ein paar Tage in Anspruch nehmen. Hier sprechen wir nochmal von gut der dreifachen Menge an Beiträgen.

Zitat:
Warum ist das auf wenig Gegenliebe gestoßen? Vermutlich wegen Code-Duplizierung


Code-Duplizierung gibe es hier nicht, schließlich sind es zwei verschiedene Techniken. Das Problem ist eher, dass ein Feature plötzlich in zwei Versionen läuft. Sowas würde ich auch gerne verhindern. Thomasens Gründe kann dir letztlich aber nur Thomas sagen. Vielleicht habe ich mich ja aber auch falsch erinnert. Augenzwinkern

Was genau hier überhaupt bereinigt werden müsste ist mir aber auch nicht klar. Eigentlich sollte alles per Konfiguration doch klappen. Dass serverseitig der LaTeX-Code angefasst wird würde ich ausschließen – wir können beim Zitieren ja immer auf den Klartext zugreifen. Die BB-Tags werden einfach durch einen normalen Parser gejagt, der eben ein entspr. PHP-Skript mit Image-Output aufruft und über GET-Parameter mit der Formel versorgt. Das Skript lässt sich ja auch problemlos manuell aufrufen.
RavenOnJ Auf diesen Beitrag antworten »

Die alten Beiträge verschwinden zwar nicht, werden aber konvertiert oder eben nicht.
Es ist schon eine Art Migration, da von einer Art der Codierung auf eine andere übergegangen wird. Aber machen wir keine Begriffsklauberei, wir wissen, was gemeint ist.

Mit Code-Duplizierung meinte ich, zwei verschiedene Versionen Server-Code vorzuhalten, die dann auch beide gepflegt werden müssten, wenn man sich dafür entscheidet, nur einen Teil der Datenbank zu konvertieren.

Natürlich kann man beim Zitieren auf den Latex-Code (ich nehme an, das meintest du mit Klartext) zugreifen, denn der steht ja in der DB und wird auch an den Client geliefert. Auf dem Server wird im Skript latex2png.php daraus ein Bild gerendert. Mir fällt nur auf, dass innerhalb des Latex-Codes auch HTML-Tags auftauchen (z.B. <br/>, vermutlich wenn man einen Zeilenumbruch innerhalb der Latex-Tags vorgenommen hat), mit denen mathjax natürlich nichts anfangen könnte. Um so etwas müsste das Latex dann bereinigt werden.

Edit: Ich sehe gerade, dass mathjax <br/>-Tags einfach ignoriert. Die wären also sogar ganz unproblematisch.
aakka Auf diesen Beitrag antworten »

Hallo, falls jemand lokal die Formeln in den Foren-Beiträge in MathJax gesetzt haben will, kann er mein Bookmarklet verwenden (Javascript-Snippet, dass man etweder über ein Lesezeichen oder die JavaScript-Konsole lädt), einfach PN an mich falls Interesse. Kann auch gerne hier gepostet werden, nur ich selbst kann es (noch) nicht (weil URLs drinnen und ich es nicht nur deswegen umbauen will). unglücklich

Nachteil ist halt (neben denen von MathJax wie der relativ langen Ladezeit), dass man es auf jeder Seite mit Formeln neu ausführen muss (außer man besorgt sich Browser-Erweiterungen wie GreaseMonkey für Firefox o.ä.). Aber wer wie ich schön gerenderte Formeln sehen will wird es schätzen. Ah ja und vielleicht funktioniert es nicht mit allem LaTeX-Code hier, ich musste z.B. das \dd-Makro manuell definieren.

Vielleicht kann ich so etwas an die Community zurückgeben, wo ich lange Zeit nur ein s.g. "Lurker" war.

Und zur Diskussion, wenn aus Mathoid was wird, dann werden serverseitig (!) MathJax-generierte SVG-Bilder auch eine Option (SVG ist halt ein bischen weniger schön weil generell nur grausstufen-antialiased). Wikipedia/-media ist auch daran interessiert.
Thomas Auf diesen Beitrag antworten »

@aakka: Schick mir das Snippet bitte per PN, danke.
RavenOnJ Auf diesen Beitrag antworten »

@Thomas
Wie weit sind die Überlegungen gediehen, von Latex auf Mathjax umzusteigen? Oder wird das gar nicht mehr erwogen?
Thomas Auf diesen Beitrag antworten »

MathJax bietet definitiv das schönere Rendering und einige nette Features.

Hier das Snippet (via Bookmarklet oder Javascript Konsole), Edit: nach Vorschlag unten aktualisiert:

code:
1:
javascript:(function(){var b=document.getElementsByTagName("head")[0],a;a=document.createElement("script");a.type="text/x-mathjax-config";a[(window.opera?"innerHTML":"text")]='MathJax.Hub.Config({jax:["input/TeX","output/HTML-CSS"],extensions:["MathMenu.js","MathZoom.js"],TeX:{extensions:["AMSmath.js","AMSsymbols.js","noErrors.js","noUndefined.js"],Macros:{dd:"{\\\\,\\\\mathrm d}"}}});MathJax.Extension.matheboard2jax={version:"1.0",PreProcess:function(c){var a=document.body.querySelectorAll("img[src^=\'http://www.matheboard.de/latex2png/latex2png.php\']");for(var b=0;b<a.length;++b){var d=a[b];var e=document.createElement("script");e.type="math/tex";MathJax.HTML.setScript(e,d.alt.replace(/(\\[\\/?(l(atex)?a?)\\])|(<br ?\\/>)/gi,""));d.parentNode.replaceChild(e,d)}}};MathJax.Hub.Register.PreProcessor(["PreProcess",MathJax.Extension.matheboard2jax]);';b.appendChild(a);a=document.createElement("script");a.type="text/javascript";a.src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML";b.appendChild(a)})()


Bitte gerne damit mal experimentieren und ggf. Probleme mit existierenden Formeln, die damit in MathJax nicht funktionieren hier melden. Wenn das Snippet ein größtenteils problemloses Rendering ermöglicht, werde ich einen Umstieg in Erwägung ziehen.
aakka Auf diesen Beitrag antworten »

Mein Snippet hatte noch kleinere Probleme, folgenden Teil:
code:
1:
d.alt.replace(/\\[\\/?latexa?\\]/g,

durch folgenden
code:
1:
d.alt.replace(/(\\[\\/?(l(atex)?a?)\\])|(<br ?\\/>)/gi,

ersetzen, damit:
  • Groß-/Kleinschreibung des BBCodes egal ist, [LaTeX] und [lAtEx] gehen dann auch.
  • [l] und [la] auch gehen
  • <br\>s entfernt werden


Verbleibende bekannte Probleme:
  • Beiträge mit align-Umgebungen die über die Grenzen eines [latex]-Elements hinweggehen
  • [mimetex]-BBCode geht nicht (theoretisch schon, aber da müsste man ziemlich was umbauen)
  • ist zur Zeit so eingestellt, dass er keine Zeilenumbrüche macht


Für schnelleres Laden bietet es sich an die MathJax-Schriften lokal zu installieren (die kriegt man z.B. vom MathJax-Github-Repo).
RavenOnJ Auf diesen Beitrag antworten »

@Thomas, @aaka
Das sieht ja ziemlich gut aus smile .
RavenOnJ Auf diesen Beitrag antworten »

So etwas geht leider gar nicht:

aakka Auf diesen Beitrag antworten »

XY wird nicht anscheinend unterstützt, allerdings CD schon, siehe: meta.math.stackexchange.com/questions/2324/how-to-draw-a-commutative-diagram und docs.mathjax.org/en/latest/tex.html#amscd

Und gerade entdeckt: github.com/sonoisa/XyJax

Hab nebenbei gemerkt dass bei dem Bookmarklet zuviele Erweiterungen geladen werden, wenn ich Zeit finde werde ich einen Fix bereitstellen, vielleicht kann ich auch die implizite align-Umgebung dann wirklich zum Laufen bringen (die geht nämlich anders als vorher angedeutet überhaupt nicht).
RavenOnJ Auf diesen Beitrag antworten »

Zitat:
Original von aakka
... , vielleicht kann ich auch die implizite align-Umgebung dann wirklich zum Laufen bringen (die geht nämlich anders als vorher angedeutet überhaupt nicht).


Man müsste [l(atex)a] bzw. [/l(atex)a] durch \begin{align} bzw. \end{align} substituieren, außerdem die br-Tags durch \\. Oder siehst du das anders?
aakka Auf diesen Beitrag antworten »

Zitat:
Original von RavenOnJMan müsste [l(atex)a] bzw. [/l(atex)a] durch \begin{align} bzw. \end{align} substituieren,
Das ist eine Idee. Dachte zuerst darüber nach zwischen latex/l und latexa/la zu unterscheiden, aber ich glaube eigentlich spielt es keine Rolle und außerdem bin ich auch mindestens einen Beitrag gestoßen der die &-Zeichen einfach verwendet ohne dass es in einem latexa/la-Element ist ist und das mag MathJax gar nicht.

Zitat:
außerdem die br-Tags durch \\. Oder siehst du das anders?
Ah, noch eine Besonderheit von hier, weil LaTeX schert sich eigentlich nicht um Zeilenumbruchszeichen. (Wenn ein richtiger Umstieg auf MathJax erwogen wird und mehrgleisig gefahren wird, wäre es IMHO allerdings eine schlechte Idee diese Besonderheit auch bei den in MathJax gesetzten Sachen beizubehalten, paar eigene LaTeX-Makros sind fein, aber bitte onst schon richtiges TeX, außerdem was ich wenn ich in Umgebungen wo "\\" eine Rolle spielen nicht in eine Zeile schreiben will, z.B. lange Fallunterscheidungen)

Hier nun das aktualisierte Bookmarklet mit diesen Änderungen, sollte außerdem ein bisschen mehr unterstützen (indem es offizielle Erweiterungen automatisch bei Bedarf ladet) aber gleichzeitig weniger standardmäßig ladet (z.B. der MathML-Input-Parser ist hier wirklich unnötig), außerdem werden Fehlermeldungen nun direkt anzeigt: pastie.org/private/9syh7dmlclcrd4fdwuquta (wenn Interesse besteht, werd ich auch den ganzen Quelltext auch noch einmal in schöner Form [vorm Minimieren] posten).

Ah ja und ein paar Beiträge die damit immer noch nicht gehen, müsste man sich wohl im Detail anschauen warum:
  • /thread.php?postid=1721131#post1721131
  • /thread.php?postid=1805960#post1805960
  • /thread.php?postid=1861607#post1861607
(nicht dabei sind die welche das XY-Paket verwenden)

Und als Ausgleich (aus psychologischen Gründen Augenzwinkern ) ein paar schöne Beiträge die keine Probleme bereiten (ich habe jetzt einige durchgeackert, der Großteil geht tadellose):
  • /thread.php?postid=1482629#1482629 und /thread.php?postid=1847997#post1847997 (Farbe)
  • /thread.php?postid=1808712#1808712 (Bruchschrift)
  • /thread.php?postid=1834868#1834868 (viel und Matrizen)
  • /thread.php?postid=1840415#1840415 und /thread.php?postid=1861517#1861517 und /thread.php?postid=1777957#1777957 (aligning)
  • /thread.php?postid=1889779#post1889779 (\underbracket)

(Sehe gerade, dass ich eine Person gleich mehrmals verlinkt habe smile )

P.S.: Ab wann darf ich URLs posten? Könnte mich nicht jemand mit den richtigen Rechten gleich von dieser Beschränkung befreien?
RavenOnJ Auf diesen Beitrag antworten »

Freude smile
Das sieht sehr gut aus. Nur manchmal sind die eckigen Klammern seltsam schwach oder abgeschnitten. Liegt aber wohl nicht an deinem Code. Da hat wohl mathjax ein Problem. Gut, dass align funktioniert.

Zitat:
Original von aakka

P.S.: Ab wann darf ich URLs posten? Könnte mich nicht jemand mit den richtigen Rechten gleich von dieser Beschränkung befreien?


Vielleicht musst du erst mal von deinen null Beiträgen runterkommen. Schreib doch mal was in einem mathematischen Thread Augenzwinkern .
aakka Auf diesen Beitrag antworten »

Zitat:
Original von RavenOnJ
Freude smile
Das sieht sehr gut aus. Nur manchmal sind die eckigen Klammern seltsam schwach oder abgeschnitten. Liegt aber wohl nicht an deinem Code. Da hat wohl mathjax ein Problem.
Vielleicht liegt es an der Schrift oder deinem Textrender (Browser), Chrome unter Windows ist da immer noch schrecklich (glücklicherweise nicht mehr lange für die meisten Nutzer, dann kommt DirectWrite).

MathJax unterstützt auch andere Schriften, probieren kann man sie z.B. unter checkmyworking.com/misc/MathJax-play-area/


Zitat:
Vielleicht musst du erst mal von deinen null Beiträgen runterkommen. Schreib doch mal was in einem mathematischen Thread Augenzwinkern .
Mal schauen ob ich auch etwas beitragen können werde, leider bin ich nur ein armseliger Informatiker. unglücklich
RavenOnJ Auf diesen Beitrag antworten »

Zitat:
Original von aakka

Ah ja und ein paar Beiträge die damit immer noch nicht gehen, müsste man sich wohl im Detail anschauen warum:
  • /thread.php?postid=1721131#post1721131
  • /thread.php?postid=1805960#post1805960
  • /thread.php?postid=1861607#post1861607


Mach dir keinen Kopf drum. Die funktionieren nicht, weil der Latex-Code nicht korrekt ist. Ein alter Workaround, damit die array-Umgebung richtig dargestellt wird. Ist aber inzwischen nicht mehr notwendig. Hab das getestet, indem ich dieses seltsame \end{align*}\[ am Anfang und das \]\begin{align*} am Ende weggelassen habe. Dann funktioniert es einwandfrei. Könntest du natürlich auch von deinem Code entfernen lassen, falls es auftaucht.
RavenOnJ Auf diesen Beitrag antworten »

Zitat:
Original von aakka


MathJax unterstützt auch andere Schriften, probieren kann man sie z.B. unter checkmyworking.com/misc/MathJax-play-area/


Wie kann ich die dann benutzen? Und wo packe ich sie hin beim download?
aakka Auf diesen Beitrag antworten »

Zitat:
Original von RavenOnJ

Wie kann ich die dann benutzen?
Jetzt hier mit dem Bookmarklet? Da müsste es zuerst umändern so, dass die entsprechenden Optionen beim entsprechenden Renderer ("output" extension") gesetzt werden für HTML-CSS (der Standard) siehe docs.mathjax.org/en/latest/options/HTML-CSS.html, die Schriften gibt es auch als Webfonts vom offiziellen CDN, lokal installieren müsste man sie nicht. Falls man aber trotzdem will, dann halt die otf-Version holen und in den Schriftartenordner vom Betriebssystem kopieren (bei Windows "%windir%\fonts").

Vielleicht bastle ich morgen da noch was.

Da fällt mir ein, auch mit SVG-Renderer vergleichen wäre vielleicht keine schlechte Idee, einfach auf Formel rechtsklicken und im Menü unter "Math Settings" &#8594; "Math Renderer" "SVG" auswählen.
aakka Auf diesen Beitrag antworten »

So, hier jetzt Abwandlungen des Bookmarklets für verschiedene andere Schriften: pastie.org/private/0kqyjty0hozjbu0yuraag

(komischerweise werden bei mir bis auf STIX alle von diesen Schriften aus dem Web geladen, obwohl ich eigentlich alle lokal installiert hätte, vielleicht ein MathJax-Bug)
Equester Auf diesen Beitrag antworten »

Zitat:
Original von aakka


P.S.: Ab wann darf ich URLs posten? Könnte mich nicht jemand mit den richtigen Rechten gleich von dieser Beschränkung befreien?


Hi aakka,

Du brauchst nur 10 Beiträge, dann müsstest du Links posten dürfen Augenzwinkern .

Wink
Thomas Auf diesen Beitrag antworten »

Danke für deine Mühe!

Ich werde sehen, wie sich dein Bookmarklet hier am besten 'nativ' umsetzen lässt.
aakka Auf diesen Beitrag antworten »

Es ist halt nur dafür gedacht die Bilder der bestehenden Lösung zu ersetzen, wenn Ihr also wirklich MimeTex durch MathJax ersetzen wollt dann könnt ihr gleich die Sachen in dem für MathJax passenden Format generieren (also in <script type="math/tex">-Elementen).

Hier aber mal der aktuelle Quelltext unminimiert:
php:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
(function () {
  window.MathJax = {
    jax: ["input/TeX""output/HTML-CSS"],
    extensions: ["MathMenu.js""MathZoom.js"],
    TeX: {
      extensions: ["AMSmath.js""AMSsymbols.js",
        "noUndefined.js""autoload-all.js"],
      Macros: {
        dd"{\\,\\mathrm d}"
      }
    },
    "HTML-CSS": {
      preferredFont"STIX",
      webFont"STIX-Web"
    },
    AuthorInit: function () {
      MathJax.Extension.matheboard2jax = {
        version"1.0",
        PreProcess: function (element) {
          var mathNodes element.body.querySelectorAll(
            "img[src^='http://www.matheboard.de/latex2png/latex2png.php']");
          for (var 0mathNodes.length; ++i) {
            var mNode mathNodes[i];
            var newEl element.createElement("script");
            newEl.type "math/tex";
            var tex mNode.alt
              .replace(/\[l(atex)?a?\]/gi"\\begin{align*}")
              .replace(/\[\/l(atex)?a?\]/gi"\\end{align*}")
              .replace(/<br ?\/>/gi"\\\\");
            MathJax.HTML.setScript(newEltex);
            mNode.parentNode.replaceChild(newElmNode);
          }
        }
      };
      MathJax.Hub.Register.PreProcessor(["PreProcess", 
      MathJax.Extension.matheboard2jax]);
    }
  };
  var script document.createElement("script");
  script.type "text/javascript";
  script.src = (window.location.protocol != "https:" ?
    "http://cdn.mathjax.org" :
    "https://c328740.ssl.cf1.rackcdn.com") +
    "/mathjax/latest/MathJax.js";
  document.getElementsByTagName("head")[0].appendChild(script);
})();
Neue Frage »
Antworten »



Verwandte Themen

Die Beliebtesten »
Die Größten »
Die Neuesten »