
一直以来,在计算机上输入复杂的数学公式都不是件轻松事。上世纪70年代时,美国著名的计算机教授高德纳断断续续花了超过10年时间编写出了TEX这个能够排出精美数学公式的排版软件,而我最近见到的一位开发者在排版数学公式上可能有着和这位著名教授类似的经历,凭借着对数学公式和排版系统超过8年的研究经验,Frank(化名)做出了基于HTML5的数学公式排版引擎Flying math。
如果你碰巧点了上面的链接去了Flying math的官网,那么你看完之后可能会觉得我上面的形容过于夸张了。事实上,作为一个不懂排版的普通用户,我起初并没能认识到Flying math有多好,以至于我当时最想问Frank的问题就是他为何要做一个这么偏的产品。
不过当Frank给我演示了Flying math后,上面的疑问我只是事后当玩笑讲给他听了。
从目前的情况来看,传统的数学公式编辑器界面操作复杂,现有的基于Web的数学公式排版引擎又很少,并且可能还需要使用者熟悉一些脚本语言,所以市场上缺少一个简单易用、支持所见即所得的数学公式排版引擎,而Flying math的出现则解决了这一系列问题。
做过毕业论文的读者应该都知道,通过Office这样的工具输入大量的数学公式是非常耗时耗力的,而对于矩阵、各种求和公式这样的东西即使在纸上手写可能也要很久,但Flying math能做到通过它输入公式比你手写的速度还快——Flying math界面就是一个“输入框”,没有任何按钮,用户甚至不需要使用鼠标就可以完成所有类型数学公式的输入。所有类型的数学字符都可以通过敲击“空格+对应的符号英文名称缩写”调出,而数学公式中常用的上下标则可以通过“Ctrl+方向键”来移动。比如我敲“空格sum”就可以调出各类求和符号、敲“空格hat”就可以调出各种类型的上、下标。

与此同时,Flying math可以对很多排版细节做到自动识别、纠正。比如,不同位置的数学字符有的是正体、有的是斜体,Flying math可以自动纠正;再比如即使一个包含若干个括号的公式需要换行,Flying math也可以自动调节对应括号的类型和大小。这些规范看似简单,但在背后的排版引擎中却需要大量调节工作。
Flying math之所以能做到这些,则要归功于其背后的两套系统——数学公式排版系统和动态智能可检索工具条(Dynamic Smart Searchable Tools,简称DSST)。按照Frank的说法,这两套系统相互独立而又嵌套在一起。排版系统要保证公式能按正确的方式优雅地呈现在用户面前,为了达到这个目的,Frank还自制了5款字体;DSST则要让用户能方便地快速输入各类数学字符。当用户按空格键时调出来的那个字符候选框就是DSST的一部分,我们可以把它理解为一个智能的公式输入法系统。
借助这两套系统,Flying math还允许用户对公式进行撤消、恢复、任意复制、整体复制等多项操作,虽然我们已经习惯了对文字进行这类操作,但当对公式做同样的动作时还能保证它们正确显示就不是一件容易事了。总的来说,Flying math给我的感觉就是它远远领先于同类的其他产品,而且短期内也难以被复制。
再开发出这样一个纯工具型的产品之后如何使用它就成了问题。Frank本人更倾向于将其用在在线教育领域,有了Flying math提供的基础,在线数学考试、在线数学作业、在线黑板等都具备了可能,而且Frank计划在完善了数学部分的开发后,他还将为Flying math加入化学公式和几何图形的支持。除了在线教育外,将其用在Google Docs、微软的Office 365等在线文档上也是可以选择的方向,不过看上去这个方向并不是那么容易操作。
在研究了接近10年的数学公式和排版后,Frank几乎是自己一个人做出了Flying math。虽然它的排版系统可谓很强大,但在引导用户使用上还是有一些需要改善的地方。接下来,我们就等着看Frank如何依托这款纯工具搭建起一个在线教育站点吧。
0 条评论
请「登录」后评论