mimeTeXもどき

mimeTeXもどき

by 奥村 晴彦 -
Number of replies: 4
mimeTeXやimgTeXやtexvcというものがあるようですが,サーバにはPHPがインストールされていてそれをうまく使えないかと考えています。作りかけのコードです(imgTeXを参考にしました):

/home/okumura/php/phptex.inc:

<?php
function tex($x) {
  $t = md5($x);
  if (!file_exists("teximg/$t.png")) {
    $f = fopen("teximg/$t.tex", "w");
    fwrite($f, "\\documentclass{article}\n\\usepackage{type1cm,amsmath,amssymb}\n\\pagestyle{empty}\n\\begin{document}\n$x\n\\end{document}\n");
    fclose($f);
    system("$HOME=/tmp; ulimit -t 10 -f 1024 -c 0; cd teximg; latex -interaction=nonstopmode $t.tex >/dev/null 2>&1 && dvipng -q -D 200 -T tight -M -pp 1 --noghostscript $t.dvi -o $t.png >/dev/null 2>&1", $retval);
    if ($retval) die("Error");
  }
  echo "<img src=\"teximg/$t.png\" alt=\"$x\" style=\"vertical-align:middle\" />";
}
?>

数式を使いたいファイルの頭のところで

<?php require("/home/okumura/php/phptex.inc") ?>

と書いておいて,数式にしたいところは

<?php tex('$E=mc^2$') ?>

と書きます。同じディレクトリに teximg というサブディレクトリを作っておき,apache に書き込み権を与えておきます。

急いで作ったので何かミスをおかしているかもしれません。コメントいただければ幸いです。

In reply to 奥村 晴彦

Re: mimeTeXもどき

by 奥村 晴彦 -
少しちゃんとした例で試してみようと思って,Brunner-Munzel検定 についてのページを作ってみました。ほとんどすべての数式がそのまま書けましたが,一つだけ,数式中に改行 \\ がある場合は,どういうわけか \\\\ と書かないとうまくいきませんでした。

目が悪い私の好みで数式を200dpiにしましたが,一般にはちょっと大きすぎるでしょうか。-D 200 を適当に調節してください。
In reply to 奥村 晴彦

Re: mimeTeXもどき

by Z. R. -

これは Perl の話ですが、単引用符の文字列ではほとんどの文字はそのまま書けますが、「'」と「\」だけは「\'」「\\」とする必要があります。逆に言えば、この 2 つの連の中だけ \ がエスケープ文字になります。

PHP も同じ仕様ではないでしょうか。

In reply to Z. R.

Re: mimeTeXもどき

by 奥村 晴彦 -
ありがとうございます。どうやらそのようですね。この二つは例外として,数式を書いてもらうときに注意することにしないといけないようですね。

PukiWikiのプラグインにする方法はまだ調べていません。

MoodleもmimeTeXだけではなく本物のTeXも使えるはずなのですが,そこまで設定していません。

Vineのdvipngを使っているのですが,Computer ModernはFreeTypeかT1libを使えるのですがPalatinoやTimesはPKフォントを作ってしまうようです。私の設定が悪いのでしょうか。