jsmath.inc.php

Top > Plugin > jsmath.inc.php

jsMath を用いた数式の表示

First Edition. 08/09/2008
Last Modified. 08/09/2008
Table of Contents

概要

このプラグインは jsMath.js を利用した TeX 形式の数式表示を支援します。

jsMath は javascript でできているため、mimetex.inc.php のように CGI を設置する必要がありません。 javascript の数式表示としては、従来から広く利用されていた ASCIIMathML.js もありますが、 こちらは閲覧ユーザが数式フォントをインストールする必要があり、使い勝手が良くありませんでしたが、 jsMath はそれすらも要求しません。 しかも、閲覧ユーザがフォントをインストールすることで、より高速、かつ綺麗に閲覧することもできます。

個人的には、mimeTeX よりも綺麗ですし、良かろうと思います。 表示例は Examples of jsMath からどれかを参照してみてください。

参照

競合相手

  • mimetex.inc.php 画像をあらかじめ生成し、キャッシュしておくので早いといえば早い
  • ASCIIMathML.js 閲覧ユーザがフォントをインストールしなければならない。現実的でないのでボツとなっている。

設定 - プラグインを使用しない場合

まえおき

特にプラグインを使用せずとも、スキンで直接 jsMath をロードするように記述しておけば、通常の HTML ファイルに設置する場合と同じ要領で jsMath を使用することができます。 よって、ここではプラグインを使用しない場合の jsMath の PukiWiki へのインストール方法を解説します。

ちなみに、jsmath.inc.php プラグインを使用するとより柔軟に機能を使用できるようになります。 数式を使用するページでのみ jsMath.js を読み込ませるようにして、閲覧ユーザの負担を軽くしたり、jsMath の追加機能をページごとに有効化したりすることが出来ます。 とはいえ、jsMath は賢く、autoload という機能がデフォルトで有効になっており、まず軽くページを探査して、数式表示が必要そうであれば改めて追加の javascript を読み込む、という処理をしているようなので、全てのページで jsMath.js がロードされたとしてもたいした負担にはならなさそうです。

jsMath のダウンロード

Installation and Testing にあるように、ダウンロード、インストールします。

sourceforge.net から jsMath と jsMath image fonts (7.5M) をダウンロードしてください。jsMath image fonts は閲覧者環境に jsMath fonts がインストールされていない場合に数式を表現するのに使用する画像データです。

jsMath, jsMath image fonts を解凍し、後者の fonts ディレクトリを前者の jsMath ディレクトリに入れてください(jsMath.js と fonts ディレクトリが同階層になるように入れる)。

jsMath ディレクトリを pukiwiki の skin/ ディレクトリ直下に置くものとします。

スキンの編集

Getting Started with jsMath にあるように、 HTML ファイルから jsMath をロードするようにします。

PukiWiki スキン の <head></head> タグの間に

<script type="text/javascript" src="path-to-jsMath/easy/load.js"></script>

を挿入します。path-to-jsMath を index.php から見た jsMath 設置ディレクトリへのパスへ置き換えます。

例えば、想定通り skin/ ディレクトリにおいた場合

PukiWiki 本家

<script type="text/javascript" src="<?php echo SKIN_DIR ?>jsMath/easy/load.js"></script>

PukiWiki Plus!

<script type="text/javascript" src="<?php echo SKIN_URI ?>jsMath/easy/load.js"></script>

とします。

これでインストールは終了です。

数式の記述

数式が表示されることを確かめます。

デフォルトでは、

$$数式$$ 
\(数式\)
\[数式\] 

のように数式を記述できます。Wikiページを編集、記述し、数式が表示されることを確認します。 参考:text2math

jsMath 詳細設定

おまけです。

Configuring jsMath にあるように、 jsMath/easy/load.js を編集して jsMath の個別設定を行えます。 数式記述に使用する書式の設定をしたり、追加使用する jsMath プラグインを設定したりします。 ここで、$数式$ を有効化することもできますが、$a = $b; のような文章にも反応してしまうのでお薦めできません。

設定 - プラグインを使用する場合

まえおき

数式を使用しないページで jsMath.js をロードせずとも良いように、 プラグインで数式を使用するページを明示的に指定します。 また、プラグインの側から jsMath の追加機能を有効化したりできるようになります。

jsMath のダウンロード

Installation and Testing にあるように、ダウンロード、インストールします。

sourceforge.net から jsMath と jsMath image fonts (7.5M) をダウンロードしてください。jsMath image fonts は閲覧者環境に jsMath fonts がインストールされていない場合に数式を表現するのに使用する画像データです。

jsMath, jsMath image fonts を解凍し、後者の fonts ディレクトリを前者の jsMath ディレクトリに入れてください(jsMath.js と fonts ディレクトリが同階層になるように入れる)。

jsMath ディレクトリを skin ディレクトリ直下においてください(デフォルトでは)。

jsmath.inc.php のダウンロード

jsmath.inc.php をダウンロード、pukiwiki のプラグインディレクトリにおきます。 これでインストールは終了です。

数式の記述

数式が表示されることを確認します。

まず、数式を使用するページで少なくとも一度 #jsmath プラグインを起動する必要があります。 これで jsMath.js をロードしたことになります。 数式を使用しないページでは #jsmath プラグインを使用しないことにより、jsMath.js をロードせずにすみます。

#jsmath

数式は次のように記述します。

#jsmath(数式)
&jsmath{数式};
#jsmath{{
数式
}]

もちろん、jsMath.js 特有の数式表記も使用できます。デフォルトでは、

$$数式$$ 
\(数式\)
\[数式\]

さらには MediaWiki 的な記法

<math>数式</math>
:<math>数式</math>

が使用できます。参考:text2math

jsMath 詳細設定

おまけです。

Configuring jsMath にあるように、 jsMath/easy/load.js を編集して jsMath の個別設定を行えます。 数式記述に使用する文法の設定をしたり、追加使用する jsMath プラグインを設定したりします。

または、jsmath.inc.php で、ページ単位で追加機能を有効化することもできます。 プラグイン書式オプションを参照してください。

プラグイン設定

jsmath.inc.php を開き、修正してください。

JSMATH_PATH

  • index.php から jsMath ディレクトリのパスを絶対URI、相対URIで記述します。

JSMATH_CUSTOM

  • 数式記述に使用できる文法の追加を行えます。デフォルトで MediaWiki 的な記述法である、
    <math>数式</math>
    :<math>数式</math>
    を追加してあります。

プラグイン書式

&jsmath([オプション,][数式])
&jsmath([オプション]){数式};
#jsmath([オプション,][数式])
#jsmath([オプション]){{ 
数式 // 複数行プラグイン機能を有効にしておくこと
}}

数式の記述は jsMath.js の提供する数式文法を用いることもできます。デフォルトでは

$$数式$$
\[数式\$
\(数式\)

が使用できます。さらには jsmath.inc.php では文法を追加し、MediaWiki 的な

:<math>数式</math>
<math>数式</math>

も使用できるようにしています。

#jsmath プラグインは、jsMath.js のロードも兼ねています。数式を使用するページ中で少なくとも一度は #jsmath プラグインを記述してください。

オプション

各種 jsMath 用プラグインのロードを指定できます。詳細は Information for jsMath Authors Plugins の項目。 これらの設定は直接 jsMath/easy/load.js でも可能です。 Information for jsMath Authors Extensions の項目は、必要ならば jsMath.js が自動でロードしてくれるのでオプションは用意していません。

  • mimeTeX
  • smallFonts
  • noImageFonts
  • global
  • noGlobal
  • noCache
  • CHMmode
  • spriteImageFonts

これらオプションもページ中で一度だけ指定してしまえば充分です。

記述例

#jsmath(mimeTex)
$$x^2 + y^2 = z$$
:<math>e^{i x} = \cos x + i \;\sin x</math>
&jsmath{ e^{\pi i} + 1 = 0</math> };
#jsmath(){{
 e = \sum^{\infty}_{n=0} \frac{1}{n!}
}}

ちなみに、jsmath は(正確には jsmath の text2math プラグインは) <pre></pre> 内の文字には反応しません。

表示は例えば MathNote/Inequality - Naotoshi Seo のようになります。

ダウンロード

右クリックから保存し、plugin ディレクトリにおいてください。常に開発版です。

複数行プラグイン形式を使用したい場合は、PukiWiki を 1.4.6 以上にアップデートし、 pukiwiki.ini.php にて以下の変更を加えておいてください。

-define('PKWKEXP_DISABLE_MULTILINE_PLUGIN_HACK', 1); // 1 = Disabled
+define('PKWKEXP_DISABLE_MULTILINE_PLUGIN_HACK', 0); // 1 = Disabled

jsmath.inc.php

What's new viewcvs