JP3509111B2 - 文書出力方法および装置 - Google Patents
文書出力方法および装置Info
- Publication number
- JP3509111B2 JP3509111B2 JP00901292A JP901292A JP3509111B2 JP 3509111 B2 JP3509111 B2 JP 3509111B2 JP 00901292 A JP00901292 A JP 00901292A JP 901292 A JP901292 A JP 901292A JP 3509111 B2 JP3509111 B2 JP 3509111B2
- Authority
- JP
- Japan
- Prior art keywords
- character string
- character
- line
- type
- baseline
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Landscapes
- Digital Computer Display Output (AREA)
- Document Processing Apparatus (AREA)
- Controls And Circuits For Display Device (AREA)
- Character Spaces And Line Spaces In Printers (AREA)
Description
【0001】
【産業上の利用分野】本発明は、ワードプロセッサ、卓
上出版システム、電算写植機等に応用されるの文書処理
装置に係わり、特に和欧混植の場合のように基本デザイ
ンが異なる複数種類の文字が混在する文章を組版するの
に好適な文書出力方法および装置に関する。
上出版システム、電算写植機等に応用されるの文書処理
装置に係わり、特に和欧混植の場合のように基本デザイ
ンが異なる複数種類の文字が混在する文章を組版するの
に好適な文書出力方法および装置に関する。
【0002】
【従来の技術】技術文献や外国語辞書等を作成する際に
は、多くの場合、和文と欧文とを同一行内に混在させて
組版を行う和欧混植が必要となる。基本デザインが異な
る複数種類の文字を組み合わせて用いなければならない
和欧混植組版では、書体の選択から始まって、字間のス
ペーシング、行末位置の揃え等多くの問題が発生する。
これらの問題に対応した組版ルールについては、例え
ば、「写真植字のための組版ルールブック」(日本写真
製版工業組合連合会他発行、昭和48年)、第74頁〜
第77頁等で論じられている。
は、多くの場合、和文と欧文とを同一行内に混在させて
組版を行う和欧混植が必要となる。基本デザインが異な
る複数種類の文字を組み合わせて用いなければならない
和欧混植組版では、書体の選択から始まって、字間のス
ペーシング、行末位置の揃え等多くの問題が発生する。
これらの問題に対応した組版ルールについては、例え
ば、「写真植字のための組版ルールブック」(日本写真
製版工業組合連合会他発行、昭和48年)、第74頁〜
第77頁等で論じられている。
【0003】和欧混植時に生じる問題点のひとつに、行
と垂直な方向に関する文字の位置決めの問題がある。和
文の表記に用いる漢字や仮名では、各文字の大きさは高
さ、幅ともにほぼ揃っており、矩形の箱を並べるような
感覚で文字を行上に配置していくことができる。
と垂直な方向に関する文字の位置決めの問題がある。和
文の表記に用いる漢字や仮名では、各文字の大きさは高
さ、幅ともにほぼ揃っており、矩形の箱を並べるような
感覚で文字を行上に配置していくことができる。
【0004】例えば、図2おいて、(a)は和文文字フ
ォントの字面の構成の1例を示し、101は字面の上端
を表す線であるトップライン(top line)、102は字
面の下端を表す線であるボトムライン (bottom line)、
103は、トップラインとボトムラインとの中央に位置
し、配置基準線として用いられるセンターライン(cente
r line) である。和文文字フォントでは、少数の例外、
例えば、「ゃ」、「っ」等の拗促音文字や句読点等を除け
ば、各文字の中心がセンターライン上にくるように字面
がデザインされており、組版の際にはこのセンターライ
ンが一直線上に並ぶように文字を配置する。上記した拗
促音文字や句読点等の例外的文字も、文字の中心はセン
ターラインから外れているものの、他の一般の文字が占
める範囲に比較して、上下へのはみ出しは目立たないよ
うになっている。
ォントの字面の構成の1例を示し、101は字面の上端
を表す線であるトップライン(top line)、102は字
面の下端を表す線であるボトムライン (bottom line)、
103は、トップラインとボトムラインとの中央に位置
し、配置基準線として用いられるセンターライン(cente
r line) である。和文文字フォントでは、少数の例外、
例えば、「ゃ」、「っ」等の拗促音文字や句読点等を除け
ば、各文字の中心がセンターライン上にくるように字面
がデザインされており、組版の際にはこのセンターライ
ンが一直線上に並ぶように文字を配置する。上記した拗
促音文字や句読点等の例外的文字も、文字の中心はセン
ターラインから外れているものの、他の一般の文字が占
める範囲に比較して、上下へのはみ出しは目立たないよ
うになっている。
【0005】これに対して、欧文の表記に用いるラテン
文字では、個々の文字ごとに文字幅が異なるだけでな
く、高さ方向についても、文字によってその占める範囲
が異なっている。例えば、「a」、「c」、「e」等の小文
字に比べて、大文字や「h」、「k」等の小文字は上方に
伸び、「g」、「y」等の小文字は下方に伸びている。
文字では、個々の文字ごとに文字幅が異なるだけでな
く、高さ方向についても、文字によってその占める範囲
が異なっている。例えば、「a」、「c」、「e」等の小文
字に比べて、大文字や「h」、「k」等の小文字は上方に
伸び、「g」、「y」等の小文字は下方に伸びている。
【0006】図2の(b)に欧文文字フォントの字面構
成の1例を示す。ここで、104は欧文のトップライ
ン、105は欧文のボトムライン、106は欧文の配置
基準線として用いられるベースライン(base line) で
ある。この図にから判るように、欧文文字フォントに
は、字面の下端がベースラインに一致する文字、例え
ば、「M」,「h」,「x」と、文字の1部がベースラ
インより下にはみ出し、その字面の下端がボトムライン
に一致する文字、例えば、「p」との2種類が含まれ
る。欧文の組版では、このように、各文字のベースライ
ンが常に一直線に並ぶように文字配置することによっ
て、読みやすい字面を実現している。
成の1例を示す。ここで、104は欧文のトップライ
ン、105は欧文のボトムライン、106は欧文の配置
基準線として用いられるベースライン(base line) で
ある。この図にから判るように、欧文文字フォントに
は、字面の下端がベースラインに一致する文字、例え
ば、「M」,「h」,「x」と、文字の1部がベースラ
インより下にはみ出し、その字面の下端がボトムライン
に一致する文字、例えば、「p」との2種類が含まれ
る。欧文の組版では、このように、各文字のベースライ
ンが常に一直線に並ぶように文字配置することによっ
て、読みやすい字面を実現している。
【0007】なお、欧文文字の字面のなりたちについて
は、前記した文献「写真植字のための組版ルールブッ
ク」の第55頁〜第57頁でさらに詳細に論じられてい
る。ここで、印刷関係の伝統的な用語として、欧文文字
列の上端に相当する図2の(b)における線104を
「アセンダライン(ascender line)」、
欧文文字列の下端に相当する図2の(b)における線1
05を「デセンダライン(descender lin
e)」と称するが、本明細書においては、和文における
表現との対応関係を明らかにするために、これらのライ
ンを、それぞれ「欧文のトップライン」および「欧文の
ボトムライン」と呼ぶことにする。また、以下の説明で
は、欧文文字のうち字面の下端が欧文のボトムラインに
一致する文字を「デセンダレター」、それ以外の文字
(字面の下端がベースラインに一致する文字)を「非デ
センダレター」と呼ぶことにする。
は、前記した文献「写真植字のための組版ルールブッ
ク」の第55頁〜第57頁でさらに詳細に論じられてい
る。ここで、印刷関係の伝統的な用語として、欧文文字
列の上端に相当する図2の(b)における線104を
「アセンダライン(ascender line)」、
欧文文字列の下端に相当する図2の(b)における線1
05を「デセンダライン(descender lin
e)」と称するが、本明細書においては、和文における
表現との対応関係を明らかにするために、これらのライ
ンを、それぞれ「欧文のトップライン」および「欧文の
ボトムライン」と呼ぶことにする。また、以下の説明で
は、欧文文字のうち字面の下端が欧文のボトムラインに
一致する文字を「デセンダレター」、それ以外の文字
(字面の下端がベースラインに一致する文字)を「非デ
センダレター」と呼ぶことにする。
【0008】上述した欧文と和文とを1つの文書中に混
植する場合、もし、同一の行内に和文文字列と欧文文字
列とを隣り合って配置させる必要がある場合には、上下
方向における和文文字列と欧文文字列との相対的な位置
関係、例えば、和文の配置基準線であるセンターライン
に対して、欧文の配置基準線であるベースラインを上下
方向にどれだけずらして配置するかを決定しなければな
らない。
植する場合、もし、同一の行内に和文文字列と欧文文字
列とを隣り合って配置させる必要がある場合には、上下
方向における和文文字列と欧文文字列との相対的な位置
関係、例えば、和文の配置基準線であるセンターライン
に対して、欧文の配置基準線であるベースラインを上下
方向にどれだけずらして配置するかを決定しなければな
らない。
【0009】従来、このような和文文字列と欧文文字列
との揃え方の1つとして、例えば、欧文のボトムライン
が和文のボトムラインと略一致する位置にくるように、
ベースラインの位置決めを行う方式が知られている。前
記文献の第77頁〜第82頁には、このような位置決め
方式による和欧文字混植の組み見本が示されている。
との揃え方の1つとして、例えば、欧文のボトムライン
が和文のボトムラインと略一致する位置にくるように、
ベースラインの位置決めを行う方式が知られている。前
記文献の第77頁〜第82頁には、このような位置決め
方式による和欧文字混植の組み見本が示されている。
【0010】
【発明が解決しようとする課題】上述した従来の文書出
力方式では、欧文文字列内にデセンダレターが適度に含
まれていれば、和文の上端と欧文の上端、および和文の
下端と欧文の下端とが、それぞれ略一致するため、平均
的には、行内での文字配置が適切行なわれているように
見える。しかしながら、欧文文字列内にデセンダレター
が全く含まれていない場合、特に大文字だけが連続して
並んでいるような場合には、その欧文文字列が行内で浮
き上がって見える。
力方式では、欧文文字列内にデセンダレターが適度に含
まれていれば、和文の上端と欧文の上端、および和文の
下端と欧文の下端とが、それぞれ略一致するため、平均
的には、行内での文字配置が適切行なわれているように
見える。しかしながら、欧文文字列内にデセンダレター
が全く含まれていない場合、特に大文字だけが連続して
並んでいるような場合には、その欧文文字列が行内で浮
き上がって見える。
【0011】図3は、従来方式による文字配置を示す例
である。例えば、図3の(a)にデセンダレターを含む
欧文文字列と和文文字列の混植、(b)にデセンダレタ
ーを含まない欧文文字列と和文文字列の混植の1例を示
す。この例から明らかな如く、欧文文字列がデセンダレ
ターを含まない場合、欧文文字列が周囲の和文に比べて
浮き上がって見えるため、読者に対して、その行では各
文字の上端を揃えたかような印象を与える。尚、図3に
おいて、101は和文のトップライン、102は和文の
ボトムライン、106は欧文のベースラインである。前
記した「写真植字のための組版ルールブック」に示され
た組み見本の中にも、例えば、第78頁、例4の冒頭部
分において、上記図3と同様の不自然な文字配列の例を
認めるられる。
である。例えば、図3の(a)にデセンダレターを含む
欧文文字列と和文文字列の混植、(b)にデセンダレタ
ーを含まない欧文文字列と和文文字列の混植の1例を示
す。この例から明らかな如く、欧文文字列がデセンダレ
ターを含まない場合、欧文文字列が周囲の和文に比べて
浮き上がって見えるため、読者に対して、その行では各
文字の上端を揃えたかような印象を与える。尚、図3に
おいて、101は和文のトップライン、102は和文の
ボトムライン、106は欧文のベースラインである。前
記した「写真植字のための組版ルールブック」に示され
た組み見本の中にも、例えば、第78頁、例4の冒頭部
分において、上記図3と同様の不自然な文字配列の例を
認めるられる。
【0012】このような不自然な文字配列現象の生ずる
程度は、欧文文字の書体によっても異なり、例えば、ベ
ースラインと欧文のボトムラインとの間の距離が小さい
書体を採用した場合には、上述した現象を比較的目立た
ないようにすることができる。 実際に、JISの漢字
符号系で定められた文字集合のように、和文文字(漢字
や仮名文字)と欧文文字との両方を含む文字集合を対象
としてフォントを設計する場合、欧字の部分について
は、特にベースラインから下へのはみ出しを小さくする
よう設計することが多い。しかしながら、このように設
計された文字集合では、書体デザインが制約されること
から、文字そのものの品質が低下してしまうという問題
がある。また、例えば、フランス語に用いられるアクセ
ント記号付き文字の場合、特に印字サイズが小さいと
き、アクセント記号部分が潰れてしまい、判別できなく
なるという不都合が生じる。
程度は、欧文文字の書体によっても異なり、例えば、ベ
ースラインと欧文のボトムラインとの間の距離が小さい
書体を採用した場合には、上述した現象を比較的目立た
ないようにすることができる。 実際に、JISの漢字
符号系で定められた文字集合のように、和文文字(漢字
や仮名文字)と欧文文字との両方を含む文字集合を対象
としてフォントを設計する場合、欧字の部分について
は、特にベースラインから下へのはみ出しを小さくする
よう設計することが多い。しかしながら、このように設
計された文字集合では、書体デザインが制約されること
から、文字そのものの品質が低下してしまうという問題
がある。また、例えば、フランス語に用いられるアクセ
ント記号付き文字の場合、特に印字サイズが小さいと
き、アクセント記号部分が潰れてしまい、判別できなく
なるという不都合が生じる。
【0013】同様の現象については、雑誌「bit」、
第20巻、第5号、第101頁〜第110頁(1988
年、共立出版)の第104頁に「日本語TeXの試み」
と題して論じられており、和文と欧文の並び線間の位置
関係を固定的に定めると、文字の並び方によっては不揃
いに見えることが報告されている。
第20巻、第5号、第101頁〜第110頁(1988
年、共立出版)の第104頁に「日本語TeXの試み」
と題して論じられており、和文と欧文の並び線間の位置
関係を固定的に定めると、文字の並び方によっては不揃
いに見えることが報告されている。
【0014】なお、このような文字並びの不揃い現象が
生じるのは、以上述べたような和欧混植組版の場合に限
られるわけではない。例えば、行と垂直な方向における
文字の位置決めという観点から文章記述に用いられる文
字を分類すると、次の2種類の文字体系になる。「第1
の文字体系」は、例えば、漢字、かな文字、ハングル文
字などのように、配置基準線として、文字の字面の上端
と下端との中央に位置するセンターラインを用いること
のできる文字体系に属するものであり、「第2の文字体
系」は、例えば、ラテン文字、ロシア文字、ギリシア文
字、アラビア文字、ヘブライ文字などのように、配置基
準線として所定のベースラインを持ち、下端がベースラ
イン上に一致する文字と、ベースラインより一定量下の
線まではみ出す文字とを含む文字体系に属するものであ
る。ここで、上記第1の文字体系に属する文字からなる
文字列を「第1種の文字列」、第2の文字体系に属する
文字からなる文字列を「第2種の文字列」と呼ぶことに
すると、同一行内にこれら第1種の文字列と第2種の文
字列とが混植される場合には、上述した問題が同様に発
生する。
生じるのは、以上述べたような和欧混植組版の場合に限
られるわけではない。例えば、行と垂直な方向における
文字の位置決めという観点から文章記述に用いられる文
字を分類すると、次の2種類の文字体系になる。「第1
の文字体系」は、例えば、漢字、かな文字、ハングル文
字などのように、配置基準線として、文字の字面の上端
と下端との中央に位置するセンターラインを用いること
のできる文字体系に属するものであり、「第2の文字体
系」は、例えば、ラテン文字、ロシア文字、ギリシア文
字、アラビア文字、ヘブライ文字などのように、配置基
準線として所定のベースラインを持ち、下端がベースラ
イン上に一致する文字と、ベースラインより一定量下の
線まではみ出す文字とを含む文字体系に属するものであ
る。ここで、上記第1の文字体系に属する文字からなる
文字列を「第1種の文字列」、第2の文字体系に属する
文字からなる文字列を「第2種の文字列」と呼ぶことに
すると、同一行内にこれら第1種の文字列と第2種の文
字列とが混植される場合には、上述した問題が同様に発
生する。
【0015】従来技術では、これら第1種、第2種の文
字列の混植時における配置基準線の位置決めに関して、
第2種の文字列に含まれる個々の文字の種類を考慮する
ことなく、それらの文字列に一律にベースラインの位置
を定めていたため、第2種の文字列における文字の種類
によって、行の一部が浮き上がったり、逆に、沈み込ん
だように見える文字配列の不揃い現象を伴っていた。
字列の混植時における配置基準線の位置決めに関して、
第2種の文字列に含まれる個々の文字の種類を考慮する
ことなく、それらの文字列に一律にベースラインの位置
を定めていたため、第2種の文字列における文字の種類
によって、行の一部が浮き上がったり、逆に、沈み込ん
だように見える文字配列の不揃い現象を伴っていた。
【0016】本発明の目的は、言語種類の異なる複数種
の文字列が混在する文章を高品位に組版可能な文書出力
方法および装置を提供することにある。
の文字列が混在する文章を高品位に組版可能な文書出力
方法および装置を提供することにある。
【0017】本発明の他の目的は、第1種の文字列と第
2種の文字列とが混在している文書において、文字の種
別やその並びにかかわらず適切な文字配置を実現し、文
字並びの不揃い現象の生じない文書出力方法および装置
を提供することにある。
2種の文字列とが混在している文書において、文字の種
別やその並びにかかわらず適切な文字配置を実現し、文
字並びの不揃い現象の生じない文書出力方法および装置
を提供することにある。
【0018】
【課題を解決するための手段】上記目的を達成するた
め、本発明の文書出力方式では、第1種の文字列と第2
種の文字列とが同一行内に混在して配置される場合に、
第2種の各文字列について、第1種の文字列を配置する
センターラインに対する該第2種文字列のベースライン
の相対位置を決定し、そのように決定されたベースライ
ン上にその文字列に含まれる各文字を配置するようにし
たことを特徴とする。
め、本発明の文書出力方式では、第1種の文字列と第2
種の文字列とが同一行内に混在して配置される場合に、
第2種の各文字列について、第1種の文字列を配置する
センターラインに対する該第2種文字列のベースライン
の相対位置を決定し、そのように決定されたベースライ
ン上にその文字列に含まれる各文字を配置するようにし
たことを特徴とする。
【0019】上記文字列の相対位置の動的決定は、第2
種の各文字列内に含まれる文字の組合せに対応して、予
め定めた規則に従って行う。例えば、第1種の文字列の
センターラインと第2種の文字列のトップラインとの間
の距離を「第1の距離」、第1種の文字列のセンターラ
インと第2種の文字列のベースラインとの間の距離を
「第2の距離」、第1種の文字列のセンターラインと第
2種の文字列のボトムラインとの間の距離を「第3の距
離」と定義すると、1つの行内に第1種の文字列と第2
種の文字列とが混在していた場合には、以下に示すよう
な規則に従って、上記第1種の文字列を配置するセンタ
ーラインに対する第2種の各文字列のベースラインの相
対位置を決定し、そのように決定されたベースライン上
にその文字列内に含まれる各文字を配置するようにす
る。
種の各文字列内に含まれる文字の組合せに対応して、予
め定めた規則に従って行う。例えば、第1種の文字列の
センターラインと第2種の文字列のトップラインとの間
の距離を「第1の距離」、第1種の文字列のセンターラ
インと第2種の文字列のベースラインとの間の距離を
「第2の距離」、第1種の文字列のセンターラインと第
2種の文字列のボトムラインとの間の距離を「第3の距
離」と定義すると、1つの行内に第1種の文字列と第2
種の文字列とが混在していた場合には、以下に示すよう
な規則に従って、上記第1種の文字列を配置するセンタ
ーラインに対する第2種の各文字列のベースラインの相
対位置を決定し、そのように決定されたベースライン上
にその文字列内に含まれる各文字を配置するようにす
る。
【0020】上記ベースラインの相対位置を動的に決定
するための「第1の規則」として、注目する第2種の文
字列内にデセンダレターが含まれていなかった場合に
は、第1種の文字列を配置するセンターラインに対する
上記注目文字列のベースラインの相対位置を、第1の距
離と第2の距離とが等しくなるように定め、そのように
定められたベースライン上に上記注目文字列に含まれる
各文字を配置する。
するための「第1の規則」として、注目する第2種の文
字列内にデセンダレターが含まれていなかった場合に
は、第1種の文字列を配置するセンターラインに対する
上記注目文字列のベースラインの相対位置を、第1の距
離と第2の距離とが等しくなるように定め、そのように
定められたベースライン上に上記注目文字列に含まれる
各文字を配置する。
【0021】図1の(a)は、図3の(b)に示した従
来例と同一の文字列を、本規則に従って配置した例を示
している。ここで、101は和文のトップライン、10
2は和文のボトムライン、103は和文のセンターライ
ン、104は欧文のトップライン、106は欧文のベー
スラインである。この例では、第1の距離(103と1
04との距離)と第2の距離(103と106との距
離)とが等しくなるようにベースラインの位置決めを行
っており、欧文文字列の浮き上がりが防止されている。
来例と同一の文字列を、本規則に従って配置した例を示
している。ここで、101は和文のトップライン、10
2は和文のボトムライン、103は和文のセンターライ
ン、104は欧文のトップライン、106は欧文のベー
スラインである。この例では、第1の距離(103と1
04との距離)と第2の距離(103と106との距
離)とが等しくなるようにベースラインの位置決めを行
っており、欧文文字列の浮き上がりが防止されている。
【0022】また、「第2の規則」として、注目する第
2種の文字列内にデセンダレターが含まれていた場合に
は、第1種の文字からなる文字列を配置する並び線に対
する上記注目文字列のベースラインの相対位置を、第1
の距離と第3の距離とが等しくなるように定め、そのよ
うに定められたベースライン上にその文字列に含まれる
各文字を配置するようにする。
2種の文字列内にデセンダレターが含まれていた場合に
は、第1種の文字からなる文字列を配置する並び線に対
する上記注目文字列のベースラインの相対位置を、第1
の距離と第3の距離とが等しくなるように定め、そのよ
うに定められたベースライン上にその文字列に含まれる
各文字を配置するようにする。
【0023】図1の(b)は上記第2の規則に従って配
置された文字列の1例を示している。ここで、105は
欧文のボトムラインである。この例では、第1の距離
(103と104との距離)と第3の距離(103と1
05との距離)とが等しくなるようにベースラインの位
置決めを行っている。
置された文字列の1例を示している。ここで、105は
欧文のボトムラインである。この例では、第1の距離
(103と104との距離)と第3の距離(103と1
05との距離)とが等しくなるようにベースラインの位
置決めを行っている。
【0024】また、「第3の規則」として、上記第2種
の注目文字列内にデセンダレターが含まれていた場合で
あっても、その文字列内においてデセンダレター部分が
占める比率が、あらかじめ定められたある基準値に満た
ない場合には、第1種の文字からなる文字列を配置する
並び線に対する上記注目文字列のベースラインの相対位
置を、第1の距離と第2の距離とが等しくなるように定
め、そのように定められたベースライン上にその文字列
に含まれる各文字を配置するようにする。すなわち、ベ
ースラインより下にはみ出す文字があっても、その割合
がごく僅かであり、その結果、ベースラインが並び線と
して強く意識される場合には、そのような下にはみ出す
文字が存在しない場合と同様の扱いとする。図1の
(c)は、上記第3の規則に従って配置された文字列の
1例を示す。
の注目文字列内にデセンダレターが含まれていた場合で
あっても、その文字列内においてデセンダレター部分が
占める比率が、あらかじめ定められたある基準値に満た
ない場合には、第1種の文字からなる文字列を配置する
並び線に対する上記注目文字列のベースラインの相対位
置を、第1の距離と第2の距離とが等しくなるように定
め、そのように定められたベースライン上にその文字列
に含まれる各文字を配置するようにする。すなわち、ベ
ースラインより下にはみ出す文字があっても、その割合
がごく僅かであり、その結果、ベースラインが並び線と
して強く意識される場合には、そのような下にはみ出す
文字が存在しない場合と同様の扱いとする。図1の
(c)は、上記第3の規則に従って配置された文字列の
1例を示す。
【0025】また、「第4の規則」として、同一行内に
第2種の文字列が複数個存在しているとき、互いに隣り
合う第2種文字列間の距離、換言すると、それらの第2
種文字列間にはさまれる第1種の文字列の長さが、予め
定められた基準値より小さい場合には、それらの隣り合
う第2種の文字列を統合された単一の文字列と見なし、
その統合された文字列に対して上記第1、第2、第3の
規則を適用することにより、第1種の文字列を配置する
並び線に対する上記統合文字列のベースラインの相対位
置を定め、そのように定められたベースライン上に上記
統合文字列の各構成文字を配置するようにする。
第2種の文字列が複数個存在しているとき、互いに隣り
合う第2種文字列間の距離、換言すると、それらの第2
種文字列間にはさまれる第1種の文字列の長さが、予め
定められた基準値より小さい場合には、それらの隣り合
う第2種の文字列を統合された単一の文字列と見なし、
その統合された文字列に対して上記第1、第2、第3の
規則を適用することにより、第1種の文字列を配置する
並び線に対する上記統合文字列のベースラインの相対位
置を定め、そのように定められたベースライン上に上記
統合文字列の各構成文字を配置するようにする。
【0026】図4は、上記第4の規則により配置された
文字列の1例を示す。(a)は文字列の統合を行わなか
った場合であり、隣接する欧文文字列「Abc」のベース
ライン401と、「Xyz」のベースライン402とが互
いに異なる高さに設定してあり、このため、2つの欧文
文字列の間でベースラインが不連続になったかのような
不自然な文字配置となっている。これに対して、(b)
は文字列の統合を行った場合であり、2つの欧文文字列
「Abc」と「Xyz」とが共通のベースライン403上に配
置され、自然な文字配置となっている。
文字列の1例を示す。(a)は文字列の統合を行わなか
った場合であり、隣接する欧文文字列「Abc」のベース
ライン401と、「Xyz」のベースライン402とが互
いに異なる高さに設定してあり、このため、2つの欧文
文字列の間でベースラインが不連続になったかのような
不自然な文字配置となっている。これに対して、(b)
は文字列の統合を行った場合であり、2つの欧文文字列
「Abc」と「Xyz」とが共通のベースライン403上に配
置され、自然な文字配置となっている。
【0027】以上の各配置規則は、縦書きの文書に対し
ても適用することができる。即ち、縦書きの場合は、欧
文文字列の各文字を所定の角度、例えば、時計回りに9
0度回転させて表記するものとし、文字列の右端を示す
線をトップライン、左端を示す線をボトムライン、その
ちょうど中間にあたる線をセンターラインと呼ぶように
定義し直せば、上記の各規則はそのまま縦書きの場合に
も適用することができる。
ても適用することができる。即ち、縦書きの場合は、欧
文文字列の各文字を所定の角度、例えば、時計回りに9
0度回転させて表記するものとし、文字列の右端を示す
線をトップライン、左端を示す線をボトムライン、その
ちょうど中間にあたる線をセンターラインと呼ぶように
定義し直せば、上記の各規則はそのまま縦書きの場合に
も適用することができる。
【0028】図5の(a)、(b)は、本発明による配
置規則を縦書きの文字列に適用した場合の1例を示す。
501は和文のトップライン、502は和文のボトムラ
イン、503は和文のセンターライン、504は欧文の
トップライン、505は欧文のボトムライン、506は
欧文のベースラインである。この例から、縦書きの文章
でも、本発明の配置規則を適用することにより、欧文文
字列が行内で左右にずれた印象を与えない、適切な文字
配置となることが判る。
置規則を縦書きの文字列に適用した場合の1例を示す。
501は和文のトップライン、502は和文のボトムラ
イン、503は和文のセンターライン、504は欧文の
トップライン、505は欧文のボトムライン、506は
欧文のベースラインである。この例から、縦書きの文章
でも、本発明の配置規則を適用することにより、欧文文
字列が行内で左右にずれた印象を与えない、適切な文字
配置となることが判る。
【0029】
【作用】文書処理装置による文書の作成においては、一
般に、文字列が入力されると、文書の書式によって定ま
る行長、各文字の幅、および和文における禁則処理や欧
文におけるハイフネーション等の配置規則に従って、各
行に対する文字配分と、この行内における各文字の位置
(行長方向における位置)が決定される。本発明におい
ては、各行に配分された文字について、前述した第1種
の文字列と第2種の文字列との種類判別を行い、もし、
同一行内に第1種の文字列と第2種の文字列とが混在し
ていた場合には、第2種の各文字列について、その文字
列内に含まれる文字の組合せに応じてベースラインを決
定し、決定されたベースライン上に上記文字列の構成文
字を配置する。
般に、文字列が入力されると、文書の書式によって定ま
る行長、各文字の幅、および和文における禁則処理や欧
文におけるハイフネーション等の配置規則に従って、各
行に対する文字配分と、この行内における各文字の位置
(行長方向における位置)が決定される。本発明におい
ては、各行に配分された文字について、前述した第1種
の文字列と第2種の文字列との種類判別を行い、もし、
同一行内に第1種の文字列と第2種の文字列とが混在し
ていた場合には、第2種の各文字列について、その文字
列内に含まれる文字の組合せに応じてベースラインを決
定し、決定されたベースライン上に上記文字列の構成文
字を配置する。
【0030】ここで、第1種の文字列のセンターライン
に対する、第2種の文字列のベースラインの相対位置の
決定は、例えば、以下の手順で行なう。先ず、行内に存
在する第2種の文字列の数を調べる。同一行内に第2種
の文字列が複数存在していた場合には、互いに隣り合う
第2種の文字列の間の距離を調べ、この距離が、予じめ
定められた基準値より小さい場合には、それらを統合し
て単一の文字列と見なす。この文字列統合処理を、その
行内に統合し得る第2種の文字列がなくなるまで繰り返
す。 次に、上記統合済みの文字列をぞれぞれ1つの文
字列とみなし、行内の各第2種文字列について、その文
字列内にデセンダレターが含まれているかどうかを判定
する。デセンダレターを含まない第2種の文字列につい
ては、第1種の文字列のセンターラインに対する上記文
字列のベースラインを、前記第1の距離と第2の距離と
が等しくなるように定める。デセンダレターを含む第2
種の文字列については、その文字列内でデセンダレター
が占める比率を求め、この比率が、予じめ定めた基準値
まで達していない場合には、第1種の文字列のセンター
ラインに対する上記第2種文字列のベースラインの相対
位置を、前記第1の距離と第2の距離とが等しくなるよ
うに定める。すなわち、ベースラインより下にはみ出す
文字があってもその割合がごく僅かであり、その結果ベ
ースラインが並び線として強く意識される場合には、そ
の文字列内にベースラインより下にはみ出す文字がなか
った場合と同様の扱いとする。逆に、求めた比率が基準
値以上である場合には、上記ベースラインの相対位置
を、前記第1の距離と第3の距離とが等しくなるように
定める。
に対する、第2種の文字列のベースラインの相対位置の
決定は、例えば、以下の手順で行なう。先ず、行内に存
在する第2種の文字列の数を調べる。同一行内に第2種
の文字列が複数存在していた場合には、互いに隣り合う
第2種の文字列の間の距離を調べ、この距離が、予じめ
定められた基準値より小さい場合には、それらを統合し
て単一の文字列と見なす。この文字列統合処理を、その
行内に統合し得る第2種の文字列がなくなるまで繰り返
す。 次に、上記統合済みの文字列をぞれぞれ1つの文
字列とみなし、行内の各第2種文字列について、その文
字列内にデセンダレターが含まれているかどうかを判定
する。デセンダレターを含まない第2種の文字列につい
ては、第1種の文字列のセンターラインに対する上記文
字列のベースラインを、前記第1の距離と第2の距離と
が等しくなるように定める。デセンダレターを含む第2
種の文字列については、その文字列内でデセンダレター
が占める比率を求め、この比率が、予じめ定めた基準値
まで達していない場合には、第1種の文字列のセンター
ラインに対する上記第2種文字列のベースラインの相対
位置を、前記第1の距離と第2の距離とが等しくなるよ
うに定める。すなわち、ベースラインより下にはみ出す
文字があってもその割合がごく僅かであり、その結果ベ
ースラインが並び線として強く意識される場合には、そ
の文字列内にベースラインより下にはみ出す文字がなか
った場合と同様の扱いとする。逆に、求めた比率が基準
値以上である場合には、上記ベースラインの相対位置
を、前記第1の距離と第3の距離とが等しくなるように
定める。
【0031】このように、同一行内に第1種の文字列と
第2種の文字列とが混在している場合に、第2種の各文
字列について、その文字列内にベースラインより下には
み出す文字があるかどうか、またそのような文字がどの
程度含まれているかを考慮して、各文字列のベースライ
ンの位置を決定することによって、文字の種別やその並
びにかかわらず適切な位置に文字を配置でき、並び線不
揃い現象のない高品位な文書を得ることができる。
第2種の文字列とが混在している場合に、第2種の各文
字列について、その文字列内にベースラインより下には
み出す文字があるかどうか、またそのような文字がどの
程度含まれているかを考慮して、各文字列のベースライ
ンの位置を決定することによって、文字の種別やその並
びにかかわらず適切な位置に文字を配置でき、並び線不
揃い現象のない高品位な文書を得ることができる。
【0032】
【実施例】以下、本発明の実施例を図面を参照して詳細
に説明する。
に説明する。
【0033】先ず、本発明の第1の実施例として、和欧
混植の場合、すなわち第1種の文字列として漢字、仮名
および句読点や記号類からなる和文文字列、第2種の文
字列としてラテン文字からなる欧文文字列が混在する文
章を組版する場合について説明する。
混植の場合、すなわち第1種の文字列として漢字、仮名
および句読点や記号類からなる和文文字列、第2種の文
字列としてラテン文字からなる欧文文字列が混在する文
章を組版する場合について説明する。
【0034】図1の(a)、(b)、(c)は、本発明
の方式に従った文字配置の1例を示す。ここで、101
は和文のトップライン、102は和文のボトムライン、
103は和文のセンターライン、104は欧文のトップ
ライン、105は欧文のボトムライン、106は欧文の
ベースラインである。
の方式に従った文字配置の1例を示す。ここで、101
は和文のトップライン、102は和文のボトムライン、
103は和文のセンターライン、104は欧文のトップ
ライン、105は欧文のボトムライン、106は欧文の
ベースラインである。
【0035】本発明では、(a)に示す欧文文字列「A
BCD」のように、和文文字列(第1種文字列)中に混
在する欧文文字列(第2種の文字列)がデセンダレター
を含まない場合、和文のセンターライン103と欧文の
トップライン104との間の距離(第1の距離)と、和
文のセンターライン103と欧文のベースライン106
との間の距離(第2の距離)とが等しくなるように、文
字列「ABCD」のベースライン位置を決定している。
これによって、図3の(a)に示したような、文字列が
浮き上がって見える不揃い現象を防止する。
BCD」のように、和文文字列(第1種文字列)中に混
在する欧文文字列(第2種の文字列)がデセンダレター
を含まない場合、和文のセンターライン103と欧文の
トップライン104との間の距離(第1の距離)と、和
文のセンターライン103と欧文のベースライン106
との間の距離(第2の距離)とが等しくなるように、文
字列「ABCD」のベースライン位置を決定している。
これによって、図3の(a)に示したような、文字列が
浮き上がって見える不揃い現象を防止する。
【0036】図1の(b)に示す欧文文字列「jungle」
はデセンダレター(「j」と「g」)を含んでいる。この
ように、和文文字列(第1種文字列)中に混在する欧文
文字列(第2種の文字列)がデセンダレターを含む場
合、本発明では、和文のセンターライン103と欧文の
ボトムライン105との距離(第3の距離)と、前記第
1の距離、すなわち、和文のセンターライン103と欧
文のトップライン104との間の距離とが等しくなるよ
うに、第2種の文字列「jungle」のベースライン106
の位置を決定する。これによって、行全体としてバラン
スのとれた文字配置を実現する。
はデセンダレター(「j」と「g」)を含んでいる。この
ように、和文文字列(第1種文字列)中に混在する欧文
文字列(第2種の文字列)がデセンダレターを含む場
合、本発明では、和文のセンターライン103と欧文の
ボトムライン105との距離(第3の距離)と、前記第
1の距離、すなわち、和文のセンターライン103と欧
文のトップライン104との間の距離とが等しくなるよ
うに、第2種の文字列「jungle」のベースライン106
の位置を決定する。これによって、行全体としてバラン
スのとれた文字配置を実現する。
【0037】図1の(c)は、デセンダレターを含む欧
文文字列の変形例を示している。この例では、行の左端
から、先ず欧文文字列「green belt」が、その隣に和文
文字列「漢字」が配列されている。ただし、(b)に示
した例と比較すると、デセンダレター部分が欧文文字列
全体に対して占める比率が小さくなっている。本発明で
は、このような「デセンダレター部分が欧文文字列全体
に対して占める比率」が予じめ定められた基準値に満た
ない場合には、欧文文字列「green belt」のベースライ
ン106位置を、前記第1の距離と前記第2の距離とが
等しくなるように設定する。このように、文字列中に含
まれるデセンダレターが僅かで、その文字列のベースラ
インが1つの並び線として印象付けられる場合に、デセ
ンダレターの存在を無視してベースラインを決定するこ
とにより、その文字列が行内で浮き上がって見えるのを
防止している。なお、デセンダレター部分を有効視する
か無視するかの判定閾値の設定方法については後述す
る。
文文字列の変形例を示している。この例では、行の左端
から、先ず欧文文字列「green belt」が、その隣に和文
文字列「漢字」が配列されている。ただし、(b)に示
した例と比較すると、デセンダレター部分が欧文文字列
全体に対して占める比率が小さくなっている。本発明で
は、このような「デセンダレター部分が欧文文字列全体
に対して占める比率」が予じめ定められた基準値に満た
ない場合には、欧文文字列「green belt」のベースライ
ン106位置を、前記第1の距離と前記第2の距離とが
等しくなるように設定する。このように、文字列中に含
まれるデセンダレターが僅かで、その文字列のベースラ
インが1つの並び線として印象付けられる場合に、デセ
ンダレターの存在を無視してベースラインを決定するこ
とにより、その文字列が行内で浮き上がって見えるのを
防止している。なお、デセンダレター部分を有効視する
か無視するかの判定閾値の設定方法については後述す
る。
【0038】図4は、文字列統合によるベースライン決
定の1例を示した図である。この例では、行の左端か
ら、和文文字列「漢」、欧文文字列「Abc」、和文文字列
「と」、欧文文字列「Xyz」、和文文字列「漢」が順に並
んでいる。ここで、隣接する二つの欧文文字列が、所定
の基準値(閾値)より短い距離で並んでいる、換言すれ
ば、その間にはさまれている和文文字列が閾値より短い
ものとすると、本発明では、これらの2つの欧文文字列
を統合し、単一の文字列として扱ってベースラインの決
定を行なう。隣接する欧文文字列間の距離と基準値との
比較判定の詳細については、後述する。
定の1例を示した図である。この例では、行の左端か
ら、和文文字列「漢」、欧文文字列「Abc」、和文文字列
「と」、欧文文字列「Xyz」、和文文字列「漢」が順に並
んでいる。ここで、隣接する二つの欧文文字列が、所定
の基準値(閾値)より短い距離で並んでいる、換言すれ
ば、その間にはさまれている和文文字列が閾値より短い
ものとすると、本発明では、これらの2つの欧文文字列
を統合し、単一の文字列として扱ってベースラインの決
定を行なう。隣接する欧文文字列間の距離と基準値との
比較判定の詳細については、後述する。
【0039】図4において、(a)は、文字列統合処理
を行わずに、2つの文字列「Abc」と「Xyz」のベースラ
イン401、402をそれぞれ別々に決定した場合を示
し、(b)は、これら二つの文字列を統合して、その統
合された文字列についてベースライン403の位置を決
定した場合を示している。前者の場合、最初の文字列
「Abc」は、デセンダレターを含んでいないため、第
1の距離と第2の距離とが等しくなるようにベースライ
ン401が設定され、次の文字列「Xyz」は、デセンダ
レターを含んでいるため、第1の距離と第3の距離とが
等しくなるようにベースライン402が設定されてい
る。すなわち、近接する2つの欧文文字列で別々にベー
スライン位置を決定した結果、それらの間にずれが生
じ、不自然な文字配置となっている。
を行わずに、2つの文字列「Abc」と「Xyz」のベースラ
イン401、402をそれぞれ別々に決定した場合を示
し、(b)は、これら二つの文字列を統合して、その統
合された文字列についてベースライン403の位置を決
定した場合を示している。前者の場合、最初の文字列
「Abc」は、デセンダレターを含んでいないため、第
1の距離と第2の距離とが等しくなるようにベースライ
ン401が設定され、次の文字列「Xyz」は、デセンダ
レターを含んでいるため、第1の距離と第3の距離とが
等しくなるようにベースライン402が設定されてい
る。すなわち、近接する2つの欧文文字列で別々にベー
スライン位置を決定した結果、それらの間にずれが生
じ、不自然な文字配置となっている。
【0040】これに対して、(b)に示す例では、統合
された文字列全体を対象としてベースラインの設定を行
うことにより、近接した欧文文字列間でベースラインの
ずれを防ぎ、自然な形に文字を配置している。なお、図
4では、見やすくするため、ベースライン401、40
2および403を、それぞれ実際の位置より少し下げて
表示してある。
された文字列全体を対象としてベースラインの設定を行
うことにより、近接した欧文文字列間でベースラインの
ずれを防ぎ、自然な形に文字を配置している。なお、図
4では、見やすくするため、ベースライン401、40
2および403を、それぞれ実際の位置より少し下げて
表示してある。
【0041】図5は、本発明における文字の配置方式
を、縦書きの文書に対して適応した例を示す図である。
ここでは、各欧文文字列は、それぞれ90度時計回りに
回転させて縦書き表記している。この場合、文字列の右
端を示す線をトップライン、左端を示す線をボトムライ
ン、それらの中間にあたる線をセンターラインと定義す
ることにより、上述した横書きの場合の各規則をそのま
ま適用できる。
を、縦書きの文書に対して適応した例を示す図である。
ここでは、各欧文文字列は、それぞれ90度時計回りに
回転させて縦書き表記している。この場合、文字列の右
端を示す線をトップライン、左端を示す線をボトムライ
ン、それらの中間にあたる線をセンターラインと定義す
ることにより、上述した横書きの場合の各規則をそのま
ま適用できる。
【0042】図5において、501は縦書きの場合の和
文のトップライン、502は和文のボトムライン、50
3は和文のセンターライン、504は欧文のトップライ
ン、505は欧文のボトムライン、506は欧文のベー
スラインであり、(a)は、欧文文字列がデセンダレタ
ーを含まない場合、(b)のは、欧文文字列がデセンダ
レターを含んでいる場合の1例を示す。
文のトップライン、502は和文のボトムライン、50
3は和文のセンターライン、504は欧文のトップライ
ン、505は欧文のボトムライン、506は欧文のベー
スラインであり、(a)は、欧文文字列がデセンダレタ
ーを含まない場合、(b)のは、欧文文字列がデセンダ
レターを含んでいる場合の1例を示す。
【0043】即ち、デセンダレターを含まない欧文文字
列「ABCD」の場合は、和文のセンターライン503
と欧文のトップライン504との間の距離(第1の距
離)と、和文のセンターライン503と欧文のベースラ
イン506との間の距離(第2の距離)とが等しくなる
ように、欧文文字列「ABCD」のベースライン506
の位置を決定している。一方、デセンダレターを含んで
いる欧文文字列「jungle」の場合は、和文のセンターラ
イン503と欧文のボトムライン505との距離(第3
の距離)と、前記第1の距離とが等しくなるように、文
字列「jungle」のベースライン位置を決定している。
列「ABCD」の場合は、和文のセンターライン503
と欧文のトップライン504との間の距離(第1の距
離)と、和文のセンターライン503と欧文のベースラ
イン506との間の距離(第2の距離)とが等しくなる
ように、欧文文字列「ABCD」のベースライン506
の位置を決定している。一方、デセンダレターを含んで
いる欧文文字列「jungle」の場合は、和文のセンターラ
イン503と欧文のボトムライン505との距離(第3
の距離)と、前記第1の距離とが等しくなるように、文
字列「jungle」のベースライン位置を決定している。
【0044】図6は、本発明を適用する文書処理装置の
構成の1例を示す。
構成の1例を示す。
【0045】文書処理装置は、マイクロプロセッサおよ
び周辺回路等から構成される中央処理装置(CPU)6
01と、本発明に従った文字配置を行うための文書処理
プログラムとそのプログラムが使用するデータを格納す
るための主記憶装置(MEM)602と、組版された文
書ページのソフトコピーを表示するためのディスプレイ
装置(CRT)603と、これらの要素および後述する
インターフェイス要素を接続するためのシステムバス6
04と、文字データ入力のためのキーボード605と、
座標データ入力のためのマウス606と、上記キーボー
ドとマウスをシステムバス604に接続するためのキー
ボードインターフェース(KB IF)607と、プロ
グラムや文書ファイル、データファイル等を保持するた
めの外部記憶装置であるハードディスク装置608と、
上記ハードディスク装置をシステムバス604に接続す
るためのハードディスクインターフェース(HD I
F)609と、文書印刷用の高解像度の出力装置である
レーザービームプリンタ(LBP)610と、上記レー
ザービームプリンタをシステムバス604に接続するた
めのプリンタインターフェース(PR IF)611
と、文字フォントに関する情報を保持するためのフォン
ト辞書(Fdict)612とからなる。
び周辺回路等から構成される中央処理装置(CPU)6
01と、本発明に従った文字配置を行うための文書処理
プログラムとそのプログラムが使用するデータを格納す
るための主記憶装置(MEM)602と、組版された文
書ページのソフトコピーを表示するためのディスプレイ
装置(CRT)603と、これらの要素および後述する
インターフェイス要素を接続するためのシステムバス6
04と、文字データ入力のためのキーボード605と、
座標データ入力のためのマウス606と、上記キーボー
ドとマウスをシステムバス604に接続するためのキー
ボードインターフェース(KB IF)607と、プロ
グラムや文書ファイル、データファイル等を保持するた
めの外部記憶装置であるハードディスク装置608と、
上記ハードディスク装置をシステムバス604に接続す
るためのハードディスクインターフェース(HD I
F)609と、文書印刷用の高解像度の出力装置である
レーザービームプリンタ(LBP)610と、上記レー
ザービームプリンタをシステムバス604に接続するた
めのプリンタインターフェース(PR IF)611
と、文字フォントに関する情報を保持するためのフォン
ト辞書(Fdict)612とからなる。
【0046】フォント辞書ファイル(Fdict)61
2は、文書中で使用する各種文字フォントの共通寸法情
報、個別寸法情報および文字形状情報を保持している。
ここで、「共通寸法情報」には、文字の描画座標系上に
おける各種基準線(ベースライン、トップライン、ボト
ムライン等)の位置が含まれる。また、「個別寸法情
報」には、各文字の幅やベースラインより下へのはみ出
しの有無等が含まれる。「文字形状情報」には、各文字
の具体的形状を表すビットマップや輪郭線データが含ま
れる。Fdict612は、データファイルの1つとし
てハードディスク装置610内に格納される。なお、文
書処理装置のハードウェア構成としては、上記構成の一
部を変更したもの、あるいは上記以外の他の構成のもの
でもよい。
2は、文書中で使用する各種文字フォントの共通寸法情
報、個別寸法情報および文字形状情報を保持している。
ここで、「共通寸法情報」には、文字の描画座標系上に
おける各種基準線(ベースライン、トップライン、ボト
ムライン等)の位置が含まれる。また、「個別寸法情
報」には、各文字の幅やベースラインより下へのはみ出
しの有無等が含まれる。「文字形状情報」には、各文字
の具体的形状を表すビットマップや輪郭線データが含ま
れる。Fdict612は、データファイルの1つとし
てハードディスク装置610内に格納される。なお、文
書処理装置のハードウェア構成としては、上記構成の一
部を変更したもの、あるいは上記以外の他の構成のもの
でもよい。
【0047】図7は、本発明において、文書内に存在す
る個々の文字列の並び線(和文文字列についてはセンタ
ーライン、欧文文字列についてはベースライン)の位置
を設定していく処理の全体を示す流れ図である。以下、
この図に従って本発明における並び線設定処理の概略を
説明する。
る個々の文字列の並び線(和文文字列についてはセンタ
ーライン、欧文文字列についてはベースライン)の位置
を設定していく処理の全体を示す流れ図である。以下、
この図に従って本発明における並び線設定処理の概略を
説明する。
【0048】本発明における並び線設定処理では、文書
を構成する各行について、順に処理を行っていく。先
ず、ステップ701において、未処理の入力行の有無を
判定する。未処理の入力行があればステップ702に進
む。そのような行がなければ、文書全体の処理が終って
いるので、処理を終了する。
を構成する各行について、順に処理を行っていく。先
ず、ステップ701において、未処理の入力行の有無を
判定する。未処理の入力行があればステップ702に進
む。そのような行がなければ、文書全体の処理が終って
いるので、処理を終了する。
【0049】ステップ702では、行内に配置された各
文字の文字種別を調べ、行を和文文字列と欧文文字列と
に切り分ける。次に、ステップ703に進み、行上で互
いに近接した位置にある欧文文字列を統合する文字列統
合処理を行う。文字列統合処理の終了後、ステップ70
4に進み、行内にまだ並び線位置未設定の文字列がある
かどうかを判定する。未設定の文字列があれば、ステッ
プ705に進む。そのような文字列がなければ、ステッ
プ701に戻って次行の処理に移る。
文字の文字種別を調べ、行を和文文字列と欧文文字列と
に切り分ける。次に、ステップ703に進み、行上で互
いに近接した位置にある欧文文字列を統合する文字列統
合処理を行う。文字列統合処理の終了後、ステップ70
4に進み、行内にまだ並び線位置未設定の文字列がある
かどうかを判定する。未設定の文字列があれば、ステッ
プ705に進む。そのような文字列がなければ、ステッ
プ701に戻って次行の処理に移る。
【0050】ステップ705では、現在注目している特
定の文字列について、その並び線位置を設定する処理を
行う。並び線位置を設定した後、ステップ706に進
み、設定された並び線上にその文字列内に含まれる全て
の文字を配置する。このようにして、特定の文字列につ
いての処理を終了したのち、ステップ704に戻って次
の文字列の処理に移る。
定の文字列について、その並び線位置を設定する処理を
行う。並び線位置を設定した後、ステップ706に進
み、設定された並び線上にその文字列内に含まれる全て
の文字を配置する。このようにして、特定の文字列につ
いての処理を終了したのち、ステップ704に戻って次
の文字列の処理に移る。
【0051】図8は、前記図7におけるステップ70
2、すなわち、文字列の切り分け処理によって作られ、
ステップ703の文字列統合処理で使用される文字列管
理テーブルの構造を示す。
2、すなわち、文字列の切り分け処理によって作られ、
ステップ703の文字列統合処理で使用される文字列管
理テーブルの構造を示す。
【0052】ここで、図8の(a)は、文字列管理テー
ブルを構成する個々のエントリの構造を示している。文
字列管理テーブルの各エントリは、文字列の種別(和文
文字列か欧文文字列か)を示すフィールドk、文字列内
に含まれる文字数を示すフィールドn、文字列を構成す
る文字のリストを示すフィールドL、の三つの部分から
構成される。
ブルを構成する個々のエントリの構造を示している。文
字列管理テーブルの各エントリは、文字列の種別(和文
文字列か欧文文字列か)を示すフィールドk、文字列内
に含まれる文字数を示すフィールドn、文字列を構成す
る文字のリストを示すフィールドL、の三つの部分から
構成される。
【0053】図8の(b)は、文字列の切り分けおよび
統合処理の対象となる行データの一例を示したものであ
る。ここでは、図に示したように、″あABいCDうえ
おEF″ という11文字からなる行を処理する場合を
考える。行内の各文字には行頭から順にインデックス
(0,1,2,…)が割当てられており、前記のフィー
ルドLにはこのインデックスのリストを保持すること
で、文字列を構成している文字を示すようにする。
統合処理の対象となる行データの一例を示したものであ
る。ここでは、図に示したように、″あABいCDうえ
おEF″ という11文字からなる行を処理する場合を
考える。行内の各文字には行頭から順にインデックス
(0,1,2,…)が割当てられており、前記のフィー
ルドLにはこのインデックスのリストを保持すること
で、文字列を構成している文字を示すようにする。
【0054】図8の(c)は、図8の(b)の行データ
を入力として文字列切り分け処理を行った結果作られる
文字列管理テーブルを示したものである。ここで、種別
フィールドkの値が ′J′ であるエントリは和文文字
列を、′E′ のエントリは欧文文字列を示している。
この図に示したように、前記の行 ″あABいCDうえ
おEF″ は、1文字の和文文字列 ″あ″(インデック
ス=0)、2文字の欧文文字列 ″AB″(インデック
ス=1,2)、1文字の和文文字列 ″い″(インデッ
クス=3)、2文字の欧文文字列 ″CD″(インデッ
クス=4,5)、3文字の和文文字列 ″うえお″(イ
ンデックス=6,7,8)、2文字の欧文文字列 ″E
F″(インデックス=9,10)の5個の文字列に切り
分けられる。
を入力として文字列切り分け処理を行った結果作られる
文字列管理テーブルを示したものである。ここで、種別
フィールドkの値が ′J′ であるエントリは和文文字
列を、′E′ のエントリは欧文文字列を示している。
この図に示したように、前記の行 ″あABいCDうえ
おEF″ は、1文字の和文文字列 ″あ″(インデック
ス=0)、2文字の欧文文字列 ″AB″(インデック
ス=1,2)、1文字の和文文字列 ″い″(インデッ
クス=3)、2文字の欧文文字列 ″CD″(インデッ
クス=4,5)、3文字の和文文字列 ″うえお″(イ
ンデックス=6,7,8)、2文字の欧文文字列 ″E
F″(インデックス=9,10)の5個の文字列に切り
分けられる。
【0055】図8の(d)は、図8の(c)で示す文字
列管理テーブルに対して文字列統合処理を行った結果の
状態を示している。この文字列統合処理については、後
で詳述する。
列管理テーブルに対して文字列統合処理を行った結果の
状態を示している。この文字列統合処理については、後
で詳述する。
【0056】図9は、前記図7におけるステップ70
2、すなわち行データを解析して文字列管理テーブルを
生成する文字列切り分け処理の詳細を示す流れ図であ
る。
2、すなわち行データを解析して文字列管理テーブルを
生成する文字列切り分け処理の詳細を示す流れ図であ
る。
【0057】この文字列切り分け処理では、まずステッ
プ901において、使用する各変数の初期設定を行う。
ここでは、変数Nに行内に含まれる文字数を設定し、行
データ上において、文字の参照に用いるインデックスを
示す変数iの値を「0」に、文字列管理テーブル上にお
いて、各エントリの参照に用いるインデックスを示す変
数jの値を「−1」に初期化する。また、現在注目して
いる文字列の種別を示す変数kを、和文文字列を示す値
′J′ および欧文文字列を示す値 ′E′ と区別でき
る特別な値「NULL」に初期化しておく。
プ901において、使用する各変数の初期設定を行う。
ここでは、変数Nに行内に含まれる文字数を設定し、行
データ上において、文字の参照に用いるインデックスを
示す変数iの値を「0」に、文字列管理テーブル上にお
いて、各エントリの参照に用いるインデックスを示す変
数jの値を「−1」に初期化する。また、現在注目して
いる文字列の種別を示す変数kを、和文文字列を示す値
′J′ および欧文文字列を示す値 ′E′ と区別でき
る特別な値「NULL」に初期化しておく。
【0058】このような初期設定の終了後、ステップ9
02に進む。なお、以降の説明では、行データ上におい
てインデックスiで示される文字をC[i]、文字列管
理テーブル上においてインデックスjで示される文字列
をS[j] で表すことにする。また、文字列S[j]
の各フィールドを、それぞれS[j].k、S[j].
n、S[j].Lで表すことにする。
02に進む。なお、以降の説明では、行データ上におい
てインデックスiで示される文字をC[i]、文字列管
理テーブル上においてインデックスjで示される文字列
をS[j] で表すことにする。また、文字列S[j]
の各フィールドを、それぞれS[j].k、S[j].
n、S[j].Lで表すことにする。
【0059】ステップ902では、変数iの値をNと比
較して終了条件の判定を行う。変数iが既にNに達して
いれば、もう行データ内に未処理の文字は存在しないの
で、処理を終了する。iがNに達していない場合には、
ステップ903に進む。
較して終了条件の判定を行う。変数iが既にNに達して
いれば、もう行データ内に未処理の文字は存在しないの
で、処理を終了する。iがNに達していない場合には、
ステップ903に進む。
【0060】ステップ903では、現在注目している文
字C[i]の種別を判定する。ここで、文字C[i]の
種別が変数kの表す種別と異なる場合、すなわち、現在
処理中のものとは異なる種別の文字列を検出した場合に
は、ステップ904に進む。逆に、文字C[i]の種別
が変数kの表す種別と一致している場合、すなわち、文
字C[i]が現在処理中の文字列の一部である場合に
は、ステップ904を省略してステップ905に進む。
字C[i]の種別を判定する。ここで、文字C[i]の
種別が変数kの表す種別と異なる場合、すなわち、現在
処理中のものとは異なる種別の文字列を検出した場合に
は、ステップ904に進む。逆に、文字C[i]の種別
が変数kの表す種別と一致している場合、すなわち、文
字C[i]が現在処理中の文字列の一部である場合に
は、ステップ904を省略してステップ905に進む。
【0061】ステップ904では、今までとは異なる種
別の文字列を検出した場合の処理を行う。すなわち、文
字列テーブル上に新たなエントリを生成し、その初期化
を行う。ここでは、まず変数jを1増やし、文字列の種
別を示すフィールドS[j].kにC[i]の種別(′
J′または′E′)を設定し、文字列の長さ(含まれる
文字数)を示すフィールドS[j].nを0に初期化す
る。また、変数kにもC[i]の種別を設定しておく。
別の文字列を検出した場合の処理を行う。すなわち、文
字列テーブル上に新たなエントリを生成し、その初期化
を行う。ここでは、まず変数jを1増やし、文字列の種
別を示すフィールドS[j].kにC[i]の種別(′
J′または′E′)を設定し、文字列の長さ(含まれる
文字数)を示すフィールドS[j].nを0に初期化す
る。また、変数kにもC[i]の種別を設定しておく。
【0062】ステップ905では、文字C[i]を文字
列S[j]に追加する処理を行う。すなわち、S
[j].nを1増やし、文字インデックスiをインデッ
クスリストS[j].Lの末尾に追加する。ステップ9
05の終了後は、ステップ906に進む。ステップ90
6では、注目している文字を示すインデックスiを1増
やし、ステップ902に戻る。
列S[j]に追加する処理を行う。すなわち、S
[j].nを1増やし、文字インデックスiをインデッ
クスリストS[j].Lの末尾に追加する。ステップ9
05の終了後は、ステップ906に進む。ステップ90
6では、注目している文字を示すインデックスiを1増
やし、ステップ902に戻る。
【0063】前述した図8の(b)に示した行データを
入力として、以上のような文字列切り分け処理を行う
と、図8の(c)に示す内容の文字列管理テーブルが作
成される。
入力として、以上のような文字列切り分け処理を行う
と、図8の(c)に示す内容の文字列管理テーブルが作
成される。
【0064】図10は、前記図7におけるステップ70
3、すなわち、行上で互いに近接している欧文文字列を
統合する文字列統合処理の詳細を示す流れ図である。
3、すなわち、行上で互いに近接している欧文文字列を
統合する文字列統合処理の詳細を示す流れ図である。
【0065】図において、ステップ1001から100
4までは、使用する変数群の初期設定処理である。先
ず、ステップ1001において、変数Nに、行内に含ま
れる文字列の総数(文字列管理テーブル上に存在する有
効エントリ数)を設定し、ステップ1002に進む。ス
テップ1002では、先頭の文字列S[0]の種別を判
定する。この種別S[0].kが ′E′(欧文文字
列)であればステップ1003に進み、変数dに0、変
数jに1を設定する。またこの種別が ′J′(和文文
字列)であれば、変数dに1、変数jに2を設定する。
4までは、使用する変数群の初期設定処理である。先
ず、ステップ1001において、変数Nに、行内に含ま
れる文字列の総数(文字列管理テーブル上に存在する有
効エントリ数)を設定し、ステップ1002に進む。ス
テップ1002では、先頭の文字列S[0]の種別を判
定する。この種別S[0].kが ′E′(欧文文字
列)であればステップ1003に進み、変数dに0、変
数jに1を設定する。またこの種別が ′J′(和文文
字列)であれば、変数dに1、変数jに2を設定する。
【0066】前記の文字列切り分け処理の結果として、
文字列管理テーブル上では必ず和文文字列と欧文文字列
とが交互に並んでいるので、ここまでの処理を終えた段
階では、変数dは、文字列管理テーブル上における最初
の欧文文字列を示すインデックス、変数jはその最初の
欧文文字列に続く和文文字列を示すインデックスに初期
化されていることになる。以上の初期設定を終えたの
ち、ステップ1005に進む。
文字列管理テーブル上では必ず和文文字列と欧文文字列
とが交互に並んでいるので、ここまでの処理を終えた段
階では、変数dは、文字列管理テーブル上における最初
の欧文文字列を示すインデックス、変数jはその最初の
欧文文字列に続く和文文字列を示すインデックスに初期
化されていることになる。以上の初期設定を終えたの
ち、ステップ1005に進む。
【0067】ステップ1005では、変数jの値をNと
比較して終了条件の判定を行う。ここで、j+1の値が
既にNに達していれば、もはや和文文字列S[j]以降
に統合対象となる欧文文字列は存在しないので、処理を
終了する。j+1がNに達していない場合には、ステッ
プ1006に進む。
比較して終了条件の判定を行う。ここで、j+1の値が
既にNに達していれば、もはや和文文字列S[j]以降
に統合対象となる欧文文字列は存在しないので、処理を
終了する。j+1がNに達していない場合には、ステッ
プ1006に進む。
【0068】ステップ1006では、和文文字列S
[j]の長さ(文字列内に含まれる文字数S[j].
n)を調べる。その値があらかじめ定めた基準値LSに
満たなければ、S[j]を挾んで隣り合う二つの欧文文
字列は十分に近接しているものと判定し、これらを統合
するためステップ1007に進む。逆に、その文字数が
基準値LS以上であれば統合は行わず、ステップ100
8に進む。
[j]の長さ(文字列内に含まれる文字数S[j].
n)を調べる。その値があらかじめ定めた基準値LSに
満たなければ、S[j]を挾んで隣り合う二つの欧文文
字列は十分に近接しているものと判定し、これらを統合
するためステップ1007に進む。逆に、その文字数が
基準値LS以上であれば統合は行わず、ステップ100
8に進む。
【0069】本実施例では、2個の欧文文字列を統合す
る際には、文字列管理テーブル上で前にある欧文文字列
(インデックスの小さい方)に、後ろにある欧文文字列
(インデックスの大きい方)の内容データを移動/追加
するという方法をとっている。また、3個以上の欧文文
字列がそれぞれ短い和文文字列を挾んで隣り合っている
場合には、先頭に位置する欧文文字列に残りの全ての欧
文文字列の内容データを移動するようにしている。この
処理において、内容データの移動先となる欧文文字列の
インデックスを示しているのが前記の変数dである。ま
た、内容データの移動元となるのは、現在注目している
和文文字列S[j]に続く欧文文字列であり、そのイン
デックスはj+1である。
る際には、文字列管理テーブル上で前にある欧文文字列
(インデックスの小さい方)に、後ろにある欧文文字列
(インデックスの大きい方)の内容データを移動/追加
するという方法をとっている。また、3個以上の欧文文
字列がそれぞれ短い和文文字列を挾んで隣り合っている
場合には、先頭に位置する欧文文字列に残りの全ての欧
文文字列の内容データを移動するようにしている。この
処理において、内容データの移動先となる欧文文字列の
インデックスを示しているのが前記の変数dである。ま
た、内容データの移動元となるのは、現在注目している
和文文字列S[j]に続く欧文文字列であり、そのイン
デックスはj+1である。
【0070】ステップ1007では、欧文文字列S[j
+1]の内容データを、欧文文字列S[d]に移動/追
加する統合処理を行う。すなわち、文字数S[d].n
にS[j+1].nの値を加算し、文字リストS
[d].Lの末尾にS[j+1].Lの内容を全て追加
する。移動元文字列の文字数S[j+1].nは0にリ
セットする。以上の処理を行ったのち、ステップ100
9に進む。
+1]の内容データを、欧文文字列S[d]に移動/追
加する統合処理を行う。すなわち、文字数S[d].n
にS[j+1].nの値を加算し、文字リストS
[d].Lの末尾にS[j+1].Lの内容を全て追加
する。移動元文字列の文字数S[j+1].nは0にリ
セットする。以上の処理を行ったのち、ステップ100
9に進む。
【0071】ステップ1008は、和文文字列S[j]
の長さが基準値以上であるため統合処理を行わない場合
である。この場合、以降の処理において内容データの移
動先の候補となるのは、S[j]に続く欧文文字列S
[j+1]であるから、変数dの値をj+1に変更す
る。その後、ステップ1009に進む。
の長さが基準値以上であるため統合処理を行わない場合
である。この場合、以降の処理において内容データの移
動先の候補となるのは、S[j]に続く欧文文字列S
[j+1]であるから、変数dの値をj+1に変更す
る。その後、ステップ1009に進む。
【0072】ステップ1009では、変数jの値を2増
やして次の和文文字列に注目を移し、再びステップ10
05に戻る。
やして次の和文文字列に注目を移し、再びステップ10
05に戻る。
【0073】上に述べたような処理を、図8の(c)の
文字列管理テーブルに対して実行した結果の1例を示し
ているのが図8の(d)である。ここでは、前記LSの
値は「3」(3文字に満たない和文文字列を挾んで隣り
合う欧文文字列は統合するという条件)であるとする。
この条件に従い、1文字の和文文字列を挾んで隣り合っ
ていた欧文文字列(インデックス=1および3)は統合
され、後者の内容データは前者の文字リストに移されて
いる。この結果、後者は文字数「0」の空文字列に縮退
している。これに対して、3文字の和文文字列に続いて
いた欧文文字列(インデックス=5)は統合の対象とな
らず、そのまま残されている。
文字列管理テーブルに対して実行した結果の1例を示し
ているのが図8の(d)である。ここでは、前記LSの
値は「3」(3文字に満たない和文文字列を挾んで隣り
合う欧文文字列は統合するという条件)であるとする。
この条件に従い、1文字の和文文字列を挾んで隣り合っ
ていた欧文文字列(インデックス=1および3)は統合
され、後者の内容データは前者の文字リストに移されて
いる。この結果、後者は文字数「0」の空文字列に縮退
している。これに対して、3文字の和文文字列に続いて
いた欧文文字列(インデックス=5)は統合の対象とな
らず、そのまま残されている。
【0074】図11は、前記図7におけるステップ70
5、すなわち、統合処理後の個々の文字列について、そ
の並び線位置を設定する処理の詳細を示す流れ図であ
る。
5、すなわち、統合処理後の個々の文字列について、そ
の並び線位置を設定する処理の詳細を示す流れ図であ
る。
【0075】この並び線位置設定処理では、先ず、ステ
ップ1101において、処理対象となる文字列の種別を
判定する。ここで、この文字列が和文文字列であればス
テップ1102に、欧文文字列であればステップ110
3に進む。
ップ1101において、処理対象となる文字列の種別を
判定する。ここで、この文字列が和文文字列であればス
テップ1102に、欧文文字列であればステップ110
3に進む。
【0076】ステップ1102では、対象文字列が和文
文字列である場合の処理を行う。前記のように、和文で
はそのトップラインとボトムラインとの丁度中間の線で
あるセンターラインが並び線として用いられる。和文文
字列の場合には、センターラインが行の配置基準線と一
致するようにその位置を設定して処理を終了する。
文字列である場合の処理を行う。前記のように、和文で
はそのトップラインとボトムラインとの丁度中間の線で
あるセンターラインが並び線として用いられる。和文文
字列の場合には、センターラインが行の配置基準線と一
致するようにその位置を設定して処理を終了する。
【0077】ステップ1103以降の処理は、対象文字
列が欧文文字列である場合に対応しており、その並び線
であるベースラインの位置設定処理を行う。先ず、ステ
ップ1103で、文字列内に含まれる文字の総数をチェ
ックする。この値が「0」であるとき、この文字列は、
前述した文字列統合処理の結果、内容が他の文字列に移
され、空文字列に縮退されたものであることを意味して
いる。従って、この場合は文字列内に配置対象となる文
字が含まれていないので、何もせずに処理を終了する。
文字数が「0」より大きい場合には、ステップ1104
に進む。
列が欧文文字列である場合に対応しており、その並び線
であるベースラインの位置設定処理を行う。先ず、ステ
ップ1103で、文字列内に含まれる文字の総数をチェ
ックする。この値が「0」であるとき、この文字列は、
前述した文字列統合処理の結果、内容が他の文字列に移
され、空文字列に縮退されたものであることを意味して
いる。従って、この場合は文字列内に配置対象となる文
字が含まれていないので、何もせずに処理を終了する。
文字数が「0」より大きい場合には、ステップ1104
に進む。
【0078】ステップ1104では、まず変数Nに、そ
の文字列を構成している文字の総数を代入する。また、
変数dに、その文字列内に含まれているデセンダレター
の総数を代入する。以上の処理を行った後、ステップ1
105に進む。
の文字列を構成している文字の総数を代入する。また、
変数dに、その文字列内に含まれているデセンダレター
の総数を代入する。以上の処理を行った後、ステップ1
105に進む。
【0079】ステップ1105では、変数Nの値に対す
る変数dの値の比率、すなわち、文字列中に含まれる文
字の総数に対するデセンダレター数の比率が、予め定め
られた基準値kに達しているかどうかを判定する。そし
て、この比率d/Nがkに満たなければステップ110
6に、そうでなければステップ1107に進む。
る変数dの値の比率、すなわち、文字列中に含まれる文
字の総数に対するデセンダレター数の比率が、予め定め
られた基準値kに達しているかどうかを判定する。そし
て、この比率d/Nがkに満たなければステップ110
6に、そうでなければステップ1107に進む。
【0080】ステップ1106は、処理対象となる欧文
文字列がベースラインより下にはみ出す文字(デセンダ
レター)を全く含んでいないか、あるいは、含んでいた
としてもその比率が僅かであって、デセンダレターの存
在を無視してよいと判定された場合の処理である。この
場合は、和文文字列のセンターラインと欧文文字列のト
ップラインとの距離が、和文文字列のセンターラインと
欧文文字列のベースラインとの間の距離に等しくなるよ
うに、欧文文字列のベースラインを設定する。言い換え
ると、欧文文字列のトップラインとベースラインとの中
間の位置が和文文字列のセンターライン上に来るよう
に、欧文文字列のベースライン位置を設定する。従っ
て、例えば、行の配置基準線(和文文字列のセンターラ
インはこれに一致する)を原点とし、上向きの方向を正
とする座標系を採用し、欧文文字列のベースラインから
トップラインまでの距離をHaとした場合、欧文文字列
のベースラインを設定すべき座標Ybを含む次式が成立
する。
文字列がベースラインより下にはみ出す文字(デセンダ
レター)を全く含んでいないか、あるいは、含んでいた
としてもその比率が僅かであって、デセンダレターの存
在を無視してよいと判定された場合の処理である。この
場合は、和文文字列のセンターラインと欧文文字列のト
ップラインとの距離が、和文文字列のセンターラインと
欧文文字列のベースラインとの間の距離に等しくなるよ
うに、欧文文字列のベースラインを設定する。言い換え
ると、欧文文字列のトップラインとベースラインとの中
間の位置が和文文字列のセンターライン上に来るよう
に、欧文文字列のベースライン位置を設定する。従っ
て、例えば、行の配置基準線(和文文字列のセンターラ
インはこれに一致する)を原点とし、上向きの方向を正
とする座標系を採用し、欧文文字列のベースラインから
トップラインまでの距離をHaとした場合、欧文文字列
のベースラインを設定すべき座標Ybを含む次式が成立
する。
【0081】Yb+(Yb+Ha)=0
そこで、次式に従って現在注目している欧文文字列に適
用すべきベースライン位置を定め、処理を終了する。 Yb=−Ha/2 ステップ1107は、処理対象となる欧文文字列が、ベ
ースラインより下にはみ出す文字(デセンダレター)を
ある程度以上の比率で含んでいる場合の処理である。
用すべきベースライン位置を定め、処理を終了する。 Yb=−Ha/2 ステップ1107は、処理対象となる欧文文字列が、ベ
ースラインより下にはみ出す文字(デセンダレター)を
ある程度以上の比率で含んでいる場合の処理である。
【0082】この場合は、和文文字列のセンターライン
と欧文文字列のトップラインとの距離が、和文文字列の
センターラインと欧文文字列のボトムラインとの間の距
離に等しくなるように、欧文文字列のベースラインを設
定する。言い換えると、欧文文字列のトップラインとボ
トムラインとの中間の位置が和文文字列のセンターライ
ン上に来るように欧文文字列のベースライン位置を設定
する。
と欧文文字列のトップラインとの距離が、和文文字列の
センターラインと欧文文字列のボトムラインとの間の距
離に等しくなるように、欧文文字列のベースラインを設
定する。言い換えると、欧文文字列のトップラインとボ
トムラインとの中間の位置が和文文字列のセンターライ
ン上に来るように欧文文字列のベースライン位置を設定
する。
【0083】従って、ステップ1106と同様に、行の
配置基準線を原点とし、上向きを正とする座標系を採用
し、欧文文字列のベースラインからボトムラインまでの
距離をHdとすると、次式が成立する。 (Yb+Ha)+(Yb−Hd)=0 そこで、次式に従って現在注目している欧文文字列に適
用すべきベースライン位置を定め、処理を終了する。 Yb=(Hd−Ha)/2 なお、処理対象とする文書が縦書きの場合には、前記ス
テップ1106およびステップ1107において、行の
配置基準線を原点とし、右向きを正とする座標系をと
り、この座標系上で前述の式に従ってベースライン位置
を定めるようにすればよい。
配置基準線を原点とし、上向きを正とする座標系を採用
し、欧文文字列のベースラインからボトムラインまでの
距離をHdとすると、次式が成立する。 (Yb+Ha)+(Yb−Hd)=0 そこで、次式に従って現在注目している欧文文字列に適
用すべきベースライン位置を定め、処理を終了する。 Yb=(Hd−Ha)/2 なお、処理対象とする文書が縦書きの場合には、前記ス
テップ1106およびステップ1107において、行の
配置基準線を原点とし、右向きを正とする座標系をと
り、この座標系上で前述の式に従ってベースライン位置
を定めるようにすればよい。
【0084】次に、本発明の第2の実施例について、図
面を参照して説明する。本実施例は、各文字列の並び線
位置を設定する処理の内容(図11に相当する部分)の
一部が、前述した第1の実施例の場合と異なっている。
それ以外の処理内容、および適用対象となる文書処理装
置の構成等には違いがないため、これらについての説明
は省略し、以下、第1の実施例と異なる部分についての
み説明する。
面を参照して説明する。本実施例は、各文字列の並び線
位置を設定する処理の内容(図11に相当する部分)の
一部が、前述した第1の実施例の場合と異なっている。
それ以外の処理内容、および適用対象となる文書処理装
置の構成等には違いがないため、これらについての説明
は省略し、以下、第1の実施例と異なる部分についての
み説明する。
【0085】図12は、第2の実施例において、行内に
存在する個々の文字列の並び線位置設定処理の詳細を示
す流れ図である。
存在する個々の文字列の並び線位置設定処理の詳細を示
す流れ図である。
【0086】この並び線位置設定処理では、先ず、ステ
ップ1201において、処理対象となる文字列の種別を
判定する。ここで、和文文字列の処理は、前記第1の実
施例と同一であるため、欧文文字列の処理(ステップ1
203以降)についてのみ説明する。
ップ1201において、処理対象となる文字列の種別を
判定する。ここで、和文文字列の処理は、前記第1の実
施例と同一であるため、欧文文字列の処理(ステップ1
203以降)についてのみ説明する。
【0087】先ず、ステップ1203は、文字列内に含
まれる文字の総数をチェックする。この値が「0」であ
れば、この文字列は、前記の文字列統合処理の結果、内
容が他の文字列に移され、空文字列に縮退したものであ
ることを意味している。この場合、文字列内には配置対
象となる文字が含まれていないので、何もせずに処理を
終了する。文字数が0より大きい場合には、ステップ1
204に進む。
まれる文字の総数をチェックする。この値が「0」であ
れば、この文字列は、前記の文字列統合処理の結果、内
容が他の文字列に移され、空文字列に縮退したものであ
ることを意味している。この場合、文字列内には配置対
象となる文字が含まれていないので、何もせずに処理を
終了する。文字数が0より大きい場合には、ステップ1
204に進む。
【0088】ステップ1204では、先ず、変数Wに、
その文字列を構成する全文字の文字幅の総和を代入す
る。また、変数wdに、その文字列内に含まれているデ
センダレターの文字幅の総和を代入する。以上の処理を
行った後、ステップ1205に進む。
その文字列を構成する全文字の文字幅の総和を代入す
る。また、変数wdに、その文字列内に含まれているデ
センダレターの文字幅の総和を代入する。以上の処理を
行った後、ステップ1205に進む。
【0089】ステップ1205では、変数Wの値に対す
る変数wdの値の比率、すなわち、現在注目している文
字列に含まれる全文字の文字幅の総和に対するデセンダ
レター部分の幅の比率が、予め定められた基準値kに達
しているかどうかを判定する。もし、上記比率wd/W
がkに満たなければステップ1206に、それ以外はス
テップ1207に進む。
る変数wdの値の比率、すなわち、現在注目している文
字列に含まれる全文字の文字幅の総和に対するデセンダ
レター部分の幅の比率が、予め定められた基準値kに達
しているかどうかを判定する。もし、上記比率wd/W
がkに満たなければステップ1206に、それ以外はス
テップ1207に進む。
【0090】ステップ1206は、処理対象となる欧文
文字列がベースラインより下にはみ出す文字(デセンダ
レター)を全く含んでいないか、含んでいたとしても、
その比率が僅かであって、デセンダレターの存在を無視
してよいと判断された場合の処理である。この場合は、
第1の実施例の図11に示したステップ1106と同
様、和文文字列のセンターラインと欧文文字列のトップ
ラインとの距離が、和文文字列のセンターラインと欧文
文字列のベースラインとの間の距離に等しくなるよう
に、欧文文字列のベースライン位置を設定して処理を終
了する。
文字列がベースラインより下にはみ出す文字(デセンダ
レター)を全く含んでいないか、含んでいたとしても、
その比率が僅かであって、デセンダレターの存在を無視
してよいと判断された場合の処理である。この場合は、
第1の実施例の図11に示したステップ1106と同
様、和文文字列のセンターラインと欧文文字列のトップ
ラインとの距離が、和文文字列のセンターラインと欧文
文字列のベースラインとの間の距離に等しくなるよう
に、欧文文字列のベースライン位置を設定して処理を終
了する。
【0091】ステップ1207は、処理対象となる欧文
文字列が、ベースラインより下にはみ出す文字(デセン
ダレター)をある程度以上の比率で含んでいると判断さ
れる場合の処理である。この場合には、第1の実施例の
図9に示したステップ1107と同様、和文文字列のセ
ンターラインと欧文文字列のトップラインとの距離が、
和文文字列のセンターラインと欧文文字列のボトムライ
ンとの間の距離に等しくなるように、欧文文字列のベー
スラインを設定して処理を終了する。
文字列が、ベースラインより下にはみ出す文字(デセン
ダレター)をある程度以上の比率で含んでいると判断さ
れる場合の処理である。この場合には、第1の実施例の
図9に示したステップ1107と同様、和文文字列のセ
ンターラインと欧文文字列のトップラインとの距離が、
和文文字列のセンターラインと欧文文字列のボトムライ
ンとの間の距離に等しくなるように、欧文文字列のベー
スラインを設定して処理を終了する。
【0092】なお、以上の2つの実施例では和欧混植の
場合を例にとって説明を行ったが、例えば、中国語とロ
シア語、韓国語とアラビア語といった組合せのように、
トップラインとボトムラインとの中央に位置するセンタ
ーラインを配置基準線として用い、各文字のセンターラ
インが一直線上に並ぶように文字を行上に配置する「第
1の文字体系」に属する文字と、トップラインとボトム
ラインとの間に配置基準線であるベースラインを持ち、
字面の下端がボトムラインに一致する文字とベースライ
ンに一致する文字とを共に含み、各文字のベースベース
ラインが一直線上に並ぶように文字を行上に配置する
「第2の文字体系」に属する文字とが同一行内に混在し
て配置される場合であれば、実施例以外の他の種類の文
字列組合せに対しても、本発明を適用することが可能で
ある。
場合を例にとって説明を行ったが、例えば、中国語とロ
シア語、韓国語とアラビア語といった組合せのように、
トップラインとボトムラインとの中央に位置するセンタ
ーラインを配置基準線として用い、各文字のセンターラ
インが一直線上に並ぶように文字を行上に配置する「第
1の文字体系」に属する文字と、トップラインとボトム
ラインとの間に配置基準線であるベースラインを持ち、
字面の下端がボトムラインに一致する文字とベースライ
ンに一致する文字とを共に含み、各文字のベースベース
ラインが一直線上に並ぶように文字を行上に配置する
「第2の文字体系」に属する文字とが同一行内に混在し
て配置される場合であれば、実施例以外の他の種類の文
字列組合せに対しても、本発明を適用することが可能で
ある。
【0093】
【発明の効果】以上の説明から明らかなように、本発明
によれば、同一の行内に文字体系の異なる複数種類の文
字列が混在する文章を編集または出力する場合に、一方
の文字列の並び線に対する他方の文字列の並び線(ベー
スライン)の相対位置を決定することによって、文字の
種別やその並びにかかわらず、常に適切な文字配置を実
現し、並び線の不揃い現象を防止することができる。
によれば、同一の行内に文字体系の異なる複数種類の文
字列が混在する文章を編集または出力する場合に、一方
の文字列の並び線に対する他方の文字列の並び線(ベー
スライン)の相対位置を決定することによって、文字の
種別やその並びにかかわらず、常に適切な文字配置を実
現し、並び線の不揃い現象を防止することができる。
【図1】本発明の方式に従った和文文字フォントと欧文
文字フォントとの混在字面の構成を示す図。
文字フォントとの混在字面の構成を示す図。
【図2】従来方式に従った文字配置の1例を示す図。
【図3】本発明の方式に従った文字配置の他の例を示す
図。
図。
【図4】本発明における文字列統合処理の効果を示す
図。
図。
【図5】本発明の文字配置方式を縦書き文字列に適用し
た例を示す図。
た例を示す図。
【図6】本発明の適用対象となる文書処理装置の構成の
1例を示す図。
1例を示す図。
【図7】文書内文字列の並び線揃え処理の第1の実施例
を示す流れ図。
を示す流れ図。
【図8】上記第1の実施例において使用する文字列管理
テーブルの構造を示す図。
テーブルの構造を示す図。
【図9】上記第1の実施例における、行上の文字列を和
文文字列と欧文文字列とに切り分ける文字列切り分け処
理702の詳細を示す流れ図。
文文字列と欧文文字列とに切り分ける文字列切り分け処
理702の詳細を示す流れ図。
【図10】上記第1の実施例における、行上で互いに近
接している欧文文字列を統合する文字列統合処理703
の詳細を示す流れ図。
接している欧文文字列を統合する文字列統合処理703
の詳細を示す流れ図。
【図11】上記第1の実施例における個々の文字列につ
いての並び線位置設定処理705の詳細を示す流れ図。
いての並び線位置設定処理705の詳細を示す流れ図。
【図12】文書内文字列の並び線揃え処理の第2の実施
例を示す流れ図。
例を示す流れ図。
101…和文のトップライン、102…和文のボトムラ
イン、103…和文のセンターライン、104…欧文の
トップライン、105…欧文のボトムライン、106…
欧文のベースライン、612…フォント辞書ファイル。
イン、103…和文のセンターライン、104…欧文の
トップライン、105…欧文のボトムライン、106…
欧文のベースライン、612…フォント辞書ファイル。
─────────────────────────────────────────────────────
フロントページの続き
(56)参考文献 特開 平2−64855(JP,A)
特開 平2−144658(JP,A)
実開 昭57−95930(JP,U)
(58)調査した分野(Int.Cl.7,DB名)
G06F 17/21 - 17/24
B41B 13/00 - 27/50
B41J 19/00 - 19/98
G09G 5/00 - 5/40
Claims (6)
- 【請求項1】各文字フォントのベースライン、文字上端
を示すトップライン、文字下端を示すボトムラインの情
報を含む共通寸法情報と、各文字の前記ベースラインよ
り下へのはみ出しの有無の情報を含む個別寸法情報及び
文字形状情報を格納する辞書ファイルと、文字を出力す
る出力装置を有し、選択された文字列を行に配置する制
御手段を有するシステムにおける文書出力方法であっ
て、 前記辞書ファイルには、前記トップラインとボトムライ
ンとの中央に位置するセンターラインが一直線上に並ぶ
ように文字を行に配置する第1種の文字列と、各文字の
ベースラインが一直線上に並ぶように文字を行に配置す
る第2種の文字列の情報を含み、 第1種と第2種の文字列を同一行内に混在して配置する
場合に、第2種の文字列に含まれる文字にベースライン
より下へのはみ出し有りの文字の有無を前記個別寸法情
報をもとに判断し、 上記行内に含まれるはみ出しの有りの前記第2種の文字
の数に応じて、第1種の文字列を配置するセンターライ
ンに対する該文字列のベースラインの相対位置を決定
し、 決定されたベースラインに従って第2種の文字列を第1
種の文字とともに前記出力装置にて出力することを特徴
とする文書出力方法。 - 【請求項2】前記第1種の文字列のセンターラインと前
記第2種の文字列のトップラインとの間の距離を第1の
距離と定義し、前記第1種の文字列のセンターラインと
前記第2種の文字列のベースラインとの間の距離を第2
の距離と定義し、前記第2種の文字列に属する文字のう
ち、字面の下端がボトムラインに一致する文字をデセン
ダレターと呼ぶとき、 特定の第2種の文字列内にデセンダレターが含まれてい
ない場合には、前記第1種の文字列を配置するセンター
ラインに対する該文字列のベースラインの相対位置を、
前記第1の距離と前記第2の距離とが等しくなるように
決定することを特徴とする請求項1記載の文書出力方
法。 - 【請求項3】前記第1種の文字列のセンターラインと前
記第2種の文字列のボトムラインとの間の距離を第3の
距離と定義したとき、 特定の前記第2種の文字列内にデセンダレターが含まれ
る場合には、前記第1種の文字列を配置するセンターラ
インに対する該文字列のベースラインの相対位置を、前
記第1の距離と前記第3の距離とが等しくなるように決
定することを特徴とする請求項2記載の文書出力方法。 - 【請求項4】特定の第2種の文字列内にデセンダレター
が含まれる場合であっても、該文字列内においてデセン
ダレターが占める比率が、予め定められた一定の基準値
に満たない場合には、前記第1種の文字列を配置するセ
ンターラインに対する該文字列のベースラインの相対位
置を、前記第1の距離と前記第2の距離とが等しくなる
ように決定することを特徴とする請求項3記載の文書出
力方法。 - 【請求項5】同一行内に前記第2種の文字列が複数個存
在するとき、互いに隣り合う前記第2種の文字列間の距
離があらかじめ定められた一定の基準値よりも小さい場
合には、それらの隣り合う前記第2種の文字列を統合し
て単一の文字列と見なし、 該統合された文字列内に含まれる文字の組合せに対応し
て、前記第1種の文字列を配置するセンターラインに対
する該統合された文字列のベースラインの相対位置を決
定することを特徴とする請求項4記載の文書出力方法。 - 【請求項6】各文字フォントのベースライン、文字上端
を示すトップライン、文字下端を示すボトムラインの情
報を含む共通寸法情報と、各文字の前記ベースラインよ
り下へのはみ出しの有無の情報を含む個別寸法情報及び
文字形状情報を格納する辞書ファイルと、 前記トップラインとボトムラインとの中央に位置するセ
ンターラインが一直線上に並ぶように文字を行に配置す
る第1種の文字列と、各文字のベースラインが一直線上
に並ぶように文字を行に配置する第2種の文字列とを同
一行内に混在して並べて出力する場合に、第2種の文字
列に含まれる文字にベースラインより下へのはみ出し有
りの文字の有無を前記辞書ファイルに格納された情報を
もとに判断する判断手段と、 上記行中に含まれるはみ出し有りの前記第2種の文字の
数に応じて、第1種の文字列を配置するセンターライン
に対する該文字列のベースラインの相対位置を決定する
決定手段と、 決定されたベースラインに従って第2種の文字列を第1
種の文字とともに出力する出力手段を有することを特徴
とする文書出力装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP00901292A JP3509111B2 (ja) | 1992-01-22 | 1992-01-22 | 文書出力方法および装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP00901292A JP3509111B2 (ja) | 1992-01-22 | 1992-01-22 | 文書出力方法および装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH05193085A JPH05193085A (ja) | 1993-08-03 |
JP3509111B2 true JP3509111B2 (ja) | 2004-03-22 |
Family
ID=11708742
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP00901292A Expired - Fee Related JP3509111B2 (ja) | 1992-01-22 | 1992-01-22 | 文書出力方法および装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3509111B2 (ja) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3498877B2 (ja) | 1995-12-05 | 2004-02-23 | 株式会社東芝 | 半導体製造装置および半導体装置の製造方法 |
JP3389876B2 (ja) * | 1999-03-19 | 2003-03-24 | 株式会社デンソー | 文字列表示制御装置 |
JP6501454B2 (ja) * | 2014-04-23 | 2019-04-17 | キヤノン株式会社 | 情報処理装置、その制御方法、プログラム、及び記憶媒体 |
US9704072B2 (en) | 2015-09-28 | 2017-07-11 | Toshiba Tec Kabushiki Kaisha | Printer, method, and program for printing Arabic characters |
-
1992
- 1992-01-22 JP JP00901292A patent/JP3509111B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH05193085A (ja) | 1993-08-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5416898A (en) | Apparatus and method for generating textual lines layouts | |
US5404436A (en) | Computer method and apparatus for converting compressed characters for display in full size | |
JP4873766B2 (ja) | レイアウトサービスライブラリを用いたパラグラフのレイアウト方法 | |
Haralambous | Fonts & encodings | |
JP4497432B2 (ja) | レイアウトサービスライブラリを用いたグリフの描画方法 | |
Kernighan et al. | UNIX time-sharing system: Document preparation | |
US7492366B2 (en) | Method and system of character placement in opentype fonts | |
US5233685A (en) | Method and apparatus for integrated graphical and textual character printing | |
Sinha | A journey from Indian scripts processing to Indian language processing | |
French | InDesign Type: Professional Typography with Adobe InDesign | |
JP3509111B2 (ja) | 文書出力方法および装置 | |
Gookin | Word 2016 for professionals for dummies | |
Powers | Beginning Css3 | |
Ilson | Recent research in text processing | |
Wright | History and technology of computer fonts | |
JPH032962A (ja) | 文書処理装置 | |
Calonaci | Practical Responsive Typography | |
Rinaldi | Internet Architecture and News Design: How Language and Cultural Context Affect the Transition of Chinese Language Newspapers from Print to Online | |
Witten | Elements of computer typography | |
Luna | Books and Bits: Texts and Technology since 1970 | |
Bellamy-Royds et al. | SVG Text Layout: Words as Art | |
Jackowski et al. | GUST e-foundry font projects | |
Cruise et al. | Adobe InDesign CS4 how-tos: 100 essential techniques | |
Millar et al. | Synthesis of the Devanagari orthography | |
JP3470926B2 (ja) | 文書処理装置および文書処理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20031209 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20031222 |
|
LAPS | Cancellation because of no payment of annual fees |