国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種手持設(shè)備文字排版對齊的方法

      文檔序號:6601456閱讀:221來源:國知局
      專利名稱:一種手持設(shè)備文字排版對齊的方法
      技術(shù)領(lǐng)域
      本發(fā)明屬于文字排版處理領(lǐng)域,具體涉及一種手持設(shè)備文字排版對齊的方法。
      顯然,采用以上的方法存在以下的不足(1)行尾不能對齊,不符合人們的閱讀習(xí)慣和審美觀點(diǎn),當(dāng)文中存在數(shù)字和西文字符時,這個問題顯得尤其嚴(yán)重;(2)不符合中文排版的規(guī)范,違反文字的許多禁排規(guī)則,比如某些標(biāo)點(diǎn)不能放在行尾,某些標(biāo)點(diǎn)不能放在行首,數(shù)字和英文單詞與中文之間應(yīng)保持一定的空白,數(shù)字組合不可拆等。手持設(shè)備上文字排版的上述不足影響了手持設(shè)備的發(fā)展,制約了基于手持設(shè)備的電子書(eBook)產(chǎn)業(yè)的發(fā)展。
      為達(dá)到以上目的,本發(fā)明采用的技術(shù)方案是一種手持設(shè)備文字排版對齊的方法,包括以下步驟首先,由手持設(shè)備的讀入裝置讀入文字流,然后再由字符分析器對文字流進(jìn)行分析處理,最后通過顯示模塊將文字顯示在手持設(shè)備的顯示裝置上供人們閱讀;本發(fā)明所述方法中的對文字流進(jìn)行分析處理的字符分析器包括一個用于分析文字流中的字符單元的基礎(chǔ)字符單元分析器,以及兩個核心模塊——斷行模塊和空白分配模塊,斷行模塊利用基礎(chǔ)字符單元分析器,決定在文字流的什么部位可以斷行,從而保證文字排版能夠遵守中文排版規(guī)則(如標(biāo)點(diǎn)禁排規(guī)則、不可拆單元規(guī)則),而空白分配模塊則在基礎(chǔ)字符單元分析器的基礎(chǔ)上,采用優(yōu)先分級的方式高效率地在一行文字之間分配空白,保證文字行的兩端與左右邊界對齊、空白在文字之間合理分配。
      本發(fā)明所述的空白分配模塊在基礎(chǔ)字符單元分析器的基礎(chǔ)上,按以下的步驟采用優(yōu)先分級的方式高效率地在一行文字之間分配空白1).假設(shè)一行的空白寬度為x,四分之一空白寬度為sp4;2).計(jì)算一行文字中,中文字符單元與西文字符單元、中文字符單元與數(shù)字字符單元的相鄰點(diǎn)數(shù)量n1;3).若n1*sp4<x,則在每個相鄰點(diǎn)分配空白p1=sp4,剩余空白x1=x-p1*n1;否則將空白x在各相鄰點(diǎn)平均分配,即p1=x/n1,剩余空白為0,分配完成,退出空白分配流程;4).計(jì)算一行文字中標(biāo)點(diǎn)符號“、,。?!”的數(shù)量n2;5).若n2*sp4<x1,則在上述每個標(biāo)點(diǎn)后分配空白p2=sp4,剩余空白x2=x1-p2*n2;否則將剩余空白x1在上述各標(biāo)點(diǎn)后平均分配,即p2=x1/n2,剩余空白為0,分配完成,退出空白分配流程;6).計(jì)算一行文字中,所有的空格的數(shù)量n3;7).若n3*sp4<x2,則在上述每個空格后分配空白p3=sp4,剩余空白x3=x2-p3*n3;否則將剩余空白x2在上述各空格后平均分配,即p3=x2/n3,剩余空白為0,分配完成,退出空白分配流程;8).計(jì)算一行文字中,所有的字符單元的數(shù)量n4;9).將剩余空白x3在上述各字符單元后平均分配,即p4=x3/n4,分配完成。
      本發(fā)明可用于手持設(shè)備的中英文排版軟件,也可用于桌面系統(tǒng)的相關(guān)軟件中,適用于文字的橫向排版,也適用于文字的縱向排版。
      本發(fā)明的效果在于手持設(shè)備采用本發(fā)明所述的方法對文字進(jìn)行排版處理后,可以極大地改善文字排版效果,可以有效地解決目前手持設(shè)備上所出現(xiàn)的文字行尾不能對齊及違反禁排規(guī)則的問題。而且,本發(fā)明可用于手持設(shè)備的文檔編輯和閱讀軟件,也可用于桌面系統(tǒng)的同類軟件中,本發(fā)明既適用于文字的橫向排版,也適用于文字的縱向排版。


      圖1是本發(fā)明的原理示意圖;圖2是本發(fā)明的空白分配流程圖。
      如圖1所示,一種手持設(shè)備文字排版對齊的方法,包括以下步驟首先,由手持設(shè)備的讀入裝置讀入任意一段文字流;如讀入這樣一段文字流“日經(jīng)BP社報(bào)道微軟應(yīng)該高興了。據(jù)Aberdeen Group所發(fā)表的報(bào)告稱,安全性最差的OS不是Windows,而是......?!比缓笤儆勺址治銎鲗ξ淖至鬟M(jìn)行分析處理。本發(fā)明所述方法中的對文字流進(jìn)行分析處理的字符分析器包括一個用于分析文字流中的字符單元的基礎(chǔ)字符單元分析器,以及兩個核心模塊——斷行模塊和空白分配模塊,斷行模塊利用基礎(chǔ)字符單元分析器,決定在文字流的什么部位可以斷行,從而保證文字排版能夠遵守中文排版規(guī)則(如標(biāo)點(diǎn)禁排規(guī)則、不可拆單元規(guī)則),而空白分配模塊則在基礎(chǔ)字符單元分析器的基礎(chǔ)上,采用優(yōu)先分級的方式高效率地在一行文字之間分配空白,保證文字行的兩端與左右邊界對齊、空白在文字之間合理分配。
      基礎(chǔ)字符單元分析器將一段文字流分為多個字符單元,并將這些字符單元分類。一個字符單元包含一到多個字符。字符單元也被稱為不可拆分單元,因?yàn)樗荒茉谝恍兄酗@示。常見的字符單元類型有中文字符單元(包含一個中文字符)、西文字符單元(即西文單詞)、數(shù)字字符單元[即數(shù)字(包括帶小數(shù)點(diǎn)的數(shù)字)、百分?jǐn)?shù)(##.##%)、溫度表示法(如##℃或##°F)、貨幣表示法(如$##、¥##等)]、標(biāo)點(diǎn)字符單元(如、,。?!等)、破折號字符單元、省略號字符單元等。
      斷行模塊利用基礎(chǔ)字符單元分析器分析文字流,將文字流分為一個個字符單元(一個字符單元內(nèi)可能有一到多個字符),只有在字符單元之間才能斷行,而且某些字符單元不能放在行首或行尾。據(jù)此,斷行模塊將文字流分為若干小組(由一個或多個字符單元組成),每個小組的文字屬于一行。
      對于本例,假設(shè)排版的行寬為338單位,(漢字)字號寬度為14單位。
      斷行模塊利用基礎(chǔ)字符單元分析器,開始分析文字流。第一行從文字流的第一個字符開始排起,一個個字符順序放在這一行,該行的剩余的空白也越來越少。當(dāng)分析到“Group”時,發(fā)現(xiàn)第一行的剩余空白小于下一個字符“G”的寬度,并且在這兒斷行符合拆行規(guī)則的要求,能保證不可拆分單元(英文單詞)的完整,就決定在“Group”之前斷行。所以,第一行的排版結(jié)果是“日經(jīng)BP社報(bào)道微軟應(yīng)該高興了。據(jù)Aberdeen”。
      第二行從“Group所發(fā)表的”排起,斷行模塊繼續(xù)分析,排到“Windows”后,行寬達(dá)到332個單位,后面的逗號的寬度為14個單位,332+14大于338,所以逗號只能排到下一行。但是,按照禁排規(guī)則,逗號不能放在行首,所以必須從上一行尾拆下一個字。英文單詞只能按音節(jié)拆開或者整個單詞均放在下一行。這兒,由于“Windows”是一個比較短的單詞,就不按音節(jié)拆了,整個單詞都放在下一行。因此第二行最后的排版結(jié)果是“Group所發(fā)表的報(bào)告稱,安全性最差的OS不是”。這一行的排版字符為23個,占用的寬度為278個單位,本行剩余的空白為338-278=60個單位。
      空白分配模塊分析后得到的每個文字行,計(jì)算出每行文字的字符單元數(shù),根據(jù)每行文字剩余的空白和每行文字的具體特征,決定字符單元之間的空白。這樣得到的字符位置,算法快捷,效果顯著。
      為了減少空白分配的計(jì)算時間,如果一行的最后一個字符的邊緣,與右邊的對齊點(diǎn)相差很少的象素時,實(shí)際上不進(jìn)行空白分配的運(yùn)算,而保持這一行的字符位置。這時候,雖然最后一個字符沒有與其他行對齊,但是因?yàn)橄嗖畹南笏睾苌伲谝曈X上察覺不到,因此在視覺上的對齊的。實(shí)施過程中,對于“很少的象素”可以根據(jù)手持設(shè)備的顯示屏分辯率確定,當(dāng)分辨率很高時,象素值可以稍大,當(dāng)分辯率很低時,只能有一個象素的誤差。
      如圖2所示,空白分配的流程采用優(yōu)先級方式1).首先,我們知道本例排版的行寬為338單位,(漢字)字號寬度為14單位,四分之一空為14/4=3.5單位,并且認(rèn)為,當(dāng)空白小于等于1個單位時,可以不再分配;2).我們還知道,第二行最后的排版結(jié)果是“Group所發(fā)表的報(bào)告稱,安全性最差的OS不是”。這一行的字符為23個,占用的寬度為278個單位,本行剩余的空白為338-278=60個單位。讓我們重點(diǎn)分析第二行的空白分配機(jī)制;3).這一行的空白寬度為x=60,四分之一空白寬度為sp4=3.5,忽略半個單位,那么,sp4=3;為保證計(jì)算精度,讓所有數(shù)值乘以100,那么x=6000,sp4=300;4).首先計(jì)算這一行文字中,中文字符單元與西文字符單元、中文字符單元與數(shù)字字符單元的相鄰點(diǎn)數(shù)量n1,共有三個(“Group”與“所”相鄰,“OS”分別與“的”和“不”相鄰),所以n1=3;5).由于3*300<6000,則在每個相鄰點(diǎn)分配空白p1=300,即在“Group”和“所”之間分配空白300,在“OS”的前后各分配空白300;剩余空白x1=6000-300*3=5100;6).計(jì)算這一行文字中標(biāo)點(diǎn)符號“、,。?!”的數(shù)量n2,對于該行來說,只有一個逗號,所以n2=1;7).由于1*300<5100,則在逗號后分配空白p2=300,剩余空白x2=5100-300*1=4800;8).計(jì)算這一行文字中,所有的空格的數(shù)量n3,本行沒有空格,所以n3=0;9).不需分配空白,剩余空白x3=x2=4800;10).計(jì)算這一行文字中,所有的字符單元的數(shù)量n4,本行有兩個英文單詞,算兩個字符單元,另有16個漢字或標(biāo)點(diǎn),所以本行的字符單元數(shù)量n4=18;11).將剩余空白x3在上述各字符單元后平均分配,即p4=4800/(18-1)=282,分配完成。
      為了保證分配的空白是整數(shù)個單位,可采用小數(shù)部分累計(jì)的方式如第一個字后分配的空白應(yīng)該為282,實(shí)際上只取整數(shù)個單位200,余下82放入累計(jì)值,第二個字后分配的空白應(yīng)該為282,加上累計(jì)的82,應(yīng)為364,取整數(shù)個單位,為300,累計(jì)值為64,依次類推。
      最后,通過顯示模塊按照文字的位置在手持設(shè)備的顯示裝置上顯示可供人們閱讀的文字。
      結(jié)果證明,手持設(shè)備上采用本發(fā)明所述的方法對文字排版進(jìn)行處理具有很好的效果,行尾已經(jīng)對齊,符合人們的閱讀習(xí)慣,也沒有違反禁排規(guī)則的情形出現(xiàn)。
      權(quán)利要求
      1.一種手持設(shè)備文字排版對齊的方法,包括以下步驟首先,由手持設(shè)備的讀入裝置讀入文字流,然后再由字符分析器對文字流進(jìn)行分析處理,最后通過顯示模塊將文字顯示在手持設(shè)備的顯示裝置上供人們閱讀;其特征在于對文字流進(jìn)行分析處理的字符分析器包括一個用于分析文字流中的字符單元的基礎(chǔ)字符單元分析器,以及兩個核心模塊——斷行模塊和空白分配模塊,斷行模塊利用基礎(chǔ)字符單元分析器,決定在文字流的什么部位可以斷行,從而保證文字排版能夠遵守中文排版規(guī)則(如標(biāo)點(diǎn)禁排規(guī)則、不可拆單元規(guī)則),而空白分配模塊則在基礎(chǔ)字符單元分析器的基礎(chǔ)上,采用優(yōu)先分級的方式高效率地在一行文字之間分配空白,保證文字行的兩端與左右邊界對齊、空白在文字之間合理分配。
      2.如權(quán)利要求1所述的一種手持設(shè)備文字排版對齊的方法,其特征在于空白分配模塊在基礎(chǔ)字符單元分析器的基礎(chǔ)上,按以下的步驟采用優(yōu)先分級的方式高效率地在一行文字之間分配空白1).假設(shè)一行的空白寬度為x,四分之一空白寬度為sp4;2).計(jì)算一行文字中,中文字符單元與西文字符單元、中文字符單元與數(shù)字字符單元的相鄰點(diǎn)數(shù)量n1;3).若n1*sp4<x,則在每個相鄰點(diǎn)分配空白p1=sp4,剩余空白x1=x-p1*n1;否則將空白x在各相鄰點(diǎn)平均分配,即p1=x/n1,剩余空白為0,分配完成,退出空白分配流程;4).計(jì)算一行文字中標(biāo)點(diǎn)符號“、,。?!”的數(shù)量n2;5).若n2*sp4<x1,則在上述每個標(biāo)點(diǎn)后分配空白p2=sp4,剩余空白x2=x1-p2*n2;否則將剩余空白x1在上述各標(biāo)點(diǎn)后平均分配,即p2=x1/n2,剩余空白為0,分配完成,退出空白分配流程;6).計(jì)算一行文字中,所有的空格的數(shù)量n3;7).若n3*sp4<x2,則在上述每個空格后分配空白p3=sp4,剩余空白x3=x2-p3*n3;否則將剩余空白x2在上述各空格后平均分配,即p3=x2/n3,剩余空白為0,分配完成,退出空白分配流程;8).計(jì)算一行文字中,所有的字符單元的數(shù)量n4;9).將剩余空白x3在上述各字符單元后平均分配,即p4=x3/n4,分配完成。
      全文摘要
      本發(fā)明屬于文字排版處理領(lǐng)域,具體涉及一種手持設(shè)備文字排版對齊的方法。目前,手持設(shè)備上的文字排版行尾不能對齊,經(jīng)常會有違反文字禁排規(guī)則的情形,不符合文字的排版規(guī)則及人們的閱讀習(xí)慣。本發(fā)明所述的方法采用了一個基礎(chǔ)字符單元分析器以及兩個核心模塊(斷行模塊和空白分配模塊)。斷行模塊利用字符單元分析器,決定在文字流的什么部位可以斷行,而空白分配模塊則在字符單元分析器的基礎(chǔ)上,采用優(yōu)先分級的方式,高效率地在一行文字之間分配空白,保證文字行的兩端與左右邊界對齊、空白在文字之間合理分配。本發(fā)明有效地解決了手持設(shè)備現(xiàn)有技術(shù)中所存在的行尾不能對齊及違反禁排規(guī)則的問題。
      文檔編號G06F17/25GK1416077SQ02153500
      公開日2003年5月7日 申請日期2002年12月5日 優(yōu)先權(quán)日2002年12月5日
      發(fā)明者湯幟, 賈愛霞, 倪愛軍, 王長橋, 張力 申請人:北京北大方正電子有限公司, 北京大學(xué)計(jì)算機(jī)科學(xué)技術(shù)研究所
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
      1