xpWiki に MathJax plugin

2011年3月27日投稿.
xpWiki は私のホームページも動かしているオープンソースのコンテンツマネージメントシステム (CMS) Xoops Cube Legacy 用の pukiwiki モジュールです。その中で TeX を用いた数式を表示するために、これまでは mathTeX を用いていました。しかしよりきれいな数式が表示できること、基本的に TeX の書式がそのまま使えることなどのメリットを考えて MathJax を導入することにしました。

2017年4月17日追記:

MathJax の Content Distribution Network がこの4月末で閉鎖になるのを機に,CDN を使う方式に書き換えました.私のサーバー上の MathJax を呼び出すよりもこの方が表示が速いように思います.

xpWiki 用のプラグインの導入

MathJax の pukiwiki 用プラグインはないようですので、MathJax の前身である jsMath 用のプラグインを転用します。

  1. こちらに行って gontha さんの jsMath プラグインのソースコードをコピー、適当なエディターで
    jsmath.inc.php

    として保存します。

  2. jsmath.inc.php の変更
    1. 1行目にコメントが入っているとプラグインを xpWiki 用に変換できないそうです。そこで1行目を次のように改行:
      <?php 
      // -*- php -*-  $Id: jsmath.inc.php,v 1.0 $
    2. 5行目に来る define( 以下の path-to-jsMath のところ
      define("JSMATH_PATH", "path-to-jsMath");

      を次のように新しい MathJax の CDN ホストに書き換えます.

      define("JSMATH_PATH", "https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/");
    3. さらに10行目に来る $jspath= 以下
      $jspath = 'http://'%20.%20JSMATH_PATH%20.%20'easy/load.js';

      の最初の三角括弧の中身を次のように変更。

      $jspath = 'http://'%20.%20JSMATH_PATH%20.%20'MathJax.js?config=TeX-MML-AM_CHTML';

      ファイルを保存して閉じます.

  3. Xoops Cube の「管理者メニュー」から「xpwiki」の「プラグイン変換ツール」を選びます.「Convert a plugin from PukiWiki 1.4 to xpWiki」で先の jsmath.inc.php を選択し,「Do convert & Download!」をクリックすれば,変換された xpwiki 用プラグインファイルがダウンロードされます.
  4. それを適当なエディタで開きます.11行目の $jspath= 以下が
    $jspath = 'http://'%20.%20$this-cont%5B'JSMATH_PATH'%5D%20.%20'XpWikiMathJax.js?config=TeX-MML-AM_CHTML';

    と変換されてしまうので,XpWikiMathJax.js を MathJax.js に戻します.

    $jspath = 'http://'%20.%20$this-cont%5B'JSMATH_PATH'%5D%20.%20'MathJax.js?config=TeX-MML-AM_CHTML';
  5. ファイルを保存して閉じ,それを xoops_trust_path/modules/xpwiki/plugin/ に移動す れば,プラグイン導入完了です.

使い方

jsMath プラグインのようにページのどこかに

#jsmath

と入力すれば数式が表示されます.MathJax のデフォルトでインライン数式用のデリミターは \( \) です.