基于PHP的LaTeX解析器 - 从哪里开始?

时间:2010-03-11 00:37:04

标签: php latex parsing

项目:我想在PHP中构建一个LaTeX-to-MathML转换器。为什么?因为我是一名数学家,我想在Drupal网站上发布数学。它不必翻译所有的LaTeX,因为基本的文档级资源由CMS很好地处理,并且不会在LaTeX中开始编写;它只需将用LaTeX编写的数学翻译成用MathML编写的数学。虽然我觉得我已经完成了尽职调查,但这似乎并不存在。也许我错了 - 如果你知道一些能达到这个目的的东西,请务必告诉我,并提前感谢你。但假设它不存在,我想我必须自己去写。

但事情是这样的:我从来没有做过这么雄心勃勃的事情。我真的不知道从哪里开始。我已经使用PHP多年了,但只是做标准的“用PHP和MySQL构建CMS”类型的东西。我从未尝试过任何看似复杂的翻译,从一种语言到另一种语言。

我只是愚蠢地考虑用正则表达式来做 - 毕竟,LaTeX是一种更正式的语言,它几乎不允许几种病态的边缘情况,比如HTML。但另一方面,我很聪明地意识到这可能是一个可怕的想法:现在我有两个问题,我肯定不想像this guy那样结束。

那么如果不是这样的话(对吗?),那是什么?我该如何开始考虑这个问题?我本质上是用PHP编写LaTeX编译器,如果是这样的话,我需要知道做什么(比如,我应该先阅读Purple Dragon book吗?)?

我对这个项目的前景感到非常兴奋和非常恐惧,但是,嘿,这就是我们都学会成为程序员的方式,对吧?如果我们需要的东西不存在,我们就去构建它,必要性就是......你明白了。非常感谢所有人提前为您提供的任何和所有指导。

6 个答案:

答案 0 :(得分:4)

答案 1 :(得分:3)

除非您想将此作为学习体验,否则不要自己编写解析器。只需从PHP调用现有的LaTeX工具链即可。

LaTeX2HTML与你将要获得的一样好,而且这是来自LaTeX2HTML维护者的(旧)description of a LaTeX to MathML convertor

答案 2 :(得分:2)

去年我真的去了。我有一些工作,虽然我不会声称它有任何优雅或魅力,它也没有完全功能。

如果你想将方程式转换为MathML,而不是完整的LaTeX转换,那么你可以使用itex2MML。如果您可以在PHP中加载扩展,则可以使用PHP绑定编译itex2MML并在脚本中本地使用它。 Makefile可能需要一些黑客才能使所有配置正确。

链接:

答案 3 :(得分:0)

好吧,这个答案很乱。

这是一个清理版本:

由于正则表达式显然不会为这类事物的翻译者削减它,因此根据您的目标,您有两种选择:

  1. 您只是希望能够以某种方式在您的网站上显示LATEX。
    • 如果这是你想要的,有一个简单的解决方案在那里为你提供一个比编辑理论更高级的书更容易。要么是某种方式在您的网站上包含乳胶,现有的翻译,或其他什么。

  2. 您更热衷于此,并希望了解编译器理论。
    • 如果是这种情况,我不能足够推荐PDB。这是一本引人入胜的书,你会从中学到很多东西;在前两章之后,您将学习足够的词汇分析来完成这个项目。迄今为止我花在教育资源上的最佳资金!

答案 4 :(得分:0)

如果您可以将公式转换为图片,那么有很多解决方案。如果您特别需要MathML,则several thosewell。但是,您可以考虑jsMath使用javascript在浏览器中呈现(部分)LaTeX。它被Sage使用并在那里运作良好。

答案 5 :(得分:0)

维基百科正在使用用OCaml编写的LaTeX到HTML(或图像)翻译器。您可以在那里借用一些代码,或者只是按原样使用它。