自动化公式建立系统和方法转让专利

申请号 : CN200510088518.6

文献号 : CN1749992B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : E·J·伯恩斯特因J·P·米歇尔斯特因M·萨根特三世S·阿波-哈拉瓦

申请人 : 微软公司

摘要 :

一种用于自动建立输入到计算机系统中的公式的系统和方法,可包括接受线性串格式公式的输入的输入模块、以及解释该输入并自动判断何时到达建立点的解释模块。该系统还可包括在到达建立点时即自动将公式的至少一部分转换为二维格式的格式化模块。显示模块能够以二维格式显示公式的部分。修订模块允许对公式进行编辑。

权利要求 :

1.一种用于自动建立公式的计算系统,其特征在于,包括:输入模块,接受线性串格式公式的输入,公式的输入为含有操作数和运算符的字符序列,输入的字符序列的每一个字符被放在后备存储中;

解释模块,解释所述输入,并通过以下方式自动判定建立点到达并触发自动建立:分析最近输入的运算符及其相对于之前紧邻的一个运算符的优先级,当根据优先级升序:回车、左括号或小于号、右括号或大于号、直列制表符、根号、n元运算符、上标和下标之一、变音符和阶乘符之一,确定具有较高优先级的之前紧邻的一个运算符存在时,自动判定建立点到达,并触发自动建立;以及格式化模块,在一到达所述建立点即自动将所述公式的至少一部分格式化为二维格式。

2.如权利要求1所述的系统,其特征在于,所述解释模块监视由所述输入模块收到的字符序列,以确定所述建立点。

3.如权利要求1所述的系统,其特征在于,还包括允许编辑所述公式中二维格式的部分的修订模块。

4.如权利要求1所述的系统,其特征在于,还包括允许编辑所述公式的修订模块。

5.如权利要求1所述的系统,其特征在于,所述公式的输入致使所述解释模块触发多个建立点。

6.如权利要求1所述的系统,其特征在于,还包括显示所述公式的显示模块。

7.一种用于自动地建立输入到计算机系统中的公式的方法,所述方法包括:接受线性串格式公式的输入,公式的输入为含有操作数和运算符的字符序列,输入的字符序列的每一个字符被放在后备存储中;分析最近输入的运算符及其相对于之前紧邻的一个运算符的优先级;

当根据优先级升序:回车、左括号或小于号、右括号或大于号、直列制表符、根号、n元运算符、上标和下标之一、变音符和阶乘符之一,确定具有较高优先级的之前紧邻的一个运算符存在时,自动判定建立点到达,并触发自动建立;以及一到达所述建立点即自动将所述公式的至少一部分从线性串格式转换为二维格式。

8.如权利要求7所述的方法,其特征在于,所述判定步骤还包含监视字符序列以确定所述建立点。

9.如权利要求7所述的方法,其特征在于,还包括编辑所述公式中的二维格式的部分。

10.如权利要求7所述的方法,其特征在于,还包括编辑所述公式。

11.如权利要求7所述的方法,其特征在于,还包括:接受所述线性串格式公式的额外输入;

自动判定是否到达第二建立点;以及

一到达所述第二建立点即自动将所述公式的至少第二部分从线性串格式转换为二维格式。

12.如权利要求7所述的方法,其特征在于,还包括显示所述公式。

13.一种用于自动建立输入到计算机系统中的公式的一部分的方法,所述方法包括:接受线性串格式公式的第一字符的输入,输入的第一字符被放在后备存储中;

当第一字符为运算符通过分析所述第一字符及其相对于之前紧邻的一个运算符的优先级,检查所述第一字符以判断是否到达第一建立点;

当根据优先级升序:回车、左括号或小于号、右括号或大于号、直列制表符、根号、n元运算符、上标和下标之一、变音符和阶乘符之一,确定具有较高优先级的之前紧邻的一个运算符存在时,到达了所述第一建立点:自动将所述公式的第一部分从线性串格式转换成二维格式;

以二维格式显示所述公式的第一部分;以及

其后,继续接受所述线性串格式公式的第二字符的输入;

如果未到达所述第一建立点,接受所述线性串格式公式的第二字符的输入;

检查所述第二字符以判断是否到达第二建立点;

如果到达了所述第二建立点:

自动将所述公式的第二部分从线性串格式转换成二维格式;

以二维格式显示所述公式的第二部分;以及

其后,继续接受所述线性串格式公式的第三字符的输入;

如果未到达所述第二建立点,接受所述线性串格式公式的第三字符的输入。

14.如权利要求13所述的方法,其特征在于,还包括编辑所述公式中二维格式的第一部分。

15.一种用于自动建立输入到计算机系统中的公式的一部分的计算系统,所述系统包括:用于接受线性串格式公式的第一字符的输入的装置,输入的第一字符被放在后备存储中;

用于当第一字符为运算符时,通过分析所述第一字符及其相对于之前紧邻的一个运算符的优先级,检查所述第一字符以判断是否到达第一建立点的装置;

当根据优先级升序:回车、左括号或小于号、右括号或大于号、直列制表符、根号、n元运算符、上标和下标之一、变音符和阶乘符之一,确定具有较高优先级的之前紧邻的一个运算符存在时,如果到达了所述第一建立点:自动将所述公式的第一部分从线性串格式转换成二维格式;

以二维格式显示所述公式的第一部分;以及

其后,继续接受所述线性串格式公式的第二字符的输入;

如果未到达所述第一建立点,接受所述线性串格式公式的第二字符的输入;

检查所述第二字符以判断是否到达第二建立点;

如果到达了所述第二建立点:

自动将所述公式的第二部分从线性串格式转换成二维格式;

以二维格式显示所述公式的第二部分;以及

其后,继续接受所述线性串格式公式的第三字符的输入;

如果未到达所述第二建立点,接受所述线性串格式公式的第三字符的输入。

说明书 :

自动化公式建立系统和方法

技术领域

[0001] 本发明涉及对输入到计算机系统中的公式进行解释和建立的系统和方法。 背景技术
[0002] 随着越来越多的技术信息以文字处理和网页格式分布,将数学公式有效地输入到文字处理应用程序和html编辑器中的能力正在变得越来越重要。诸如TeX和LaTeX等程序允许用户以可在不同计算环境间移植的格式来排版和打印数学公式。然而,此类程序很复杂,还要求在用户能输入、排版和打印公式之前,该用户具有这些程序如何工作的专门知识。
[0003] 文字处理器程序通常与允许用户在文字处理环境中创建和编辑公式的编辑器捆绑在一起。由华盛顿州雷蒙德市的微软公司发布的Microsoft Equation Editor 3.0(公式编辑器)是此类编辑器的一个例子。这些类型的公式编辑器通常是要求用户在各种工具条图标间选择以开发二维公式的WYSIWYG编辑器。然而,对于频繁输入复杂和冗长公式的有经验的用户来说,选择工具条图标可能是很不方便的。
[0004] 因此,希望能提供允许在以二维格式显示此类公式时能轻松地输入公式的系统和方法。

发明内容

[0005] 本发明涉及对输入到计算机系统中的公式进行解释和建立的系统和方法。 [0006] 本发明的一个方面涉及用于自动建立公式的计算系统。该系统可包括接受线性串格式的公式的输入的输入模块,以及解释该输入并自动判定何时到达建立点的解释模块。该系统还可包括在一到达建立点时即自动将公式的至少一部分格式化为二维格式的格式化模块。
[0007] 本发明的另一方面涉及自动地建立输入到计算机系统中的公式的方法。该方法可包括:接受线性串格式的公式的输入、自动判定是否到达建立点、以及在一到达建立点时即自动地将公式的至少一部分从线性串格式转换为二维格式。
[0008] 本发明的又一方面涉及自动地建立输入到计算机系统中的公式的方法。该方法可包括:接受线性串格式的公式的第一字符的输入;检查该第一字符以判定是否到达第一建立点;如果到达第一建立点:自动将公式的第一部分从线性串格式转换到二维格式;以二维格式显示公式的第一部分;以及其后,继续接受线性串格式的公式的第二字符的输入;如果未到达第一建立点,接受线性串格式的公式的第二字符的输入。

附图说明

[0009] 现在将对附图进行参考,这些附图不必按比例绘制,并且其中: [0010] 图1根据本发明的一个实施例,示出一个示例性通用计算系统;
[0011] 图2根据本发明的一个实施例,示出用于自动建立公式的一部分的示例性系统; [0012] 图3根据本发明的一个实施例,示出用于自动建立公式的一部分的示例性方法;以及
[0013] 图4根据本发明的一个实施例,示出用于自动建立公式的一部分的另一示例性方法。

具体实施方式

[0014] 在下文将参考示出本发明各实施例的附图,更详细地描述本发明。然而,本发明可以用许多不同的形式来实施,并且不应将本发明解释为限于本文所阐述的实施例;相反,提供这些实施例是为使此文所揭示的内容彻底和完整,并能将本发明的范畴充分地传达给本领域技术人员。全文中相同的标号指相同的元素。
[0015] 本发明涉及对输入到计算机系统中的公式进行解释和建立的系统和方法。 [0016] 如本文中所使用的,短语“线性串格式”指使用诸如TeX或LaTeX等线性表示法的公式的线性的基于文本的表示。线性串格式的公式的一个示例是“x=1/2”(“x等于二分之一”)。
[0017] 短语“二维格式”指使用诸如Polish前缀格式等非线性表示法来表示公式的格式。Polish前缀格式是一种格式,包括例如,函数起始符后接分子、分隔符、分母、以及终止函数定界符。二维格式的公式的一个示例是 (“x等于二分之一”)。
[0018] 公式可以从线性串格式转换到二维格式,反之亦然。例如,本文所揭示的各实施例包括用于将公式的各部分从线性串格式自动转换成二维格式的系统和方法。 [0019] 现参考图1,示出了示例性计算机系统100。图1中所示的计算机系统100可以是采用诸如台式计算机、膝上计算机、手持计算机等各种形式。此外,尽管示出了计算机系统100,本文所揭示的系统和方法也可以在各种替换计算机系统中实现。
[0020] 系统100包括处理器单元102、系统存储器104、以及将包括系统存储器104在内的各种系统组件耦合到处理器单元102的系统总线106。系统总线106可以是若干类型的总线结构中的任何一种,包括存储器总线、外围总线、以及使用各种总线体系结构中的任何一种的局部总线。系统存储器包括只读存储器(ROM)108和随机存取存储器(RAM)110。包含帮助在计算机系统100各元件间传送信息的基本例程的基本输入/输出系统112(BIOS)存储在ROM 108中。
[0021] 计算机系统100还包括用于读和写硬盘的硬盘驱动器112、用于读或写可移动磁盘116的磁盘驱动器114、以及用于读或写诸如CD ROM、DVD或其它光介质等可移动光盘119的光盘驱动器118。硬盘驱动器112、磁盘驱动器114和光盘驱动器118分别由硬盘驱动器接口120、磁盘驱动器接口112和光盘驱动器接口124连接到系统总线106。各驱动器及其相关联的计算机可读介质为计算机系统100提供了计算机可读指令、数据结构、程序、和其它数据的非易失性存储。
[0022] 尽管此文中所描述的示例性环境可使用硬盘112、可移动磁盘116和可移动光盘119,可以在示例性系统100中使用能存储数据的其它类型的计算机可读介质。可以在操作环境示例中使用的这些其它类型的计算机可读介质的例子包括磁带盒、闪存卡、数字视频盘、贝努利盒式磁带、随机存取存储器(RAM)和只读存储器(ROM)。
[0023] 多个程序模块可被存储在硬盘112、磁盘116、光盘119、ROM 108或RAM 110中,包括操作系统126、一个或多个应用程序128、其它程序模块130和程序数据132。 [0024] 用户可通过诸如键盘134、鼠标136或其它定位设备等输入设备将命令和信息输入到计算机系统100中。其它输入设备的例子包括工具条、菜单、触摸屏、话筒、操纵杆、游戏垫、笔、圆盘式卫星天线和扫描仪。这些及其它输入设备常常通过耦合到系统总线106的串行端口接口140连接到处理单元102。然而,也可通过诸如并行端口、游戏端口或通用串行总线(USB)等其它接口连接这些输入设备。LCD 显示器142或其它类型的显示设备也经由诸如视频适配器144等接口连接到系统总线106。除了显示器142以外,计算机系统通常可包括诸如扬声器和打印机等其它外围输出设备(未示出)。
[0025] 计算机系统100可以使用到诸如远程计算机146等一个或多个远程计算机的逻辑连接在联网环境中运行。远程计算机146可以是计算机系统、服务器、路由器、网络PC、对等设备或其它普通网络节点,且通常包括相对于计算机100所描述的许多或全部元件。网络连接包括局域网(LAN)148和广域网(WAN)150。此类网络环境常见于办公室、企业范围的计算机网络、内联网和因特网。
[0026] 当在LAN网络环境中使用时,计算机系统100通过网络接口或适配器152连接到局域网148。在WAN网络环境中使用时,计算机系统100通常包括调制解调器154或用于通过诸如因特网等广域网150建立通信的其它装置。可以是内置或外置的调制解调器154经由串行端口接口140连接到系统总线106。在联网环境中,相对于计算机系统100所描绘的程序模块或其部分可存储在远程记忆存储设备中。应当理解,所示的网络连接是示例,并且可以使用在各计算机间建立通信链路的其它装置。
[0027] 本文中所描述的各实施例可以被实现为计算系统中的逻辑操作。这些逻辑操作可被实现为(1)在计算机系统上运行的计算机实现的步骤或程序模块的序列,以及(2)在计算系统内运行的相互连接的逻辑或硬件模块。此实现是取决于特定计算系统的性能要求的选择的问题。因此,组成本文中所描述的各实施例的逻辑操作指操作、步骤或模块。本领域普通技术人员应当意识到,这些操作、步骤和模块可以用软件、固件、专用数字逻辑及其任一组合来实现,而不会偏离如在所附权利要求书中陈述的本发明的精神和范畴。此软件、固件或类似的计算机指令序列可被编码并存储在计算机可读存储介质上,也可在载波信号内编码以供在计算设备间传输。
[0028] 现参考图2,示出了用于自动建立公式的一部分的示例性系统200。系统200包括输入模块210、解释模块220、自动建立模块230、显示模块240和修订模块250。系统200可以是,例如运行在上述计算机系统100上的应用程序。
[0029] 输入模块210允许用户将公式输入到系统200中。例如,用户可使用诸如上述的键盘134和/或鼠标136等输入设备来输入公式。在一个实施例中,输入模块210允许用户使用线性串格式表示法输入公式。线性串格式表示法的例子包括TeX和LaTeX。还可使用其它线性串格式表示法。
[0030] 例如,在一个实施例中,输入模块210接受使用类似于合并到由Scrall Systems Inc.提供、并在M.Sargent III的“Unicode Nearly Plain-Text Encoding of Mathematics”(数学的Unicode类纯文本编码),26th Internationalization & Unicode Conference,San Jose,California(2004年9月)中描述的应用程序PS Technical Word Processor中的线性格式表示法的公式的输入。线性格式表示法类似于TeX和LaTeX的表示法,但是是一种类似于由计算机语言编译器解释的表示法的简化表示法。 [0031] 例如,输入模块能接受以下线性串格式的公式A的输入:
[0032] y=a/(b+c)+d (A)
[0033] 一旦用户开始以线性串格式输入公式,解释模块220即解释该输入,以确定何时该公式的一部分能自动被建立为二维格式。
[0034] 建立通常在用户输入了一字符时发生,该字符强制在其之前的文本成为对于如由活动线性格式语法定义(例如,TeX、LaTeX、线性格式)的建立表达式来说无二义的线性格式化文本。关于公式的一部分是否能被建立的决策是基于最近输入的字符及其相对于在该字符之前的操作数的优先级的。一般而言,检查每个字符以确定鉴于该字符什么建立能够发生。例如,如果用户输入一个操作数并随即输入一个独立于该操作数的字符,如果该字符的优先级低于或等于之前字符的优先级,则自动建立可发生。例如,如果之前运算符是除号“/”,诸如加号“+”等运算符可能引起自动建立。
[0035] 以下例子示出怎样将解释模块220配置成标识公式的一部分的建立何时能够发生。对这些例子使用了线性格式。然而,也可以用类似的方式使用其它线性串格式语法(例如,TeX、LaTeX)。
[0036] 为了标识建立点,解释模块220检查用户输入的每一字符。使用面向优先级的技术来确定自动建立何时要发生。例如,在一个实施例中,线性格式语法中的运算符具有在以下表1中所给的优先级。
[0037] 表1-运算符优先级运算符 优先级
回车 0
“(”或“[”或“{或”“<” 1
“)”或“]”或“}或”“>” 2
直列制表符 3
其它Unicode数学运算符(即,那些未 在表1中其它优先级中列出的运算符) 4 [0038]
[0039] 表1中所给的操作符优先级是示例性的,并且可以改变优先级。
[0040] 当检查输入以确定是否要触发自动建立时,解释模块220首先检查与数学斜体间的相互转换。如果输入的字符是具有对应的数学斜体的ASCII或希腊字母,则该字符被转换为数学斜体版本。如果该字符是下标“_”、上标“^”或空格,并且前一字符是数学斜体,且在公式中该字符之前还有其它字符,则将一个区间的数学斜体与函数名字典相比较。如果找到,该名称被转换回普通文本(例如,“sin”被转换回“sin”)。
[0041] 如果未作此类转换,如果插入点(IP)在建立函数的内部,则解释模块220从当前自变量的开头、或者整个公式的开头、或该IP之前的回车中最接近该IP的那一个开始。 [0042] 接下来,通过前进至第一个主建立运算符(即,除“)”或“]”或“}”或“>”之外的运算符),缩小了可能的自动建立的选择。如果在回到该IP之前找到此类运算符,则向后扩展范围以包括分数的分子或者下标“_”或上标“^”符号的标基(scriptbase)。然后对此范围中的文本尝试进行建立。
[0043] 具体地,解释模块220扫描此范围、将简单操作数压到多信息文本串栈、并将运算符压到运算符栈。当紧接着该表达式之后的运算符是“)”或“]”或“}”或“>”,或者当运算符不是“(”或“[”或“{”或“<”并且以下条件之一为真时:(i)该运算符的优先级低于前一运算符的优先级;或者(ii)该运算符和前一运算符的优先级都等于4、5或7,则触发表达式的自动建立。
[0044] 在某些实施例中,如果在建立函数的自变量内作出改变(即,IP在公式已被建立的部分内部),则可将解释模块220确定何时触发自动建立的分析限定在被编辑的自变量。此限定可简化解释模块220所执行的分析,并从而提高处理效率。在其它实施例中,可将解释模块220配置成无论是否编辑了建立自变量都分析整个公 式。
[0045] 在说明自动建立的一个例子中,解释模块220解释以上的公式A,并标识何时可建立公式A的一部分。对于公式A,在输入公式A期间,一旦用户在右圆括号“)”之后输入了空格,解释模块220立即触发自动建立。公式A的这个部分被示为以下的公式A′: [0046] y=a/(b+c) (A′)
[0047] 以下伪代码示出解释模块220怎样能够解释用户输入的公式A的公式A’部分,以标识何时可触发自动建立。
败 败 败
失 失 失
但 但 但
, , ,
立 立 立
建 建 建
动 动 动
自 自 自
发 发 发
触 触 触
图 图 图
试 试 试



” ” ”
a 败 败 b 败 b 败
“ 失 失 “ 失 “ 失
体 体 体
但 但 但 但
斜 , , 斜 , 斜 ,
学 立 立 学 立 学 立
数 建 建 数 建 数 建
为 动 动 为 动 为 动
换 自 自 换 自 换 自
转 发 发 转 发 转 发
”a 触 触 ”b 触 ”c 触
“ 图 图 “ 图 “ 图
将 试 试 将 试 将 试

储 储 储 储 储 储 储 建
作 存 存 存 存 存 存 存 动
动 备 备 备 备 备 备 备 自
的 后 后 后 后 后 后 后 发
块 入 入 入 入 入 入 入 触
模 进 进 进 进 进 进 进 地
释 ” ” ” ” ” ” ” 功
a / ( b + c )
解 成
“ “ “ “ “ “ “










户 格

用 a / ( b + c ) 空


[0048] 如以上所提供的伪代码所示,当解释模块220识别出表示自动建立点的预定义字符之一时,自动建立并不总是成功的。例如,对于公式A′,在输入加号“+”时,解释模块220未触发自动建立,因为在公式A的输入的那一点上,公式没有一个部分能被建立为二维格式,因为不存在具有较高优先级的之前的运算符。此外, 在输入右圆括号“)”时,解释模块220未触发自动建立,因为可能会输入在公式A的一部分的建立能够发生之前所需的额外信息。然而,在右圆括号“)”之后输入空格时,解释模块220可触发对公式A的公式A′部分的自动建立,因为紧跟在该空格之后的字符是“)”或“]”或“}或”“>”中的一个(见以上表1中的优先级值2)。
[0049] 如以上伪代码中所指出的,每个输入的字符被放到后备存储中。该后备存储是可以存储和检索所输入的数据的持久化存储空间。此外,如以上伪代码所示,解释模块220还可执行诸如将变量转换为数学斜体格式等公式格式化的某些方面。
[0050] 一旦解释模块220触发了自动建立,自动建立模块230试图将该公式的至少一部分转换为二维格式。例如,当解释模块220触发了对公式A的公式A′部分的自动建立,自动建立模块230将公式A的公式A′部分转换为如以下公式B′所示的二维格式。 [0051]
[0052] 以下伪代码示出自动建立模块230怎样从公式A′建立公式B′的一个示例性实施例。
[0053] 将数学斜体“a”压到(多信息文本)串栈
[0054] 将“/”压到运算符栈
[0055] 将“(”压到运算符栈
[0056] 将数学斜体“b”压到串栈
[0057] 将“+”压到运算符栈
[0058] 将数学斜体“c”压到串栈
[0059] “)”致使“b+c”在串栈上被串接
[0060] “空格”致使圆括号“(”和“)”被移除,并且分数被建立
[0061] 在一个实施例中,自动建立模块230使用一种类似于计算机语言编译器所使用的优先级敏感表达式分析来执行建立。此外,自动建立模块230还可按所期望的格式化公式。例如,如公式B′所示,一旦进行自动建立,自动建立模块230即通过移除圆括号“(”和“)”及右圆括号“)”之后的空格来格式化该公式。
[0062] 显示模块240为使用诸如以上所描述的LCD显示器142等显示设备的用户显 示公式中已被建立为二维格式的部分。显示设备240还显示公式中任何已被输入但还处于线性串模式的未被建立的部分。
[0063] 在自动建立了公式的部分之后,输入模块210继续允许线性串格式的公式的输入。例如,对于公式A,一旦已经自动地建立了公式A′,用户可继续输入公式A的其余部分。因为对于公式A的其余部分(“+d”)不再需要其它建立,当公式A的其余部分已被输入到系统100中之后,显示模块240就以二维格式将整个公式A显示为以下的公式B。 [0064]
[0065] 修订模块250允许用户编辑公式。当公式为线性串格式或二维格式时,用户都能编辑公式。当用户编辑公式时,解释模块220继续监视输入以确定公式的额外部分是否能被自动建立为二维格式。
[0066] 以下以二维格式显示的公式C提供了说明自动建立的另一例子。
[0067]
[0068] 当输入模块210从用户接受线性串格式的公式C的输入时,解释模块220检查每个字符以确定何时触发自动建立。当用户在公式C的分母中输入加“+”号时(即,当用户输入了“y=a/(b^2+”时),解释模块220触发自动建立模块230对公式C的部分的建立,如以下公式C′所示。
[0069] y=a/(b2+ (C′) [0070] 具体地,变量“b”的上标被建立,因为加号“+”的优先级值低于上标“^”号的优先级值。见上表1。然而,整个分母还未被建立,因为还没有无二义地定义分母。 [0071] 接下来,当用户输入了右圆括号“)”(即,用户输入了“y=a/(b2+c^2)”),如以下公式C″所示,变量“c”的上标被建立。
[0072] y=a/(b2+c2) (C″) [0073] 最后,当用户在右括号“)”后输入空格或回车时,如以上公式C所示,公式C的分母被建立。
[0074] 现参考图3,示出了用于当用户将公式输入到计算机系统中时自动地建立公式的示例性方法300。在操作310,允许用户开始线性串格式的公式的输入。当输入了公式的每个字符,控制被传递给操作320,以判定对于使用例如上述的优先级建立逻辑输入的公式的某部分,自动建立能否发生。如果自动建立能够发生,控制被传递给操作330。否则,如果自动建立不能发生,控制被传递回操作310,继续公 式的输入。
[0075] 在操作330,将公式的一部分建立为二维格式。接下来,在操作340,以二维格式显示公式的已建立的部分。最后,控制被传递回操作310,继续线性串格式公式的输入。 [0076] 现参考图4,示出了用于自动建立公式的另一示例性方法400。方法400类似于方法300,并且包括操作310、320、330和340。然而,方法400还包括位于输入操作310和建立判定操作320间的操作415。操作415检查输入以寻找通知建立可发生的预定字符。此类字符的例子包括:右圆括号“)”、二进制运算符、任何标点符号、制表符、回车和空格。如果输入了这些字符中的任何一个,操作415将控制传递给操作320,以允许判定自动建立是否可发生。如果所输入的字符不是被注意的字符中的一个,操作415将控制传回操作310,继续线性串格式公式的输入,而无需判定公式的一部分是否能被建立。
[0077] 例如,输入下标符“_”之后建立不能发生,因为在能完成对公式的下标部分的建立之前,用户必须输入下标的内容。因此,当操作310中输入了下标符之后控制被传递给操作415时,操作415仅仅将操作传回操作310,以等待公式的下一个字符的输入,而不是将控制传递给操作320以判断建立能否发生。以此方式,可以将公式的输入和解释最优化,因为自动建立判定仅在输入了预定字符时才发生。
[0078] 在某些实施例中,通过允许自动输入和建立常用公式的各部分,进一步增强了本文所揭示的系统和方法。例如,由华盛顿州雷蒙德市的微软公司发布的Microsoft Word应用程序包括允许用户通过输入一些标识性字符来自动展开常用文本串的“自动纠正”特征。用户可使用这些特征,以基于用户的一些键击来展开公式的常用部分。如果可能的话,本文所揭示的系统和方法可用于自动分析由“自动纠正”特征展开的串并自动建立串。以此方式,可以快速地输入和建立公式的常用部分。
[0079] 提供上述各种实施例仅仅是作为示例,且不应将其解释为对本发明进行限制。本领域的技术人员很容易能意识到,可以不遵循本文所示出及描述的实施例和应用的例子,且在不偏离在所附权利要求书中阐述的本发明的真正精神和范畴的情况下,对本发明进行各种修改和改变。