2008年05月18日

レンタルサーバMediawikiでの数式表示のための作業手順(mimetexのインストールなど)

レンタルサーバにインストールした Mediawiki で TeX による数式表示をさせようとした時、一番ネックになるのが一般の TeX をインストールできないということだと思います。

私はてふに関してはどしろうともどしろうと。
てふは数式がお得意のワープロプログラミングかな?くらいのものすごーくいいかげんな認識しかないままこのン十年を過ごしてまいりまして(まわりにてふ経験者はけっこういたので、名前だけは門前の小僧でしたが)、従っててふがどういう構造してるのか、どういう仕組みで動いているのか、全く分かっておりません。

今回ウィキクックレシピ(WikiCookRecipe)−みんなのレシピ みんなで料理−で math タグによる数式表示を実現させようとして、当然のことながら Mediawiki での TeX 導入例をぐぐってみたんですね。ところが異様にヒットが少ない。
これは良くない兆候です。やってる人が少ないか、やってもうまくゆかないか、なんらかの問題があるか、・・・過去の経験からまずろくなことはない。
てふで数式表示ができれば嬉しいとまではいかなくてもやっといて損は無いはずなんだから、簡単に実現できるのならもっとインストール例の記述が見つかってもよさそうなもの。
探っていくうちに、そのネックが上記のようにレンタルサーバだと普通のてふをインストールするのが難しいというところにあるのが分かりました。
では、レンタルサーバだとてふによる数式表示は諦めなきゃいけないかというと、そうではなく代替方法として mimetex.cgi というCGIプログラムをインストールする方法がある。
ということをMeta-Wikiの中に、Mimetex alternativeで知りました。このあたりについては昨日の記事「Mediawikiで数式表示成功!」も参照して下さい。

では、ウィキクックレシピ(WikiCookRecipe)−みんなのレシピ みんなで料理−で mimetex.cgi をインストールして、数式表示ができるようになるまでの作業手順を紹介します。

(1)さくらレンタルサーバでは CGIプログラムは、各自のディレクトリの下のwwwディレクトリの下に好きなディレクトリを作ってそこに放り込めばよいことになっています(ディレクトリ名は必ずしもcgi-binとかである必要は無し)。ですから、まずwwwの下にCGI用のディレクトリを作成します。

(2)CGI用のディレクトリの下で、mimetex をダウンロードします。

wget http://www.forkosh.com/mimetex.zip

(3)解凍します。

unzip mimetex.zip

(4)解凍した内容から mimetex.cgi を作成します。

gcc -DAA mimetex.c gifsave.c -lm -o mimetex.cgi

gcc というのは GNU C Compiler というものだそうです。このあたりは全くのどしろうとですので、何がどうなってるか分からぬまま、http://www.forkosh.com/mimetex.htmlに書かれている手順に従っているだけです。おそらく解凍した中にはプログラムのソースとかが入っていて、それを gcc にかけると実行可能なものができるとかなんとかそういうこと? gcc っていうのは、OSとかが少々違っていても環境が違っていてもそれに合わせて実行可能なものを作ってくれるのかなあ?いや、まったく、何にも分かりません。が、こうやってできた mimetex.cgi が重要です。これがいったんできれば、解凍したものはたぶんもう用済みなんだと思いますが、私は心配でそのまま残してあります。

(5)mediawikiのextensionsの下に、新規に mimetex.php というファイルを作成して、Mimetex alternativeに指示してある内容を放り込みます。ほんとはここにそのコーディングをそのまま載せたかったんですが、htmlタグ無視での表示が難しそうだったので(調べてる時間もないし、preタグでもxmpタグでもきれいに表示されないので)、やめました。例によって全角<、>を半角に置き換えて下さい。もしくはMimetex alternativeから直接コーディングを引っ張ってきてください。
そして、下記コーディング中の「http://www.forkosh.dreamhost.com/mimetex.cgi」を、上でmimetex.cgiを置いたディレクトリに直して下さい。

<?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 <example> ... </example>
# 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 src=\"$img_url\" alt= \"$input\" />";

return $output;
}
?>

(6)LocalSettings.php の最後に以下の一行を付け加えます($wgUseTex は true にする必要無し)。

require("extensions/mimetex.php");

(7)includes/EditPage.php を以下のように修正します。これも全角<、>を半角に置き換えて下さい。もしくはMimetex alternativeを直接参照してください。

array( 'image' =>'button_math.png',
'open' => "<math>",
'close' => "<\\/math>",
'sample'=> wfMsg('math_sample'),
'tip' => wfMsg('math_tip'),
'key' => 'C'

 ↓

array( 'image' =>'button_math.png',
'open' => "\\<tex\\>",
'close' => "\\</tex\\>",
'sample'=> wfMsg('math_sample'),
'tip' => wfMsg('math_tip'),
'key' => 'C'

これで全てです。
後は、本当に数式表示ができるかどうかを試してみるだけ。

Mimetex alternativeのページを見つけるまでに紆余曲折多すぎて、時間がかかってしまいましたが、このページを見つけられれば誰にでも簡単にできそうなこと、だからいばるほどのもんじゃないんですけどね。でもやっぱりちゃんとてふによる数式表示がきちんとできるのを確認した時は嬉しくて、昨日の記事ではめいっぱいいばってしまいました、はは。

ウィキクックレシピ(WikiCookRecipe)−みんなのレシピ みんなで料理−は、みんなで食材情報やレシピを投稿したり、閲覧したりするサイトです。ユーザ登録は無料、お気軽にご参加下さい。閲覧の仕方、投稿の仕方が分かりづらいなどありましたら、このブログに是非その旨コメント下さい。回答するとともに、少しずつでも使いやすく改善していきたいと思っています。

ウィキクックレシピ(WikiCookRecipe)−みんなのレシピ みんなで料理−5月17日のデータ

登録ユーザ数:15
食材ページ数:413
レシピ数:18
新着食材ページ:無し
新着レシピ:無し

この記事は、次のトラックバック・コミュニティにトラックバックしています。各コミュニティには、テーマに沿ったいろんな人のブログ記事が集まっています。興味のある方は覗いてみて下さい。
にほんブログ村 トラコミュ Mediawikiへ
Mediawiki

 
 
 
posted by WCR管理人 at 10:50 | Comment(0) | TrackBack(0) | Mediawiki
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

この記事へのトラックバックURL
http://blog.seesaa.jp/tb/97120205
※ブログオーナーが承認したトラックバックのみ表示されます。

この記事へのトラックバック