1

デフォルトでdvipngされた方程式を含むemacsorgで生成されたHTMLがあります。それは大丈夫です、私は彼らのJSを無効にした人々に良いフォールバックを提供したいと思います。生成された画像と結果の<img>タグには、属性に完全なLaTeXソースが含まれていaltます。また、そのようなすべての画像に特定のクラスを適用するようにコードを微調整したので、JS側ではより単純な問題になりますが、これは私の得意分野ではありません。

MathJaxのドキュメントには、いくつかの異なる構成と、自分で構成をカスタマイズする方法がリストされています。ニーズに合わせてMathjaxを適用するためのセレクター関数などが表示されません。独自のDOM-mungingJSを作成し、後でMathjaxを呼び出すことができることは知っていますが、Mathjaxはそれ自体でこの種の機能に屈しますか?

これは、生成されたHTMLの例です。

<img class="dvipng" src="upload/blog_ff4e604.png"
     alt="$\frac{1}{2\pi{}i}\int_C\frac{f'(z)}{f(z)}{\rm d}z = N_0(f)$">
4

1 に答える 1

3

MathJax にはこれが直接含まれていませんが、次のようにすることができます。

<script type="text/x-mathjax-config">
MathJax.Extension.myImg2jax = {
  version: "1.0",
  PreProcess: function (element) {
    var images = element.getElementsByTagName("img");
    for (var i = images.length - 1; i >= 0; i--) {
      var img = images[i];
      if (img.className === "dvipng") {
        var script = document.createElement("script"); script.type = "math/tex";
        var match = img.alt.match(/^(\$\$?)(.*)\1/);
        if (match[1] === "$$") {script.type += ";mode=display"}
        MathJax.HTML.setScript(script,match[2]);
        img.parentNode.replaceChild(script,img);
      }
    }
  }
};
MathJax.Hub.Register.PreProcessor(["PreProcess",MathJax.Extension.myImg2jax]);
</script>
<script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS_HTML"></script>

これは、画像を探して ALT タグから数学を抽出する新しいプリプロセッサを定義します。$...$これは、インライン計算と$$...$$表示された計算に使用することを前提としています。

<script>このコードは、画像を MathJaxタグに変換するときに画像を削除しました。MathJax が TeX コードを処理するまで画像が表示されるプレビュー スパンに画像を移動することは可能です。これはもう少し洗練されたものですが、もう少し作業を行うことで実現できます。それは興味のある読者にお任せします。:-)

于 2013-01-31T17:32:58.097 に答える