Wie bekomme ich MathJax, um die Erweiterung mhchem in ipython notebook zu aktivieren

8

Okay, das war ein sehr frustrierendes Abenteuer für mich. Ich habe viele Stunden damit zugebracht, MathJax dazu zu bringen, die mhchem-Erweiterung in einer Markdown-Zelle im ipython-Notizbuch zu aktivieren und zu erkennen. Mathematische Ausdrücke funktionierten gut, aber die mhchem-Makros \ce \cf \cee wurden gerade nicht erkannt. Ich habe versucht, die Erweiterung in der Datei MathJax/config/default.js zu aktivieren. Ich habe versucht, den folgenden Skriptcode mit dem Markdown-Fenster

zu setzen %Vor%

Ich habe jeden Trick und Tipp ausprobiert, den ich im Internet finden konnte. Nichts scheint zu funktionieren.

Ich laufe Debian Wheezy. Ich dachte, dass die Standard-Mhchem- und MathJax-Pakete das Problem verursachen würden, also habe ich eine benutzerdefinierte Version von MathJax für ipython notebook in meinem profile_default / static-Verzeichnis installiert und ipython dafür konfiguriert. Nochmal, Mathe gut, Chemie nein. Ich bin in der Lage, die mhchem-Erweiterungen direkt von TeX zu verwenden, aber MathJax weigert sich einfach, die Erweiterung zu laden oder die \ce -Tags zu erkennen.

Ich bin ratlos!

Hat jemand Ideen?

    
user3195384 14.01.2014, 19:26
quelle

3 Antworten

9

Danke für deine Antwort. Ich hatte versucht, das Skript mit einem ohne die Tex/ zu laden. Ich hatte /ce \ce ausprobiert. Fast alles, was man sich vorstellen kann. Ich fand schließlich eine Lösung und es war wie folgt:

Wenn ich das Makro 'non-standard' /require in einem mathematischen Ausdruck verwende, um die mhchem-Erweiterung zu erzwingen, funktioniert alles super.

Ich habe den folgenden Code oben in der Markdown-Zelle hinzugefügt

%Vor%

Seltsamerweise, sobald ich dies in der ersten Zeile der ersten Markdown-Zelle gemacht habe, scheint es im gesamten Notebook einwandfrei zu funktionieren. Sogar von innerhalb einer Codepage, auf der ich folgendes ausführte, um die mhchem-Erweiterungen zu testen:

%Vor%

Ohne den /require -Makro würde der obige Code die mathematische Funktion korrekt erzeugen, aber die chemische Formel würde einfach als '\ ceH2O'

gerendert werden

Mit der /require -Zeile scheint die gesamte mhchem-Verwendung im Notebook gut zu funktionieren.

Ich sollte auch beachten, dass ich die ipython-Pakete aus den Debian Jesse-Repositories installiert habe. Stellt sich heraus, dass immer noch 0,13. Am Ende entfernte ich diese Pakete und installierte 1.10 direkt mit den setuptools. Der MathJax funktionierte mit dieser Installation aus der Box.

Wie auch immer, hoffentlich wird das einem anderen armen Chemiebenutzer etwas Frust ersparen

    
user3195384 18.01.2014 16:48
quelle
5

Wenn Sie möchten, dass jedes -Notebook, das Sie erstellen, dies wünscht, sollten Sie es in die custom.js -Datei Ihres ipython-Profils einfügen. Um genau zu sein, fügen Sie einfach folgendes in die Datei ein:

%Vor%

Wenn Sie nicht wissen, wo Sie die Datei finden können, können Sie

ausführen %Vor%

in der Befehlszeile. Es sollte in static/custom/ unter diesem Verzeichnis sein. (Ich denke, wenn Ihr ipython-Profil zu alt ist, müssen Sie möglicherweise static/custom/ und die Datei erstellen.)

Mein eigenes custom.js enthält viel mehr, wie die Erweiterungen

%Vor%

und weitere Mathjax-Optionen sowie benutzerdefinierte Optionen Tastaturkürzel usw. Es gibt also viel zu tun.

    
Mike 24.02.2014 20:54
quelle
2

Zuerst bemerkt, dass die Befehle \ce , \cf und \cee , nicht /ce , /cf und /cee sind. Wenn Sie also Letzteres eingegeben haben, wäre das sicherlich eins Grund, dass sie nicht tun, was Sie erwarten.

Außerdem haben Sie weder Ihre vollständige Konfiguration noch das Laden von MathJax.js angegeben. Daher ist nicht klar, ob das, was Sie getan haben, effektiv ist oder jetzt. Aber wenn Ihre HTML-Seite

enthält %Vor%

Dann sollte das für Sie tun. Beachten Sie insbesondere, dass Sie TeX/ nicht vor mhchem.js verwenden müssen, da Ihr Erweiterungs-Array Teil des TeX-Blocks ist und MathJax im TeX-Verzeichnis nach diesen sucht. Schließlich, wenn Sie config=TeX-AMS_HTML (oder eine der anderen Konfigurationsdateien) verwenden, wird default.js nicht geladen, hat also keine Auswirkungen.

Wenn dies Ihre Frage nicht beantwortet, posten Sie bitte weitere Details darüber, wie Sie MathJax geladen haben (ich fürchte, ich weiß nicht, wie ipython notebook behandelt).

    
Davide Cervone 14.01.2014 23:25
quelle

Tags und Links