如何用Python将Tex标记渲染为Html?

4 投票
1 回答
996 浏览
提问于 2025-04-16 09:22

最近,Tex标记的支持被添加到了以下几个Stack Exchange网站:

这些网站使用了一个叫做Mathjax的库,能够正确地格式化用户提交的公式。

自从这个新功能上线后,StackExchange API返回的JSON格式的问题和答案文本中,公式是用$符号来标记的(这里有个例子)。
基于这个API构建的StackPrinter,只是简单地打印出包含$符号的返回文本,结果非常糟糕(可怕的结果)。

我正在寻找一个可以在服务器端使用的Python库,能够解析并转换JSON数据,以便正确地在HTML中渲染Tex标记。
你知道有什么解决方案吗?

应用程序详情:
平台:Google App Engine
框架:webpy

1 个回答

2

你可以尝试把一个TeX转DVI的工具(比如 tex.latex2dvipytex)和一个DVI转图片的工具(比如 dvipng)结合起来使用。要在服务器上实现这个功能,你需要一个API接口,它可以接收TeX代码作为输入,然后输出一张图片。这样,你就可以通过指定这个接口的URL来渲染数学公式,并传入相应的参数。虽然这个过程比较复杂,但好消息是 Google Chart API已经提供了这样的服务。

不过,我建议你可以考虑使用 MathML 来在客户端渲染数学符号,因为除了Internet Explorer以外,所有主要的网页浏览器都支持这个功能,并符合HTML5标准。或者像StackExchange那样使用Mathjax(这也是一种客户端的标记渲染方式)。这看起来是最简单且跨平台的选择。

撰写回答