一种不同排版顺序的文种混合排版的方法
技术领域
本发明属于印刷排版技术领域,具体涉及一种不同排版顺序的文种混合排版的方法。
背景技术
维文排版尤其是维文与汉文/英文混合排版具有一定的特殊性。维文的阅读方向是从右至左,排版时需要反向横排,即横向从右向左排版。而汉文与英文的阅读方向是从左至右,排版时需要正向横排。即横向从左向右排版。当维文与汉文/英文混合排版时,不同的排版方向导致了冲突。在输入文字的过程中,当切换文种(从维文切换至中文/英文,或者从中文/英文切换至维文)时,就需要根据情况调整光标的插入位置。
目前现有的维文排版软件,在处理维文与汉文/英文混合排版的情况时,都需要手动调整光标的插入位置:例如,当维文为主体语言时,输入汉文/英文,当输入完一个汉字或英文字符后,需要手动将光标向右移动到刚输入的那个文字的右侧,以便输入下一个汉字或英文字符时,能够满足汉文/英文正向横排的要求。当输入若干个汉字或英文字符以后,又需要输入维文的时候,需要手动将光标调整到刚刚输入的一串汉字或英文的最左侧,再接收维文。同样的道理,以汉文/英文为主体语言进行混排时也会产生类似的情况,这给排版过程带来极大不便,严重影响了排版效率。
发明内容
针对现有技术中存在的缺陷,为了提高维文与汉文/英文混合排版时的效率,本发明的目的是提供一种不同排版顺序的文种混合排版的方法,该方法能够正确计算不同排版顺序的文种混合排版输入过程中光标应在的正确位置,并自动将光标调整到所需位置,避免产生维汉/英混排时频繁的手动调整光标插入位置的情况,从而大大提高了维汉/英混合排版的效率。
为达到以上目的,本发明采用的技术方案是:一种不同排版顺序的文种混合排版的方法,包括以下步骤:
(1)判断当前排版的主体文种,如果是由右向左排版的文种,转入步骤(2),如果是由左向右排版的文种转入步骤(3);
(2)判断当前输入文字的文种种类,如果是由左向右排版的文种转入步骤(2.1),如果是由右向左排版的文种转入步骤(2.2);
(2.1)在当前光标插入位置接收并存储输入的由左向右排版文种的文字,并将光标插入位置调整至刚输入文字的右侧;
(2.2)判断是否需要调整光标位置,如果是,转入步骤(2.2.1),否则转入步骤(2.2.2);
(2.2.1)判断当前光标位置的左侧是否紧邻空格,如果是,删除该空格,计算正确的光标插入位置,调整光标至新位置,插入一个空格,然后接收并存储输入的由右向左排版文种的文字,并将光标插入位置调整至刚输入文字的左侧;否则直接计算正确的光标插入位置,调整光标至新位置,接收并存储输入的由右向左排版文种的文字,并将光标插入位置调整至刚输入文字的左侧;
(2.2.2)在当前位置接收并存储输入的由右向左排版文种的文字,并将光标插入位置调整至刚输入文字的左侧;
(3)判断当前输入文字的文种种类,如果是由右向左排版的文种转入步骤(3.1),如果是由左向右排版的文种转入步骤(3.2);
(3.1)在当前光标插入位置接收并存储输入的由右向左排版的文种文字,并将光标插入位置调整至刚输入文字的左侧;
(3.2)判断是否需要调整光标位置,如果是,转入步骤(3.2.1),否则转入步骤(3.2.2);
(3.2.1)判断当前光标位置的右侧是否紧邻空格,如果是,删除该空格,计算正确的光标插入位置,调整光标至新位置,插入一个空格,然后接收并存储输入的由左向右排版文种的文字,并将光标插入位置调整至刚输入文字的右侧;否则直接计算正确的光标插入位置,调整光标至新位置,接收并存储输入的由左向右排版文种的文字,并将光标插入位置调整至刚输入文字的右侧;
(3.2.2)在当前位置接收并存储输入的由左向右排版的文种,并将光标插入位置调整至刚输入文字的右侧。
进一步,步骤(2.2)中,判断是否需要调整光标位置,是根据当前光标位置左侧除空格外是否紧邻由左向右排版文种的文字,如果是,则需要调整光标位置,否则不需要调整光标位置。
进一步,步骤(2.2.1)中,计算正确的光标插入位置时,向左搜索至由左向右排版文种的文字的最左侧,中间如果碰到由右向左排版的文种、回车换行或者换段,搜索结束。
进一步,步骤(3.2)中,判断是否需要调整光标位置,是根据当前光标位置右侧除空格外是否紧邻由右向左排版文种的文字,如果是,则需要调整光标位置,否则不需要调整光标位置。
进一步,步骤(3.2.1)中,计算正确的光标插入位置时,向右搜索至由右向左排版文种的文字的最右侧,中间如果碰到由左向右排版的文种、回车换行或者换段,搜索结束。
进一步,所述的由左向右排版的文种是汉文或/和英文,所述的由右向左排版的文种是维文。
本发明的效果在于:采用本发明所述的方法,在进行不同排版顺序的文种的混合排版时,不必在切换文种时手动调整光标的插入位置,而是由程序自动控制,这样能够保证输入过程的流畅进行,大大提高了排版效率。
附图说明
图1是主体文种为维文时的混合排版流程图;
图2是主体文种为汉文/英文时的混合排版流程图;
图3、图4是主体文种为维文时的混合排版示意图;
图5、图6是主体文种为汉文/英文时的混合排版示意图;
图7为不同排版顺序的文种混合排版的整体效果图。
具体实施方式
下面结合具体实例和附图,对本发明作进一步的详细说明:
实施例1:
如图1、图2所示,一种不同排版顺序的文种混合排版的控制方法,包括以下步骤:
(1)判断当前排版的主体文种S101,如果是由右向左排版的文种(本实施例中为维文),转入步骤(2)S102,如果是由左向各排版的文种(本实施例中为汉文/英文)转入步骤(3)S103;
(2)判断当前输入文字的文种种类,如果是汉文/英文转入步骤(2.1)S104,如果是维文转入步骤(2.2);
(2.1)在当前光标插入位置接收并存储输入的汉文/英文,并将光标插入位置向右移动一个字S106,即将光标插入位置调整至刚输入的汉文/英文的右侧;
(2.2)判断是否需要调整光标位置,如果是,转入步骤(2.2.1),否则转入步骤(2.2.2);
判断当前光标位置左侧除空格外是否紧邻中文/英文S105,如果是,则需要调整光标位置,否则不需要调整光标位置。
(2.2.1)判断当前光标位置的左侧是否紧邻空格S107,如果是,删除该空格S108,计算正确的光标插入位置,调整光标至新位置S109,插入一个空格S110,然后接收并存储输入的维文文字S111;否则直接计算正确的光标插入位置,调整光标至新位置S112,接收并存储输入的维文文字S111;
本实施例中,计算正确的光标插入位置时,向左搜索至中文/英文的最左侧,中间如果碰到维文、回车换行或者换段,搜索结束。
(2.2.2)在当前位置接收并存储输入的维文文字,并将光标插入位置向左移动一个字,即将光标插入位置调整至刚输入的维文的左侧;
(3)判断当前输入文字的文种种类S201,如果是维文转入步骤(3.1),如果是汉文/英文转入步骤(3.2);
(3.1)在当前光标插入位置接收并存储输入的维文文字S202,并将光标插入位置向左移动一个字S203;
(3.2)判断是否需要调整光标位置,如果是,转入步骤(3.2.1),否则转入步骤(3.2.2);
判断当前光标位置右侧除空格外是否紧邻维文S204,如果是,则需要调整光标位置,否则不需要调整光标位置;
(3.2.1)判断当前光标位置的右侧是否紧邻空格S205,如果是,删除该空格S206,计算正确的光标插入位置,调整光标至新位置S207,插入一个空格S208,然后接收并存储输入的汉文/英文S209;否则直接计算正确的光标插入位置,调整光标至新位置S210,接收并存储输入的汉文/英文S209;
计算正确的光标插入位置时,向右搜索至维文的最右侧,中间如果碰到中文/英文、回车换行或者换段,搜索结束。
如图3所示,实施例1在维文为主体文种的情况下,维文的排版顺序为由右向左排版,先输入了一个维文单词
,之后输入了一个空格301,之后输入英文单词“sample”,英文单词“sample”的排版顺序为由左向右排版,之后又输入了一个空格302,此时想要再输入维文单词
,当输入该维文单词的第一个字符时,根据上述本发明的方法,首先判断当前的主体文种,本实施例中已知为维文;判断出当前正在输入的字符为维文字符
;由图3所示可知,当前光标位置左侧除空格302外,紧邻英文字母“e”,因此需要调整光标位置;由于当前光标位置左侧紧邻空格302,因此删除该空格302,之后向左搜索至邻接的汉文/英文的最左侧,在本例中即英文单词“sample”的最左侧,插入一个空格303,如图4所示,然后接收并存储输入的维文字符
。输入完维文单词
后的效果如图4所示。
实施例2:
如图5所示,实施例2在汉文为主体文种的情况下,汉文的排版顺序为由左向右排版,先输入了汉文词语“飞腾”,之后输入了一个空格501,之后输入维文单词
,之后又输入了一个空格502,此时想要再输入汉字“好”。根据本发明的步骤,首先判断当前的主体文种,已知为汉文;判断出当前正在输入的字符“好”为汉字;由图5所示可知,当前光标位置右侧除空格502外,紧邻维文字符,因此需要调整光标位置;由于当前光标位置右侧紧邻空格502,因此删除该空格502,之后向右搜索至邻接的维文的最右侧,在本例中即维文单词
的最右侧,插入一个空格503,如图6所示,然后接收并存储输入的汉字“好”。输入完汉字“好”后的效果如图6所示。
如图7所示,图7为不同排版顺序的文种混合排版时的整体效果图。
本发明所述的方法并不限于具体实施方式中所述的实施例,本领域技术人员根据本发明的技术方案得出其他的实施方式,同样属于本发明的技术创新范围。