公开/公告号CN101021841A
专利类型发明专利
公开/公告日2007-08-22
原文格式PDF
申请/专利权人 北京北大方正电子有限公司;北京大学;北大方正集团有限公司;
申请/专利号CN200710064703.0
申请日2007-03-23
分类号G06F17/25(20060101);
代理机构11204 北京英赛嘉华知识产权代理有限责任公司;
代理人田明;王达佐
地址 100085 北京市海淀区上地五街9号方正大厦
入库时间 2023-12-17 18:59:03
法律状态公告日
法律状态信息
法律状态
2018-04-10
未缴年费专利权终止 IPC(主分类):G06F17/25 授权公告日:20100623 终止日期:20170323 申请日:20070323
专利权的终止
2010-06-23
授权
授权
2007-10-17
实质审查的生效
实质审查的生效
2007-08-22
公开
公开
技术领域
本发明属于印刷排版技术领域,具体涉及一种维文排版中自动添加连音符控制行格式撑满的方法。
背景技术
维文排版具有一定的特殊性。一个维文单词由若干个维文字符组成,维文字符之间可能存在拼接关系。维文的排版方向是从右至左(反向横排),并要求左侧对齐,即行格式撑满,但是同时要求尽量不改变维文单词与空格之间的距离,而是通过在适当的位置拉长拼接在一起的维文字符间的距离来实现。
目前现有的维文排版软件,当行没有撑满时,一般需要手动在适当的位置输入连音符,来拉伸维文单词中字符间的距离,以达到行格式撑满的目的。这种手工调整的过程给排版工作带来极大不便,严重影响了排版效率。
发明内容
针对现有技术中存在的缺陷,为了提高维文排版的效率,本发明的目的是提供一种维文排版中自动添加连音符控制行格式撑满的方法,该方法能够正确计算可以添加连音符的位置,并自动在适当的位置插入连音符,避免产生手动插入连音符的情况,从而大大提高了维文排版的效率。
为达到以上目的,本发明采用的技术方案是:一种维文排版中自动添加连音符控制行格式撑满的方法,包括以下步骤:
(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所示。
本发明所述的方法并不限于具体实施方式中所述的实施例,本领域技术人员根据本发明的技术方案得出其他的实施方式,同样属于本发明的技术创新范围。
机译: 存储介质使用grava u00c7 u00e7o / reprodu u00c7 u00e7o设备,reprod u00c7 u00e7o文本格式的字幕数据以及音频 /视频数据( AV),一种用于以文本格式复制音频 /视频(AV)和字幕数据的设备,M。 grava u00c7 u00e7o通过计算机中的读取控制设备的方法用于带有文本格式字幕数据的数据sincroniza u00c7 u00e7o音频//视频(AV),计算机中媒体当前通过 u00cdvel读取以及以sicroniza u00c7 文本格式复制字幕数据的方法u00e7o带有音频 /视频(AV)数据
机译: 使用双行方法在经过修改的代码中自动重编,重新格式化和重新定义分支语句或转到说明行的系统和方法,其中包括使用指定的新行号,错误代码和错误/纠正措施的双行方法
机译: 用于控制从相同的第二格式图像序列构建的第一格式图像序列中的附加字段或帧的添加的方法和装置