(57)【特許請求の範囲】
【請求項１】
文書データに組版処理を施す組版処理装置であって、
各ページの所定の文書スペースに予め指定された文字間隔及び行送りにて前記文書データを配置するために、該文書データを行単位及びページ単位で区切る区切り手段と、
区切られた前記文書データについてページの先頭行または末尾行に空白行があるか否かを検出する検出手段と、
該検出手段により空白行があると検出された場合に、少なくとも、該空白行よりも前に位置する所定の範囲の文書データについて前記文字間隔または行送りを増減して、前記範囲以降の文書データについてのページ区切りを変更する区切り変更手段と、
を備えることを特徴とする組版処理装置。
【請求項２】
請求項１に記載の組版処理装置において、
前記区切り変更手段は、前記文字間隔または行送りを増加した場合の前記ページ区切りの変更量と減少した場合の前記ページ区切りの変更量とをそれぞれ算出する手段と、
前記文字間隔または行送りの増加または減少のうち、算出された前記変更量の少ない方により前記ページの区切りを変更する手段と、
を含むことを特徴とする組版処理装置。
【請求項３】
請求項１または２に記載の組版処理装置において、
前記区切り変更手段は、前記ページ区切りの変更量が予め定められた許容量を越える場合、前記ページ区切りの変更を停止し、警告を発する手段を含むことを特徴とする組版処理装置。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明は、文書データに対し組版処理を施す組版処理装置に関するものである。
【０００２】
【従来の技術】
従来の組版処理装置において行われる組版処理の中には、いくつかの禁則処理があり、例えば、文書中の章見出しがページの末尾行に来るのを避ける処理などがあった。
【０００３】
【発明が解決しようとする課題】
ところで、一般に、小説などの文書中においては空白行が「場面転換」の意味で用いられる。かかる文書について組版を行った場合に、その空白行がページの先頭行あるいは末尾行に来てしまうと、その空白行はページの余白と区別がつかなくなり、読み手がその空白行を見落としてしまう恐れがある。
しかしながら、従来においては、空白行がページの先頭行または末尾行に来るのを避けるような禁則処理は存在しなかった。
【０００４】
従って、本発明の目的は、上記した従来技術の問題点を解決し、空白行がページの先頭行または末尾行に来るのを避けるような禁則処理を行い得る組版処理装置を提供することにある。
【０００５】
【課題を解決するための手段及びその作用】
上記した目的を達成するために、請求項１に記載の発明は、文書データに組版処理を施す組版処理装置であって、
各ページの所定の文書スペースに予め指定された文字間隔及び行送りにて前記文書データを配置するために、該文書データを行単位及びページ単位で区切る区切り手段と、
区切られた前記文書データについてページの先頭行または末尾行に空白行があるか否かを検出する検出手段と、
該検出手段により空白行があると検出された場合に、少なくとも、該空白行よりも前に位置する所定の範囲の文書データについて前記文字間隔または行送りを増減して、前記範囲以降の文書データについてのページ区切りを変更する区切り変更手段と、
を備えることを特徴としている。
なお、本発明において、空白行とは、文書データを表示したり、印刷したりした場合に、視覚によって行内すぺてが空白としか認識できない行を言い、具体的には、すべてスペース文字コードで構成されている行や、１文字目に改行コマンドが入っている行などが該当する。
【０００６】
このように、請求項１に記載の発明では、指定された文字間隔，行送りに従って、区切り手段により文書データを行単位及びページ単位で区切り、区切られた文書データに対し、検出手段によりページの先頭行または末尾行に空白行があるか否かを検出する。空白行があると検出された場合には、区切り変更手段により、空白行よりも前に位置する文書データについて文字間隔または行送りを増減し、ページの区切りを変更する。
こうして、ページの区切りを変更することにより、ページの先頭行または末尾行にあった空白行をその先頭行または末尾行から移動させる。
【０００７】
請求項２に記載の発明は、請求項１に記載の組版処理装置において、
前記区切り変更手段が、前記文字間隔または行送りを増加した場合の前記ページ区切りの変更量と減少した場合の前記ページ区切りの変更量とをそれぞれ算出する手段と、
前記文字間隔または行送りの増加または減少のうち、算出された前記変更量の少ない方により前記ページの区切りを変更する手段と、
を含むことを特徴としている。
【０００８】
このように、請求項２に記載の発明では、文字間隔または行送りを増加する場合と減少する場合とでページ区切りの変更量を算出し、増加または減少のうち、変更量の少ない方によってページの区切りを変更する。
【０００９】
請求項３に記載の発明は、請求項１または２に記載の組版処理装置において、前記ページ区切り変更手段が、前記ページ区切りの変更量が予め定められた許容量を越える場合、前記ページ区切りの変更を停止し、警告を発する手段を含むことを特徴としている。
【００１０】
このように、請求項３に記載の発明では、ページ区切りの変更量が許容量を越える場合、ページ区切りの変更を停止し警告を発するようにする。
【００１１】
【実施例】
以下、本発明の実施例について図面を用いて説明する。図１は本発明の一実施例としての組版処理装置を示すブロック図である。図１に示すように、本実施例の組版処理装置は、入力部１０と、テキスト記憶部２０と、組版処理部３０と、組版処理用テキスト記憶部４０と、表示部５０と、出力部６０と、制御部７０と、を備えている。
【００１２】
このうち、入力部１０は、組版処理を施すべき文書データの指定や、組版処理開始の指示や、組版処理を施す際の各種条件の指定などを外部から入力するために用いられる。テキスト記憶部２０は、複数の文書データを文書ファイルとして記憶している記憶部である。
【００１３】
組版処理部３０は、入力部１０からの組版処理開始の指示により、指定された各種条件に従って、テキスト記憶部２０に記憶されている文書データのうち、所望の文書データに対し、組版処理を施す処理部である。
【００１４】
組版処理用テキスト記憶部４０は、組版処理部３０によって組版処理の施された文書データを一時的に記憶する記憶部である。表示部５０は、組版処理の施された文書データなどを表示するものである。
【００１５】
出力部６０は、組版処理の施された文書データを印字したり、あるいは格納したりするものであり、例えば、プリンタやハードディスクなどで構成される。制御部７０は、文書データやその他データを転送したり、各部の制御を行ったりするものである。
なお、組版処理部３０は、後述するように区切り手段３２、空白行検出手段３４、区切り変更手段３６として機能する。
【００１６】
入力部１０を介して、組版処理を施すべき文書データが指定されると共に、組版処理開始の指示がなされると、制御部７０は、テキスト記憶部２０に記憶されている複数の文書データの中から、指定された文書データを読み出して、組版処理部３０に送る。組版処理部３０では、送られてきた文書データに対し、入力部１０を介して指定された各種条件や、組版処理コマンドなどに従って、組版処理を施す。その後、制御部７０は、組版処理の施された文書データを組版処理用テキスト記憶部４０に記憶させると共に、表示部５０に表示させる。また、制御部７０は、入力部１０からの指示に従って組版処理用テキスト記憶部４０に記憶された文書データを、出力部６０によって印字させたり、格納させたりする。
【００１７】
このうち、組版処理部３０では、まず、入力部１０を介して指定された各ページの用紙サイズやマージンや組方向に従って、各ページに文書データを流し込むための文書スペースを設定する。次に、組版処理部３０は区切り手段３２として機能し、入力部１０を介して指定された文字サイズ，文字間隔，行送りなどの書式情報に基づいて、各ページの文書スペースに文書データを順次配置するために、文書データを行単位及びページ単位で区切っていく。
こうして文書データに対する区切りが終わると、次に、組版処理部３０は、その文書データ内の空白行について以下に述べるような禁則処理を行う。
【００１８】
図２は図１の組版処理部３０が行う空白行についての禁則処理手順の一例を示すフローチャートである。図２に示すように、組版処理部３０は、まずＳ１において、区切られた文書データのうち、対象とするページｐ及び行ｇとしてそれぞれ初期設定値「１」を設定する。なお、この対象とするページｐは、各ページを順次対象としていくために、Ｓ６において、「１」ずつ増加させていく。
【００１９】
図３は図２に示す禁則処理を行う前と行った後の文書データの一例を示す説明図である。図３において、（ａ）は禁則処理前の文書データを、（ｂ）は禁則処理後の文書データをそれぞれ示している。これら図のうち、□，○，◇はそれぞれ文書データを構成する一文字一文字を表し、これら文字を囲む外側の枠はそれぞれ各ページに文書スペースとして設定された領域を示している。また、ｐは上記したとおり対象となっているページを、ｇは対象となっている行を示し、さらにｍは対象となっているページｐにおける行送りを示している。
この文書データの例では、図３（ａ）に示すように第ｋページ（ｐ＝ｋ）の末尾行が空白行となっている。
なお、通常の組版処理では、各ページにおける最終行の下のスペース（行間隔）は、設定される文書スペースに含めないようになっているが、本実施例では、説明を容易にするために、最終行の下のスペースを文書スペースに含めるようにしている。
【００２０】
そこで今、第ｋページ（ｐ＝ｋ）の第１行（ｇ＝１）目が対象となっているとすると、図２に示すＳ２において、対象となっている第ｋページ（ｐ＝ｋ）における行送りｍとして、入力部１０を介して指定された行送りＭ０を設定する。また、上記のように文書データを区切ったことにより、１ページ当たりの行数Ｇ０は既に定まっているので、その行数Ｇ０を、対象となっている第ｋページ（ｐ＝ｋ）の末尾行ｇＥとして設定する。なお、図３（ａ）に示す文書データの例では行数Ｇ０＝５であるので、末尾行ｇＥは「５」に設定される。
【００２１】
次に、Ｓ３ではｇを「１」ずつ増加させ、対象となる行を１行ずつ下に移動させてゆき、Ｓ４では対象となっている行ｇが末尾行ｇＥであるかどうかを判定する。判定の結果、末尾行ｇＥでない場合はＳ３に戻って同様のことを繰り返し、末尾行ｇＥである場合はＳ５に進む。従って、第ｋページ（ｐ＝ｋ）の第５行（ｇ＝５）が対象になると、第５行は末尾行ｇＥであるのでＳ５に進む。
【００２２】
Ｓ５では、組版処理部３０が空白行検出手段３４として機能し、対象となっている行ｇ（この場合、末尾行ｇＥ）が空白行であるかどうかを判定する。判定の結果、空白行であればＳ１４に進み、空白行でなければＳ６に進む。第ｋページの第５行は図３（ａ）に示すように空白行であるためＳ１４に進む。
【００２３】
Ｓ１４及びＳ１５では、組版処理部３０が区切り変更手段３６として機能し、対象となっている第ｋページの末尾行に来ている空白行を末尾行から移動させるために、第ｋページの行数を１行増やしてページの区切りを変更する。具体的には、Ｓ１４において、第ｋページにおける行送りｍを、Ｓ２にて設定されていた値Ｍ０から次の値Ｍ１に設定し直す。
【００２４】
Ｍ１＝Ｍ０×ｇＥ／（ｇＥ＋１）                ……（数１）
但し、末尾行ｇＥはＳ２にて値Ｇ０（＝５）に設定されている。
【００２５】
このように第ｋページにおける行送りｍを減らすことによって、次の第ｋ＋１ページ（ｐ＝ｋ＋１）にあった第１行が、図３（ｂ）に示すように第ｋページに繰り上がって、第ｋページの行数が１行増えることになる。
【００２６】
また、行数が１行増えたことにより、第ｋページの末尾行ｇＥも、Ｓ１５において、Ｓ２にて設定されていた値Ｇ０（＝５）から値Ｇ０＋１（＝６）に設定し直す。
【００２７】
こうして、第ｋページの行数を１行増やしてページの区切りを変更することにより、第ｋページの末尾行に来ていた空白行を末尾行の１行前に移動させることができる。
【００２８】
なお、次の第ｋ＋１ページ（ｐ＝ｋ＋１）では、第１行目が第ｋページ（ｐ＝ｋ）に繰り上がったことにより、図３（ｂ）に示すように、第２行目以降が１行ずつ繰り上がり、末尾行にはさらに次の第ｋ＋２ページ（ｐ＝ｋ＋２）にあった第１行が繰り上がることになる。但し、第ｋ＋１ページ以降については、行送りｍはＳ２にて設定された値Ｍ０のままであり、行数にも変化はない。
【００２９】
次に、Ｓ１３において、対象となる行ｇを、第ｋページに繰り上がって末尾行ｇＥとなった第６行（すなわち、空白行の次の行）に移動させ、再び、Ｓ５において、その第６行が空白行であるかどうかを判定する。第ｋページの第６行は図３（ｂ）に示すように空白行ではないので、Ｓ６に進んで、ｐを「１」増加させて、対象となるページを次の第ｋ＋１ページ（ｐ＝ｋ＋１）に移動させる。
【００３０】
Ｓ７では、対象となった第ｋ＋１ページが最終ページＰ０であるかどうか判定し、最終ページＰ０であれば処理を終了し、最終ページＰ０でなければＳ８に進んで、ｇに「１」を設定して、対象となる行を第１行目とする。なお、最終ページＰ０は上記のように文書データを区切った段階で既に定まっている。
【００３１】
Ｓ９では、組版処理部３０が再び空白行検出手段３４として機能し、対象となっている行ｇが空白行であるかどうかを判定する。判定の結果、空白行であればＳ１０に進み、空白行でなければＳ２に戻る。第ｋ＋１ページの第１行（ｇ＝１）は図３（ｂ）に示すように空白行でないため、Ｓ２に戻って前述したのと同様の処理を行う。
【００３２】
図４は図２に示す禁則処理を行う前と行った後の文書データの他の例を示す説明図である。図４において、（ａ）は禁則処理前の文書データを、（ｂ）は禁則処理後の文書データをそれぞれ示している。
この文書データの例では、図４（ａ）に示すように第ｒ＋１ページ（ｐ＝ｒ＋１）の先頭行が空白行となっている。
【００３３】
そこで今、図２に示すＳ８を終えた段階で、第ｒ＋１ページ（ｐ＝ｒ＋１）の第１行（ｇ＝１）目が対象となっているとすると、Ｓ９において、前述したように、組版処理部３０が空白行検出手段３４として機能し、対象となっている行ｇが空白行であるかどうかを判定する。第ｓ＋１ページの第１行は図４（ａ）に示すように空白行であるためＳ１０に進む。
【００３４】
Ｓ１０，Ｓ１１及びＳ１２では、組版処理部３０が区切り変更手段３６として機能し、対象となっている第ｒ＋１ページの先頭行に来ている空白行を先頭行から移動させるために、１ページ前の第ｒページの行数を２行増やしてページの区切りを変更する。具体的には、Ｓ１０において、対象となるページｐを第ｒ＋１ページから第ｒページに移動させた後、Ｓ１１において、第ｒページにおける行送りｍを、Ｓ２にて設定されていた値Ｍ０から次の値Ｍ２に設定し直す。
【００３５】
Ｍ２＝Ｍ０×ｇＥ／（ｇＥ＋２）                ……（数２）
但し、末尾行ｇＥはＳ２にて値Ｇ０（＝５）に設定されている。
【００３６】
このように、第ｒページにおける行送りｍを減らすことによって、第ｒ＋１ページ（ｐ＝ｋ＋１）にあった第１行（すなわち、空白行）と第２行が、図４（ｂ）に示すように第ｒページに繰り上がって、第ｒページの行数が２行増えることになる。
【００３７】
また、行数が２行増えたことにより、第ｒページの末尾行ｇＥも、Ｓ１２において、Ｓ２にて設定されていた値Ｇ０（＝５）から値Ｇ０＋２（＝７）に設定し直す。
【００３８】
こうして、１ページ前の第ｒページの行数を２行増やしてページの区切りを変更することにより、第ｒ＋１ページの先頭行に来ていた空白行を第ｒページの末尾行の１行前に移動させることができる。なお、当然のことながら、１ページ前の第ｒページの行数を１行ではなく２行増やしているのは、１行増しただけでは、空白行が第ｒページの末尾行に来てしまうからである。
【００３９】
また、第ｒ＋１ページ（ｐ＝ｒ＋１）では、第１行目と第２行目が第ｒページ（ｐ＝ｒ）に繰り上がったことにより、図４（ｂ）に示すように、第３行目以降が２行ずつ繰り上がり、末尾の２行には次の第ｒ＋２ページ（ｐ＝ｒ＋２）にあった第１行と第２行が繰り上がることになる。但し、第ｒ＋１ページ以降については、行送りｍはＳ２にて設定された値Ｍ０のままであり、行数にも変化はない。
【００４０】
次に、Ｓ１３において、対象となる行ｇを、第ｒページに繰り上がって末尾行ｇＥとなった第７行（すなわち、空白行の次の行）に移動させ、Ｓ５において、その第７行が空白行であるかどうかを判定する。第ｒページの第７行は図４（ｂ）に示すように空白行ではないので、Ｓ６に進んで、ｐを「１」増加させて、対象となるページを次の第ｒ＋１ページ（ｐ＝ｒ＋１）に移動させる。
【００４１】
Ｓ７では、対象となった第ｒ＋１ページが最終ページＰ０であるかどうか判定するが、図４（ｂ）に示すように最終ページＰ０ではないので、Ｓ８に進んで、ｇに「１」を設定して、対象となる行を第１行目にする。以下は前述したと同様に処理が行われる。
【００４２】
さて、以上のように、図２に示す禁則処理では、ページの行送りｍを減らしてそのページの行数を増やすことにより、空白行がページの先頭行または末尾行に来るのを回避していたが、逆に、ページの行送りｍを増やしてそのページの行数を減らすことにより、空白行がページの先頭行または末尾行に来るのを回避することもできる。そのような禁則処理を次に図５を用いて説明する。
【００４３】
図５は図１の組版処理部３０が行う空白行についての禁則処理手順の他の例を示すフローチャートである。図５に示すように、組版処理部３０は、まずＳ２１において、区切られた文書データのうち、対象とするページｐ及び行ｇとしてそれぞれ初期設定値「１」を設定する。なお、この対象とするページｐは、各ページを順次対象としていくために、Ｓ２６において、「１」ずつ増加させていく。
【００４４】
図６は図５に示す禁則処理を行う前と行った後の文書データの一例を示す説明図である。図６において、（ａ）は禁則処理前の文書データを、（ｂ）は禁則処理後の文書データをそれぞれ示している。
この文書データの例では、図３の場合と同様に、図６（ａ）に示すごとく第ｒページ（ｐ＝ｒ）の末尾行が空白行となっている。
【００４５】
さて、図５において、Ｓ２２〜Ｓ２４の処理は、図２に示したＳ２〜Ｓ４の処理と同様なので説明は省略する。そこで今、第ｋページ（ｐ＝ｋ）の第５行（ｇ＝５）目が対象となっているとすると、図６（ａ）に示すように第５行は末尾行ｇＥであるので、Ｓ２４における判定によってＳ２５に進む。
【００４６】
Ｓ２５では、組版処理部３０が空白行検出手段３４として機能し、対象となっている行ｇ（この場合、末尾行ｇＥ）が空白行であるかどうかを判定する。判定の結果、空白行であればＳ３４に進み、空白行でなければＳ２６に進む。第ｋページの第５行は図６（ａ）に示すように空白行であるためＳ３４に進む。
【００４７】
Ｓ３４及びＳ３５では、組版処理部３０が区切り変更手段３６として機能し、対象となっている第ｋページの末尾行に来ている空白行を末尾行から移動させるために、第ｋページの行数を２行減らしてページの区切りを変更する。具体的には、Ｓ１５において、第ｋページにおける行送りｍを、Ｓ２にて設定されていた値Ｍ０から次の値Ｍ３に設定し直す。
【００４８】
Ｍ３＝Ｍ０×ｇＥ／（ｇＥ−２）                ……（数３）
但し、末尾行ｇＥはＳ２２にて値Ｇ０（＝５）に設定されている。
【００４９】
このように第ｋページにおける行送りｍを増やすことによって、その第ｋページにあった末尾の第４行と第５行が、図６（ｂ）に示すように次の第ｋ＋１ページ（ｐ＝ｋ＋１）に繰り下がって、第ｋページの行数が２行減ることになる。
【００５０】
また、行数が２行減ったことにより、第ｋページの末尾行ｇＥも、Ｓ３５において、Ｓ２２にて設定されていた値Ｇ０（＝５）から値Ｇ０−２（＝３）に設定し直す。
【００５１】
こうして、第ｋページの行数を２行減らしてページの区切りを変更することにより、第ｋページの末尾行に来ていた空白行を次の第ｋ＋１の先頭行の１行後に移動させることができる。なお、当然のことながら、第ｋページの行数を１行ではなく２行減らしているのは、１行減らしただけでは、空白行が次の第ｋ＋１ページの先頭行に来てしまうからである。
【００５２】
また、次の第ｋ＋１ページ（ｐ＝ｋ＋１）では、第ｋページ（ｐ＝ｋ）の末尾の第４行目と第５行目が繰り下がったことにより、図６（ｂ）に示すように、第３行目以降が２行ずつ繰り下がり、末尾の第４行目と第５行目がさらに次の第ｋ＋２ページ（ｐ＝ｋ＋２）に繰り下がることになる。但し、第ｋ＋１ページ以降については、行送りｍはＳ２２にて設定された値Ｍ０のままであり、行数にも変化はない。
【００５３】
次に、Ｓ３３において、対象となる行ｇを、第ｋページの末尾行ｇＥとなった第３行（すなわち、空白行より２行前の行）に移動させ、再び、Ｓ２５において、その第３行が空白行であるかどうかを判定する。第ｋページの第３行は図６（ｂ）に示すように空白行ではないので、Ｓ２６に進んで、ｐを「１」増加させて、対象となるページを次の第ｋ＋１ページ（ｐ＝ｋ＋１）に移動させる。
図５において、Ｓ２７，Ｓ２８の処理は、図２に示したＳ７，Ｓ８の処理と同様なので説明は省略する。
【００５４】
図７は図５に示す禁則処理を行う前と行った後の文書データの他の例を示す説明図である。図７において、（ａ）は禁則処理前の文書データを、（ｂ）は禁則処理後の文書データをそれぞれ示している。
この文書データの例では、図４の場合と同様に、図７（ａ）に示すごとく第ｒ＋１ページ（ｐ＝ｒ＋１）の先頭行が空白行となっている。
【００５５】
そこで今、図５に示すＳ２８を終えた段階で、第ｒ＋１ページ（ｐ＝ｒ＋１）の第１行（ｇ＝１）目が対象となっているとすると、Ｓ２９において、前述したように、組版処理部３０が空白行検出手段３４として機能し、対象となっている行ｇが空白行であるかどうかを判定する。第ｓ＋１ページの第１行は図７（ａ）に示すように空白行であるためＳ３０に進む。
【００５６】
Ｓ３０，Ｓ３１及びＳ３２では、組版処理部３０が区切り変更手段３６として機能し、対象となっている第ｒ＋１ページの先頭行に来ている空白行を先頭行から移動させるために、１ページ前の第ｒページの行数を１行減らしてページの区切りを変更する。具体的には、Ｓ３０において、対象となるページｐを第ｒ＋１ページから第ｒページに移動させた後、Ｓ３１において、第ｒページにおける行送りｍを、Ｓ２にて設定されていた値Ｍ０から次の値Ｍ４に設定し直す。
【００５７】
Ｍ４＝Ｍ０×ｇＥ／（ｇＥ−１）                ……（数４）
但し、末尾行ｇＥはＳ２２にて値Ｇ０（＝５）に設定されている。
【００５８】
このように、第ｒページにおける行送りｍを増やすことによって、第ｒページにあった末尾の第５行が、図６（ｂ）に示すように次の第ｒ＋１ページ（ｐ＝ｒ＋１）に繰り下がって、第ｒページの行数が１行減ることになる。
【００５９】
また、行数が１行減ったことにより、第ｒページの末尾行ｇＥも、Ｓ３２において、Ｓ２２にて設定されていた値Ｇ０（＝５）から値Ｇ０−１（＝４）に設定し直す。
【００６０】
こうして、第ｒページの行数を１行減らしてページの区切りを変更することにより、第ｒ＋１ページの先頭行に来ていた空白行を先頭行の１行後に移動させることができる。
【００６１】
なお、次の第ｒ＋１ページ（ｐ＝ｒ＋１）では、第ｒページ（ｐ＝ｒ）の末尾の第１行目が繰り下がったことにより、図６（ｂ）に示すように、第２行目以降が１行ずつ繰り下がり、末尾の第５行がさらに次の第ｒ＋２ページ（ｐ＝ｒ＋２）に繰り下がることになる。但し、第ｒ＋１ページ以降については、行送りｍはＳ２にて設定された値Ｍ０のままであり、行数にも変化はない。
【００６２】
次に、Ｓ３３において、対象となる行ｇを、第ｒページの末尾行ｇＥとなった第４行（すなわち、空白行より２行前の行）に移動させ、再び、Ｓ２５において、その第４行が空白行であるかどうかを判定する。第ｒページの第４行は図７（ｂ）に示すように空白行ではないので、Ｓ２６に進んで、ｐを「１」増加させて、対象となるページを次の第ｒ＋１ページ（ｐ＝ｒ＋１）に移動させる。以下は前述したと同様に処理が行われる。
【００６３】
以上説明したように、本実施例によれば、空白行がページの先頭行または末尾行に来た場合に、ページの行送りｍを減らしたり増やしたりして、そのページの行数を変えることにより、空白行を先頭行または末尾行から移動させ、空白行が先頭行または末尾行に来るのを回避することができる。
【００６４】
さて、上記した実施例においては、図２に示した禁則処理ではページの行送りｍを減らしてそのページの行数を増やし、図５に示した禁則処理ではページの行送りｍを増やしてそのページの行数を減らして、それぞれページの区切りを変更していた。しかし、例えば、ページの先頭行または末尾行に空白行があって、さらにその空白行から１行または２行毎に空白行がある場合、図２に示した禁則処理ではページの行数を３行以上増やし、図５に示した禁則処理では３行以上減らしてしまう可能性がある。その場合、そのページの文書の体裁が他のページとは大きく異なることになってしまうため、文書の読み手に違和感を与えることとなる。
【００６５】
そこで、そのように増加するまたは減少する行数が３行以上になる場合には、そこで一旦処理を停止してオペレータに対して警告を出し、そのまま処理を継続するかどうかを判断をオペレータに仰ぐようにしても良い。
【００６６】
また、図２に示した禁則処理と図５に示した禁則処理とを統合し、ページの先頭行または末尾行に空白行があった場合には、ページの行送りｍを減らした場合に増える行数と、行送りｍを増やした場合に減る行数とを算出させ、その行数の少ない方の禁則処理を行うように構成しても良い。例えば、図３（ａ）または図６（ａ）に示したように、第ｋページ（ｐ＝ｋ）の末尾行が空白行となっている場合、その空白行を末尾行から移動させるには、図２に示した禁則処理ではページの行送りｍを減らすことによって行数が最小で１行しか増えないが、図５に示した禁則処理ではページの行送りｍを増やすことによって行数が最小で２行も減ってしまって文書の体裁が悪くなってしまう。従って、この場合は、変更となる行数の少ないのは図２に示した禁則処理の方であるので、ページの行送りｍを減らすことによってページの区切りを変更することにする。
【００６７】
また、上記した実施例においては、ページの行送りｍを増減することによって、ページの区切りを変更していたが、本発明はこれに限定されるものではなく、例えば、ページ内の一部の行の文字間隔を増減しその行の文字数を増減することによって、ページの区切りを変更するようにして良い。なお、文字間隔を増減する方法としては、文字の文字サイズを増減する方法や、文字と文字との間の詰め量を増減する方法や、その両者を増減する方法などが考えられる。
【００６８】
図８はページ内の一部の行の文字間隔を減少させることによってページの区切りを変更する例を示す説明図である。図８において、（ａ）は変更前の文書データを、（ｂ）は変更後の文書データをそれぞれ示している。
【００６９】
図８に示す例では、第１行及び第２行について、行内の文字間の詰め量を減少させることにより、それぞれ、行内の文字数を増やしている。その結果、第３行目の文字が第２行に繰り上がって第３行が消失し、それにより末尾行である第４行目にあった空白行が第３行に繰り上がって、末尾行から移動している。
【００７０】
ところで、本発明においては、請求項１に記載されているように、文字間隔または行送りを増減する範囲としては、少なくとも、空白行よりも前に位置する所定の範囲としており、上記した実施例においては、その所定の範囲を、空白行がページの末尾行にある場合にはそのページ内とし、ページの先頭行にある場合にはその前のページ内としていた。しかし、所定の範囲としては、少なくとも、その範囲内で文字間隔または行送りを増減することにより、空白行が先頭行または末尾行から移動し得る範囲であれば、いかなる範囲であっても良い。従って、例えば、行送りｍを増減させる所定の範囲として、先頭行または末尾行に空白行があるページ（以下、ページＰＡという）より前の全ページ（または、ページＰＡよりも前で最も近い位置にある見出し文を有するページまでに存在する各ページ）の中から、行送りｍを増減させるページ（以下、ページＰＢという）を選択するようにしても良い。そのページＰＢの選択の仕方としては、例えば、行送りｍを増減させた場合に、それによって増減する行数が最も少ないページをページＰＢとして選択するようにすればよい。但し、その場合、行送りｍを増減させた場合に、そのページＰＢから、ページＰＡより１ページ前のページ（ＰＡ−１）までに存在する各ページの先頭行または末尾行に空白行が来ないことを条件とする必要がある。なお、前述の文字間隔を増減させる場合は、行内の増減する文字数がページ当たりで最も少ないページをページＰＢとして選択するようにすればよい。
【００７１】
また、上記した実施例においては、文書データに対するページの区切りを行数に基づいて判定している。この行数の管理は、文書データとして文字列と改行コマンドが組み合わされている場合、１行当たりの規定文字数を超えているか否か、改行コマンドが入っているか否かによって行うことができる。また、文字列にさらに改ページコマンドが付加される場合は、改ページコマンドもページの区切りとして認識するようにしても良い。なお、この場合、改ページコマンドの後にページ端まで、空白行が設けられるが、これら空白行はそのまま存在していても問題はないので、これら空白行については空白行の検出を行わないようにする。
【００７２】
また、一般の文書においては、本題，副題等の見出し文の前後に空白行が設けられている場合、それら空白行がページの先頭行または末尾行に来ても、なんら問題はないので、それら空白行については禁則処理を行わないようにしても良い。具体的には、文書データ中に見出し文が存在する場合、その部分に見出し文であることを定義しておき、その部分の前後の行については空白行の検出を行わないようにする。
【００７３】
【発明の効果】
以上説明したように、請求項１に記載の発明によれば、空白行がページの先頭行または末尾行に来た場合に、文字間隔または行送りを増減してページの区切りを変えているので、ページの先頭行または末尾行にあった空白行をその先頭行または末尾行から移動させ、空白行が先頭行または末尾行に来るのを回避することができる。
【００７４】
また、請求項２に記載の発明によれば、文字間隔または行送りを増加する場合と減少する場合とでページ区切りの変更量を算出し、増加または減少のうち、変更量の少ない方によってページの区切りを変更しているで、ページ区切りの変更によって、ページにおける文書の体裁の変化を少なくすることができる。
【００７５】
請求項３に記載の発明では、ページ区切りの変更量が許容量を越える場合、ページ区切りの変更を停止し警告を発するようにしているので、その後の処理の続行の有無をオペレータによって判断させることができる。
【図面の簡単な説明】
【図１】本発明の一実施例としての組版処理装置を示すブロック図である。
【図２】図１の組版処理部３０が行う空白行についての禁則処理手順の一例を示すフローチャートである。
【図３】図２に示す禁則処理を行う前と行った後の文書データの一例を示す説明図である。
【図４】図２に示す禁則処理を行う前と行った後の文書データの他の例を示す説明図である。
【図５】図１の組版処理部３０が行う空白行についての禁則処理手順の他の例を示すフローチャートである。
【図６】図５に示す禁則処理を行う前と行った後の文書データの一例を示す説明図である。
【図７】図５に示す禁則処理を行う前と行った後の文書データの他の例を示す説明図である。
【図８】ページ内の一部の行の文字間隔を減少させることによってページの区切りを変更する例を示す説明図である。
【符号の説明】
１０…入力部
２０…テキスト記憶部
３０…組版処理部
３２…区切り手段
３４…空白行検出手段
３６…区切り変更手段
４０…組版処理用テキスト記憶部
５０…表示部
６０…出力部
７０…制御部
【図１】
0003542660.tif 000002
【図２】
0003542660.tif 000003
【図３】
0003542660.tif 000004
【図４】
0003542660.tif 000005
【図５】
0003542660.tif 000006
【図６】
0003542660.tif 000007
【図７】
0003542660.tif 000008
【図８】
0003542660.tif 000009