作業メモ::LaTeX数式→png変換(暫定)

※Linux上でしか動作しません。Windowsの場合はなんとかしてください。

LaTeXファイルを直接ファイルに生成して、dviにコンパイルして、pngとして取り出す。
ファイル名は $filename = time()にランダムな文字列を追加したもの(にしよう)。

$template = '
\documentclass[12pt]{article}
\usepackage{amsmath,amsthm,amssymb}
\begin{document}
\pagestyle{empty}

$ I=\int_{0}^{ \frac {1}{2}} \frac{x}{\sqrt{1-x^2}} dx $
\end{document}
';

latexがインストールされていることを確認したうえで、実行演算子 “ (バッククォート) を用いて

$randname = time();
$filename =  WWW_ROOT . 'files' . DS . 'pdf' . DS . 'dynamic' . DS . $randname;
$filename2 = $filename.'.tex';
//ファイル書き出し
file_put_contents($filename2 ,  $template );
//作業フォルダ指定
$dir =  WWW_ROOT . 'files' . DS . 'pdf' . DS . 'dynamic' ;

//シェルコマンド生成
$command = "/usr/bin/platex ".$filename;

//実行(cd でカレント移動しておかないと /webroot で作業をしようとする)
$test = `cd ${dir} ; ${command}`;
pr($test);


//できあがったdviファイルをpngに変換
//シェルコマンド生成
$command = "/usr/bin/dvipng -D 720 -T tight ".$filename;
//実行(cd でカレント移動しておかないと /webroot で作業をしようとする)
$test = `cd ${dir} ; ${command}`;
pr($test);

動的に$template を生成すれば任意の数式のpng画像が生成される。

生成された数式png
生成された数式png

かっこええ!

生成された画像をpdfに埋め込んでウマー。 かな

コメントを残す

メールアドレスが公開されることはありません。