Tex标记语言,如何使用Python将其渲染为HTML?

4

Tex标记支持最近已经添加到以下Stack Exchange网站:

这些网站使用客户端Mathjax库来正确格式化用户提交的公式。

自从添加了这个新功能,StackExchange API返回的JSON问题/答案文本包含用$字符分隔的Tex标记公式(这里有一个例子)。基于此API构建的StackPrinter仅打印带有$的返回文本,并产生可怕的结果
我正在寻找一个服务器端Python库,它可以解析和转换JSON数据以正确呈现Html中的Tex标记。
你知道任何解决方案吗?
应用程序细节:
平台:Google App Engine
框架:webpy

为什么不像StackExchange一样在你的HTML页面中包含Mathjax呢? - Giuseppe Ottaviano
是的,这是一个选项,但我想知道是否存在可能的服务器端解决方案(可能不适用于字体问题)。 - systempuntoout
1个回答

2
您可以尝试将 TeX-to-DVI 工具(例如 tex.latex2dvipytex)与 DVI-to-image 工具(例如 dvipng)结合使用。要在服务器端实现这一点,您需要一个 API 端点,以 TeX 代码作为输入并提供图像作为输出。这样,您可以通过将其源指向该 URL 并使用相应的参数来将数学公式呈现为图像。这很复杂,但好消息是Google Chart API for math formulas已经提供了这样的服务。

无论如何,我建议使用 MathML 在客户端上呈现数学符号,因为所有主要的 Web 浏览器(除了 Internet Explorer)都支持此功能,并遵守 HTML5 标准。或者,就像 StackExchange 一样包含 Mathjax(这也是客户端标记渲染)。这似乎是最简单和跨平台的替代方案。


MathML 有其自身的缺陷 - 尝试找到正确的 doctype 和 MIME 类型以及其他浏览器嗅探触发器,使您的页面能够加载,更不用说在各种浏览器中保持一致的渲染了 - 这可能是困难的,如果可能的话。 - detly

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接