HTML设计之初,没有考虑到数学公式排版,所以要想在里面添加一些比较复杂的符号就没有标签可以使用,唯一的折衷方法是,利用图片来代替显示,但是这样实在是麻烦。

这种不足很多人都意识到了,W3C的一个recommendation,MathML,就是针对html缺乏数学公式支持提出的,刚发现的时候,我欣喜若狂,没过多久就变成失望了,缘故是,MathML需要浏览器的渲染支持,大部分用户还在使用万恶的IE6,就是现在支持的浏览器,比如最新版的firefox,渲染效果并不好,本来应该很优美的公式,看起来只是大致正确表示出来而已。

MathML最大的弊端是,一个很简单的公式,用标签写起来要浪费一大堆文本,混杂在一起,没有第三方辅助工具的话,很难编辑和阅读。

我一直想,如果能在HTML里面嵌入latex该有多好啊,从语法角度来看,成为W3C标准是没有指望了,但是就像flash一样,能够作为一个插件成为事实上的标准也行啊,这个目标看起来同样很遥远,仔细想想,有几个用户会在web页面上写科学公式呢?

唯一的做法是,把latex作为在服务器端处理的脚本,客户端浏览器请求的时候,自动执行处理,生成相应的图片,就等同于服务器端的php,asp之类的脚本一样,如此就完全不用考虑到不兼容的问题。这种想法很容易被人想到,而且早就有人实现了,这里有一个页面,可以动态生成latex的图片。

wordpress也有相应的支持,提供一个生成latex图像的服务器,把要处理的latex文本作为url里的一个参数传入,就会返回一幅图片,http://l.wordpress.com/latex.php?latex=,后面这个latex=的参数就是latex源数据,只需要加入一个img标签,然后把src写成相应的url,就可支持数学公式的显示。当然,这样毕竟还是麻烦,有时候还要转换url编码,wordpress有一个latex插件,直接支持方括号latex标签,很方便。

下面这个随便写的公式,是个试验

[latex size=”2″]frac{x+sum_{i=0}^{n}{(i^2+int_a^b{3sin^i(x)dx}})}{sqrt[3]{x^2+y^2}piepsilon}[/latex]

看起来效果很不错哦;-)


发表评论

邮箱地址不会被公开。 必填项已用*标注