项目:我想在PHP中构建一个LaTeX-to-MathML转换器。为什么?因为我是一名数学家,我想在Drupal网站上发布数学。它不必翻译所有的LaTeX,因为基本的文档级资源由CMS很好地处理,并且不会在LaTeX中开始编写;它只需将用LaTeX编写的数学翻译成用MathML编写的数学。虽然我觉得我已经完成了尽职调查,但这似乎并不存在。也许我错了 - 如果你知道一些能达到这个目的的东西,请务必告诉我,并提前感谢你。但假设它不存在,我想我必须自己去写。
但事情是这样的:我从来没有做过这么雄心勃勃的事情。我真的不知道从哪里开始。我已经使用PHP多年了,但只是做标准的“用PHP和MySQL构建CMS”类型的东西。我从未尝试过任何看似复杂的翻译,从一种语言到另一种语言。
我只是愚蠢地考虑用正则表达式来做 - 毕竟,LaTeX是一种更正式的语言,它几乎不允许几种病态的边缘情况,比如HTML。但另一方面,我很聪明地意识到这可能是一个可怕的想法:现在我有两个问题,我肯定不想像this guy那样结束。
那么如果不是这样的话(对吗?),那是什么?我该如何开始考虑这个问题?我本质上是用PHP编写LaTeX编译器,如果是这样的话,我需要知道做什么(比如,我应该先阅读Purple Dragon book吗?)?
我对这个项目的前景感到非常兴奋和非常恐惧,但是,嘿,这就是我们都学会成为程序员的方式,对吧?如果我们需要的东西不存在,我们就去构建它,必要性就是......你明白了。非常感谢所有人提前为您提供的任何和所有指导。
答案 0 :(得分:4)
http://drupal.org/project/drutex
http://drupal.org/project/jsmath
http://www.forkosh.com/mimetex.html
这些都有什么问题?
答案 1 :(得分:3)
除非您想将此作为学习体验,否则不要自己编写解析器。只需从PHP调用现有的LaTeX工具链即可。
LaTeX2HTML与你将要获得的一样好,而且这是来自LaTeX2HTML维护者的(旧)description of a LaTeX to MathML convertor。
答案 2 :(得分:2)
去年我真的去了。我有一些工作,虽然我不会声称它有任何优雅或魅力,它也没有完全功能。
如果你想将方程式转换为MathML,而不是完整的LaTeX转换,那么你可以使用itex2MML。如果您可以在PHP中加载扩展,则可以使用PHP绑定编译itex2MML并在脚本中本地使用它。 Makefile可能需要一些黑客才能使所有配置正确。
链接:
答案 3 :(得分:0)
好吧,这个答案很乱。
这是一个清理版本:
由于正则表达式显然不会为这类事物的翻译者削减它,因此根据您的目标,您有两种选择:
答案 4 :(得分:0)
如果您可以将公式转换为图片,那么有很多解决方案。如果您特别需要MathML,则several those为well。但是,您可以考虑jsMath使用javascript在浏览器中呈现(部分)LaTeX。它被Sage使用并在那里运作良好。
答案 5 :(得分:0)
维基百科正在使用用OCaml编写的LaTeX到HTML(或图像)翻译器。您可以在那里借用一些代码,或者只是按原样使用它。