math.inc.php

AMS LaTeXとカラーのパッケージを読み込めるように、LaTeX 2ε形式(documentclass)に変更してあります.Safariの\や¥が?に変わってしまう問題も修正してあります.また色の定義やよく使う\newcommandが加えてあります.これらは別ファイルから読み込んだ方がよいと思うのですが、やってません(^^;

ps2epsi(が呼び出すgs?)がうまくBoundingBoxを設定できない場合(式の周囲にに大きな余白がついたままになってしまう場合)は,ps2epsを使うとよいです.

<?php
//math mode
//image repository
define("IMG_DIR", "./mathimg/");
//image type
define("IMG_EXT", ".gif");

function make_math_img($aryargs){
	$math = join($aryargs,",");
	//remove extra comma at the end.
	$math = rtrim($math, ",");
	$math = preg_replace("/\?/", "\\", $math);
	$imgfile = encode($math).IMG_EXT;
	if(!file_exists(IMG_DIR.$imgfile)){
		$tmpfile=IMG_DIR."tmp.tex";
		$tmp=fopen($tmpfile,"w");
		fputs($tmp,'\documentclass[12pt]{article}'."\n");
		fputs($tmp,'\oddsidemargin=0in'."\n");
		fputs($tmp,'\textwidth=6.5in'."\n");
		fputs($tmp,'\topmargin=0in'."\n");
		fputs($tmp,'\textheight=609pt'."\n");
		fputs($tmp,'\parskip=14pt'."\n");
		fputs($tmp,'\setlength{\unitlength}{0.5cm}'."\n");
		fputs($tmp,'\usepackage[dvips]{color}'."\n"); 
		fputs($tmp,'\usepackage{amsbsy}'."\n");
		fputs($tmp,'\usepackage{amsmath}'."\n");
		fputs($tmp,'\usepackage{amssymb}'."\n");
		fputs($tmp,'\definecolor{orange}{rgb}{1,0.6,0}'."\n");
		fputs($tmp,'\definecolor{dorange}{rgb}{0.5,0.3,0}'."\n"); 
		fputs($tmp,'\definecolor{navy}{rgb}{0,0,0.5}'."\n"); 
		fputs($tmp,'\definecolor{gold}{rgb}{0.85,0.64,0.13}'."\n"); 
		fputs($tmp,'\definecolor{tomato}{rgb}{1,0.4,0.28}'."\n"); 
		fputs($tmp,'\definecolor{brown}{rgb}{0.45,0.32,0.065}'."\n"); 
		fputs($tmp,'\newcommand{\dd}{{\rm d}}'."\n");
		fputs($tmp,'\newcommand{\eexp}{{\rm e}}'."\n");
		fputs($tmp,'\newcommand{\bm}[1]{{\boldsymbol{#1}}}'."\n");
		fputs($tmp,'\pagestyle{empty}'."\n");
		fputs($tmp,'\begin{document}'."\n");
		fputs($tmp,'\Large\['.$math.'\]'."\n");
		fputs($tmp,'\end{document}'."\n");
		fclose($tmp);
		$oldDir=getcwd();
		chdir(IMG_DIR);
		exec("latex tmp.tex");
		exec("dvips -N -n 1 -o tmp.ps tmp");
		exec("ps2epsi tmp.ps tmp.eps");
		exec("convert tmp.eps tmp_".IMG_EXT);
		exec("convert -transparent white tmp_".IMG_EXT." tmp".IMG_EXT);
		exec("mv tmp".IMG_EXT." ".$imgfile);
	
  exec("rm tmp*");
		chdir($oldDir);
	}
	return "<IMG SRC=".IMG_DIR.$imgfile.">";
}

function plugin_math_convert()
{
	$aryargs = func_get_args();
	return make_math_img($aryargs);
}

function plugin_math_inline()
{
	$aryargs = func_get_args();
	return make_math_img($aryargs);
}
?>

© Copyright 2013 Kei Tokita, Powered by Pukiwiki.  Last-modified: Sun, 23 Jun 2013 13:50:21 JST (2340d)   リロード   新規 編集 凍結 差分 添付 複製 改名   トップ 一覧 検索 最終更新 バックアップ   ヘルプ   最終更新のRSS