ブログデザイン

GRID wordpress theme 1.1 と MathJax は相性が良くない。そのための対処法など。

  • ????????????????????

ようやく wordpress 設置がほぼ完成。デザインまわりに時間がかかってしまった。。。中身はまだまだこれからです。
結局、テーマはGRID wordpress theme 1.1を使うことに。このテーマ、非常に見た目が良いのですが、Mathjax との相性があまりよくないようです。

原因は “onLoad” イベントにグリッドを position: absolute な位置に配置する関数が割り当てられているのに、Mathjax 特殊な機構を使っているために onLoad のタイミングで数式読み込みが未完了 → 数式読み終わると div の大きさが変化しちゃう → グリッドたちは position: absolute になっているので都合悪い、という感じです。

Mathjax は処理の各タイミングで各種シグナルを発信していて MathJax.Hub.Register.StartupHook という関数でシグナルに対応したコールバックを設定できる。tween 周りがものすごく適当ですが、以下のようにすれば一応対処可能。

var gridLayout = null;
window.addEvent('domready', function() { 
    if (!gridLayout) {
        gridLayout = new GridLayout();
    }
});
window.addEvent('load', function() {
    if (!gridLayout) {
        gridLayout = new GridLayout();
    }
    gridLayout.control(1);
});
/* Add following code! */
MathJax.Hub.Register.StartupHook("End",function () {
    if (!gridLayout) {
         gridLayout = new GridLayout();
    }
    gridLayout.control(0);
});
はてなブックマーク - ブログデザイン
Pocket