CN101436307B - 一种公式的交互式排版方法及系统 - Google Patents
一种公式的交互式排版方法及系统 Download PDFInfo
- Publication number
- CN101436307B CN101436307B CN2008102396718A CN200810239671A CN101436307B CN 101436307 B CN101436307 B CN 101436307B CN 2008102396718 A CN2008102396718 A CN 2008102396718A CN 200810239671 A CN200810239671 A CN 200810239671A CN 101436307 B CN101436307 B CN 101436307B
- Authority
- CN
- China
- Prior art keywords
- formula
- node
- editing area
- operational symbol
- size
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Processing Or Creating Images (AREA)
Abstract
本发明公开了一种公式的交互式排版方法及系统,属于印刷排版技术领域。现有的流式排版方法,在排版公式时不具有交互性。本发明将公式按照树状结构进行排版,在根节点的可编辑区域内进行排版操作。在当前节点的可编辑区域进行排版操作的过程中,当子节点大小发生变化时,通知该子节点的父节点,父节点根据其子节点大小调整可编辑区域大小,然后再向上一级父节点通知;这样一级一级向上通知,每一级父节点根据其子节点大小调整可编辑区域大小,直到某一级父节点的子节点大小没有发生变化或者到达根节点;最后从子节点大小没有发生变化的节点或者根节点开始,一级一级向下通知,调整其所有子节点的位置。
Description
技术领域
本发明涉及一种公式的交互式排版方法及系统,属于印刷排版技术领域。
背景技术
目前,还没有一种交互式排版公式的方法。现有技术中,排版公式主要采用流式排版方法,在排版过程中不存在交互性。例如书版,通过编辑、执行代码的方式排版公式,如果修改公式,则需要修改代码。而且,如果要熟练应用它来排版公式需要熟知很多的BD注解命令,学习的难度很大。
发明内容
针对现有技术中存在的缺陷,本发明的目的是提供一种公式的交互式排版方法及系统,该方法及系统能够增强公式排版的交互性和易用性。
为了实现上述目的,本发明采用的技术方案如下:
一种公式的交互式排版方法,该方法将公式按照树状结构进行排版,包括以下步骤:
(1)获得根节点的可编辑区域,所述根节点是指排版公式的焦点;
(2)在根节点的可编辑区域内进行排版操作,所述排版操作包括增加、修改、删除可变数据和/或运算符;
(3)在当前节点的可编辑区域进行排版操作的过程中,当子节点大小发生变化时,通知该子节点的父节点,父节点根据其子节点大小调整其可编辑区域大小,然后再向上一级父节点通知;这样一级一级向上通知,每一级父节点根据其子节点大小调整其可编辑区域大小,直到某一级父节点的子节点大小没有发生变化或者到达根节点;
(4)从子节点大小没有发生变化的节点或者根节点开始,一级一级向下通知,调整其所有子节点的位置。
如上所述的一种公式的交互式排版方法,该方法在排版前还包括根据运算符的类型绑定可编辑区域,以及设置该运算符与所述可编辑区域之间的相对位置关系和联动关系。
如上所述的一种公式的交互式排版方法,该方法在进行排版操作时将每一步操作及操作的数据增量存储在堆栈中。
如上所述的一种公式的交互式排版方法,其中,当删除操作时,将该操作加上一个删除标志;当恢复被删除的操作时,将该操作的删除标志清除。
如上所述的一种公式的交互式排版方法,其中,将公式排版后,将公式的数据头部存储成图片格式。
一种公式的交互式排版系统,该系统包括用于管理输入的可变数据和运算符的数据管理模块(12),用于根据权利要求1所述方法排版公式的排版模块(11),以及用于输出和显示排版后公式的输出显示模块(13)。
所述数据管理模块(12)包括用于管理输入的各种数据以及输入数据的属性的可变数据管理器(123),用于管理运算符和与其绑定的可编辑区域之间的位置关系和联动关系的运算符规则管理器(121),以及用于编辑与运算符号绑定的可编辑区域的数量、运算符与所述可编辑区域的相对位置关系、运算符与所述可编辑区域的间隙、以及其运算符与所述可编辑区域的联动关系运算符规则编辑器(122)。
如上所述的一种公式的交互式排版系统,其中,所述输出显示模块(13)包括输出子模块(131)和显示子模块(132),所述输出子模块(131)和显示子模块(132)被封装在一起,公式的输出和显示使用同一接口,根据输出设备的不同进行切换。
如上所述的一种公式的交互式排版系统,该系统还包括用于与其他排版系统进行交互的交互模块(14)。
本发明所述的方法,通过将公式按照树状结构进行排版,增强了公式排版的交互性和易用性,并提高了公式排版的效果和效率。
附图说明
图1是本发明所述系统结构图;
图2是公式数据结构的UML图;
图3是运算符规则的UML图;
图4是本发明所述方法流程图;
具体实施方式
下面结合具体实施方式和附图对本发明进行详细描述。
本发明的核心思想是将公式排版成一棵树,即用树状结构表示公式。该树状结构的基本元素为“区域”,区域就是指能包含一定的内容,并且有自己的大小和位置的对象。用这些区域组成一个树状结构的公式片段。
根据公式的特性,“区域”可以抽象出三种基本的类型:可编辑区域、运算符和可变数据。由这三个基本类型组成的树状结构就可把公式完全的表示出来。
可编辑区域是用户用来输入数据的地方,运算符、可变数据都不具备这个功能。一切的输入都在此进行。数的根一定是可编辑区域,因为只有它才能接收输入的数据,有了可编辑区域这个根才有接收数据的基础。可编辑区域相当于一个独立的排版区域,它内部的内容的排版与其外部没有直接的关系。在该区域内可以实现任何复杂的排版,比如可以换行、改变对齐线等等。可编辑区域也可以是子节点或父节点,但是不能自身进行嵌套,也就是自己不能是自己的直接子节点,因为这样没有意义。
运算符是由运算符号本身和其绑定的可编辑区域组成。例如,根式由根号、根号内可以输入数据的可编辑区域和指数部分的可编辑区域组成。它本身是一个带有子节点的树,只能是父节点或子节点,不能是根节点。
图3是运算符规则的静态图,描述了运算符(C_Operator)、可编辑区域(C_EditRegion)、运算符规则类(C_OperatorRule)和运算符号(C_OperatorSymbol)之间的关系。运算符(C_Operator)聚合了其他三个。而运算符规则类(C_OperatorRule)直接关联可编辑区域(C_EditRegion),因为位置关系是由运算符规则类(C_OperatorRule)通过运算符规则数据解析而来的,而运算符(C_Operator)只起到一个容器的作用。运算符号(C_OperatorSymbol)则提供了能单独选中运算符号的能力,比如把根号选中设置成想要的颜色等。
可变数据是指输入的各种数据,可以是字符、图形和图像等。它本身只能是子节点。
图2是公式的数据结构的UML图。其中,I_Region是一个虚基类,接口I_EditRegion(可编辑区域)、I_Operator(运算符)、I_Variable(可变数据)从它派生而来,而C_EditRegion、C_Operator、C_Variable是上述接口的实现。
数的根51是可编辑区域,“a”和“+”都是根可编辑区域的叶子,它们是可变数据,不能有子节点。分式52也是根可编辑区域的子节点,但是它本身还包含两个可编辑区域。如果运算符不包含可编辑区域,那么它就退化成了一个可变数据。运算符本身又是一棵小树。根式53是分式52的一个子节点,由根号内可以输入数据的可编辑区域和指数部分的可编辑区域组成。它的子节点只能是可编辑区域,不能是其它类型。因为如果没有可编辑区域,它便不能接收数据和操作,交互的进行都是在可编辑区域进行的。
图1出示了本发明所述公式的交互式排版系统的结构,主要包括用于管理输入的可变数据和运算符的数据管理模块12,用于将公式按照树状结构进行排版的排版模块11,以及用于输出和显示排版后公式的输出显示模块14。
数据管理模块12包括可变数据管理器123、运算符规则管理器121和运算符规则编辑器122。可变数据管理器123用于管理输入的各种数据,例如字符、图形、图像等,以及管理输入数据的属性,例如颜色和字体等。
运算符规则管理器121管理运算符和与其绑定的可编辑区域之间的位置关系和联动关系,例如与运算符绑定的可编辑区域的位置、个数、对齐方式和与运算符的间隙等。运算符规则管理器121采用运算符规则实现和数据分开的机制,通过抽象运算符号的画法,运算符绑定的可编辑区域的位置和个数、对齐方式等组织数据。然后通过运算符规则管理器121统一生成,根据运算符的类型向运算符规则管理器121要求相应的规则。因此运算符号只起到一个容器的作用,能够被单独选中和编辑,从而增强了公式排版的效果。
运算符规则与数据分开有利于运算符规则的扩展,数据可以存在程序中或者磁盘文件里。同时,方便提供一个运算符规则编辑器122供用户扩展新的运算符。运算符规则编辑器122可以编辑与运算符号绑定的可编辑区域的数量、运算符号与可编辑区域的相对位置关系、运算符号与可编辑区域的间隙、以及其运算符号与可编辑区域的联动关系等。使用运算符规则编辑器122可以修改、增加和删除运算符规则,而无需修改运算符规则管理器121的程序代码。
排版模块11是本发明所述系统的核心模块,它能够将公式排版成一颗树。图4出示了排版模块11排版公式的流程,主要包括以下步骤。
(1)获得根节点的可编辑区域,根节点是指排版公式的焦点,即排版公式的起始点。
(2)在根节点的可编辑区域内进行排版操作,其中,排版操作包括增加、修改、删除可变数据和/或运算符。
(3)在当前节点的可编辑区域进行排版操作的过程中,当子节点大小发生变化时,通知该子节点的父节点,父节点根据其子节点大小调整该父节点的可编辑区域大小,然后再向上一级父节点通知。这样一级一级向上通知,每一级父节点根据其子节点大小调整该父节点的可编辑区域大小,直到某一级父节点的子节点大小没有发生变化或者到达根节点。
假设当前可编辑区域是根号内的可编辑区域,输入y后,根号的子节点增大。由于子节点的增加、修改和删除等会改变父节点的大小和位置,因此需要通知其父节点根号,根号根据子节点大小调整其可编辑区域大小,再通知其父节点分号。分号根据其子节点的大小调整其可编辑区域大小,再向上通知,到达根节点。
(4)从子节点大小没有发生变化的节点或者根节点开始,一级一级向下通知,调整其所有子节点的位置。
为了提高排版的效率,在进行排版操作时,采用Undo(撤销)/Redo(恢复)机制,即将每一步操作增量存储在堆栈中。增量由操作类型和操作的数据组成。在编辑过程中,每做一步操作就记录一个增量。比如添加一个字母a,则在增量的前面写上操作Add,后面写上数据a。那么在Undo的时候Add对应的操作就是相反的,应该是Delete,要把添加的a删除。而如果前面是删除字母a的话,那么Undo的时候就应该Add字母a。修改的操作是不涉及到添加和删除的,只是把后面的数据更新就可以了。
在删除的时候可以把删除的节点加上一个删除标志,有删除标志的节点不参与排版。在Redo的时候把删除标志清除即可,这样可以增加排版的效率。在记录增量的时候数据也可以变得小一些,因为不用记录删除操作增量后面部分的数据。
为了保证在不支持公式的排版系统(比如画写版等)里也能应用本发明所述系统排版后的公式,将公式数据的头部存储成图片的格式,拷贝到剪贴板上也是同样的做法,这样其他排版系统就可以把公式文件当成一个图片打开或者置入,可以跨不同的系统平台实现拷贝粘贴。在存储策略上,可以将每个公式片段(即一个完整的公式)保存一个文件或者一段内存,方便应用它的排版系统同其本身的保存相融合。
还可以将排版后公式转换成XML文件,方便在网络中应用,或者将它转换成流式的结构,从而同其它流式方法实现的公式排版软件相联系。
输出显示模块13包括输出子模块131和显示子模块132。输出子模块131和显示子模块132被封装在一起,公式的输出和显示使用同一接口,根据输出设备的不同进行切换。比如输出PDF,输出到屏幕、输出到打印机等。针对不同的图形设备接口进行封装,无论外部设备怎么变,输出的接口不变。
本发明所述系统可以单独使用,也可以将其嵌入到其他排版系统中。在其他排版系统排版时,如果需要排入公式,则可以通过SDK调用本发明所述系统进行排版公式操作。如果将本发明所述系统嵌入到其他排版系统中,则该系统还包括一个交互模块14,用于将其他排版系统的命令转换成本发明所述系统的命令。
本发明所述的方法及系统并不限于上述具体实施方式,本领域的技术人员根据本发明的技术方案得出的其他实施方式,同样属于本发明的技术创新范围。
Claims (8)
1.一种公式的交互式排版方法,其特征在于,所述方法将公式按照树状结构进行排版,包括以下步骤:
(1)获得根节点的可编辑区域,所述根节点是指排版公式的焦点;
(2)在根节点的可编辑区域内进行排版操作,所述排版操作包括增加、修改、删除可变数据和/或运算符;
(3)在当前节点的可编辑区域进行排版操作的过程中,当子节点大小发生变化时,通知该子节点的父节点,父节点根据其子节点大小调整其可编辑区域大小,然后再向上一级父节点通知;这样一级一级向上通知,每一级父节点根据其子节点大小调整其可编辑区域大小,直到某一级父节点的子节点大小没有发生变化或者到达根节点;
(4)从子节点大小没有发生变化的节点或者根节点开始,一级一级向下通知,调整其所有子节点的位置。
2.如权利要求1所述的一种公式的交互式排版方法,其特征在于:所述方法在排版前还包括根据运算符的类型绑定可编辑区域,以及设置该运算符与所述可编辑区域之间的相对位置关系和联动关系。
3.如权利要求1所述的一种公式的交互式排版方法,其特征在于:所述方法在进行排版操作时将每一步操作及操作的数据增量存储在堆栈中。
4.如权利要求3所述的一种公式的交互式排版方法,其特征在于:当删除操作时,将该操作加上一个删除标志;当恢复被删除的操作时,将该操作的删除标志清除。
5.如权利要求1至4之一所述的一种公式的交互式排版方法,其特征在于:将公式排版后,将公式的数据头部存储成图片格式。
6.一种公式的交互式排版系统,其特征在于:所述系统包括用于管理输入的可变数据和运算符的数据管理模块(12),用于根据权利要求1所述方法排版公式的排版模块(11),以及用于输出和显示排版后公式的输出显示模块(13);
所述数据管理模块(12)包括用于管理输入的各种数据以及输入数据的属性的可变数据管理器(123),用于管理运算符和与其绑定的可编辑区域之间的位置关系和联动关系的运算符规则管理器(121),以及用于编辑与运算符绑定的可编辑区域的数量、运算符与所述可编辑区域的相对位置关系、运算符与所述可编辑区域的间隙、以及运算符与所述可编辑区域的联动关系的运算符规则编辑器(122)。
7.如权利要求6所述的一种公式的交互式排版系统,其特征在于:所述输出显示模块(13)包括输出子模块(131)和显示子模块(132),所述输出子模块(131)和显示子模块(132)被封装在一起,公式的输出和显示使用同一接口,根据输出设备的不同进行切换。
8.如权利要求6或7所述的一种公式的交互式排版系统,其特征在于:所述系统还包括用于与其他排版系统进行交互的交互模块(14)。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008102396718A CN101436307B (zh) | 2008-12-15 | 2008-12-15 | 一种公式的交互式排版方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008102396718A CN101436307B (zh) | 2008-12-15 | 2008-12-15 | 一种公式的交互式排版方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101436307A CN101436307A (zh) | 2009-05-20 |
CN101436307B true CN101436307B (zh) | 2012-03-28 |
Family
ID=40710737
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2008102396718A Expired - Fee Related CN101436307B (zh) | 2008-12-15 | 2008-12-15 | 一种公式的交互式排版方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101436307B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102033863B (zh) * | 2009-09-30 | 2012-07-04 | 北大方正集团有限公司 | 一种公式处理方法与系统 |
CN102194243B (zh) * | 2010-03-17 | 2013-03-27 | 北大方正集团有限公司 | 公式布局排版方法和装置 |
CN101866363B (zh) * | 2010-06-22 | 2012-05-02 | 用友软件股份有限公司 | 报表公式树形追踪方法和装置 |
CN102411575A (zh) * | 2010-09-21 | 2012-04-11 | 北京大学 | 一种网页显示方法、系统以及服务器 |
CN103425634B (zh) * | 2012-05-17 | 2016-04-06 | 北大方正集团有限公司 | 一种流式文档的生成方法及装置 |
CN105260353A (zh) * | 2015-10-23 | 2016-01-20 | 北大方正集团有限公司 | 一种移动终端的排版方法及装置 |
CN106776525A (zh) * | 2016-11-16 | 2017-05-31 | 广州视源电子科技股份有限公司 | 一种公式绘制方法和装置 |
CN110032701B (zh) * | 2019-04-04 | 2021-07-09 | 网易(杭州)网络有限公司 | 图像展示控制方法、装置、存储介质及电子设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001154991A (ja) * | 1999-11-30 | 2001-06-08 | Matsushita Electric Ind Co Ltd | 数式入力編集装置および数式入力編集プログラムを記録したコンピュータ読み取り可能な記録媒体 |
CN1553377A (zh) * | 2003-05-26 | 2004-12-08 | 珠海金山软件股份有限公司 | 科学公式可视化编辑的系统及方法 |
CN1908931A (zh) * | 2006-08-22 | 2007-02-07 | 北京北大方正电子有限公司 | 一种文字的可变数据排版的方法 |
CN101201817A (zh) * | 2006-12-15 | 2008-06-18 | 北京北大方正电子有限公司 | 一种公式的排版方法 |
-
2008
- 2008-12-15 CN CN2008102396718A patent/CN101436307B/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001154991A (ja) * | 1999-11-30 | 2001-06-08 | Matsushita Electric Ind Co Ltd | 数式入力編集装置および数式入力編集プログラムを記録したコンピュータ読み取り可能な記録媒体 |
CN1553377A (zh) * | 2003-05-26 | 2004-12-08 | 珠海金山软件股份有限公司 | 科学公式可视化编辑的系统及方法 |
CN1908931A (zh) * | 2006-08-22 | 2007-02-07 | 北京北大方正电子有限公司 | 一种文字的可变数据排版的方法 |
CN101201817A (zh) * | 2006-12-15 | 2008-06-18 | 北京北大方正电子有限公司 | 一种公式的排版方法 |
Also Published As
Publication number | Publication date |
---|---|
CN101436307A (zh) | 2009-05-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101436307B (zh) | 一种公式的交互式排版方法及系统 | |
US8135755B2 (en) | Templates in a schema editor | |
TWI287721B (en) | Method and system for processing word-processing document and computer-readable medium for recording relevant instructions | |
CN104020997B (zh) | 可扩展图形化规则应用系统 | |
US11216253B2 (en) | Application prototyping tool | |
US11893337B2 (en) | Method and apparatus for browsing information | |
CN105843787B (zh) | 一种富文本编辑方法及系统 | |
CN102789372B (zh) | 一种打印方法及装置 | |
CN105183475A (zh) | 一种用户自定制门户网站个性化页面的方法和系统 | |
CN102779118B (zh) | 一种论文的排版方法及系统 | |
CN103593456B (zh) | 表单自定义设计方法及装置 | |
CN103020237B (zh) | 一种网页更新方法和装置 | |
CN102360296A (zh) | 一种基于web的在线表单开发工具 | |
CN102681841A (zh) | 一种手机应用开发方法和系统 | |
CN102096699B (zh) | 基于动态模板的展示方法及系统 | |
CN114461200A (zh) | 一种基于云SaaS平台的低代码开发应用及方法 | |
US20120192047A1 (en) | Systems and methods for building complex documents | |
CN103778172A (zh) | 一种试卷信息保存方法及一种试卷编辑方法和系统 | |
US11868598B2 (en) | Generating and modifying content using data structures | |
CN104063365A (zh) | 在pdf文档中插入对象的方法 | |
CN105069096A (zh) | 一种自定义表单的架构方法及架构系统 | |
Wiki | Wiki | |
CN105373388A (zh) | 自动上传patch修改的代码管理方法 | |
CN112100989A (zh) | 文档编辑方法、文档编辑系统以及计算机存储介质 | |
CN102360356A (zh) | 面向个人的个性化网报制作与发布系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20120328 Termination date: 20191215 |