如何用Python将Tex标记渲染为Html?
最近,Tex标记的支持被添加到了以下几个Stack Exchange网站:
这些网站使用了一个叫做Mathjax的库,能够正确地格式化用户提交的公式。
自从这个新功能上线后,StackExchange API返回的JSON格式的问题和答案文本中,公式是用$
符号来标记的(这里有个例子)。
基于这个API构建的StackPrinter,只是简单地打印出包含$符号的返回文本,结果非常糟糕(可怕的结果)。
我正在寻找一个可以在服务器端使用的Python库,能够解析并转换JSON数据,以便正确地在HTML中渲染Tex标记。
你知道有什么解决方案吗?
应用程序详情:
平台:Google App Engine
框架:webpy
1 个回答
2
你可以尝试把一个TeX转DVI的工具(比如 tex.latex2dvi 或 pytex)和一个DVI转图片的工具(比如 dvipng)结合起来使用。要在服务器上实现这个功能,你需要一个API接口,它可以接收TeX代码作为输入,然后输出一张图片。这样,你就可以通过指定这个接口的URL来渲染数学公式,并传入相应的参数。虽然这个过程比较复杂,但好消息是 Google Chart API已经提供了这样的服务。
不过,我建议你可以考虑使用 MathML 来在客户端渲染数学符号,因为除了Internet Explorer以外,所有主要的网页浏览器都支持这个功能,并符合HTML5标准。或者像StackExchange那样使用Mathjax(这也是一种客户端的标记渲染方式)。这看起来是最简单且跨平台的选择。