自作プラグイン / math2.inc.php


PukiWikiでTeXを利用するためのプラグインです。

実装を見ていただければ分かるとおり、単にplatexとdvipngを呼び出しているに過ぎません。 また、TeXドキュメントも私の好みに設定していますので、ご自分で好きなフォームに改変してご利用ください。

特徴

  • 数式の長さがファイル名の長さに依存していたのをハッシュにすることで改善した。
  • platexを使用する。
  • dvipngを使用する。

目次



使用説明書

起動方法

終了方法

操作方法

PukiWikiの編集で、次の書式に従って式を記述します。 編集後に式が画像ファイル(png形式)に変換されます。

(書式1)行頭で使用します。表でも使用できます。

#math2()

(書式2)行中で使用できます。

&math2{};

注意事項

ダウンロード

  • テキストエディタ等にコピー&ペースト後、math2.inc.phpとして保存してください。
  • Version 1.0.1
<?php
// Copyright(C) 2007 fem. All rights reserved.
define( "IMG_DIR", "./mathimg/" );
define( "IMG_EXT", ".png" );

function make_math2_img( $aryargs ) {
   $math = join( $aryargs,"," );
   //remove extra comma at the end.
   $math = rtrim( $math, "," );
   $imgfile = md5( $math ).IMG_EXT;
   if ( !file_exists( IMG_DIR.$imgfile ) ) {
       $tmpfile = IMG_DIR."tmp.tex";
       $tmp = fopen( $tmpfile, "w" );
       fputs( $tmp, '\documentclass[12pt]{jarticle}'."\n" );
       fputs( $tmp, '\usepackage{amsmath,amssymb,bm}'."\n" );
       fputs( $tmp, '\pagestyle{empty}'."\n" );
       fputs( $tmp, '\begin{document}'."\n" );
       fputs( $tmp, '\thispagestyle{empty}'."\n" );
       fputs( $tmp, '\large\['.$math.'\]'."\n" );
       fputs( $tmp, '\end{document}'."\n" );
       fclose( $tmp );
       $oldDir = getcwd();
       chdir( IMG_DIR );
       exec( "platex -halt-on-error tmp.tex" );
       exec( "dvipng -bg 'rgb 1.0 1.0 0.4' -bd 1000 -T tight --gamma 1.1 -o tmp.png tmp.dvi" );
       exec( "move tmp.png ".$imgfile );
       chdir( $oldDir );
   }
   return "<IMG SRC=".IMG_DIR.$imgfile.">";
}

function plugin_math2_convert() {
   $aryargs = func_get_args();
   return make_math2_img( $aryargs );
}

function plugin_math2_inline() {
   $aryargs = func_get_args();
   return make_math2_img( $aryargs );
}
?>

インストール

プラットフォーム依存関係

PukiWiki1.4.7
pLaTeX
dvipng

本体

math2.inc.phpをpluginフォルダに置いてください。格納後、すぐに利用できます。

拡張オプション

アンインストール

math2.inc.phpをpluginフォルダから削除します。

設定


改変履歴

1.0.1 2007/02/25
math.ini.phpの公開に当たって、名前がバッティングしたのでmath2.ini.phpと改名しました。
1.0.0 2007/02/24
初版公開

ライセンスと免責について

  • 本ソフトウェアは、フリーウェアです。
  • ライセンスは、GPL*1を適用します。
  • 本ソフトウェアの著作権はfemに帰属しますが、改変・転載は自由です。連絡も不要です。
  • 本ソフトウェアのバグ等によって生じたいかなる損害について、いっさいの保証はありません。あくまでも自己責任でご利用ください。

バグ報告・ご意見など

スパム防止のため、編集には認証を必要としています。guest/guestで。

  • 初GPL作品(笑)。math.ini.phpを自分用に改造したものです。 -- fem 2007-02-24 (土) 14:09:47
  • 一行目に"<?php"が抜けてるようです。また、plugin_math2_convert()などで呼んでいるmake_math_img()は、make_math2_img()ですよね。それと、dvipngを呼んでいる行で、"-o"が"- o"となっているので直す必要があります。それと、mathimg/ を作るべき場所とパーミッションについても触れておいた方が親切と思います。 -- F? 2007-03-17 (土) 02:38:57
  • unix用だとするとファイル名変更のコマンドはmoveでなく、mvですね。それから、インストール時にmathimgディレクトリを作成し、モードを0777にしておくことも記載しておいて頂ければと思います(アンインストール時にはこのディレクトリも削除?)。よろしくお願いします。 -- N? 2008-04-17 (木) 13:38:14
  • すいません放置してました。ご指摘の通りです。修正ありがとうございます。 -- fem 2008-06-30 (月) 01:58:58
  • 私の環境はWindowsなのでmoveであってます。UNIXで使用される方はパーミッションも変更ください。 -- fem 2008-06-30 (月) 02:04:32
  • 同じタイミングで呼ばれた時にtmpファイルを上書きしてしまいますね。tempnum関数でファイル名つくったほうがいいかも。 -- akira_you? 2009-12-17 (木) 17:21:09

関連項目

外部リンク


カテゴリ:フリーウェア


*1 実はGPLのバージョンの違いがよく分かってないです。