2006年7月23日日曜日

mimetex

数式表示のmimetex.x^2-1=(x+1)(x-1)

cgiファイルなので,自分のレンタルサーバに入れたかったが,この cgi は perl や php などのスクリプトではなく,バイナリの実行ファイルである.
つまり,ソースをあっぷして,cc でコンパイルしなければならないが,レンタル鯖では cc は使えない.


自宅鯖でコンパイルして,それを呼び出そうかな・・・
と考えていたら,mimetex のサイト
の下の方に,コンパイルされた実行ファイルが OS ごとに分類されてダウンロードできるようになっていた.


レンタル鯖は FreeBSD なので,それ用をダウンロードしてアップしたらあっさりうごいた.



めでたしめでたし.
これであとは,ブログモジュールを組み込む目途が立った.

あ,忘れないようにいじったところを書いておこう.
  class/module.textsanitizer.php
というファイルの関数
  function &xoopsCodeDecode(&$text, $allowimage = 1)
の最後の方,リターンする変数 $ret に値をセットする行
    $ret = preg_replace($patterns, $replacements, $text);
の前に,

$patterns[] = "/\[tex align=(['\"]?)(left|center|right)\\1](.*)\[\/tex\]/sU";
$patterns[] = "/\[tex](.*)\[\/tex\]/sU";
if ($allowimage != 1) {
$replacements[] = '<a href="'.XOOPS_URL.'/cgi-bin/mimetex.cgi?\\3" target="_blank">\\3';
$replacements[] = '<a href="'.XOOPS_URL.'/cgi-bin/mimetex.cgi?\\1" target="_blank">\\1';
} else {
$replacements[] = '<img src="'.XOOPS_URL.'/cgi-bin/mimetex.cgi?\\3" align="\\2" alt="\\3" />';
$replacements[] = '<img src="'.XOOPS_URL.'/cgi-bin/mimetex.cgi?\\1" alt="\\1" />';
}

を追加.(行頭のスペースが表示されない.コピペする人は適宜行頭にスペースを入れてインデントして,全角の「tex」を半角に,無駄な改行を削除してね)
参考:module.textsanitizer.phpの編集


参考サイトでは
  [math]TeXコマンド[/math]
で利用するようになっているが,自分は
  [tex]TeXコマンド[/tex]
で利用するようにし,さらに,alt= にTeXソース \\1 や \\3 を入れて,画像にマウスカーソルを重ねるとソースが見えるようにした.
 $\int \sin x\, dx=\cos x$



2015/7/22 追記
mimetex の forkosh.comが消滅. 新しく出たMathJax で解決.

0 件のコメント:

コメントを投稿

スパム対策のため,コメントは,承認するまで表示されません。
「コメントの記入者:」は「匿名」ではなく,「名前/URL」を選んで,なにかニックネームを入れてください.URL は空欄で構いません.