JP2828592B2 - カーニング処理方法 - Google Patents

カーニング処理方法

Info

Publication number
JP2828592B2
JP2828592B2 JP6055218A JP5521894A JP2828592B2 JP 2828592 B2 JP2828592 B2 JP 2828592B2 JP 6055218 A JP6055218 A JP 6055218A JP 5521894 A JP5521894 A JP 5521894A JP 2828592 B2 JP2828592 B2 JP 2828592B2
Authority
JP
Japan
Prior art keywords
character
candidate point
amount
point pair
dots
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
Application number
JP6055218A
Other languages
English (en)
Other versions
JPH07239876A (ja
Inventor
通 ▲高▼澤
保昌 荒木
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Dainippon Screen Manufacturing Co Ltd
Original Assignee
Dainippon Screen Manufacturing Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Dainippon Screen Manufacturing Co Ltd filed Critical Dainippon Screen Manufacturing Co Ltd
Priority to JP6055218A priority Critical patent/JP2828592B2/ja
Priority to US08/390,844 priority patent/US5609427A/en
Priority to KR1019950003538A priority patent/KR0163255B1/ko
Publication of JPH07239876A publication Critical patent/JPH07239876A/ja
Application granted granted Critical
Publication of JP2828592B2 publication Critical patent/JP2828592B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B41PRINTING; LINING MACHINES; TYPEWRITERS; STAMPS
    • B41BMACHINES OR ACCESSORIES FOR MAKING, SETTING, OR DISTRIBUTING TYPE; TYPE; PHOTOGRAPHIC OR PHOTOELECTRIC COMPOSING DEVICES
    • B41B19/00Photoelectronic composing machines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/103Formatting, i.e. changing of presentation of documents
    • G06F40/109Font handling; Temporal or kinetic typography

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Health & Medical Sciences (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Artificial Intelligence (AREA)
  • Controls And Circuits For Display Device (AREA)
  • Processing Or Creating Images (AREA)
  • Document Processing Apparatus (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、デスク・トップ・パブ
リッシング(DTP)等で利用される文字組版編集装置
の文字組版等に係り、特に文字詰め処理を行なうカーニ
ング処理方法に関する。
【0002】
【従来の技術】文字列の各文字を所定の配列方向に配置
するときに、配置位置が既に確定している基準文字に対
して隣接して配置しようとする対象文字の配置位置を調
整するカーニング処理方法として、例えば、特開昭50
−65223号公報に示すようなものがある。この方法
では、両文字の字面のドットパターンのドット間隔を、
文字の配列方向について求め、このドット間隔が所望す
る字面間隔量となるように両文字を配置している。ま
た、特開平2−243343号公報および特開平3−2
69490号公報では、両文字の字面のアウトラインを
文字の配列方向に走査して字面同士の間隔を算出し、こ
の間隔が所望する字面間隔量となるように両文字を配置
している。
【0003】しかしながら、上記のようなカーニング処
理方法では、字面同士の間隔を文字の配列方向について
だけ、例えば、文字を水平方向に順次配置する横組の場
合には横方向の間隔についてのみ求めているので、この
間隔が所望する字面間隔量となるように対象文字を基準
文字に対して配置すると、文字の組合せによっては斜め
や縦方向にみた字面同士の2次元的な間隔が所望の字面
間隔量よりも狭くなったり、字面同士が一部重複する
等、体裁が悪くなるという問題点がある。
【0004】このようなカーニング処理方法では、結
局、字面同士の間隔を斜め、縦方向等の2次元的な間隔
で調整するのにオペレータがCRT等の文字列を見なが
ら経験的に微調整を行う必要があるので、オペレータに
高度な技量を要し、処理に多くの時間を要する。さら
に、文字の組合せによって予め字詰めの調整量を設定
し、メモリにストアしておく方法があるが、その調整量
は固定値である上に必要なメモリ容量が大きくなる。ま
た、異なるサイズの文字とのカーニング処理もできな
い。
【0005】そこで、文字の配列方向だけについて字面
間隔を求めるのではなく、斜め、縦方向等の2次元的な
字面間隔に基づいて文字を配置するカーニング処理方法
として、例えば特開平3−244542号公報がある。
この方法では、まず、両文字の字面のドットパターンを
所望する字面間隔量の1/2だけ太らせ処理し、その太
らせ処理を行った対象文字のドットパターンを基準文字
のドットパターンに向けて近接するように移動させる。
そして、太らせ処理を行ったドットパターン同士が接し
た時の移動量を求め、この求められた移動量を詰め量と
して太らせ処理を行う前の文字を配置するものである。
【0006】
【発明が解決しようとする課題】しかしながら、このよ
うな方法では所望する字面間隔量となる移動量(詰め
量)を算出するために、処理時間を多く要する字面の太
らせ処理を行う必要があり、さらに所望する字面間隔量
を変更する場合には、再度、この字面間隔量に応じた太
らせ処理を行う必要がある。したがって、文字同士を所
望する2次元的な字面間隔量で配置することは可能であ
るが、処理が遅く、種々の字面間隔量の設定を繰り返す
字面間隔の微調整の処理には向かないという問題点があ
る。
【0007】本発明は、このような事情に鑑みてなされ
たものであって、文字の字面間隔を所望する2次元的な
字面間隔量に調整することができ、処理が速く、かつ、
字面間隔量の設定を繰り返す字面間隔の微調整の処理に
も適するカーニング処理方法を提供することを目的とす
る。
【0008】
【課題を解決するための手段】本発明は、このような目
的を達成するために、次のような構成をとる。すなわ
ち、本発明に係るカーニング処理方法は、その中に文字
パターン(字面)を配置した矩形の文字枠(仮想ボデ
ィ)に基づいて、文字列の各文字を所定の配列方向に配
置するときに、既に配置位置が確定している基準文字に
対して、隣接して配置しようとする対象文字の配置位置
を調整するカーニング処理方法であって、前記基準文字
と前記対象文字の字面同士の最短間隔である2次元的な
間隔量(字面間隔量)を指定する過程と、前記対象文字
のドットパターンを、基準文字のドットパターンに向け
て1ドットづつシフトさせ、そのシフト毎に、前記シフ
ト方向と直交する方向にて両ドットパターン間が最短間
隔となる一対のドット(候補点ペア)を求める過程と、
前記両文字の仮想ボディが接する状態における前記各候
補点ペア間の前記シフト方向の間隔情報とこれに直交す
る方向の間隔情報とを記憶する過程と、前記各候補点ペ
アのシフト方向の間隔情報と、これに直交する方向の間
隔情報と、前記指定された字面間隔量とに基づいて、前
記両文字の仮想ボディが接した状態から対象文字を基準
文字に対して接近させて、各候補点ペアの間隔が前記指
定された字面間隔量になるまでの詰め量を各候補点ペア
それぞれについて算出する過程と、前記算出された各詰
め量のうち、最小となる詰め量を求める過程と、前記最
小の詰め量で基準文字に対して対象文字を配置する過程
と、を含むことを特徴とするものである。
【0009】
【作用】本発明の作用は次のとおりである。抽出された
各候補点ペアについて、両文字の仮想ボディが接する状
態でのシフト方向の間隔情報と、シフト方向に直交する
方向の間隔情報とを記憶する。前記二つの間隔情報によ
り、両文字を仮想ボディが接する状態から詰めた場合の
2次元的な字面同士の間隔を求めることができる。した
がって、指定された2次元的な字面間隔量と前記二つの
間隔情報とに基づいて、前記両文字の字面同士の間隔を
前記指定された字面間隔量とするために必要な詰め量
が、各候補点ペア毎に算出される。この算出された各詰
め量のうち、最小の詰め量でもって基準文字に対して対
象文字を配置するので、字面が重複することなく、か
つ、字面間隔を指定された字面間隔量にできる。また、
字面間隔量を変更する場合は、候補点ペアの抽出を再度
実行することなく、既に記憶されている両間隔情報と、
新たに指定された字面間隔量とから詰め量が算出され
る。
【0010】
【実施例】以下、図面を参照して本発明の一実施例を説
明する。図1は、本発明に係るカーニング処理方法を使
用する電子組版編集装置の概略構成を示したブロック図
である。
【0011】図中、符号1は、主に本発明方法を実行す
る制御部である。制御部1は、図示しないCPUやRO
M,RAM等のメモリで構成されている。文字列入力部
2は、ワードプロセッサ等で作成された文字列データフ
ァイル(フォント名,文字サイズ,文字コード等)を格
納した媒体等から文字列データを取り込むものである。
この取り込まれた文字列データは、制御部1によって文
字列情報格納部3に格納される。この格納された文字列
情報格納部3の文字列データは、制御部1によって参照
される。字面間隔量指示部4は、オペレータによって文
字の字面同士の2次元的な間隔量(字面間隔量)を入力
指示され、この字面間隔量は字面間隔量格納部5に格納
される。この字面間隔量指示部4は、キーボード等の入
力装置から構成されている。字面間隔量格納部5に格納
された字面間隔量は、制御部1によって参照される。
【0012】制御部1は、文字列情報格納部3に格納さ
れた文字列データに対応するベクトルフォントデータを
フォント格納部10から読み出す。ドットパターン化処
理部12は、読み出されたベクトルフォントデータを指
定された文字サイズに応じたベクトルデータにして所定
の構成ドット数のドットパターンデータに変換してドッ
トパターンデータ格納部14に格納する。また、制御部
1は、処理の対象となる2文字分のドットパターンデー
タを、ドットパターンデータ格納部14からドットパタ
ーン列展開メモリ15に格納する。なお、ベクトルフォ
ントデータとは、文字の字体形状を示す字面が数学的に
関数で表されたものであり、その関数によって表された
閉図形内が字面部に相当する黒画素であり、それ以外が
白画素である。また、ドットパターンデータとは、字面
がビットマップ(例えば2値データの“1”など)で構
成されたものである。
【0013】候補点ペア補助格納部16および候補点ペ
ア格納部18は、後述するドットパターン間が最短間隔
となる一対のドット(候補点ペア)に関する情報を格納
するものである。ここでドットパターンは、ドットパタ
ーンデータの黒画素であるドットの集まりをいう。間隔
情報格納部20は、候補点ペア格納部18に格納されて
いる候補点ペアの間隔情報を格納するものである。間隔
情報は、詳しくは後述するが、候補点ペアのドット同士
の位置関係を示すものである。この格納された間隔情報
と、字面間隔量格納部5に格納されている字面間隔量と
に基づいて、詰め量を詰め量演算部22が算出する。こ
の算出された詰め量は、詰め量格納部24に格納され、
文字列情報格納部3に格納されている文字列データに付
加される。
【0014】文字列情報格納部3に格納され、詰め量が
付加された文字列データは、制御部1によって表示・出
力部25へ送られる。これによりCRT等の表示装置に
表示されたり、プリンタ等から構成される出力装置に出
力される。
【0015】<処理の概要>まず、図2〜図4を参照
し、理解を容易にするために中心となる処理の概要につ
いて説明する。
【0016】図2(a)は、配置の基準となる基準文字
Aと、基準文字Aに対して仮想ボディ同士が接する状態
で「横組み」で配置された対象文字Bとをベクトルデー
タで表した模式図である。この基準文字Aおよび対象文
字Bは、それぞれ100×100の文字サイズを有する
仮想ボディAIB,BIBと、その内方の字面FA (実線の
領域内),FB (点線の領域内)とから構成されてい
る。この仮想ボディ同士が接する状態での配置は、いわ
ゆる「ベタ組み」と称される。この時、対象文字Bの仮
想ボディの一辺が、基準文字Aの仮想ボディの一辺に対
して文字の配列されていく方向とは逆の方向に詰められ
る間隔(詰め量)を「0」とする。
【0017】ドットパターンデータへの変換 前記ベクトルデータで表される両文字A,Bを、10×
10ドットで構成されるドットパターンデータに変換し
たのが図3(a)である。両文字A,Bは、その字面F
A ’,FB ’を構成している各ドットパターンの各ドッ
トを識別可能なように、文字の配列方向に沿って列番号
を、文字の配列方向と直交する方向に沿って行番号を割
り振る。すなわち、文字Aの字面FA ’には、文字の配
列方向に沿って右端からi列〜i−6列まで、文字Bの
字面FB ’には、左端からj列〜j+3列までを割り振
る。また、文字の配列方向と直交する方向に沿って上端
からp行〜p+6行を割り振る。なお、この例ではドッ
トパターンデータの1ドットがベクトルデータの10×
10の大きさに相当する。これを変換倍率とし、この場
合は変換倍率1/10となる。
【0018】候補点ペアの抽出 両文字A,Bのドットパターンで表された字面FA ’と
B ’との間で最短間隔となる候補としての一対のドッ
ト(候補点ペア)を全て抽出し、候補点ペア格納部18
に格納する。具体的には、「ベタ組み」の状態から対象
文字Bのドットパターンを基準文字Aのドットパターン
に向けて1ドットづつシフトさせ、そのシフト毎に文字
の配列方向とは直交する方向(列方向)にて、両文字
A,Bのドットパターンで表された字面FA ’,FB
のうち、同列上に存在する一対のドットを全て抽出す
る。そして同じシフト量(シフト回数に相当)における
複数対のドットのうち、間隔量が最短となる一対のドッ
トをそのシフト量における候補点ペアとする。なお、こ
こで、候補点ペアの間隔量とは、2つのドットの中心間
距離をドット数で表した量をいう。
【0019】上記のようにシフトし、計5ドット分シフ
トした状態を図3(b)に示す。この状態では、字面F
B ’のp+4行・j列のドットと、字面FA ’のp行・
i列のドットとからなる一対のドットa(間隔量:4ド
ット)が同列上に1つだけ存在するので、この一対のド
ットを候補点ペアaとしてその間隔情報と共に候補点ペ
ア格納部18に格納する。
【0020】さらに1ドット分シフトした状態(計6ド
ット分のシフト量)を図3(c)に示す。この状態で
は、字面FB ’のp+4行・j列のドットと字面FA
のp+1行・i−1列のドットとからなる一対のドット
b(間隔量:3ドット)と、字面FB ’のp+4行・j
+1列のドットと字面FA ’のp行・i列のドットとか
らなる一対のドットb1 (間隔量:4ドット)とが存在
する。この場合、一対のドットb1 が候補点ペア補助格
納部16に格納され、これと一対のドットbの間隔量と
を比較して、最短間隔である一対のドットbが候補点ペ
アbとして候補点ペア格納部18に格納される。
【0021】さらに1ドット分シフトした状態(計7ド
ット分のシフト量、図4(a)参照)では、字面FB
のp+1行・j+2列のドットと字面FA ’のp行・i
列のドットとからなる一対のドットc(間隔量:1ドッ
ト)と、字面FB ’のp+4行・j+1列のドットと字
面FA ’のp+1行・i−1列のドットとからなる一対
のドットc1 (間隔量:3ドット)と、字面FB ’のp
+4行・j列のドットと字面FA ’のp+2行・i−2
列のドットとからなる一対のドットc2 (間隔量:2ド
ット)のうち、最短間隔である一対のドットcが候補点
ペアcとして候補点ペア格納部18に格納される。
【0022】さらに1ドット分シフトした状態(計8ド
ットのシフト量)である図4(b)の状態では、同様に
して4対のドットd,d1 ,d2 ,d3 が抽出され、最
終的には一対のドットd(間隔量:0ドット)が候補点
ペアdとして候補点ペア格納部18に格納される。
【0023】この候補点ペアの抽出処理は、字面の一部
が重複したところで終了する。隣接文字の字面が重複す
るまで字詰めされることは、通常のカーニング処理では
ないからである。従って、上記の例では計8ドットのシ
フト(図4(b))で処理を終了する。例えば、文字
「国」と文字「国」のような組合せの場合には、対象文
字を1ドットづつシフトしていくと、図3(b),
(c)のようないわゆる「くい込み」状態は発生せず
に、両文字の字面同士がいきなり重複することもある。
このような場合には重複した一対のドットを候補点ペア
として抽出して処理を終了することになる。以上の処理
により、シフト毎に抽出された候補点ペアa〜dが候補
点ペア格納部18に格納される。
【0024】なお、上記の例では、同列上には一対のド
ットが1つしか存在しなかったが、複雑な形状の字面か
らなる文字によっては、同列上に複数対のドットが存在
する場合がある。例えば、基準文字Aのある1つの列上
の字面FA ’と対象文字Bのある1つの列上の字面
B ’とが図5(a)に示すようなドットで構成されて
いるとする。この両列同士がシフトされて重なると同図
(b)のように、同列上に5つのドット対P1 ,P2
3 ,P4 が存在することになる。このような場合は、
全てのドット対P1 〜P4 のうち最短の間隔量をもつ一
つのドット対P1 を候補点ペアとして候補点ペア格納部
18に格納すればよい。また、最短の間隔量をもつドッ
ト対が複数対存在する場合には、いずれか一対のドット
を候補点ペアとして格納すればよい。これは後述するよ
うに、仮想ボディが接する状態での候補点ペアの「シフ
ト方向」と「シフト方向に直交する方向」の間隔情報
と、指定された字面間隔量とに基いて得られる関係式に
て両文字の詰め量を算出するのであるが、同じシフト量
で、かつ、同列上で同一の最短間隔を有する複数の候補
点ペアからは、全て同じ関係式が導かれるからである。
また、あるシフト量での候補点ペアの間隔量が、それま
でのシフト量における候補点ペアの間隔量より大きい場
合は、その候補点ペアを無視する。
【0025】詰め量の算出 基準文字Aと対象文字Bの2次元的な字面の最短間隔
を、指定された字面間隔量とするのに必要な詰め量を算
出する。図2(a)に示すような「ベタ組み」の状態に
おいて、候補点ペア格納部18に格納した各候補点ペア
について、ベクトルデータでの字面の輪郭同士の間隔に
換算したシフト方向の間隔情報mとシフト方向と直交す
る方向の間隔情報nとを求める。候補点ペアのドットの
中心座標に相当するベクトルフォントデータでの座標を
基準文字A(Pax,Pay),対象文字B(Pbx,Pby
とすると、両間隔情報m,nは、 m=(100−Pax)+Pbx−10 ……………… (1) n=|Pay−Pby|−10 ………………………… (2) で表すことができる。但し、Pay=Pbyのときはn=0
とする。なお、上式における数値100は、ベクトルデ
ータの文字サイズを示し、10はドットパターンデータ
の1ドットのサイズに相当するベクトルデータ上のサイ
ズを示す。
【0026】各候補点ペアのベクトルデータでのドット
の中心座標〔(Pax,Pay),(Pbx,Pby)〕を候補
点ペアa〔(75,75),(25,35)〕、候補点
ペアb〔(65,65),(25,35)〕、候補点ペ
アc〔(75,75),(45,65)〕、候補点ペア
d〔(65,65),(45,65)〕とすると、上記
の(1),(2)式より各候補点ペアのシフト方向の間
隔情報mとシフト方向と直交する方向の間隔情報nは、 候補点ペア m n a 40 30 b 50 20 c 60 0 d 70 0 となる。
【0027】また、ベクトルデータでの字面の最短間隔
kは、 k2 =m2 +n2 …………………………………… (3) で算出することができる(図2(a)参照)。
【0028】さらに対象文字Bは基準文字Aに対して詰
め量が「0」である「ベタ組み」の状態から、ある詰め
量Sで配置されるが、この詰め量Sによりシフト方向の
間隔情報mは(m−S)と表すことができる(図2
(b)参照)。したがって、上記の(3)式は、 k2 =(m−S)2 +n2 ………………………… (4) となる。この関係式に基づいて各候補点ペアの最短間隔
kと詰め量Sとの関係をグラフ化すると図6(a)のよ
うになる。
【0029】実際のカーニング処理においては、最短間
隔kは両文字の字面間隔であって、オペレータやデザイ
ナーによって指定される所望の2次元的な字面間隔量k
0 であるので、指定された字面間隔量k0 から詰め量S
を求める必要がある。したがって、(4)式から詰め量
Sを求めると、 S=|m±√(k0 2−n2 )| …………………… (5) となる。
【0030】一例として字面間隔量k0 =30が指定さ
れた場合を考える。上記の両間隔情報m,nと(5)式
より、各候補点ペアの字面同士の最短間隔が字面間隔量
0となる詰め量Sは、 候補点ペア 詰め量S a 40 b 72,28 c 90,30 d 100,40 となる。この算出された詰め量Sのうち、候補点ペアb
から算出された最小の詰め量Smin =28でもって対象
文字Bを基準文字Aに対して配置すればよい(図2
(c)参照)。
【0031】この最小の詰め量Smin でもって文字を配
置することの理由について、図6(a)の詰め量Sと最
短間隔kとの関係を示すグラフを参照して説明する。こ
のグラフから、詰め量Sが0以上20以下(0≦S≦2
0:詰め量範囲)の場合は候補点ペアaが最短間隔と
なり、20以上36以下(20≦S≦36:詰め量範囲
)の場合は候補点ペアb、36以上60以下(36≦
S≦60:詰め量範囲)の場合は候補点ペアcが最短
間隔となることが分かる。また、詰め量Sが20の場合
は、a,bの2つの候補点ペアが共に最短間隔となり、
詰め量Sが36の場合は、b,cの2つの候補点ペアが
共に最短間隔となることが分かる。
【0032】字面同士の2次元的な最短間隔を字面間隔
量k0 =30にするために、上記のように算出された各
詰め量Sのうち最小でない詰め量Sでもって対象文字B
を基準文字Aに対して配置した場合を考えてみる。例え
ば、上記の候補点ペアdで算出された詰め量S「40」
で配置したとすると、確かに候補点ペアdについては最
短間隔kが指定された字面間隔量k0 に等しい「30」
となるが、候補点ペアcでは最短間隔kが指定された字
面間隔量k0 よりも短い「20」となる。すなわち、最
小でない詰め量で配置すると字面間隔が指定した字面間
隔量k0 よりも短くなるところが現れるので、算出され
た詰め量Sのうち最小の詰め量Smin でもって文字を配
置する。したがって、基準文字Aと対象文字Bとの組合
せにおいては、指定された字面間隔量k0 (最短間隔
k)と詰め量Sとの関係は、図6(a)の各詰め量範囲
〜で最短の字面間隔量k0 (最短間隔k)となる候
補点ペアa,b,cの特性を接続したような図6(b)
の関係で表すことができる。これより本例では、間隔量
が「0」、すなわち、字面が重複したときの候補点ペア
dは使われないことがわかるが、両文字の字面の形状に
よって、重複する候補点ペアが必要な場合もある(両文
字の字面の対向部が平行な場合等)。
【0033】以上が本実施例の中心となる処理の概要で
ある。この概要説明から明らかなように、対象文字のド
ットパターンを基準文字のドットパターンに対して1ド
ットづつシフトし、そのシフト毎に抽出した各候補点ペ
アについて、仮想ボディが接する状態における前記シフ
ト方向の間隔情報mと、シフト方向と直交する方向の間
隔情報nとを求める。この両間隔情報により字面同士の
2次元的な間隔を、指定された字面間隔量k0 とするた
めの詰め量Sを算出することができる。また、一度だけ
候補点ペアの抽出を行ってその間隔情報m,nを記憶し
ておけば、字面間隔量k0 が再指定されても候補点ペア
の抽出を再度行う必要がないので、詰め量を効率的に求
めることができる。また、1ドットづつシフトし、字面
に相当するドットパターン同士を接近させて最短間隔と
なる一対のドットを候補点ペアとして求めており、換言
すれば、実際に文字同士を詰めた場合に最短間隔になる
と予想される両文字の字面の複数箇所を候補点ペアとし
て抽出し、これらの一群の候補点ペアのみを対象とし
て、上述のように最適な一つの候補点ペアを求めている
ので、両文字の輪郭を構成する全てのドットを対象とし
て、最短間隔となる一対のドットを求める場合等と比較
して、格段に処理を速く行うことができる。
【0034】次に、図7〜図9のフローチャートを参照
して、処理の詳細について説明する。図7は、カーニン
グ処理方法のメインフローを示し、図8および図9は、
候補点ペアの抽出の処理を示すフローチャートである。
なお、以下の説明においては、概要説明のときと同様に
文字を「横組み」で行うことを前提に説明する。
【0035】図7を参照する。ステップS1では、カー
ニング処理を行う文字列データファイルをオペレータが
指定する。この文字列データファイルの文字列データ
は、文字列入力部2から入力され、文字列情報格納部3
に格納される。この文字列情報格納部3に格納された文
字列データの一例の模式図を図10に示す。このように
文字列データは、明朝体やゴシック体等の字面のデザイ
ンを示すフォント名と、仮想ボディの大きさである文字
サイズと、これらに続けて第1文字C1 の文字コード,
第2文字C2 の文字コード,………,第n文字Cn の文
字コードである文字コード群から構成される。
【0036】制御部1は、文字列情報格納部3の文字列
データを参照し、これに対応するフォント名のベクトル
フォントデータをフォント格納部10から読み出して、
対応する文字サイズに伸縮して各文字を表示・出力部2
5に表示する。このとき、各文字はベタ組みである「標
準配置」、すなわち、詰め量「0」で配置される。
【0037】ステップS2では、オペレータが所望する
字面間隔量k0 を字面間隔量指示部4から入力指定す
る。入力された字面間隔量k0 は、字面間隔量格納部5
に格納される。ここでは、字面間隔量k0 として「3
0」が指定されたとする。
【0038】<候補点ペアの抽出>ステップS3では、
候補点ペアの抽出処理を行う。この処理について、図8
のフローチャートを参照して説明する。
【0039】ステップT1では、文字列情報格納部3に
格納された文字列データに対応するベクトルフォントデ
ータをフォント格納部10から制御部1が読み出し、こ
の全ベクトルフォントデータをドットパターン化処理部
12が指定された文字サイズのベクトルデータに変換し
て所定のドット数で構成されるドットパターンデータに
変換する。本実施例では、一例として、変換倍率1/1
0、すなわち100×100のサイズのベクトルデータ
を10×10ドットのドットパターンデータに変換す
る。なお、ベクトルデータからドットパターンデータへ
の変換において、ベクトルデータにおける字面の面積が
ドットパターンデータでのドットサイズ中で例えば50
%以上を占める場合は黒画素として変換し、それ以下の
場合は白画素として変換する。
【0040】ステップT2では、候補点ペア格納部18
の内容をクリアする。以下の処理において候補点ペアが
抽出される度に、候補点ペア格納部18に候補点ペアに
関する情報が追加格納されるので、その前に一度だけク
リアしておく。
【0041】ステップT3では、制御部1がドットパタ
ーンデータ格納部14の文字Ci (基準文字)と文字C
i+1 (対象文字)の2文字分のドットパターンデータを
ドットパターン列展開メモリ15に書き込む。このドッ
トパターン列展開メモリ15の模式図を図11に示す。
このドットパターン列展開メモリ15は、2文字分のド
ットパターンデータを格納できるように格納領域が確保
され、さらに格納領域は基準文字Ci の左下を基準とし
て、上方向に向かって0〜9(行データ)までの10行
に分割され、横方向に向かって0〜19(列データ)ま
での20列に分割され、この分割された200個の各領
域は、基準文字Ci から対象文字Ci+1の領域に連続的
に0〜199までのアドレスが割り振られている。変換
されたドットパターンデータが10×10のサイズであ
るので、基準文字Ci に「0〜99」、対象文字Ci+1
に「100〜199」のアドレスが割り振られる。
【0042】なお、以下の説明においては、文字Ci
第1文字C1 とし、文字Ci+1 を第2文字C2 として説
明する。また、第1文字C1 と第2文字C2 とは、それ
ぞれ前述の概要説明で用いたものと同じ形状で表される
文字であるとする(図12(a)参照)。ここで第1文
字C1 のドットが位置するアドレス( 図中の実線の領域
内)の集合をA0 とすると、A0 ={11〜17,22〜27,33
〜37,44 〜47,55 〜57,66,67,77 }となり、第2文字C
2 のドットが位置するアドレス(図中の点線の領域内)
の集合をB0 とするとB0 ={122,123,132,133,142 〜
146,152 〜156 }となる。なお、集合を表す符号A,B
の添字0は、シフト回数=0を表す。
【0043】ステップT4では、第2文字C2 を第1文
字C1 に対して1ドットシフトする。具体的には、第2
文字C2 のドットを示すアドレスの集合B0 の各アドレ
スから10だけ減算する。結果、第2文字C2 のアドレ
スの集合B1 は、B1 ={112,113,122,123,132 〜136,
142 〜146 }となる(図12(b)参照)。
【0044】ステップT5では、文字の配列方向とは直
交する方向において、すなわち、同列上に両文字のドッ
トがあるか否かを判断する。この判断は集合B1 をRA
MエリアにB1 ’としてコピーして、このB1 ’の全て
のアドレスを10で除算し、その結果の小数を切り捨て
る(以下、整数化と称する)。また、同様に集合A0
全てのアドレスを整数化する。この処理により、各アド
レスの集合に含まれるアドレスは、列データに変換され
る。したがって、集合A0 ’と集合B1 ’の列データを
比較し、同じ列データがあるか否かを判断する。ここで
は、集合A0 ’={1,2,3,4,5,6,7}と集合B1 ’={1
1,12,13,14}となり、同じ列データが含まれないので、
ステップT4へ戻って、さらに1ドットシフトを行う。
この両文字のドットパターンデータでは、計5ドット分
のシフトを行うまでステップT4,ステップT5が繰り
返される。
【0045】次に、ステップT4,T5により計5ドッ
ト分のシフトが行われた状態から説明する。このときの
ドットパターン列展開メモリ15の模式図を図13
(a)に示す。この状態では、集合A0 ={11〜17,22
〜27,33 〜37,44 〜47,55 〜57,66,67,77 }、集合B5
={72,73,82,83,92〜96,102〜106}となり、集合
0 ’={1,2,3,4,5,6,7}、集合B5 ’={7,8,9,1
0}となるので、集合A0 ’とB5 ’とに同じ列データ
「7」が含まれる。したがって、同列上に両文字のドッ
トがあると判断されてステップT5からステップT6へ
と分岐する。
【0046】ステップT6では、候補点ペア補助格納部
16に所定の初期値を設定する。候補点ペア補助格納部
16は、同一のシフト量において、ある列上で最短間隔
を有する一対のドットの間隔量Fpと、その元のアドレ
ス、すなわち図12に示す「ベタ組み」における一対の
ドットのアドレスAp,Bpとを格納するものである。
この候補点ペア補助格納部16の間隔量Fpは、同一シ
フト量において前記列上とは異なる列上で最短間隔を有
する一対のドットの間隔量と比較されるので、まず、何
らかの値を初期値として設定しておく必要がある。そこ
で、間隔量としては採りうる最大の間隔量である「1
0」を設定し、候補点ペアの元のアドレスAp,Bpと
しては適宜の値(ここでは「0」,「0」)を設定す
る。この候補点ペア補助格納部16の模式図を図13
(b)に示す。
【0047】ステップT7では、基準文字C1 と対象文
字C2 の同列上にある全てのドット対を求め、ステップ
T8では、そのうち最短の間隔量をもつ一対のドットを
求める。
【0048】現在の計5ドット分シフトした状態では、
基準文字C1 のアドレスの集合A0={11〜17,22〜27,3
3 〜37,44 〜47,55 〜57,66,67,77 }、対象文字C2
アドレスの集合B5 ={72,73,82,83,92〜96,102〜10
6}であり、基準文字C1 の列データの集合A0 ’=
{1,2,3,4,5,6,7}、対象文字C2 の列データの集合B
5 ’={7,8,9,10}であるので、列データの集合から7
列目において同列上に双方のドットが存在している。そ
こで、7列目において一対のドットを求める。まず、7
列目であるのでアドレスが70台の文字C1 と文字C2
アドレスを求める。結果、文字C1 のアドレスAw(7
7)と文字C2 のアドレスBw(72,73 )が求められ
る。そして、その間隔量Fp(Aw,Bw)を求めると
Fp(77,72)=5、Fp(77,73 )=4であるので、
最短である間隔量Fp(77,73 )=4と、その一対のド
ットのアドレスとを制御部1のRAMに一時的に格納す
る(ステップT8)。
【0049】ステップT11では、候補点ペア補助格納
部16に格納されている、同一シフト量において他の列
で抽出された一対のドットの間隔量Fp’と、当該列上
で抽出されて制御部1のRAMに格納されている一対の
ドットの間隔量Fpとを比較し、短い方の間隔量をもつ
一対のドットの間隔量と、この一対のドットを構成して
いる各ドットの元のアドレスとからなる候補点ペア情報
を候補点ペア補助格納部18に格納する(ステップT1
2)。このとき既に候補点ペア補助格納部18に格納さ
れていた候補点ペア情報は削除される。
【0050】上記のステップT7,T8,T11,T1
2は、同じシフト量において、複数の列上に一対のドッ
トが存在する場合にはそのうち最短の間隔量をもつ一つ
の一対のドットを抽出するための処理である。
【0051】現在の候補点ペア補助格納部16の内容
は、図13(b)に示すように初期設定されたままの状
態なので、制御部1に格納されている間隔量Fp=4と
この一対のドットの間隔量とを比較して、間隔量が短い
方の間隔量Fp=4と、その元のアドレスAp,Bpと
からなる候補点ペア情報を候補点ペア補助格納部18に
格納する。元のアドレスは、以下の式によって算出する
ことができる。 文字Ci の元のアドレスAp=Aw ………………………………… (6) 文字Ci+1 の元のアドレスBp=Bw+シフト回数×10 ……… (7) したがって、現在の候補点ペアの文字C1 の元のアドレ
スApは「77」となり、文字C2 の元のアドレスBpは
「123」(73+5×10) となって、間隔量Fp「4」ととも
に、元のアドレスAp「77」,Bp「123 」が候補点ペ
ア補助格納部16に格納される(図13(b)参照)。
【0052】ステップT13では、複数の列上で一対の
ドットが存在した場合に全列の処理が終了したかどうか
を判断して処理を分岐する。現在は、7列目の一列上だ
けに一対のドットが存在しているので、全列の処理が終
了したとしてステップT15へ分岐する。
【0053】ステップT15では、候補点ペア補助格納
部16に格納されている候補点ペアの間隔量が候補点ペ
ア格納部18に格納されている以前の全候補点ペアの間
隔量より小さい(短い)場合にのみ当該候補点ペア情報
を候補点ペア格納部18へ追加格納し(ステップT1
6)、そうでなければ格納しない。
【0054】これらステップT15〜ステップT16に
より、基準文字「ー」と対象文字「.」の組合せのよう
に、異なるシフト量において同じ間隔量の一対のドット
が候補点ペアとして複数個抽出されるような場合には、
最小のシフト量で求められた候補点ペアだけを格納す
る。こうすることにより無駄な候補点ペアのストアを避
けている。したがって、後の処理を効率良く行うことが
できる。
【0055】現在の候補点ペア格納部18には何ら候補
点ペア情報が格納されていないので、ステップT16へ
分岐して、候補点ペア補助格納部16に格納されている
候補点ペア情報(間隔量Fp「4」,元のアドレスAp
「77」,元のアドレスBp「123 」)を候補点ペアとし
て候補点ペア格納部18に格納する。このときの候補点
ペア格納部18の模式図を図13(b)に示す。なお、
図13(b)中、C1の符号は、候補点ペア情報が基準
文字C1 と対象文字C2 とによるものであることを示す
ものである。また、この候補点ペアは、前述の概要説明
における候補点ペアaに相当する。次に、図8のステッ
プT9に戻る。
【0056】ステップT9では、両文字が重複している
か、すなわち、一対のドットが重複しているか否かを判
断して処理を分岐する。これは、間隔量Fpが「0」か
否かを判断すればよい。ここでは間隔量Fpが「0」で
はないので、ステップT4へ分岐する。
【0057】ステップT4では、基準文字C1 に対して
対象文字C2 をさらに1ドットシフトする(計6ドット
分シフトであり、図14(a)の状態)。このとき集合
0={11〜17,22〜27,33 〜37,44 〜47,55 〜57,66,6
7,77 }、集合B6 ={62,63,72,73,82〜86,92 〜96}
となり、集合A0 ’={1,2,3,4,5,6,7}、集合B6’=
{6,7,8,9 }となるので、両集合A0 ’とB6 ’とに同
じ列データ「6,7 」が含まれる。したがって、同列上に
一対のドットがあると判断してステップT5からステッ
プT6へと分岐する。
【0058】ステップT6では、上述したように候補点
ペア補助格納部16を初期値に設定する(図14(b)
参照)。
【0059】この計6ドットシフトした状態では、上述
のように6列目と7列目に両文字のドットがあるが、ま
ず、7列目から処理を行う。文字C1 と文字C2 の70台
のアドレスを求める。結果、文字C1 のアドレスAw
(77)と文字C2 のアドレスBw(72,73 )が抽出され
る。そして、その間隔量Fp(Aw,Bw)を求めると
Fp(77,72)=5、Fp(77,73 )=4であるので、
最短である間隔量Fp(77,73 )=4と、その一対のド
ットのアドレスとを制御部1のRAMに一時的に格納す
る(ステップT8)。
【0060】そして、ステップT11,T12を経て、
制御部1に格納されている間隔量Fp「4」と、上記の
(6),(7)式から算出されるその一対のドットの元
のアドレスAp「77」,Bp「133」(73+6×10) との候
補点ペア情報が候補点ペア補助格納部16に格納される
(図14(b)参照)。
【0061】ステップT13では、複数の列上で一対の
ドットが存在した場合に全列に関する処理が終了したか
どうかを判断して処理を分岐する。現在処理が終わった
のは、6列目,7列目のうち7列目だけであるので、ス
テップT13からステップT7へ分岐する。
【0062】ステップT7では、次の6列目の処理を行
う。文字C1 と文字C2 の60台のアドレスを求める。結
果、文字C1 のアドレスAw(66, 67)と文字C2 のア
ドレスBw(62,63 )が抽出される。そして、その間隔
量Fp(Aw,Bw)を求めると、Fp(67,62)=
5、Fp(67,63 )=4、Fp(66,62)=4、Fp
(66,63 )=3であるので、最短である間隔量Fp(6
6,63 )=3と、その一対のドットのアドレスとが制御
部1のRAMに一時的に格納される(ステップT8)。
【0063】図9のステップT11,T12を経て、制
御部1のRAMに格納されている間隔量Fp「3」とそ
の一対のドットの元のアドレスAp「66」,Bp「12
3」(63+6×10) の候補点ペア情報が候補点ペア補助格納
部16に格納される(図14(b)参照)。
【0064】ステップT13では、全列の処理が終了し
たので、ステップT15,T16を経て、候補点ペア補
助格納部16に格納されている候補点ペア情報(間隔量
Fp「3」,元のアドレスAp「66」,Bp「123 」)
を候補点ペアとして候補点ペア格納部18に追加格納す
る(図14(b)参照)。なお、この候補点ペアは、前
述の概要説明における候補点ペアbに相当する。
【0065】上記のようにステップT4〜ステップT1
6を経て、計7ドット分のシフト(図15(a)参照)
では、文字C1 のアドレスの集合A0 ={11〜17,22〜2
7,33 〜37,44 〜47,55 〜57,66,67,77 }、文字C2
アドレスの集合B7 ={52,53,62,63,72〜76,82 〜86}
であり、文字C1 の列データの集合A0 ’={1,2,3,4
,5,6,7}、文字C2 の列データの集合B7 ’={5,6,
7,8 }であるので、同じ列データ「5,6,7 」が含まれ
る。以下、各列について次のようになる(図15
(a),(b)参照)。
【0066】『7列目』 制御部1のRAMの内容 …… Fp(77,76 )=1,A
w=77, Bw=76 この内容は、ステップT12において候補点ペア情報と
して候補点ペア補助格納部16に格納される。
【0067】『6列目』 制御部1のRAMの内容 …… Fp(66,63 )=3,A
w=66, Bw=63 この内容は、ステップT11において比較の結果、『7
列目』の間隔量よりも大きいと判断され、候補点ペア補
助格納部16に格納されない。したがって、候補点ペア
補助格納部16の内容は、『7列目』のままである。
【0068】『5列目』 制御部1のRAMの内容 …… Fp(55,53 )=2,A
w=55, Bw=53 この内容も候補点ペア補助格納部16に格納されない。
したがって、候補点ペア補助格納部16の内容は、『7
列目』のままである。
【0069】この結果、ステップT15〜T16を経て
候補点ペア格納部18には、候補点ペア情報(Fp(7
7,76 )=1,Ap=77, Bp=146 )が候補点ペアとし
て追加格納される。なお、この候補点ペアは、前述の概
要説明における候補点ペアcに相当する。
【0070】次にステップT4〜ステップT16を経
て、計8ドット分のシフト(図16(a)参照)では、
文字C1 のアドレスの集合A0 ={11〜17,22〜27,33
〜37,44 〜47,55 〜57,66,67,77 }であるので、「4,5,
6,7 」列上に両ドットパターンのドットが含まれる。以
下、各列について次のようになる(図16(a),
(b)参照)。
【0071】『7列目』 制御部1のRAMの内容 …… Fp(77,76 )=1,A
w=77, Bw=76 この内容は、ステップT12において候補点ペア情報と
して候補点ペア補助格納部16に格納される。
【0072】『6列目』 制御部1のRAMの内容 …… Fp(66,66 )=0,A
w=66, Bw=66 この内容は、ステップT12において候補点ペア情報と
して候補点ペア補助格納部16に格納される。
【0073】『5列目』 制御部1のRAMの内容 …… Fp(55,53 )=2,A
w=55, Bw=53 この内容は、ステップT11において比較の結果、『6
列目』の間隔量よりも大きいと判断され、候補点ペア補
助格納部16に格納されない。したがって、候補点ペア
補助格納部16の内容は、『6列目』のままである。
【0074】『4列目』 制御部1のRAMの内容 …… Fp(44,43 )=1,A
w=44, Bw=43 この内容も候補点ペア補助格納部16に格納されない。
したがって、候補点ペア補助格納部16の内容は、『6
列目』のままである。
【0075】この結果、ステップT15〜T16を経て
候補点ペア格納部18には、候補点ペア情報(Fp(6
6,66 )=0,Ap=66, Bp=146 )が候補点ペアとし
て追加格納される。なお、この候補点ペアは、前述の概
要説明における候補点ペアdに相当する。
【0076】この内容は、ステップT9における判断の
結果、間隔量Fpが「0」であるので両文字が重複して
いると判断され、ステップT10へ分岐して次の文字の
処理へと移行する。なお、両文字が全く重複せずに10
ドット分シフトした場合も、両文字での候補点ペアの抽
出・記憶を終了して次の文字の処理へと移行する。
【0077】上記のような処理を次の文字C2 と文字C
3 について行い、すべての文字の処理を終了(文字C
n-1 と文字Cn )するとステップT10において、図7
のメインフローへと復帰する。全文字の処理終了、すな
わち文字Cn-1 と文字Cn までの処理を終了した時点で
の候補点ペア格納部18の模式図を図17に示す。
【0078】<詰め量の算出>ステップS4では、ステ
ップS3で抽出された各候補点ペア情報に基づいて、対
象文字を基準文字に対して配置する際に、ベタ組みの状
態からどれだけ詰めるかを示す詰め量の算出を行う。こ
の詰め量の算出処理について、図18のフローチャート
を参照して説明する。
【0079】ステップT30では、抽出されて候補点ペ
ア格納部18に格納されている全文字の各候補点ペア情
報の元のアドレスから、候補点ペアのベクトルデータで
の間隔であるシフト方向の間隔情報mとシフト方向と直
交する方向の間隔情報nを算出する。
【0080】具体的には以下のようにして各候補点ペア
のシフト方向の間隔情報mとシフト方向と直交する方向
の間隔情報nを求める。
【0081】シフト方向の間隔情報mは、以下のように
して求める。まず、元のアドレスApとBpを列データ
に変換し、それらの差を求めるとドットの中心からのシ
フト方向の間隔が求まる。そして、ドットの輪郭での間
隔にするためにその差から1ドット分を差し引く。さら
に、ドットパターンデータは変換倍率1/10でベクト
ルデータから変換されたので、ここで元にもどすため変
換倍率の逆数を掛ける。これを式で記述すると以下のよ
うになる。ただし、割算記号“/”は、整数化を行うこ
とを示す。 m={(Bp/10−Ap/10)−1}×10 ………………… (8)
【0082】シフト方向と直交する方向の間隔情報n
は、以下のようにして求める。まず、元のアドレスAp
とBpを行データに変換し、それらの差を求めてドット
の中心からのシフト方向と直交する方向の間隔が求ま
る。この間隔は、文字の字面の組合せによっては負とな
るので絶対値をとる。そして、ドットの輪郭での間隔に
するためにその差から1ドット分を差し引く。さらに、
変換倍率の逆数を掛ける。これを式で記述すると以下の
ようになる(但し、Fp=0のときはn=0)。 n={|〔Bp−(Bp/10)×10〕 −〔Ap−(Ap/10)×10〕|−1}×10 ……… (9)
【0083】上記の(8),(9)式と、上記の処理で
抽出された基準文字C1 と対象文字C2 との候補点ペア
情報(間隔量Fp(Ap,Bp)とすると、Fp(77,1
23)=4,Fp(66,123)=3,Fp(77,146)=1,Fp
(66,146)=0 、図17参照)から、 候補点ペアaは、m=40,n=30 候補点ペアbは、m=50,n=20 候補点ペアcは、m=60,n=0 候補点ペアdは、m=70,n=0 となる。
【0084】ステップT31では、ステップT30で算
出された全ての文字毎の間隔情報m,nを間隔情報格納
部20へ格納する。この間隔情報格納部20での格納状
態を図19に示す。
【0085】ステップT32では、詰め量演算部22が
全文字の間隔情報m,nと字面間隔量k0 とから詰め量
Sを算出する。具体的には、上記の処理の概要で示した
(5)式から各文字毎に全ての候補点ペアから詰め量S
を算出する。一例として字面間隔量k0 =「30」と
し、基準文字C1 と対象文字C2 の各候補点ペアa,
b,c,dについて各詰め量Sa ,Sb ,Sc ,Sd
求めると、 詰め量Sa =40±0 ∴詰め量Sa =40 詰め量Sb =50±√500 ∴詰め量Sb =28,72 詰め量Sc =60±30 ∴詰め量Sc =30,90 詰め量Sd =70±30 ∴詰め量Sd =40,100 となる。
【0086】ステップT33では、ステップT32で算
出された各文字毎の詰め量Sのうち、各文字毎に最小の
詰め量Smin を求めて詰め量格納部24へ格納する。上
記の例では、候補点ペアbから求められた詰め量Sb
28が最小であるので、基準文字C1 と対象文字C2
詰め量として最小の詰め量Smin =S1 =28を詰め量
格納部24へ格納する。このときの詰め量格納部24の
模式図を図20に示す。
【0087】図7のメインフローに戻り、ステップS5
を実行する。
【0088】このステップS5では、制御部1が文字列
情報格納部3の文字列データに応じたベクトルフォント
データをフォント格納部10から読み出して、表示・出
力部25へ出力する。このとき、詰め量格納部24を参
照して、基準文字Ci に対して対象文字Ci+1 を対応す
る詰め量Si で詰めて表示する。
【0089】ステップS6では、ステップS5で表示さ
れた文字列をオペレータが見て、体裁良く文字間隔が調
整されているか否かを判断する。体裁良く調整されてい
ないと判断した場合は、ステップS7で字面間隔量k0
を再指定する。この際、再度ステップS3の候補点ペア
の抽出を行うことなく、ステップS4の詰め量の算出を
行えばよいので、処理が速く、かつ、字面間隔量の設定
を繰り返す字面間隔の微調整の処理にも適する。
【0090】ステップS6で文字間隔が体裁良く調整さ
れていると判断した場合は、ステップS8で詰め量格納
部24に格納されている各文字毎の詰め量S1 〜Sn-1
を、文字列情報格納部3の対応する文字コードに付加し
て格納する。この詰め量が付加された文字列情報格納部
3の模式図を図21に示す。
【0091】以上の処理を経てカーニング処理を終了す
る。このカーニング処理が終了すると文字列情報格納部
3の文字列データは、オペレータの指示により媒体へ格
納されたり、表示・出力部25のプリンタ等の出力装置
に出力される。
【0092】なお、本実施例では、ベクトルデータを1
0×10ドットで構成されるドットパターンデータに変
換したが、本発明はこれに限定されることなく任意のド
ット数(N×N)で構成されるドットパターンデータに
変換してもよい。この場合、ドット数が多いと処理に時
間を多く要するが字面間隔をより正確に字面間隔量に一
致させることができ、ドット数が少ないと字面間隔を正
確に字面間隔量に一致させることはできないが、処理時
間が少なくて済む。したがって、処理時間と字面間隔の
調整精度とから適宜のドット数を決定すればよい。
【0093】また、ベクトルデータからドットパターン
データへの変換において、ベクトルデータでの字面を全
てドットパターンに変換したが、ベクトルデータでの字
面の輪郭だけをドットパターンに変換するようにしても
よい。これにより同列上でのドットの組合せ数を減らす
ことができ、候補点ペアの抽出処理の効率を上げること
ができる。
【0094】また、本実施例では、ベクトルデータを適
宜の構成ドット数のドットパターンデータに変換して候
補点ペアを抽出し、算出された詰め量でベクトルデータ
を表示するようにしたが、表示・出力装置25に表示ま
たは出力される際のドットパターンデータの構成ドット
数に合わせてベクトルデータをドットパターンデータに
変換して候補点ぺアを抽出し、そのドットパターンデー
タをそのまま表示・出力装置25に表示または出力する
ようにしてもよい。これにより、表示または出力の際に
フォント格納部10からベクトルフォントデータを読み
出してドットパターンデータに変換する時間分だけ処理
を早く行うことができる。逆に表示用のドットパターン
データが用意されている場合は、これを本処理に利用し
てもよい。
【0095】また、本実施例では、候補点ペアの抽出時
に同一シフト量における一対のドットのうち最短間隔の
間隔量のものを候補点ペアとしたが、このうち指定され
た字面間隔量よりも大きな間隔量をもつものは、候補点
ペアから除外するようにしてもよい。これは字面間隔量
よりも大きな間隔量をもつ候補点ペアは、いくら詰めて
もその2次元的な間隔が字面間隔量と一致することはな
いためである。これにより詰め量の算出処理の負荷を軽
減することができる。
【0096】また、以上例示したような通常の文字詰め
とくい込みの出易い文字詰め(字面同士が重なるのでは
なく、「し」と「て」のように文字同士がくい込むよう
な文字詰め)を区別なく行うことができ、さらには、異
なる文字サイズ同士の文字詰めも行うことができる。
【0097】
【発明の効果】以上の説明から明らかなように、本発明
によれば、対象文字のドットパターンを基準文字のドッ
トパターンに向けてシフトし、そのシフト毎にドットパ
ターン間が最短間隔となる一対のドットだけを候補点ペ
アとして抽出し、これらの候補点ペアの中から、指定さ
れた字面間隔量を与える一つの候補点ペアを求める処理
を行っているので、処理対象となるドット対の数が少な
くなり、それだけ字詰め処理を速く行うことができる。
また、抽出された候補点ペアの間隔情報を記憶してお
き、これと指定された字面間隔量とに基づいて、両文字
の字面の間隔を前記字面間隔量とするための詰め量を算
出するので、字面間隔量が再指定されても再度候補点ペ
アの抽出を行うことなく、詰め量を算出することができ
る。結果、文字間隔の調整(修正)処理が速い、実用的
なカーニング処理を行うことができる。
【図面の簡単な説明】
【図1】実施例に係る電子組版編集装置の概略構成を示
すブロック図である。
【図2】ベクトルデータ上での候補点ペアの位置関係の
説明に供する図である。
【図3】ドットパターンデータ上での候補点ペアの抽出
方法の説明に供する図である。
【図4】ドットパターンデータ上での候補点ペアの抽出
方法の説明に供する図である。
【図5】ドットパターンデータ上での候補点ペアの抽出
方法の説明に供する図である。
【図6】最短間隔と詰め量との関係を示すグラフであ
る。
【図7】実施例に係るカーニング処理方法のフローチャ
ートである。
【図8】候補点ペアの抽出処理のフローチャートであ
る。
【図9】候補点ペアの抽出処理のフローチャートであ
る。
【図10】文字列情報格納部の模式図である。
【図11】ドットパターン列展開メモリの模式図であ
る。
【図12】ドットパターン列展開メモリの模式図であ
る。
【図13】候補点ペアの抽出の説明に供する図である。
【図14】候補点ペアの抽出の説明に供する図である。
【図15】候補点ペアの抽出の説明に供する図である。
【図16】候補点ペアの抽出の説明に供する図である。
【図17】全文字処理後の候補点ペア格納部の模式図で
ある。
【図18】詰め量の算出処理のフローチャートである。
【図19】全文字処理後の間隔情報格納部の模式図であ
る。
【図20】全文字処理後の詰め量格納部の模式図であ
る。
【図21】全文字処理後の文字列情報格納部の模式図で
ある。
【符号の説明】
1 … 制御部 2 … 文字列入力部 3 … 文字列情報格納部 4 … 字面間隔量指示部 5 … 字面間隔量格納部 10 … フォント格納部 12 … ドットパターン化処理部 14 … ドットパターン格納部 15 … ドットパターン列展開メモリ 16 … 候補点ペア補助格納部 18 … 候補点ペア格納部 20 … 間隔情報格納部 22 … 詰め量演算部 24 … 詰め量格納部
───────────────────────────────────────────────────── フロントページの続き (58)調査した分野(Int.Cl.6,DB名) G06T 11/00 - 11/60 B41B 27/00 G09G 5/32 G06F 17/50

Claims (1)

    (57)【特許請求の範囲】
  1. 【請求項1】 その中に文字パターン(字面)を配置し
    た矩形の文字枠(仮想ボディ)に基づいて、文字列の各
    文字を所定の配列方向に配置するときに、既に配置位置
    が確定している基準文字に対して、隣接して配置しよう
    とする対象文字の配置位置を調整するカーニング処理方
    法であって、 前記基準文字と前記対象文字の字面同士の最短間隔であ
    る2次元的な間隔量(字面間隔量)を指定する過程と、 前記対象文字のドットパターンを、基準文字のドットパ
    ターンに向けて1ドットづつシフトさせ、そのシフト毎
    に、前記シフト方向と直交する方向にて両ドットパター
    ン間が最短間隔となる一対のドット(候補点ペア)を求
    める過程と、 前記両文字の仮想ボディが接する状態における前記各候
    補点ペア間の前記シフト方向の間隔情報とこれに直交す
    る方向の間隔情報とを記憶する過程と、 前記各候補点ペアのシフト方向の間隔情報と、これに直
    交する方向の間隔情報と、前記指定された字面間隔量と
    に基づいて、前記両文字の仮想ボディが接した状態から
    対象文字を基準文字に対して接近させて、各候補点ペア
    の間隔が前記指定された字面間隔量になるまでの詰め量
    を各候補点ペアそれぞれについて算出する過程と、 前記算出された各詰め量のうち、最小となる詰め量を求
    める過程と、 前記最小の詰め量で基準文字に対して対象文字を配置す
    る過程と、 を含むことを特徴とするカーニング処理方法。
JP6055218A 1994-02-28 1994-02-28 カーニング処理方法 Expired - Fee Related JP2828592B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP6055218A JP2828592B2 (ja) 1994-02-28 1994-02-28 カーニング処理方法
US08/390,844 US5609427A (en) 1994-02-28 1995-02-17 Kerning method and a typographic apparatus utilizing same
KR1019950003538A KR0163255B1 (ko) 1994-02-28 1995-02-23 커닝처리방법 및 그것을 이용한 문자조판장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP6055218A JP2828592B2 (ja) 1994-02-28 1994-02-28 カーニング処理方法

Publications (2)

Publication Number Publication Date
JPH07239876A JPH07239876A (ja) 1995-09-12
JP2828592B2 true JP2828592B2 (ja) 1998-11-25

Family

ID=12992483

Family Applications (1)

Application Number Title Priority Date Filing Date
JP6055218A Expired - Fee Related JP2828592B2 (ja) 1994-02-28 1994-02-28 カーニング処理方法

Country Status (3)

Country Link
US (1) US5609427A (ja)
JP (1) JP2828592B2 (ja)
KR (1) KR0163255B1 (ja)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3354754B2 (ja) * 1995-07-10 2002-12-09 大日本スクリーン製造株式会社 カーニング処理方法
US5746524A (en) * 1995-09-13 1998-05-05 Nec Corporation Printing control apparatus for spacing 1-byte and 2-byte characters
JP3408685B2 (ja) * 1995-12-08 2003-05-19 大日本スクリーン製造株式会社 カーニング処理方法
US5803629A (en) * 1997-03-14 1998-09-08 Paul H. Neville Method and apparatus for automatic, shape-based character spacing
US6829748B1 (en) 1998-11-27 2004-12-07 Canon Kabushiki Kaisha Automatic kerning of text
AU768556B2 (en) * 2000-02-28 2003-12-18 Canon Kabushiki Kaisha Generating a kerning distance
US7492366B2 (en) * 2005-05-13 2009-02-17 Microsoft Corporation Method and system of character placement in opentype fonts
US8020091B2 (en) * 2005-07-15 2011-09-13 Microsoft Corporation Alignment and breaking of mathematical expressions in documents
US20070211062A1 (en) * 2006-03-13 2007-09-13 International Business Machines Corporation Methods and systems for rendering complex text using glyph identifiers in a presentation data stream
US9928572B1 (en) 2013-12-20 2018-03-27 Amazon Technologies, Inc. Label orientation

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5331723B2 (ja) * 1973-10-09 1978-09-04
JPH02243343A (ja) * 1989-01-13 1990-09-27 Dainippon Screen Mfg Co Ltd カーニング処理用字面データ作成方法およびカーニング処理方法
JPH03244542A (ja) * 1990-02-23 1991-10-31 Morisawa & Co Ltd 写真植字機等における自動詰処理装置
JPH03269490A (ja) * 1990-03-19 1991-12-02 Dainippon Printing Co Ltd 文字の自動字詰め装置
TW363158B (en) * 1993-06-25 1999-07-01 Omron Tateisi Electronics Co A system for automatic adjustment of, character spacing

Also Published As

Publication number Publication date
KR950024882A (ko) 1995-09-15
JPH07239876A (ja) 1995-09-12
US5609427A (en) 1997-03-11
KR0163255B1 (ko) 1999-03-30

Similar Documents

Publication Publication Date Title
EP0327003B1 (en) Pattern data generating system
JP2828592B2 (ja) カーニング処理方法
JPS6322310B2 (ja)
JP2909273B2 (ja) アウトライン・フォントの線幅調整方法および装置
EP0095536B1 (en) The representation of character images in a compact form for computer storage
JPH06328785A (ja) 文字生成方法及びその装置
JP3037854B2 (ja) 文字生成方法及びその装置
JPS63235986A (ja) 文字出力装置
JP2888745B2 (ja) 文字間隔調整方法
US5995674A (en) Image processing apparatus with shape-correction of a contour-specified figure
JP2726951B2 (ja) 文字・図形描画装置
JP2603322B2 (ja) 文字処理装置及び方法
JPH0553559A (ja) 線幅決定方式
JPS61141479A (ja) 縮小文字処理方法
JP2857260B2 (ja) 矩形領域の判定方法
KR900009182B1 (ko) 표시방법 및 표시장치
JP2776347B2 (ja) プリンタ用描画装置
JP3514895B2 (ja) 画像展開処理方法及び装置
JPH03154978A (ja) 文字処理装置及び方法
JPH0778259A (ja) イメージ出力方法およびイメージ出力装置
JPH0916147A (ja) 文字処理装置および方法
JPH07137340A (ja) 高品質文字パターンの発生方法及び高品質文字の出力装置
JPS63207656A (ja) 字体別任意サイズフオントセツト出力装置
JPH04218094A (ja) アウトラインフォント処理装置
JPH07191657A (ja) 文字発生装置

Legal Events

Date Code Title Description
R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees