本發(fā)明涉及排版印刷領(lǐng)域,尤其涉及一種排版處理方法及裝置。
背景技術(shù):
目前的排版技術(shù)中,排版引擎通常將數(shù)學(xué)公式看成是一個(gè)整體,把它作為一個(gè)長(zhǎng)度較大的單個(gè)字符進(jìn)行排版。然而當(dāng)數(shù)學(xué)公式的長(zhǎng)度過(guò)長(zhǎng)時(shí),即單個(gè)公式的寬度已經(jīng)超出一個(gè)文本行的寬度,就會(huì)導(dǎo)致數(shù)學(xué)公式超出文本框。
對(duì)此,目前一種方案為人工手動(dòng)將數(shù)學(xué)公式進(jìn)行拆分換行,但是人工操作會(huì)帶來(lái)一些問(wèn)題,比如需要人工檢測(cè)待排版的文本中是否存在數(shù)學(xué)公式,這個(gè)過(guò)程很耗時(shí),并且很容易造成數(shù)學(xué)公式的遺漏,另外,用戶對(duì)公式的認(rèn)識(shí)水平,也可能導(dǎo)致數(shù)學(xué)公式的意義改變,這就造成時(shí)間成本和人工成本的浪費(fèi),并且無(wú)法保證排版的合理性。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明提供一種排版處理方法及裝置,用于解決現(xiàn)有的數(shù)學(xué)公式拆分方案耗時(shí)長(zhǎng)效率低的問(wèn)題。
本發(fā)明的第一個(gè)方面是提供一種排版處理方法,包括:獲取數(shù)學(xué)公式的當(dāng)前長(zhǎng)度和所述數(shù)學(xué)公式所在行的剩余寬度并進(jìn)行比較,若所述數(shù)學(xué)公式的當(dāng)前長(zhǎng)度大于所述數(shù)學(xué)公式所在行的剩余寬度,則根據(jù)所述數(shù)學(xué)公式的樹(shù)形結(jié)構(gòu),通過(guò)拆分處理,獲得由n個(gè)子公式構(gòu)成的原始序列;將所述原始序列中的所有子公式存儲(chǔ)至當(dāng)前的第一數(shù)據(jù),計(jì)算并記錄當(dāng)前第一數(shù)據(jù)中存儲(chǔ)的前n-m個(gè)子公式的長(zhǎng)度至第一存儲(chǔ)器,其中,m的初始值為1;若所述第一存儲(chǔ)器中當(dāng)前記錄的長(zhǎng)度大于第一數(shù)據(jù)所在行的剩余寬度,則將m的值加1并將當(dāng)前m的取值記錄至第二存儲(chǔ)器,并再次執(zhí)行所述計(jì)算并記錄當(dāng)前第一數(shù)據(jù)中存儲(chǔ)的前n-m個(gè)子公式的長(zhǎng)度至第一存儲(chǔ)器的步驟,直至所述第一存 儲(chǔ)器中當(dāng)前記錄的長(zhǎng)度不大于所述剩余寬度;獲取所述第二存儲(chǔ)器中當(dāng)前記錄的m的取值,根據(jù)所述第一數(shù)據(jù)中的前m個(gè)子公式,生成第一公式,并將所述第一公式的排版位置設(shè)置為所述第一數(shù)據(jù)所在行;根據(jù)所述第一數(shù)據(jù)中除前m個(gè)子公式以外的子公式,生成第二公式,并將所述第二公式的排版位置設(shè)置為所述第一數(shù)據(jù)所在行的下一行;根據(jù)所述第一公式和所述第二公式的排版位置,進(jìn)行排版處理。
本發(fā)明的另一個(gè)方面是提供一種排版處理裝置,包括:獲取模塊,用于獲取數(shù)學(xué)公式的當(dāng)前長(zhǎng)度和所述數(shù)學(xué)公式所在行的剩余寬度并進(jìn)行比較;拆分模塊,用于若所述數(shù)學(xué)公式的當(dāng)前長(zhǎng)度大于所述數(shù)學(xué)公式所在行的剩余寬度,則根據(jù)所述數(shù)學(xué)公式的樹(shù)形結(jié)構(gòu),通過(guò)拆分處理,獲得由n個(gè)子公式構(gòu)成的原始序列;處理模塊,用于將所述原始序列中的所有子公式存儲(chǔ)至當(dāng)前的第一數(shù)據(jù),計(jì)算并記錄當(dāng)前第一數(shù)據(jù)中存儲(chǔ)的前n-m個(gè)子公式的長(zhǎng)度至第一存儲(chǔ)器,其中,m的初始值為1;所述處理模塊,還用于若所述第一存儲(chǔ)器中當(dāng)前記錄的長(zhǎng)度大于第一數(shù)據(jù)所在行的剩余寬度,則將m的值加1并將當(dāng)前m的取值記錄至第二存儲(chǔ)器,并再次計(jì)算并記錄當(dāng)前第一數(shù)據(jù)中存儲(chǔ)的前n-m個(gè)子公式的長(zhǎng)度至第一存儲(chǔ)器,直至所述第一存儲(chǔ)器中當(dāng)前記錄的長(zhǎng)度不大于所述剩余寬度;編輯模塊,用于獲取所述第二存儲(chǔ)器中當(dāng)前記錄的m的取值,根據(jù)所述第一數(shù)據(jù)中的前m個(gè)子公式,生成第一公式,并將所述第一公式的排版位置設(shè)置為所述第一數(shù)據(jù)所在行;根據(jù)所述第一數(shù)據(jù)中除前m個(gè)子公式以外的子公式,生成第二公式,并將所述第二公式的排版位置設(shè)置為所述第一數(shù)據(jù)所在行的下一行;排版模塊,用于根據(jù)所述第一公式和所述第二公式的排版位置,進(jìn)行排版處理。
本發(fā)明提供的排版處理方法及裝置,當(dāng)檢測(cè)到數(shù)學(xué)公式的長(zhǎng)度大于其所在行的剩余寬度時(shí),則根據(jù)數(shù)學(xué)公式的樹(shù)形結(jié)構(gòu),通過(guò)拆分處理獲得包括多個(gè)子公式的序列,并比較該序列中前一部分子公式的長(zhǎng)度與數(shù)學(xué)公式所在行的剩余寬度,確定需要換行至下一行的子公式,根據(jù)各行的子公式生成相應(yīng)公式并根據(jù)各公式的排版位置進(jìn)行排版,實(shí)現(xiàn)數(shù)學(xué)公式的自動(dòng)拆分和換行,減少人工拆分和排版,使得排版更合理,數(shù)學(xué)公式的意義更準(zhǔn)確,并且加快排版速度,提高排版效率,減少時(shí)間成本和人工成本。
附圖說(shuō)明
為了更清楚地說(shuō)明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1為本發(fā)明實(shí)施例一提供的一種排版處理方法的流程示意圖;
圖2為本發(fā)明實(shí)施例一提供的另一種排版處理方法的流程示意圖;
圖3為本發(fā)明實(shí)施例一提供的又一種排版處理方法的流程示意圖;
圖4為本發(fā)明實(shí)施例一提供的又一種排版處理方法的流程示意圖;
圖5為本發(fā)明實(shí)施例一提供的又一種排版處理方法的流程示意圖;
圖6為本發(fā)明實(shí)施例二提供的一種排版處理裝置的結(jié)構(gòu)示意圖;
圖7為本發(fā)明實(shí)施例二提供的另一種排版處理裝置的結(jié)構(gòu)示意圖;
圖8為本發(fā)明實(shí)施例二提供的又一種排版處理裝置的結(jié)構(gòu)示意圖;
圖9為本發(fā)明實(shí)施例二提供的又一種排版處理裝置的結(jié)構(gòu)示意圖。
具體實(shí)施方式
為使本發(fā)明實(shí)施例的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例。基于本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有作出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
圖1為本發(fā)明實(shí)施例一提供的一種排版處理方法的流程示意圖,如圖1所示,所述方法包括:
101、獲取數(shù)學(xué)公式的當(dāng)前長(zhǎng)度和所述數(shù)學(xué)公式所在行的剩余寬度并進(jìn)行比較,若所述數(shù)學(xué)公式的當(dāng)前長(zhǎng)度大于所述數(shù)學(xué)公式所在行的剩余寬度,則根據(jù)所述數(shù)學(xué)公式的樹(shù)形結(jié)構(gòu),通過(guò)拆分處理,獲得由n個(gè)子公式構(gòu)成的原始序列;
102、將所述原始序列中的所有子公式存儲(chǔ)至當(dāng)前的第一數(shù)據(jù),計(jì)算并記錄當(dāng)前第一數(shù)據(jù)中存儲(chǔ)的前n-m個(gè)子公式的長(zhǎng)度至第一存儲(chǔ)器,其中,m的初始值為1;
103、若所述第一存儲(chǔ)器中當(dāng)前記錄的長(zhǎng)度大于第一數(shù)據(jù)所在行的剩余寬度,則將m的值加1并將當(dāng)前m的取值記錄至第二存儲(chǔ)器,并再次執(zhí)行所述計(jì)算并記錄當(dāng)前第一數(shù)據(jù)中存儲(chǔ)的前n-m個(gè)子公式的長(zhǎng)度至第一存儲(chǔ)器的步驟,直至所述第一存儲(chǔ)器中當(dāng)前記錄的長(zhǎng)度不大于所述剩余寬度;
104、獲取所述第二存儲(chǔ)器中當(dāng)前記錄的m的取值,根據(jù)所述第一數(shù)據(jù)中的前m個(gè)子公式,生成第一公式,并將所述第一公式的排版位置設(shè)置為所述第一數(shù)據(jù)所在行;根據(jù)所述第一數(shù)據(jù)中除前m個(gè)子公式以外的子公式,生成第二公式,并將所述第二公式的排版位置設(shè)置為所述第一數(shù)據(jù)所在行的下一行;
105、根據(jù)所述第一公式和所述第二公式的排版位置,進(jìn)行排版處理。
具體的,可以將數(shù)學(xué)公式的完整結(jié)構(gòu)數(shù)據(jù),記錄在一個(gè)對(duì)象中,作為其在文字流中的占位。其中,對(duì)數(shù)學(xué)公式進(jìn)行拆分獲得的子公式并不是一個(gè)獨(dú)立的,與其他子公式?jīng)]有聯(lián)系的個(gè)體,而是各個(gè)子公式之間存在序列結(jié)構(gòu)關(guān)系,屬于數(shù)學(xué)公式的一部分,不能隨意變換位置。
舉例來(lái)說(shuō),在對(duì)數(shù)學(xué)公式進(jìn)行排版時(shí),先計(jì)算出公式的總寬度TotalWidth,如果總寬度大于數(shù)學(xué)公式所在行的剩余行寬LineWidth,則進(jìn)行公式拆分,在計(jì)算第一序列中n-m個(gè)子公式的長(zhǎng)度時(shí),可以當(dāng)前第一序列中,移除掉最后一個(gè)子公式,對(duì)剩下的子公式的進(jìn)行長(zhǎng)度計(jì)算,得到更新后的公式寬度TotalWidth,將其與剩余行寬LineWidth進(jìn)行比較,如果依然大于剩余行寬LineWidth,則繼續(xù)移除掉當(dāng)前第一序列中的最后一個(gè)子公式,進(jìn)行余下子公式的長(zhǎng)度計(jì)算,直至計(jì)算出來(lái)的TotalWidth不大于LineWidth。
在找到能夠使TotalWidth不大于LineWidth的拆分位置后,則將匹配剩余行寬的前m個(gè)子公式合并為一個(gè)公式,將剩余的子公式合并為另一公式,分別放在數(shù)學(xué)公式所在行和數(shù)學(xué)公式所在行的下一行,從而實(shí)現(xiàn)數(shù)學(xué)公式的拆行。
實(shí)際應(yīng)用中,當(dāng)某行當(dāng)前未排版有任何內(nèi)容時(shí),其剩余行寬即該行整行的行寬。
具體的,對(duì)數(shù)學(xué)公式進(jìn)行拆分的方式有多種,如圖2所示,圖2為本發(fā)明實(shí)施例一提供的另一種排版處理方法的流程示意圖,在圖1所示實(shí)施方式的基礎(chǔ)上,101中所述根據(jù)所述數(shù)學(xué)公式的樹(shù)形結(jié)構(gòu),通過(guò)拆分處理,獲得 由n個(gè)子公式構(gòu)成的原始序列,具體可以包括:
201、將數(shù)學(xué)公式的樹(shù)形結(jié)構(gòu)中第一層節(jié)點(diǎn)下的子節(jié)點(diǎn)標(biāo)記為拆分點(diǎn);
202、獲取每一個(gè)所述拆分點(diǎn)下的公式數(shù)據(jù),并根據(jù)所述公式數(shù)據(jù)生成對(duì)應(yīng)的子公式,獲得由n個(gè)子公式構(gòu)成的原始序列。
具體的,如果將層節(jié)點(diǎn)過(guò)深的節(jié)點(diǎn)標(biāo)記為拆分點(diǎn)進(jìn)行公式拆分,由于過(guò)深的節(jié)點(diǎn)是一個(gè)嵌套的整體,基于過(guò)深的節(jié)點(diǎn)進(jìn)行拆分可能會(huì)破壞數(shù)學(xué)公式的數(shù)學(xué)意義,造成最后拆行后的數(shù)學(xué)公式的不準(zhǔn)確。本實(shí)施方式中,將數(shù)學(xué)公式的樹(shù)形結(jié)構(gòu)中第一層節(jié)點(diǎn)下的子節(jié)點(diǎn)標(biāo)記為拆分點(diǎn),在有效保證數(shù)學(xué)公式準(zhǔn)確性的基礎(chǔ)上,實(shí)現(xiàn)對(duì)數(shù)學(xué)公式的拆分。
進(jìn)一步的,為了保證排版的合理性,生成第一公式后,還需要確定第二公式的長(zhǎng)度是否能夠匹配下一行的寬度。
具體的,如果能夠匹配下一行的寬度,相應(yīng)的,如圖3所示,圖3為本發(fā)明實(shí)施例一提供的又一種排版處理方法的流程示意圖,在前述任一實(shí)施方式的基礎(chǔ)上,104中所述根據(jù)所述第一數(shù)據(jù)中除前m個(gè)子公式以外的子公式,生成第二公式之前,還可以包括:
301、獲取所述第一數(shù)據(jù)所在行的下一行的剩余寬度;
相應(yīng)的,104中,所述根據(jù)所述第一數(shù)據(jù)中除前m個(gè)子公式以外的子公式,生成第二公式,具體可以包括:
302、比較第一數(shù)據(jù)中除前m個(gè)子公式以外的子公式的長(zhǎng)度和所述下一行的剩余寬度,若所述第一數(shù)據(jù)中除前m個(gè)子公式以外的子公式的長(zhǎng)度不大于所述下一行的剩余寬度,則根據(jù)所述第一數(shù)據(jù)中除前m個(gè)子公式以外的子公式,生成第二公式。
具體的,如果不能夠匹配下一行的寬度,相應(yīng)的,如圖4所示,圖4為本發(fā)明實(shí)施例一提供的又一種排版處理方法的流程示意圖,在圖3所示實(shí)施方式的基礎(chǔ)上,在302之后,還可以包括:
401、若所述第一數(shù)據(jù)中除前m個(gè)子公式以外的子公式的長(zhǎng)度大于所述第一數(shù)據(jù)所在行的下一行的剩余寬度,則清空第一數(shù)據(jù)并對(duì)m的值進(jìn)行初始化,將所述第一數(shù)據(jù)中除前m個(gè)子公式以外的子公式構(gòu)成的序列存儲(chǔ)至第一數(shù)據(jù),并再次執(zhí)行所述計(jì)算并記錄當(dāng)前第一數(shù)據(jù)中存儲(chǔ)的前n-m個(gè)子公式的長(zhǎng)度至第一存儲(chǔ)器的步驟。
通過(guò)上述實(shí)施方式,根據(jù)下一行需要排版的子公式的長(zhǎng)度,對(duì)其進(jìn)行進(jìn)一步的拆行,從而提高排版的合理性。
此外,實(shí)際應(yīng)用中,在排版過(guò)程中,有可能會(huì)對(duì)數(shù)學(xué)公式進(jìn)行再次編輯,為了保證數(shù)學(xué)公式的準(zhǔn)確性,需要重新進(jìn)行數(shù)學(xué)公式的拆行,相應(yīng)的,如圖5所示,圖5為本發(fā)明實(shí)施例一提供的又一種排版處理方法的流程示意圖,在前述任一實(shí)施方式的基礎(chǔ)上,所述方法還可以包括:
501、若檢測(cè)到所述數(shù)學(xué)公式發(fā)生再編輯,則重新執(zhí)行所述獲取數(shù)學(xué)公式的當(dāng)前長(zhǎng)度和所述數(shù)學(xué)公式所在行的剩余寬度的步驟。
需要說(shuō)明的是,501可以在數(shù)學(xué)公式拆行過(guò)程中的任一時(shí)刻執(zhí)行,也就是說(shuō),只要檢測(cè)到當(dāng)前進(jìn)行拆行的數(shù)學(xué)公式發(fā)生再編輯,則忽略本次的拆行結(jié)果,重新對(duì)編輯后的數(shù)學(xué)公式進(jìn)行拆行。圖中給出的只是一種舉例的實(shí)施方式,并未對(duì)其進(jìn)行限制。
本實(shí)施例提供的排版處理方法,當(dāng)檢測(cè)到數(shù)學(xué)公式的長(zhǎng)度大于其所在行的剩余寬度時(shí),則根據(jù)數(shù)學(xué)公式的樹(shù)形結(jié)構(gòu),通過(guò)拆分處理獲得包括多個(gè)子公式的序列,并比較該序列中前一部分子公式的長(zhǎng)度與數(shù)學(xué)公式所在行的剩余寬度,確定需要換行至下一行的子公式,根據(jù)各行的子公式生成相應(yīng)公式并根據(jù)各公式的排版位置進(jìn)行排版,實(shí)現(xiàn)數(shù)學(xué)公式的自動(dòng)拆分和換行,減少人工拆分和排版,使得排版更合理,數(shù)學(xué)公式的意義更準(zhǔn)確,并且加快排版速度,提高排版效率,減少時(shí)間成本和人工成本。
圖6為本發(fā)明實(shí)施例二提供的一種排版處理裝置的結(jié)構(gòu)示意圖,如圖6所示,所述裝置包括:
獲取模塊61,用于獲取數(shù)學(xué)公式的當(dāng)前長(zhǎng)度和所述數(shù)學(xué)公式所在行的剩余寬度并進(jìn)行比較;
拆分模塊62,用于若所述數(shù)學(xué)公式的當(dāng)前長(zhǎng)度大于所述數(shù)學(xué)公式所在行的剩余寬度,則根據(jù)所述數(shù)學(xué)公式的樹(shù)形結(jié)構(gòu),通過(guò)拆分處理,獲得由n個(gè)子公式構(gòu)成的原始序列;
處理模塊63,用于將所述原始序列中的所有子公式存儲(chǔ)至當(dāng)前的第一數(shù)據(jù),計(jì)算并記錄當(dāng)前第一數(shù)據(jù)中存儲(chǔ)的前n-m個(gè)子公式的長(zhǎng)度至第一存儲(chǔ)器,其中,m的初始值為1;
處理模塊63,還用于若所述第一存儲(chǔ)器中當(dāng)前記錄的長(zhǎng)度大于第一數(shù)據(jù)所在行的剩余寬度,則將m的值加1并將當(dāng)前m的取值記錄至第二存儲(chǔ)器,并再次計(jì)算并記錄當(dāng)前第一數(shù)據(jù)中存儲(chǔ)的前n-m個(gè)子公式的長(zhǎng)度至第一存儲(chǔ)器,直至所述第一存儲(chǔ)器中當(dāng)前記錄的長(zhǎng)度不大于所述剩余寬度;
編輯模塊64,用于獲取所述第二存儲(chǔ)器中當(dāng)前記錄的m的取值,根據(jù)所述第一數(shù)據(jù)中的前m個(gè)子公式,生成第一公式,并將所述第一公式的排版位置設(shè)置為所述第一數(shù)據(jù)所在行;根據(jù)所述第一數(shù)據(jù)中除前m個(gè)子公式以外的子公式,生成第二公式,并將所述第二公式的排版位置設(shè)置為所述第一數(shù)據(jù)所在行的下一行;
排版模塊65,用于根據(jù)所述第一公式和所述第二公式的排版位置,進(jìn)行排版處理。
具體的,拆分模塊62可以將數(shù)學(xué)公式的完整結(jié)構(gòu)數(shù)據(jù),記錄在一個(gè)對(duì)象中,作為其在文字流中的占位。其中,拆分模塊62對(duì)數(shù)學(xué)公式進(jìn)行拆分獲得的子公式并不是一個(gè)獨(dú)立的,與其他子公式?jīng)]有聯(lián)系的個(gè)體,而是各個(gè)子公式之間存在序列結(jié)構(gòu)關(guān)系,屬于數(shù)學(xué)公式的一部分,不能隨意變換位置。
舉例來(lái)說(shuō),在對(duì)數(shù)學(xué)公式進(jìn)行排版時(shí),獲取模塊61先計(jì)算出公式的總寬度TotalWidth,并獲取數(shù)學(xué)公式所在行的剩余行寬,如果總寬度大于數(shù)學(xué)公式所在行的剩余行寬LineWidth,則拆分模塊62根據(jù)公式的樹(shù)形結(jié)構(gòu)進(jìn)行公式拆分,處理模塊63在計(jì)算第一數(shù)據(jù)中n-m個(gè)子公式的長(zhǎng)度時(shí),可以從當(dāng)前第一數(shù)據(jù)中,移除掉最后一個(gè)子公式,對(duì)剩下的子公式的進(jìn)行長(zhǎng)度計(jì)算,得到更新后的公式寬度TotalWidth并將其記錄至第一存儲(chǔ)器,將當(dāng)前移除掉的子公式的個(gè)數(shù)m記錄至第二存儲(chǔ)器,處理模塊63將第一存儲(chǔ)器中當(dāng)前記錄的長(zhǎng)度與剩余行寬LineWidth進(jìn)行比較,如果依然大于剩余行寬LineWidth,則繼續(xù)移除掉當(dāng)前第一數(shù)據(jù)中的最后一個(gè)子公式,計(jì)算并記錄余下子公式的長(zhǎng)度,將當(dāng)前移除掉的子公式的個(gè)數(shù)m記錄至第二存儲(chǔ)器,直至第一存儲(chǔ)器中記錄的長(zhǎng)度不大于LineWidth。
當(dāng)?shù)谝淮鎯?chǔ)器中記錄的長(zhǎng)度不大于LineWidth后,編輯模塊64從第二存儲(chǔ)器中獲取當(dāng)前的m值,根據(jù)匹配剩余行寬的前m個(gè)子公式,生成相應(yīng)的公式,根據(jù)剩余的子公式生成另一公式,并分別將其排版位置設(shè)置在數(shù)學(xué)公式所在行和數(shù)學(xué)公式所在行的下一行,排版模塊65根據(jù)各公式的排版位置即可 進(jìn)行合理的排版處理,從而實(shí)現(xiàn)數(shù)學(xué)公式的拆行。
實(shí)際應(yīng)用中,當(dāng)某行當(dāng)前未排版有任何內(nèi)容時(shí),其剩余行寬即該行整行的行寬。
具體的,拆分模塊62對(duì)數(shù)學(xué)公式進(jìn)行拆分的方式有多種,如圖7所示,圖7為本發(fā)明實(shí)施例二提供的另一種排版處理裝置的結(jié)構(gòu)示意圖,在圖6所示實(shí)施方式的基礎(chǔ)上,拆分模塊62包括:
標(biāo)記單元621,用于將將數(shù)學(xué)公式的樹(shù)形結(jié)構(gòu)中第一層節(jié)點(diǎn)下的子節(jié)點(diǎn)標(biāo)記為拆分點(diǎn);
處理單元622,用于獲取每一個(gè)所述拆分點(diǎn)下的公式數(shù)據(jù),并根據(jù)所述公式數(shù)據(jù)生成對(duì)應(yīng)的子公式,獲得由n個(gè)子公式構(gòu)成的原始序列。
本實(shí)施方式中,標(biāo)記單元621將數(shù)學(xué)公式的樹(shù)形結(jié)構(gòu)中第一層節(jié)點(diǎn)下的子節(jié)點(diǎn)標(biāo)記為拆分點(diǎn),在有效保證數(shù)學(xué)公式準(zhǔn)確性的基礎(chǔ)上,實(shí)現(xiàn)對(duì)數(shù)學(xué)公式的拆分。
進(jìn)一步的,為了保證排版的合理性,編輯模塊64生成第一公式后,還需要確定第二公式的長(zhǎng)度是否能夠匹配下一行的寬度。
具體的,如果能夠匹配下一行的寬度,相應(yīng)的,本發(fā)明實(shí)施例二還提供又一種排版處理裝置,在前述任一實(shí)施方式的基礎(chǔ)上,
獲取模塊61,還用于獲取所述第一數(shù)據(jù)所在行的下一行的剩余寬度;
編輯模塊64,具體用于比較第一數(shù)據(jù)中除前m個(gè)子公式以外的子公式的長(zhǎng)度和所述下一行的剩余寬度,若所述第一數(shù)據(jù)中除前m個(gè)子公式以外的子公式的長(zhǎng)度不大于所述下一行的剩余寬度,則根據(jù)所述第一數(shù)據(jù)中除前m個(gè)子公式以外的子公式,生成第二公式。
具體的,如果編輯模塊64通過(guò)比較檢測(cè)到第二公式的長(zhǎng)度不能夠匹配下一行的寬度,相應(yīng)的,如圖8所示,圖8為本發(fā)明實(shí)施例二提供的又一種排版處理裝置的結(jié)構(gòu)示意圖,在前述實(shí)施方式的基礎(chǔ)上,所述裝置還包括:
初始化模塊66,用于若所述第一數(shù)據(jù)中除前m個(gè)子公式以外的子公式的長(zhǎng)度大于所述第一數(shù)據(jù)所在行的下一行的剩余寬度,則清空第一數(shù)據(jù)并對(duì)m的值進(jìn)行初始化;
處理模塊63,還用于將所述第一數(shù)據(jù)中除前m個(gè)子公式以外的子公式構(gòu)成的序列存儲(chǔ)至第一數(shù)據(jù),并再次計(jì)算并記錄當(dāng)前第一數(shù)據(jù)中存儲(chǔ)的前n-m 個(gè)子公式的長(zhǎng)度至第一存儲(chǔ)器。
通過(guò)上述實(shí)施方式,根據(jù)下一行需要排版的子公式的長(zhǎng)度,對(duì)其進(jìn)行進(jìn)一步的拆行,從而提高排版的合理性。
此外,實(shí)際應(yīng)用中,在排版過(guò)程中,有可能會(huì)對(duì)數(shù)學(xué)公式進(jìn)行再次編輯,為了保證數(shù)學(xué)公式的準(zhǔn)確性,需要重新進(jìn)行數(shù)學(xué)公式的拆行,相應(yīng)的,如圖9所示,圖9為本發(fā)明實(shí)施例二提供的又一種排版處理裝置的結(jié)構(gòu)示意圖,在前述任一實(shí)施方式的基礎(chǔ)上,所述裝置還包括:
檢測(cè)模塊67,用于若檢測(cè)到所述數(shù)學(xué)公式發(fā)生再編輯,則指示獲取模塊61重新獲取數(shù)學(xué)公式的當(dāng)前長(zhǎng)度和所述數(shù)學(xué)公式所在行的剩余寬度。
本實(shí)施例提供的排版處理裝置,當(dāng)檢測(cè)到數(shù)學(xué)公式的長(zhǎng)度大于其所在行的剩余寬度時(shí),則根據(jù)數(shù)學(xué)公式的樹(shù)形結(jié)構(gòu),通過(guò)拆分處理獲得包括多個(gè)子公式的序列,并比較該序列中前一部分子公式的長(zhǎng)度與數(shù)學(xué)公式所在行的剩余寬度,確定需要換行至下一行的子公式,根據(jù)各行的子公式生成相應(yīng)公式并根據(jù)各公式的排版位置進(jìn)行排版,實(shí)現(xiàn)數(shù)學(xué)公式的自動(dòng)拆分和換行,減少人工拆分和排版,使得排版更合理,數(shù)學(xué)公式的意義更準(zhǔn)確,并且加快排版速度,提高排版效率,減少時(shí)間成本和人工成本。
所屬領(lǐng)域的技術(shù)人員可以清楚地了解到,為描述的方便和簡(jiǎn)潔,上述描述的裝置的具體工作過(guò)程,可以參考前述方法實(shí)施例中的對(duì)應(yīng)過(guò)程,在此不再贅述。此外,還需要說(shuō)明的是,本發(fā)明各實(shí)施例中的各功能單元可以集成在一個(gè)處理單元中,也可以是各個(gè)單元單獨(dú)物理存在,也可以兩個(gè)或兩個(gè)以上單元集成在一個(gè)單元中。上述集成的單元既可以采用硬件的形式實(shí)現(xiàn),也可以采用硬件加軟件功能單元的形式實(shí)現(xiàn)。
本領(lǐng)域普通技術(shù)人員可以理解:實(shí)現(xiàn)上述各方法實(shí)施例的全部或部分步驟可以通過(guò)程序指令相關(guān)的硬件來(lái)完成。前述的程序可以存儲(chǔ)于一計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中。該程序在執(zhí)行時(shí),執(zhí)行包括上述各方法實(shí)施例的步驟;而前述的存儲(chǔ)介質(zhì)包括:ROM、RAM、磁碟或者光盤等各種可以存儲(chǔ)程序代碼的介質(zhì)。
最后應(yīng)說(shuō)明的是:以上各實(shí)施例僅用以說(shuō)明本發(fā)明的技術(shù)方案,而非對(duì)其限制;盡管參照前述各實(shí)施例對(duì)本發(fā)明進(jìn)行了詳細(xì)的說(shuō)明,本領(lǐng)域的普通 技術(shù)人員應(yīng)當(dāng)理解:其依然可以對(duì)前述各實(shí)施例所記載的技術(shù)方案進(jìn)行修改,或者對(duì)其中部分或者全部技術(shù)特征進(jìn)行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實(shí)施例技術(shù)方案的范圍。