专利名称:一种基于web的数学公式编辑系统及方法
技术领域:
本发明涉及一种数学公式的计算机编辑技术,特别涉及一种基于WEB的数学公式 编辑系统及实现方法。
背景技术:
随着互联网的迅速发展,通过互联网获取、发布和共享信息资源已成为人们工作、 学习、研究和交流的基本手段。数学是科学的基本语言,因而对于教育和科研领域来说,数 学公式的输入与编辑是除普通文字的输入与编辑之外最为重要的输入和编辑工具。然而, 自上世纪末互联网诞生以来,基于WEB在线快速输入和编辑数学公式的问题一直没有得到 系统和彻底的解决,它严重制约了网络教育、学术交流与文献记录的发展。
在现有的技术中,有两种解决方案,一种是基于图片显示,一种是基于数学公式标 记语言MathML (Mathematical MarkipLanguage)来标记数学公式,其中图片显示分为普通 静态图片显示和动态生成图片显示,而MathML标记的数学公式则需要支持MathML的浏览 器中才可以显示。 普通静态图片是直接利用某些软件制作数学公式图片上传到WEB服务器,这种显
示数学公式的方法会造成数据重用困难。动态生成图片是通过公式备注信息生成的图片,
公式备注信息数据可以重用。不过,修改公式备注信息一般基于文本的,非可视化的,并且
公式备注信息需要通过学习才能理解和使用,这对于使用和推广是不方便的。目前所有的
浏览器支持常见图片格式的显示,但是使用图片会有一些问题的,高质量的图片虽然打印
比较清晰,但是会影响到网络传输,而低质量的图片显示和打印都不清晰。 MathML是描述数学公式的国际标准,目前已经有一些浏览器例如Firefox、 Opera
开始支持MathML解析、显示,但是占市场90%的主流浏览器MSIE却不支持MathML,用户需
要安装插件才可以编辑显示数学公式。从W3C(国际互联网协会)网站收录的情况来看,目
前实现在主流的IE浏览器下显示和编辑数学公式的方案,无一例外需要安装额外的软件
或插件。
发明内容
本发明的目的在于提供一种基于WEB的数学公式编辑系统及方法,可以在WEB浏 览器中直接编辑数学公式,操作更方便快捷。 为达到上述目的,本发明采用以下技术方案一种基于WEB的数学公式编辑系统, 其包括 编辑模块,用于在WEB浏览器编辑窗口中输入数学符号编辑数学公式,该数学公 式是用HTML表示的; 转换模块,用于将所述数学公式进行压縮转换成文本格式的代码; 通讯模块,用于将所述转换模块生成的数学公式的代码发送并存储到WEB服务器
中;
WEB服务器,用于存储所述数学公式的代码。 具体地,所述通讯模块还用于将WEB服务器中存储的数学公式的代码下载到客 户端;该系统还包括解析模块,其用于将下载得到的数学公式的代码进行解析,还原成用 HTML表示的数学公式;在需要修改的时候,数学公式传送给所述编辑模块。
所述数学符号包括普通字符和特殊字符;所述特殊字符是利用VML矢量图采用贝 塞尔曲线来拟合或使用图片来显示。 所述编辑模块中包括数学公式对齐单元,其用于将所述WEB浏览器编辑窗口中的 数学公式进行对齐。 本发明还提供了一种基于WEB的数学公式编辑方法,其包括以下步骤 A、在WEB浏览器编辑窗口中输入编辑数学公式,该数学公式是用HTML表示的; B、将所述数学公式进行压縮转换成文本格式的代码; C、将所述转换模块生成的数学公式的代码发送并存储到WEB服务器中。 具体地,所述步骤A具体为打开WEB浏览器编辑窗口 ,在窗口中构造一个编辑光
标;在所述编辑光标处显示由输入的数学符号组成的数学公式;将所述WEB浏览器编辑窗
口中的数学公式进行对齐。 所述步骤C之后还包括步骤将WEB服务器中存储的数学公式的代码下载到电脑 终端;将下载得到的数学公式的代码进行解析,还原成用HTML表示的数学公式并进行修改 编辑;返回步骤B。 本发明数学公式的编辑与解析均在计算机终端的编辑模块和解析模块中进行,对 网络WEB服务器没有增加额外的计算处理负担,具有方便、实用、高效率与低成本的优点。
图1是本发明一种基于WEB的数学公式编辑系统的一种实施例的结构示意图; 图2是本发明一种基于WEB的数学公式编辑方法的一种实施例的流程图; 图3是本发明中特殊数学符号采用贝塞尔曲线进行拟合的示意图; 图4是常见数学公式的等号线高度版面占位示意图; 图5是本发明中WEB浏览器窗口的示意图; 图6是本发明整个数学编辑过程的示意图。
具体实施例方式
本发明涉及一种基于浏览器的可视化的数学公式编辑技术、数学公式显示技术。
是一个让用户能够在浏览器中编辑、发布、浏览、修改数学公式的软件系统。 参考图l,本发明的一种基于WEB的数学公式编辑系统在WEB浏览器中运行,计算
机终端不需安装任何插件;该系统包括 编辑模块1,用于在WEB浏览器编辑窗口中输入数学符号编辑数学公式,该数学公
式是用HTML表示的;本发明采用的是IE浏览器(5. 5+); 转换模块2,用于将所述数学公式进行压縮转换成文本格式的代码; 通讯模块3,用于将所述转换模块生成的数学公式的代码发送并存储到WEB服务
器中;还用于将WEB服务器中存储的数学公式的代码下载到解析模块;
WEB服务器4,用于存储所述数学公式的代码。 解析模块5,其用于将下载得到的数学公式的代码进行解析,还原成用HTML表示 的数学公式并传送给所述编辑模块。 在计算机用户终端设有编辑模块1、转换模块2和解析模块5。在浏览器IE窗口 中编辑模块利用HTML构成了所有类型的数学公式;转换模块将HTML表示的数学公式信息 压縮成数据量相对较小的公式备注信息(描述数学公式特征的文本格式的代码);利用通 信网络将公式备注信息发送存储到WEB服务器中;当用户需要对数学公式进行进一步的修 改时,用户可以发出请求上网将WEB服务器中的公式备注信息下载到本地用户终端的解析 模块5,将公式备注信息还原成表示数学公式的HTML ;显示成可阅读的数学公式;这样就可 以进行进一步的修改编辑了。 由于采用JavaScript脚本语言(简称JS)完成整个公式编辑系统功能模块的设
计以及采用HTML来显示数学公式,因此,本发明具有以下优点 1、基于WEB浏览器,不安装任何软件、插件、字体等; 2、对服务器压力小,可以接受比较大的并发数; 3、数学公式打印效果出来和普通文本打印效果是一样清晰。 参考图2,图2是本发明一种基于WEB的数学公式编辑方法的一种实施例的流程 图;其包括以下步骤 S01、在WEB浏览器编辑窗口中输入编辑数学公式,该数学公式是用HTML表示的; 具体过程为打开WEB浏览器编辑窗口,在窗口中构造一个编辑光标;在所述编辑光标处 显示由输入的数学符号组成的数学公式;将所述WEB浏览器编辑窗口中的数学公式进行对 齐; S02、将所述数学公式进行压縮转换成文本格式的代码; S03、将所述转换模块生成的数学公式的代码发送并存储到WEB服务器中; S04、将WEB服务器中存储的数学公式的代码下载到电脑终端; S05、将下载得到的数学公式的代码进行解析,还原成用HTML表示的数学公式并
进行修改编辑;返回步骤S02。 以下是各个步骤的详细解释 A、关于数学公式的构造 数学公式的显示由以下两部分构成 1、字符的显示对于普通的单个字符,可利用操作系统平台上自带的字体来显示; 对于某些特殊的字符,可利用图片来显示。对于IE浏览器中,也可以利用VML中的贝塞尔 曲线来拟合字符;对于支持SVG (Scalable Vector Graphics)的浏览器,也可以采用贝塞尔 曲线来拟合字符,图3为字符E的贝塞尔曲线拟合示意图。 2、结构的显示对于分式、根式等数学公式,采用HTML中的Table标签来显示。 有的公式结构可以完全利用Table构成,例如分式;有的公式含有拉长变化的部分,例如根 式,大括号等,这些公式需要Table+图片组合来完成。高质量的图片打印比较清晰,但会影 响网络传输;低质量的图片会导致显示和打印不清晰。不同的浏览器,可以使用VML或SVG 矢量图来取代图片。经过适当的CSS(Cascading Style Sheets)设置的Table+图片/VML/ SVG,可以显示成标准的数学公式。
CSS样式设置中的重要部分是使得数学公式对齐。实现数学公式对齐主要是设置 公式对应HTML的CSS样式中的Vertical-Align属性取值。实验证实,将Vertical-align 取为某常数C与等号线高度的差刚好合适,其中常数C与字号大小有关。不同类型的数学 公式等号线高度是不同的,附图4列举了常见数学公式的等号线高度版面占位示意图。该 表描述了大部分基本数学公式等号线版面占位的示意图,一些与上表中某结构类似的其他 基本公式没有列举,表格中备注一栏描述了公式的Table结构。 CSS样式设置中另外一个重要部分是设置display: inline。该设置保证数学公式 从左到右水平排版。 公式构造充分利用了 HTML元素"流布局"的特性,该特性使得所有公式从左到右 依次排列。 B、关于编辑功能 公式编辑时网页并不进入编辑状态,而是使网页处于非编辑状态。换言之,就是显 示为普通的网页。普通网页中如果没有表单元素,是不会有计算机操作系统默认的编辑光 标的,因此,本发明实例采用竖线来模拟编辑光标的外观和行为。 实现公式编辑模块的关键是首先实现编辑光标。采用HTML标记来显示一条竖线, 利用JS脚本使得该竖线的黑白颜色交替显示。当编辑器接收到用户输入的方向键指令时, 编辑光标在字符或公式单元之间移动位置;当编辑器接受到用户输入的符号键指令时,在 编辑光标前插入相应符号的HTML代码。 实现编辑光标导航方法通过鼠标和键盘操作,改变编辑光标的位置,使得当前编 辑点可以导航到不同公式单元中。实现改变编辑光标的位置的方法是,删除光标节点,在目 标位置添加一个新的光标节点。鼠标点击不同的公式单元,光标就进入目标公式单元的左 侧、右侧或内部。由于数学公式是树型结构,目标公式单元需要通过程序来控制到具体的公 式节点。 实现数学公式的修改方法当需要修改数学公式的时候,首先读取目标数学公式 中的HTML数据,然后将HTML数据写入编辑模块,之后就可以修改目标公式了 。编辑好数学 公式之后,保存公式,就覆盖了目标数学公式,这就实现了修改功能。 为方便用户输入数学公式,将同类型的数学符号和公式模板命令的按钮放在浏览
器窗口的菜单里,如图5所示,用户打开菜单,只要点击符号或公式模板按钮,就可以插入
相应的数学公式了,完全实现了所见即所得的可视化编辑。此外,对于数学公式编辑中频繁
使用的上标与下标的输入,同时兼容了快捷键输入,上标输入快捷键Shift+';下标输入
快捷键Shift+_。 C、关于公式存储 经过公式编辑模块编辑好的数学公式是由HTML构成,这些HTML是一棵复杂的节 点树。由于数学公式的特殊结构,表示数学公式的HTML数据量比较大,不方便直接存储或 网络传输。分析这棵树的结构,通过公式数据压縮方法将其压縮成数据量很小的公式备注 信息。所谓公式备注信息,就是描述数学公式的特征的数据,每一个数学公式都对应着一段 公式描述信息的文本。所谓公式数据压縮方法,就是通过输入HTML表示数学公式节点树对 象node,经过运算之后,输出数据量比较小的文本String。记该过程为Compress (node),可 以用如下公式来表示
6
String = Compress(node) 公式数据压縮方法如下 步骤1 :输入HTML表示的公式节点树对象node,转到步骤2 ; 步骤2 :逐步执行以下分步骤, 步骤a :如果对象node为一个字符节点,返回一个简短的"单词"; 步骤b :如果对象node为一个表格节点,该节点为M行N列,记这MXN 个子公式对象分别为 EQ_{11} , EQ_{12} , , EQ」1N), EQ_{21} , EQ_{22} , , EQ」2N), … EQ_{Ml} , EQ_{M2} , . , EQ_細, 返回带有MXN个参数的"函数",这个函数的函数名是唯一的,是一类公式的识别特征。这MXN个参数值分别为 Compress (EQ_{ij}),其中i = 1, 2, . , M ; j = 1, 2, . , N ; 步骤c :如果对象node是未定义类型,返回空字符串; 步骤d :如果对象node是一个表格的单元格节点,转到步骤3 ; 步骤3 :记为L为对象node子公式个数,逐步执行以下分步骤 步骤a :如果L = O,返回空字符串; 步骤b :如果L = l,取得子公式节点childEQ,返回Compress (childEQ); 步骤c :如果L > l,取出最后一个子公式节点对象,记为endchildEQ ; 记剩下所有的公式整体节点对象为lastchildEQ,返回Compress (lastchildEQ) +Compress(endchildEQ); 所述公式描述信息可以是国际上通行的MathML (MathematicalMarkupLanguage),可以是数学专业人士比较熟悉的LaTeX命令,也可以采用其他文本来表示。本发明实施例采用LaTexX作为公式备注信息。 本发明实施例中的公式描述信息数据量和公式原始HTML信息数据量二者差别非
常大,平均来讲,二者比率如下公式
公式备注信息数据量 1公式原始HTML信息数据量~ 如果采用MathML作为公式描述信息,上述公式右端的比率值要大一些。总之,通过HTML节点树构成的数学公式信息就被大大"压縮"了 ,被压縮的公式描述信息很方便数据存储和网络传输。公式描述信息是基于文本格式,它和网页中其他数据一起发送到WEB服务器来存储。因为公式描述信息完整保存了数学公式的特征,所以通过它可以在线重用,修改,编辑数学公式。
D、关于公式解析 公式解析模块的功能主要是读取页面中的公式备注信息,然后分析公式备注信息中的语法,将其还原成显示数学公式的HTML。公式解析模块通过接口输入公式备注信息,然后输出对应的HTML原始数据。这是一个信息数据被还原的过程,也是一个信息数据被解压縮的过程。 本发明实例的公式备注信息采用LaTeX,其中LaTeX的语法分析器是公式解析模 块的重要部分。语法分析器主要利用到了递归方法,将复杂的表达式分解成简单的表达式。 对于含有参数的表达式,则将参数从括号中提取出来进入递归;对于没有参数的表达式,直 接还原为对应的HTML。 公式解析模块最后得到的是HTML数据,这些HTML代码显示的数学公式是没有对 齐的,需要通过遍历每一个公式符号和结构单元执行CSS设置之后才能显示为整齐的数学 公式。 参考图6,图6示出了本发明编辑数学公式整个过程,从WEB服务器中下载传送带 有数学公式代码的网页数据到本地的浏览器中,载入网页内容后从中提取公式备注信息, 解析还原得到数学公式,将其读入显示在浏览器的编辑界面中进行修改编辑,编辑完后进 行压縮转换成对应的公式备注信息;发送存储到WEB服务器中。 本发明利用网页脚本语言JavaScript开发可视化公式编辑器(编辑模块)和公 式解析器(解析模块)。用户在网络终端利用可视化公式编辑器编辑由HTML构造的数学 公式,数学公式被转化为文本格式的公式备注信息,发布后存储于网络服务器中;当用户在 计算机终端打开所发布的网页时,网络终端从网络服务器中提取相应的公式备注信息,在 网络终端对其进行解析并渲染成可以阅读的数学公式。该编辑系统运行于Window平台终 端,适用于主流浏览器IE,数学公式的编辑与解析均在计算机终端进行,对网络服务器没有 新增压力,具有方便、实用、高效率与低成本的特点。 以上所述的本发明实施方式,并不构成对本发明保护范围的限定。任何在本发明 的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明的权利要求保护范 围之内。
权利要求
一种基于WEB的数学公式编辑系统,其特征在于包括编辑模块,用于在WEB浏览器编辑窗口中输入数学公式,该数学公式是用HTML表示的;转换模块,用于将所述数学公式进行压缩转换成文本格式的代码;通讯模块,用于将所述转换模块生成的数学公式的代码发送并存储到WEB服务器中;WEB服务器,用于存储所述数学公式的代码。
2. 根据权利要求1所述的一种基于WEB的数学公式编辑系统,其特征在于,所述通讯模块还用于将WEB服务器中存储的数学公式的代码下载到客户端浏览器;该系统还包括解析模块,其用于将下载得到的数学公式的代码进行解析,还原成用HTML表示的数学公式。
3. 根据权利要求l所述的一种基于WEB的数学公式编辑系统,其特征在于,所述数学符号包括普通字符和特殊字符;所述特殊字符是利用VML矢量图采用贝塞尔曲线来拟合或使用图片来显示。
4. 根据权利要求l所述的一种基于WEB的数学公式编辑系统,其特征在于,所述编辑模块中包括数学公式对齐单元,其用于将所述WEB浏览器编辑窗口中的数学公式进行对齐。
5. —种基于WEB的数学公式编辑方法,其特征在于,包括A、 在WEB浏览器编辑窗口中输入编辑数学公式,该数学公式是用HTML表示的;B、 将编辑好的数学公式进行压縮转换成文本格式的代码;C、 将所述转换模块生成的数学公式的代码发送并存储到Web服务器中。
6. 根据权利要求5所述的一种基于WEB的数学公式编辑方法,其特征在于,所述步骤A具体为打开WEB浏览器编辑窗口 ,在窗口中构造一个编辑光标;在所述编辑光标处显示由输入的数学符号组成的数学公式;将所述WEB浏览器编辑窗口中的数学公式进行对齐。
7. 根据权利要求5所述的一种基于WEB的数学公式编辑方法,其特征在于,所述步骤C之后还包括步骤将WEB服务器中存储的数学公式的代码下载到电脑终端;将下载得到的数学公式的代码进行解析,还原成用HTML表示的数学公式并进行修改编辑;返回步骤B。
全文摘要
本发明公开了一种基于WEB的数学公式编辑系统,其包括编辑模块,用于在WEB浏览器编辑窗口中输入数学符号编辑数学公式,该数学公式是用HTML表示的;转换模块,用于将所述数学公式进行压缩转换成文本格式的代码;通讯模块,用于将所述转换模块生成的数学公式的代码发送并存储到WEB服务器中;WEB服务器,用于存储所述数学公式的代码;解析模块,其用于将下载得到的数学公式的代码进行解析,还原成用HTML表示的数学公式。解析模块得到的数学公式可以传送给所述编辑模块,用于公式修改。本发明还提供了一种基于WEB的数学公式可视化编辑方法;本发明的编辑系统在WEB浏览器中运行,计算机终端不需安装任何插件,使得数学公式的编辑修改变得更加方便简单。
文档编号G06F17/30GK101714133SQ200910193978
公开日2010年5月26日 申请日期2009年11月18日 优先权日2009年11月18日
发明者吴赣昌, 胡中传 申请人:佛山市数苑科技信息有限公司