14

残念なことに、MediaWiki は最近、MathJax (チケット: T99369 ) ウィキペディア全体の TeX 式のレンダリングのサポートを無効にしました。

私 (およびチケットのディスカッション スレッドをざっと読むと他の人) は、残りのオプション (MathML、PNG) が劣っているレンダリングを見つけたので、MathJax をウィキペディアに「スリップストリーム」したいと思います。

ウィキペディアのカスタム JavaScript 設定を介してさらに JavaScript ファイルを直接ロードすることは、要素を使用して行うことはできないように思わ<script>れるため、この偉業を達成する方法について途方に暮れています。MathJax は、CDN 経由で最も簡単に含めることができます。

私は現在の Edge および Firefox ブラウザーを使用しているため、これらのいずれかまたは両方で動作するソリューションは大歓迎です!


一方、適切なスクリプトがあれば、これを実現できるかもしれない Firefox 用の Greasemonkey を見つけました。私は Greasemonkey の専門家でも JavaScript の専門家でもないので、そのようなスクリプトを作成する方法についてのヒントは役に立ちます。

4

2 に答える 2

11

登録ユーザーとして、次のことができます。

ユーザー設定 => 外観で、「MathML with SVG or PNG fallback」モードをオンにします。(他の 2 つのモードでは少し異なるスクリプトが必要ですが、現時点ではそのモードが最適なオプションです。)

https://en.wikipedia.org/wiki/User:YOURHANDLE/common.js次に、 [ユーザー名を変更することを忘れないでください!]でユーザー固有のスクリプト ページを編集し、次のカスタム スクリプトを追加します。

// add to User:YOURNAME/common.js to get smooth MathJax rendering
var mathTags = $('.mwe-math-mathml-a11y');
if (mathTags.length > 0){ //only do something when there's math on the page
  window.MathJax = { //hook into MathJax's configuration
    AuthorInit: function () {
      MathJax.Hub.Register.StartupHook("End",function () { //when MathJax is done...
        MathJax.Hub.Queue(
            function(){
             mathTags.removeClass('mwe-math-mathml-a11y'); // .. make the span around MathML (now MathJax output) visible
             $('.mwe-math-fallback-image-inline').addClass('mwe-math-mathml-a11y'); //hide fallback images
            }
        );
      });
    }
  };
  mw.loader.load('https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.4/MathJax.js?config=MML_HTMLorMML-full');//load MathJax with a suitable combined config file
}

このスクリプトは、ページに数学がある場合にのみ MathJax をロードしてレンダリングし、(レンダリングが完了したら) フォールバック画像を結果に置き換えます。

このように、ジッターはほとんどありません。簡単なテストから、これは Chrome 43、Firefox 39、IE8 と Edge、および WebKit 2.6.2 で動作するようです (Safari でも動作するはずです)。

于 2015-08-10T16:41:05.877 に答える