一种维文排版中自动添加连音符控制行格式撑满的方法

文档序号:6573393阅读:349来源:国知局
专利名称:一种维文排版中自动添加连音符控制行格式撑满的方法
技术领域
本发明属于印刷排版技术领域,具体涉及一种维文排版中自动添加连音符控制行格式撑满的方法。
背景技术
维文排版具有一定的特殊性。一个维文单词由若干个维文字符组成,维文字符之间可能存在拼接关系。维文的排版方向是从右至左(反向横排),并要求左侧对齐,即行格式撑满,但是同时要求尽量不改变维文单词与空格之间的距离,而是通过在适当的位置拉长拼接在一起的维文字符间的距离来实现。
目前现有的维文排版软件,当行没有撑满时,一般需要手动在适当的位置输入连音符,来拉伸维文单词中字符间的距离,以达到行格式撑满的目的。这种手工调整的过程给排版工作带来极大不便,严重影响了排版效率。

发明内容
针对现有技术中存在的缺陷,为了提高维文排版的效率,本发明的目的是提供一种维文排版中自动添加连音符控制行格式撑满的方法,该方法能够正确计算可以添加连音符的位置,并自动在适当的位置插入连音符,避免产生手动插入连音符的情况,从而大大提高了维文排版的效率。
为达到以上目的,本发明采用的技术方案是一种维文排版中自动添加连音符控制行格式撑满的方法,包括以下步骤(1)计算当前行的行尾位置与排版区域左边界间的距离L,如果距离L大于或等于一个连音符字宽,则转入步骤(2),否则转入步骤(4);(2)计算当前行的各个维文单词中能够插入连音符的位置,如果存在能够插入连音符的位置,转入步骤(3),否则转入步骤(5);(3)在适当的位置插入连音符并转入步骤(1),(4)如果距离L为零,处理结束,否则转入(5);(5)根据计算,拉伸当前行中空格与维文单词之间的距离,使行撑满,处理结束。
进一步,步骤(2)中,计算当前行的各个维文单词中能够插入连音符的位置的方法是对于当前行中的每一个维文单词,根据该维文单词的字符个数,定义一个数组,数组中的每个成员,代表维文单词相邻两个字符之间是否能够插入连音符。维文的相关语法规则为,在排版过程中,如果前一个维文字符是辅音,后一个维文字符是元音的情况下,可以在该辅音和元间之间插入连音符。根据上述规则,将能够插入连音符的位置对应的数组成员赋值为1,称之为有效插入位置,否则赋值为0。
进一步,步骤(3)中,在适当的位置插入连音符,包括以下步骤(3.1)假设本次是第i遍处理该行,i为正整数,初值为1,如果当前行中存在拥有第i个有效插入位置的维文单词,则转入步骤(3.2),否则转入步骤(3.6);(3.2)假设现在遍历到当前行的第j个单词,j为正整数,初值为1,如果该维文单词中存在第i个有效插入位置,转入步骤(3.3),否则转入步骤(3.4);
(3.3)在该位置插入连音符,之后计算插入连音符后的当前行的行尾与排版区域左边界的距离L,如果距离L大于或等于一个连音符字宽,则转入步骤(3.4),否则转入步骤(4);(3.4)将j赋值为j+1,如果j的大小超出了本行维文单词的数量,转入步骤(3.5),否则转入步骤(3.2);(3.5)将j重新赋值为初值1,并且i赋值为i+1,转入步骤(3.1);(3.6)将i重新设置成初值1,转入步骤(3.1)。
更进一步,步骤(5)中拉伸当前行中空格与维文单词之间的距离的方法如下首先计算出当前行的行尾位置与排版区域左边界间的距离L;根据规则,空格与维文单词之间的距离是可以适当拉伸的,由此确定可拉伸的位置的个数N;然后计算出每个可拉伸位置需要拉伸的距离L/N;最后将每个可拉伸位置及其后面的字符的位置向左边界方向调整L/N的距离,从而达到行格式撑满的效果。
本发明的效果在于采用本发明所述的方法,在进行维文排版时,不必为了撑满而手动插入连音符,而是由程序自动执行,在适当的位置插入连音符,这样能够避免频繁的手动调整,大大提高了排版效率。


图1是本发明所述维文排版中自动添加连音符控制行格式撑满的方法的具体实施方式
的流程图;图2是没有插入连音符控制行格式撑满的效果示意图;图3是采用本发明所述方法自动插入L1、L2、L3三个连音符控制行格式撑满后的效果示意图;
图4是扩大排版区域后采用本发明所述方法自动插入连音符控制行格式撑满后的效果示意图。
具体实施例方式
下面结合具体实例和附图,对本发明作进一步的详细说明如图2所示为没有插入连音符控制行格式撑满的效果示意图,外围黑色边框表示排版区域,11-18表示第一个单词字符间的位置编号,21-24表示第二个单词字符间的位置编号。根据维文的语法规则,在排版过程中,如果前一个维文字符是辅音,后一个维文字符是元音的情况下,可以在该辅音和元间之间插入连音符。根据上述规则,由程序判断可知,第一个单词的11、14、17位置可以插入连音符,第二个单词的21位置可以插入连音符。本实施例中,第一个单词的11、14、17位置及第二个单词的21位置对应的数组成员的值为1,其他位置对应的数组成员的值为0。
当要求行格式撑满时,根据图1所示的流程图,判断当前行的行尾位置与排版区域左边界间的距离L是否大于或等于一个连音符字宽。本实施例中当前行的行尾位置与排版区域左边界间的距离L大于一个连音符字宽,因此循环处理本行,i标识对行的循环处理,初值为1。如上所述,当前行中存在拥有第1个有效插入位置的单词,因此循环处理本行中的维文单词,j标识对行中单词的循环处理,初值为1。在第1个维文单词的第1个有效插入位置即位置11处插入连音符31,如图3所示。之后,再判断插入连音符31后的当前行的行尾位置与排版区域左边界间的距离,本实施例中仍然大于一个连音符字宽,则循环处理下一个维文单词,即j的值加1,等于2,在第2个维文单词的第1个有效插入位置,即位置21处插入一个连音字符32。此时,行尾位置与排版区域左边界间的距离仍然大于一个连音符字宽,j的值加1,等于3,超出了本行中维文单词个数的上限,因此将j重新设为初始值1,i的值加1,等于2。则在第1个维文单词的第2个有效插入位置,即位置14处,插入一个连音字符33。此时行尾位置与排版区域左边界间的距离恰好为0,处理结束,达到了行格式撑满的效果,如图3所示。
扩大排版区域后,如图4中外围黑色边框所示。根据图1所示的流程图继续处理,行循环标识i的值会增加至3,第1个维文单词存在第3个有效插入位置,即位置17处,因此在该处插入了连音符34。第2个维文单词不存在第3个插入位置。此时,当前行的行尾位置与排版区域左边界间的距离仍然大于一个连音符字宽,i的值增加至4,但是本行中的2个单词都不存在第4个连音符插入位置,因此i和j的值都被重新赋值为初始值1,重复以往的步骤,又依次插入了连音符35和36。之后,行尾位置与排版区域左边界间的距离已经小于一个连音符字宽,假设为L,L大于0。因此需要拉伸当前行中空格与维文单词之间的距离,本例中能够拉伸的位置只有一处,即41位置,则在41处拉伸距离L,最后达到了行格式撑满的效果,如图4所示。
本发明所述的方法并不限于具体实施方式
中所述的实施例,本领域技术人员根据本发明的技术方案得出其他的实施方式,同样属于本发明的技术创新范围。
权利要求
1.一种维文排版中自动添加连音符控制行格式撑满的方法,包括以下步骤(1)计算当前行的行尾位置与排版区域左边界间的距离L,如果距离L大于或等于一个连音符字宽,则转入步骤(2),否则转入步骤(4);(2)计算当前行的各个维文单词中能够插入连音符的位置,如果存在能够插入连音符的位置,转入步骤(3),否则转入步骤(5);(3)在适当的位置插入连音符并转入步骤(1);(4)如果距离L为零,处理结束,否则转入(5);(5)拉伸当前行中空格与维文单词之间的距离,使行撑满,处理结束。
2.如权利要求1所述的一种维文排版中自动添加连音符控制行格式撑满的方法,其特征是步骤(2)中,计算当前行的各个维文单词中能够插入连音符的位置的方法是对于当前行中的每一个维文单词,根据该维文单词的字符个数,定义一个数组,数组中的每个成员,代表维文单词相邻两个字符之间是否能够插入连音符,将能够插入连音符的位置对应的数组成员赋值为1,称之为有效插入位置,否则赋值为0。
3.如权利要求1或2所述的一种维文排版中自动添加连音符控制行格式撑满的方法,其特征是步骤(3)中,在适当的位置插入连音符,包括以下步骤(3.1)假设本次是第i遍处理该行,i为正整数,初值为1,如果当前行中存在拥有第i个有效插入位置的维文单词,则转入步骤(3.2),否则转入步骤(3.6);(3.2)假设现在遍历到当前行的第j个单词,j为正整数,初值为1,如果该维文单词中存在第i个有效插入位置,转入步骤(3.3),否则转入步骤(3.4);(3.3)在该位置插入连音符,之后计算插入连音符后的当前行的行尾与排版区域左边界的距离L,如果距离L大于或等于一个连音符字宽,则转入步骤(3.4),否则转入步骤(4);(3.4)将j赋值为j+1,如果j的大小超出了本行维文单词的数量,转入步骤(3.5),否则转入步骤(3.2);(3.5)将j重新赋值为初值1,并且i赋值为i+1,转入步骤(3.1);(3.6)将i重新设置成初值1,转入步骤(3.1)。
4.如权利要求1、2或3所述的一种维文排版中自动添加连音符控制行格式撑满的方法,其特征是步骤(5)中拉伸当前行中空格与维文单词之间的距离的方法如下首先计算出当前行的行尾位置与排版区域左边界间的距离L;确定可拉伸的位置的个数N;然后计算出每个可拉伸位置需要拉伸的距离L/N;最后将每个可拉伸位置及其后面的字符的位置向左边界方向调整L/N的距离。
全文摘要
本发明涉及一种维文排版中自动添加连音符控制行格式撑满的方法,属于印刷排版技术领域。维文为从右向左排版(即反向横排),并且一般行格式要求撑满。现有技术中,维文排版过程遇到行没有撑满的情况时,需要手动在适当的位置添加连音符,以保持行的撑满,费时费力,严重影响了排版效率。本发明所述的方法,利用计算机程序智能的计算维文单词中能够添加连音符的正确位置,并自动将连音符插入到适当位置。采用本发明所述的方法,避免了维文排版过程中为了行格式撑满而频繁的手动插入连音符的情况,大大提高了维文排版的效率。
文档编号G06F17/25GK101021841SQ20071006470
公开日2007年8月22日 申请日期2007年3月23日 优先权日2007年3月23日
发明者李彦娜, 高翔 申请人:北京北大方正电子有限公司, 北京大学, 北大方正集团有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1