land.to上のMediaWikiでTeXを使えるようにする
通常MediaWiki上で数式を扱う場合は、texvcをインストールし、texの記法をプログラムが解釈し、数式の画像を表示させます。しかしレンタルサーバでMediaWikiを運用している場合、texvcのインストールを自由にできない場合も多いと思います。mimetexというプログラムを使うことで、レンタルサーバでも数式を扱えるようになります。僕はland.toサーバーでWikiMediaを使っているので、land.toサーバーにmimetexをインストールする手順を紹介します。
参考サイト
プログラムのダウンロード
http://www.forkosh.dreamhost.com/mimetex.exe/
ここから適切なプログラムをダウンロードします。land.toのサーバーはFreeBSDなのでfreebsdディレクトリのmimetex.zipを選べば良いでしょう。
サーバへアップロード
落としたファイルを展開し、"mimetex.cgi"を
public_html/cgi-bin/
にアップロードします。パーミッションは755に設定します。
mimetex.phpを作成
mimetex.phpというファイルを作り、MediaWikiをインストールしたディレクトリの下のextensionsフォルダにアップロードします。mimetex.phpの内容は以下のとおり。
$wgExtensionFunctions[] = "MimetexExtension";
function MimetexExtension() {
global $wgParser;
# register the extension with the WikiText parser
# the first parameter is the name of the new tag.
# In this case it defines the tag ...
# the second parameter is the callback function for
# processing the text between the tags
$wgParser->setHook( "tex", "render_Mimetex" );
}
/**
* Renders $text in Mimetex
*/
function render_Mimetex($input, $argv, $parser = null) {
if (!$parser) $parser =& $GLOBALS['wgParser'];
// $img_url is the url the mimetex will be sent to.
// IMPORTANT!! The URL below should be the link to YOUR mimetex.cgi if possible
$img_url = "http://www.forkosh.dreamhost.com/mimetex.cgi?".$input;
// Sets the output of the tex tag using the url from above, and the input as
// the Alt text. It's important to note that there is no error output added yet.
$output = "$img_url\" alt= \"$input\" />";
return $output;
}
?>
localsettings.phpの修正
require("extensions/mimetex.php");
この一文をlocalsettings.phpの最後の行に追加します。
editpage.phpの修正
通常MediaWiki上で数式を扱う場合は、タグを使いますが、mimetexは
inludesディレクトリのeditpage.phpから、
array( 'image' =>'button_math.png', 'open' => "<math>", 'close' => "<\\/math>", 'sample'=> wfMsg('math_sample'), 'tip' => wfMsg('math_tip'), 'key' => 'C'
という部分を探します。openとcloseの中身を次のように変更します。
array( 'image' =>'button_math.png', 'open' => "\\<tex\\>", 'close' => "\\tex\\>", 'sample'=> wfMsg('math_sample'), 'tip' => wfMsg('math_tip'), 'key' => 'C'
以上で完了です。