Categories

数学公式识别

在电脑上输入公式一直不是一件很愉快的事情,经历过 Word 的公式编辑器时代,还有 MathType ,只能说输入不方便而且结果非常难看。LaTeX 虽然号称是“所想即所得”,书写数学公式也相对流畅,然而有时候稍微复杂的公式写出来变成一堆结构不明显的代码,实在是比较难以继续——又不是所见即所得的,LaTeX 的错误信息又是那么让人摸不着头脑,遇到复杂的公式总是忍不住写一部分又编译一下看看是不是有问题,结果弄得很麻烦。但总归 LaTeX 渲染出来的公式目前来说还是最好看的,而且所见即所得的公司编辑确实也比较难做。Office 2007 开始有了新的公式编辑器,可以使用类似 LaTeX 的语法,渲染结果也比以前的那种要漂亮许多,不过那个所见即所得的编辑实在是非常难以驾驭,经常出现的结果是写了一大坨公式想要删掉其中的一个符号却删不掉,Office 只准你把这一整坨一起删掉,实在是很恶心,而且有时候还会有一些诡异的 bug 。就目前我尝试过的解决方案来说,我个人觉得 Emacs + CDLaTeX.el 是输入起来最迅速的,各种常用的符号、加粗斜体等操作都可以迅速完成;而最好用的是 LyX ,所见即所得的 LaTeX 公式编辑,总的编辑体验比 TeXmacs 要好。

不过 LaTeX 里各种奇怪的数学符号,还有一些结构稍微复杂一点的公式排版,也并不是那么容易搞定的,时常得查一下 symbols.pdf 或者 The LaTeX Mathematics Companion 才成。其实现在许多编辑器都提供一个工具栏,上面列了各种符号,慢慢找到你要的那个符号,点一下就能插入了,不过找起来始终是很痛苦的。

然后后来发现有一个叫做 Detexify 的网站,做的事情就是你用鼠标画数学符号,它帮你识别出来具体是哪个符号然后给出 LaTeX 代码。界面很友好,识别率也还行,而且源代码也是开放的,有兴趣的同学可以看一看。特别是做识别这方面的同学可以考虑能不能改进它的识别率。

其实如果识别得很好的话,这种输入方式应该还是很方便的——虽然鼠标输入还是诸多不便,但是应该不久的将来触摸屏之类的东西会普及的吧?如果能像在纸上写一样方便,又能精准地识别出来的话,实在是一件美事啊。不过其实这方面的工作似乎也并不少,比如今天无意中看到这个:Recognizing Handwritten Mathematics,不知道效果如何,它们的 demo 需要装 JVM ,于是我还没有尝试过。另外,其实从 Windows 7 开始,系统的附件里就自带了一个手写公式输入的程序:

用户界面和交互做得很贴心,写到边缘的地方输入区域会在那里自动扩展。不过识别率似乎还没有到我觉得可以日常使用的程度——也许一方面是因为我用 Trackpoint 输入得实在是太歪歪扭扭的缘故吧。 -,-bb

13 comments to 数学公式识别