2011-03-04 21 views

cevap

37

http://docs.mathjax.org/en/latest/typeset.html bakınız:

sayfanın geri kalanı dizgi MathJax sonra görünebilir matematik içeren içeriği zaten dinamik bir web sayfası yazıyorsanız, o zaman için MathJax anlatmak gerekecektir Yeni içerik oluşturulduğunda numaralı sayfaya yeniden matematiği için tekrar bakın. yapmak için MathJax.Hub.Typeset() yöntemini kullanmanız gerekir. Bu sayfaya tekrar üzerinde çalıştırmak için preprocessors (herhangi bir yüklenen ise) neden olur ve ardından MathJax sayfa üzerinde işlenmemiş matematik bakmak ve zaten dizilirler edilmiş herhangi matematik değişmeden bırakarak bunu dizilirler olacaktır.

Bu yöntemi doğrudan aramanız gerekmez. Burada

MathJax.Hub.Queue(["Typeset",MathJax.Hub]);

Demo: Ben MathML ile dinamik güncelleştirmeleri yapmanın en kolay yolu MathJax izin vermektir bulundu http://cdn.mathjax.org/mathjax/latest/test/sample-dynamic.html

+2

[docs] göre (http://www.mathjax.org/docs/2.0/typeset.html) kullanarak, doğrudan() MathJax.Hub.Typeset çağırmamalıdır. Bunun yerine, 'MathJax.Hub.Queue (["Typeset", MathJax.Hub]); –

+0

@AnthonyBatchelor: Agreed. Cevabımı daha açık hale getirmek için güncelledim. Gelecekten – thirtydot

+1

Not: cdn.mathjax.org sona ömrünün üzeredir, göç ipuçları için https://www.mathjax.org/cdn-shutting-down/ kontrol edin. –

4

[yerine gerekir] komutunu [bu kullanarak], baskı benzeri eylemi Sıraya içerik değişikliklerini yapmak (jQuery .html (s) işlevi yerine, ör.) Daha sonra içeriği değiştirirken matematiği işler.

<script type="text/javascript"> 
    function updateMathContent(s) { 
     var math = MathJax.Hub.getAllJax("mathdiv")[0]; 
     MathJax.Hub.Queue(["Text", math, s]); 
    } 
</script> 

...

<div id="mathdiv"> 
    <math xmlns="http://www.w3.org/1998/Math/MathML"> 
     <msup> 
     <mi>x</mi> 
     <mn>2</mn> 
     </msup> 
    </math> 
</div> 

Yani sadece yeni MathML ile div tüm içeriğini değiştirmek için işlevini kullanın ve işe yarayacak. (Script kafasına gider.)

Not: Boş bir matematik div ve sonraki MathML eklerseniz, bir komut dosyası hatası alırsınız. Ama eğer matematik etiketler güncellemeMathContent çağrısı içinde hiçbir şeyle mevcut değilse işe yarayacaktır. MathJax uyumsuz faaliyet olarak

İlgili konular