mathプラグイン
DokuWiki上で数式を表示できるプラグイン。詳細はplugin:math2を参照。欧米の数式表記は日本のそれと多少異なるため、日本の実情には合わない箇所がある。要カスタマイズ。以下に日本語化の概要を示す。
日本語化に関する情報
フォントの追加
フリーの日本語ttfフォントを所定のディレクトリにインストールすることで、mathプラグインを日本語表記に対応することができます。これにより、「≤」「≥」を「≦」「≧」に置き換えることが可能となります。フォント追加後は、「phpmathpublisher/mathpublisher.php」内の「affiche_math関数」を、以下の要領で書き換えることで、追加した日本語フォントが使えるようになります。
affiche_math関数のカスタマイズ
デフォルトのaffiche_math関数
function affiche_math($texte, $taille) { global $dirfonts; $taille=max($taille,6); global $symboles, $fontesmath; $texte=stripslashes($texte); if(isset($fontesmath[$texte])) $font = $dirfonts."/".$fontesmath[$texte].".ttf"; elseif (ereg("[a-zA-Z]", $texte)) $font = $dirfonts."/FreeSerifItalic.ttf"; else $font = $dirfonts."/FreeSerif.ttf"; ・ ・ ・ (以下略)
affiche_math関数内では、次のようにフォントが指定されています。
- 数式記号 ⇒ $fontesmath[$texte]で定義済みのフォントを使う
- アルファベット ⇒ FreeSerifItalic.ttfを使う
- それ以外 ⇒ FreeSerif.ttfを使う
この、「FreeSerif.ttf」を日本語フォントに置き換えてやることで、2バイト文字も問題なく表示されるようになります。
日本語フォントを指定したaffiche_math関数
function affiche_math($texte, $taille) { global $dirfonts; $taille=max($taille,6); global $symboles, $fontesmath; $texte=stripslashes($texte); if(isset($fontesmath[$texte])) $font = $dirfonts."/".$fontesmath[$texte].".ttf"; elseif (ereg("[a-zA-Z]", $texte)) $font = $dirfonts."/FreeSerifItalic.ttf"; elseif (ereg("[0-9]", $texte)) $font = $dirfonts."/FreeSerif.ttf"; else $font = $dirfonts."/ipaexg.ttf"; ・ ・ ・ (以下略)
ついでなので、次のように手を加えました
- 数式記号 ⇒ $fontesmath[$texte]で定義済みのフォントを使う
- アルファベット ⇒ FreeSerifItalic.ttfを使う
- 半角数字 ⇒ FreeSerif.ttfを使う
- それ以外(すなわち、2バイト文字) ⇒ ipaexg.ttf
フリーの日本語ttfフォントは「IPAexゴシック」を使わせて頂きました。
日本語化した際のレンダリング例
<m>2x + 3y ≦ 15 のように、数式内外に全角文字を使うことができるようになります</m>
<m>点 P の座標を( p , p + 2 )とし、点 P から x 軸に垂線 PH をひくと、 OH = QH</m>\\ <m>よって、 Q の座標は( 2p , 0 )と表せるから、</m>\\ <m>{1/2} * 2p ( p + 2 ) = 15</m>