-
Tiddly公式显示之旅 - [电脑生活]
版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明
http://pchu.blogbus.com/logs/30929076.html
这篇文章是由我的TiddlyWiki里直接转过来的
pchu, 2008年11月02日 (创建于 2008年11月01日)
开头,我看到了 LaTeX Render【1】【2】,极端复杂,需要自己找服务器编译进行服务器端render成图片
然后我想起了 奥数之家 的如何输入和显示数学公式,找到了MathPlayer身上,也就是MathML一家的。但其实我一直误解了。MathML的本质在于极度XML层次化,用于显示公式的那一套标准(presentation markup)是一大堆<></>,用于储存公式的那一套(content markup)也是一大堆<></>。而我要找的应该还是LaTeX类表达。
于是回去研究 奥数之家 所用的$转化技术。找到了一个javascript:
http://www1.chapman.edu/~jipsen/mathml/ASCIIMathML.js
GPL的,是一个简易的转化js,$打头$结尾的ASCII公式变成ASCII格式化输出,有点丑,不过很实在,容易本地化。
http://www1.chapman.edu/~jipsen/mathml/asciimath.html
之后我从wikipedia页面找到了个不错的、新出的firemath插件,用于从显式表达式制作MathML从而方便firefox来markup,效果可以说非常漂亮,不过完全不符合我要在TiddlyWiki运用公式的目标。
然后找到了个Equation server for .NET,在线转换LaTeX to bmp, MathML to bmp, LaTeX to MathML,又是soft4science的作品( http://www.soft4science.com/products/EquationServer/ )。开源并提供下载,不过也是服务器端的render,网站本身没提供端口供大众使用,没办法又作罢。
不久我从一葡萄牙人的blog了解到mimeTeX,心想是了,LaTeX to image,大网站,应该提供端口供大众使用吧。谁知道它这么小气……至于那个葡萄牙人也自己写了个在线LaTeX to image,没明显提供端口,不过可以搞到手,是”http://www.bgoncalves.com/online/latex/cgi-bin/mimetex/mimetex.cgi?“+"%20%5CLarge%20%5C"+encodeURIComponent(expr)
不过从mimeTeX我终于得到了最后的解决方法:MathTrans
本来标准做法是<head>里加<script type="text/javascript" src="http://www.mathtran.org/js/mathtran.js"></script>,用<img alt="tex:a^2+b^2=c^2">调用。
不过通过研究那个js可以再简化一点,直接使用端口 "http://www.mathtran.org/cgi-bin/mathtran?tex="+encodeURIComponent(expr),省去查错的环节。
现在的做法是,修改TiddlyWiki.zh-Hans.html,找到用于wikify的formatter的image pattern部分(搜索match: "\\<>]?[Ii][Mm][Gg]\\["即可),其中lookaheadMatch[4]就是从img标签里extract出来的url了。在img.src = lookaheadMatch[4]一句前加上
if(lookaheadMatch[4].substr(0,1)=="$") lookaheadMatch[4] = "http://www.mathtran.org/cgi-bin/mathtran?tex=" + encodeURIComponent(lookaheadMatch[4].substr(1));
问题便解决。使用方法是[img[$expression]]
另外据mimeTeX的介绍,我们还有texttogif和gladTeX可以对带公式html进行本地编译,生成图片。
好消息!mimeTeX的进化版mathTeX(有好心人)提供服务器端口进行实时rendering!
http://www.forkosh.dreamhost.com/mathtex.cgi?c=
http://www.cyberroadie.org/cgi-bin/mathtex.cgi?c=
http://www.problem-solving.be/cgi-bin/mathtex.cgi?c=
收藏到:Del.icio.us
TiddlyWiki简介
Blog:E lucevan le stelle2008-12-21 03:36:21
引用
下面Blog引用了该文:
评论
S_x = \left \{ f:x \rightarrow x | f\, is\, invertible \right \}
这样的公式就显示不出,会将 "|" 前面部分解释为 alt text for img.
不如做一个 tag 为 systemConfig 的 tiddler, 直接在 config.formatters 中 push 一个新的 formatter.