このサイトの数式

このサイトのいくつかのページでは数式を出力するためにPHPを使い,裏でTeXを動かしています。例えば

\[ f(x) = \frac{1}{\sqrt{2\pi}} \exp\biggl(-\frac{x^2}{2}\biggr) \]

という数式は

<div class="math">
<?php tex('\[ f(x) = \frac{1}{\sqrt{2\pi}} \exp\biggl(-\frac{x^2}{2}\biggr) \]') ?>
</div>

と書いてあります。

そのほかでは,ページの頭に

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

と書いてあるだけです。この phptex.inc というファイルは次のようになっています。好みによって適当に変えてください。

<?php
function tex($x) {
  $t = md5($x);
  if (!file_exists("mathimg/$t.png")) {
    $f = fopen("mathimg/$t.tex", "w");
    fwrite($f, "\\documentclass{article}\n\\usepackage{mathptmx,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 mathimg; latex -interaction=nonstopmode $t.tex >/dev/null 2>&1 && dvipng -q -D 144 -T tight -pp 1 $t.dvi -o $t.png >/dev/null 2>&1", $retval);
    if ($retval) die("Error");
  }
  echo "<img src=\"mathimg/$t.png\" alt=\"$x\" style=\"vertical-align:middle\" />";
}
?>

latexdvipng はフルパスで書かないといけないかもしれません。あとは,同じディレクトリにhttpdに対して書き込み権を与えた mathimg というディレクトリを作っておきます。

関係ありませんが,SourceForgeにphptexというプロジェクトがあることにさきほど気づきました。私のは無関係です。私のは,以前に QA: mimeTeXもどき でもご紹介したことがあります。


Last modified: