-- WEBにTeXを埋め込む (2010/01/14 04:44) - 1668PV

かつて自宅サーバを立てたのだけど、過労で死去。
自宅サーバに痕跡があります。

それを久々に復活させました。
復活と言っても、まるで別物なのだけど。

モチベーションは、このサイトで数式を気軽に使いたかったからです。
今まで、数式を書く時は結構面倒なプロセスを踏んでいました。

(1)TeXで数式を書く。
(2)dviに変換。
(3)pdfに変換。
(4)スクリーンショットを取ってトリミング。
(5)photoshopでgifに圧縮。
(6)ページに張り付ける。

面倒くさい。
しかも、アップした後に間違いに気付いて、間違ったまま残してある数式もあります。
・・・実は。

そこで、サイトに直接にTeXを書きこめるようなシステムを作ろうと思い立ちました。
Wikipediaなんかにも実装されているような感じで。

色々なサイトを参考にしつつ、4時間くらいで実装。
決して難しいシステムではありません。

10行くらいで書いている人がいたので、それをベースにしました。
QA:mimeTeXもどき
・・・って良く見たら、この書きこみ、美文書作成入門の著者の奥村さんだったんですね。

先に完成した様子を出してみると、
\nabla^2u=-\phi
となります。
(これは卒研ですっかり愛着がわいてしまったポアソン方程式)

結果ではなくて過程が大事で、これを書くために自分がやらなければならないことは。
「<?php tex('\nabla2=-\phi')?>」と書くことだけです。
上の(1)〜(6)で言えば、(2)〜(5)を自動化したような感じ。

ここで、要求をまとめると。
(1)TeXを画像に変換するのは、最初の一回だけにしたい。
(2)lolipopはTeXの変換をしてくれないので、変換は自宅サーバで行いたい。
(3)自宅サーバじゃ不安定なので、変換した画像ファイルはlolipopに置きたい。
lolipopというのは、このサイトが置かれているレンタルサーバのことです。

それで、これをまとめると?



我ながら意味が分からない。
PHPでプログラムをするときに苦労するのが、文字コードのあたり。
特にエスケープシーケンスの扱いが未だに良く理解できてない。

数式にユニークな番号をふるのは面倒なので、数式からハッシュ値を計算してそれを数式の識別番号とします。
ハッシュ関数はmd5というやつを使います。
もし、既にこの番号が一致する画像データが存在していたら、それを表示するのみです。

そうでなければ、数式をurlencodeして、HTTPで通信できる形式に変換します。
これを自宅サーバに投げ込んで、pngに変換してもらいます。

自宅サーバ側でurldecodeすれば、元の数式が得られます。
ここで、エスケープシーケンスの処理としてstripslashesも必要。
とにかく、得られた数式を元に、再びハッシュ値md5を計算します。
同じアルゴリズムを使うので、同じ値が得られます。

数式をtex形式のファイルに書き込みます。
ファイル名は例によってハッシュ値。
これをlatexしてdviを作り、dvipngしてpngを作ります。

この処理は、PHPからsystemなる関数で行えるんですね。
これは知りませんでした。
これは、linuxができることならだいたいWEBから行えるということで、凄く便利。
他の使い方も模索したい。

とにかく、できたpngを元のサーバから読みだして、それをHTMLに表示させれば終了です。

これで数式を描くのも億劫でない!

-- 参考文献

-- 関連項目
TeX
TeX(2)
TeX(3)
TeX(4)
自宅サーバ
NetVistaの改造

名前
コメント
更新情報
コメント「Johnf318さん」(2015/11/30 06:26)
コメント「もちもちさん」(2015/10/15 01:25)
コメント「しもさんさん」(2014/07/11 12:57)
コメント「ljilchさん」(2014/06/28 02:40)
コメント「ledogoさん」(2013/06/25 23:11)
コメント「tcrwefcxtjさん」(2013/06/25 21:00)
コメント「gihjfldrwさん」(2013/06/23 08:07)
コメント「yfaewyqviさん」(2013/06/23 03:12)
コメント「Papan3世さん」(2013/05/09 11:48)
コメント「Papan3世さん」(2013/05/09 11:46)
コメント「Papan3世さん」(2013/05/09 11:45)
コメント「Papan3世さん」(2013/05/09 11:40)
コメント「Papan3世さん」(2013/05/09 11:37)
コメント「さん」(2013/04/21 01:57)
コメント「上田朋哉さん」(2013/04/08 02:43)
コメント「syazaqxさん」(2013/02/14 11:36)
コメント「seqdspさん」(2012/11/08 02:34)
コメント「kzghepさん」(2012/11/03 21:45)
コメント「さん」(2012/10/16 08:05)
コメント「yflpfhftbvpさん」(2012/07/21 14:51)
コメント「szodydさん」(2012/06/22 15:38)
コメント「nkhkajuttzさん」(2012/06/20 03:23)
コメント「jjomlllxさん」(2012/02/13 12:34)
コメント「さん」(2011/10/28 14:11)
コメント「onmqdqobrpdさん」(2011/10/15 03:57)
コメント「さん」(2011/08/20 14:05)
コメント「さん」(2011/06/26 20:59)
コメント「bfixkuohhzoさん」(2011/06/10 00:04)
コメント「さん」(2011/05/24 13:47)
コメント「dyecrnさん」(2011/05/12 20:06)
コメント「atkyzmさん」(2011/03/02 07:59)
日記「新年を迎えまして(4)[1445]」 (2011/01/23 00:17)
電子工学「TwitCrew[1762]」 (2011/01/02 06:22)
コメント「かってぃさん」(2010/12/07 15:49)
コメント「通りすがりさん」(2010/12/02 23:37)
電子工学「ソーシャル目覚まし[2611]」 (2010/11/14 07:41)
その他「自己紹介[6919]」 (2010/10/16 01:36)
コメント「かってぃさん」(2010/10/15 02:03)
コメント「えんぺらあさん」(2010/10/15 02:00)
電子工学「性格の木[1533]」 (2010/10/15 01:43)
PR

プロフィール
名前: かってぃ
職業: 学生、性別: 男性、年齢: 22歳、住所: 横浜市
理系用語
コンテンツ
トップページ
自己紹介
電子工学

料理
勉強
日記
ノート
自転車
その他
本棚
一言メモ
電子回路コレクション
ヘッドホンアンプのまとめ
リンク
三度の飯とエレクトロン
choilog
TwitCrew
Questo
Ropi.me
studylog
つい、投票。
tvtw - ツイッターでテレビ実況
理系用語
理系用語bot on twitter

ぷよぷよ!!クエスト 攻略
気ままでいたいがあんまり気ままではない感じのブログ
魚料理と簡単レシピ
素晴らしき哉,電気工学的人生!
アンチ・バベルの塔
大学生ブログランキング