JPH05298317A - 文書作成装置 - Google Patents

文書作成装置

Info

Publication number
JPH05298317A
JPH05298317A JP4104171A JP10417192A JPH05298317A JP H05298317 A JPH05298317 A JP H05298317A JP 4104171 A JP4104171 A JP 4104171A JP 10417192 A JP10417192 A JP 10417192A JP H05298317 A JPH05298317 A JP H05298317A
Authority
JP
Japan
Prior art keywords
word
character
output
line
data
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.)
Pending
Application number
JP4104171A
Other languages
English (en)
Inventor
Kenichi Kukino
賢一 桑木野
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.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial 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 Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP4104171A priority Critical patent/JPH05298317A/ja
Publication of JPH05298317A publication Critical patent/JPH05298317A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Document Processing Apparatus (AREA)
  • Record Information Processing For Printing (AREA)

Abstract

(57)【要約】 【目的】 行末で単語が分割されることなく、バランス
のよいきれいな欧文出力を得ることを目的とする。 【構成】 行末にかかる単語“morning”の行末
からはみ出す長さ(行末から単語の末尾までの長さ)
が、作業者が指定する追込み可能量以内であれば、この
単語より前のスペースを均等に縮小して単語を行内に追
込み、追込み可能量以上であれば、その単語の行末内に
入る長さ(“m”から行末までの長さ)を調べ、その長
さが作業者が指定する追出し可能量以内であればその単
語を次の行に追出すとともに、行内のスペースを均等に
拡大して、追出した単語より前の単語を行末揃えする。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、文書データを書式デー
タに従ってディスプレイやプリンタ等の出力装置に出力
するワードプロセッサやデスクトップパブリッシングシ
ステム等の文書作成装置に関するものである。
【0002】
【従来の技術】近年、アウトラインフォントの普及にも
見られるように、作成した文書をいかに美しく出力する
かという出力の高品質化が強く求められている。出力の
高品質化といっても、例えばアウトラインフォントを用
いるとか、画像の解像度を高めるといったような、フォ
ントや画像データ等、出力する個々のデータ自体に関す
ることや、レイアウトの美しい文書を作成できるような
機能に関すること等、様々な見方で検討が行われてい
る。後者の場合の一例として、欧文に関する処理が挙げ
られる。
【0003】従来の文書作成装置では、欧文の出力に際
して、単語が行末にかかってしまう場合には、一つの単
語内で不自然に分割がなされないように、先ず、音節等
その単語を分割しても問題ない部分で改行し、次行の文
頭(つまり、分割された単語の後ろ部分)にハイフン
(“−”)を付与したり(以下、このような機能をハイ
フネーションという)、どうしても分割ができない場合
に、その単語の先頭から、強制的に改行するといった処
理が行われていた。
【0004】
【発明が解決しようとする課題】しかしながら上記従来
の文書作成装置では、ハイフネーションが行われた部分
では、単語が分割され見辛くなり、又、強制的に改行が
行われた部分では、図19に示すように、行末に空白が
できてしまい、文書全体のレイアウトの品質を損なうと
いう問題点を有していた。
【0005】本発明は、上記問題点に鑑み、欧文の文書
を出力する際、単語が分割されることなく各行末がきれ
いに揃い、かつ、単語間のバランスもきれいに整えるこ
とができる文書作成装置を提供することを目的とする。
【0006】
【課題を解決するための手段】本発明は上記した問題点
を解決するために、文字コード等からなるテキストと書
式データとを有する文書ファイルを記憶する文書記憶手
段と、文書記憶手段に記憶された文書ファイルを、文字
コードとその文字コードに対応する文字の出力位置情報
を有する出力用データに変換するデータ変換手段と、デ
ータ変換手段により変換が行われた出力用データに基づ
いて文書を出力する出力手段とを有し、データ変換手段
は、データの変換に際して算出する文字の出力位置情報
が所定の範囲外であった場合に、その文字が含まれる単
語を、当該単語より前の単語の間隔を縮小することによ
って所定の範囲内に出力できるか否かを判別する判別手
段と、判別手段によって出力できると判別された場合に
は、当該単語より前の単語の間隔を縮小するとともに、
当該単語の直後の先頭の文字の出力位置情報を次の行の
先頭位置とし、判別手段によって出力できないと判別さ
れた場合には、当該単語より前の単語の間隔を拡大する
とともに、当該単語の線と文字の出力位置情報を次の行
の先頭の位置とする手段とを有する。
【0007】
【作用】本発明は上記手段により、行末の単語が行内に
入りきれない場合に、行末の単語よりも前の単語の間隔
を縮小すれば、行末の単語が行内に入りきれれば単語の
間隔の縮小を行い、それでも入りきれなければ行末の単
語を次の行に送り、当該単語よりも前の単語の間隔を拡
大して行末揃えを行う。
【0008】
【実施例】以下、本発明の一実施例における文書作成装
置について説明する。
【0009】図1は、本発明の一実施例における文書作
成装置のブロック図であって、1は装置の制御やデータ
の処理等を行う中央演算処理装置(以下、CPUとい
う)、2はCPU1が処理を行うためのプログラム等を
記憶する読みだし専用メモリ(以下、ROMという)、
3はデータを記憶するためのランダムアクセスメモリ
(以下、RAMという)、4は文字出力に用いるフォン
トデータを記憶するフォントメモリ、5は様々なデータ
やユーザからの指示が入力されるキーボードやマウス等
の入力部、6は出力用のビットマップデータを記憶する
イメージメモリ、7はイメージメモリ6内のビットマッ
プデータを表示するディスプレイ装置、8は同じくビッ
トマップデータを印字出力するプリンタである。
【0010】以下、RAM3に記憶されるデータについ
て説明を行う。RAM3内には、図2に示すように、文
書ファイル、出力用データ、書体情報、スペース情報、
追込み可能量・追出し可能量、現在出力位置(xD,yD
)、次文字出力位置(x1, y1)、行カウンタl 、txt
_point 、out _point 、ch_start0、ch_start1、po
int0、point1、sp_count 、ch_start _x 等のデータ
が記憶される。
【0011】文書ファイルは、図3に示すように、文書
を構成する文字の文字コード列からなるテキストと、テ
キストを出力する際の書式データを有する。又、書式デ
ータは、具体的には、文字サイズ、文字送り量、行送り
量、書体名、用紙サイズ、頁位置、頁幅、頁高等のデー
タを有する。ここでいう頁位置とは、用紙サイズによっ
て定まる出力用紙内に定義される頁(つまり、データが
出力される出力領域)の、用紙の左上の点を基準とした
位置を意味する。文字等の出力位置は、この頁位置に対
する相対座標で表され、実際の出力に際して、その座標
は用紙を基準とした座標に変換される。本実施例では、
以下、相対座標から用紙を基準とした座標への変換につ
いては説明を省略する。
【0012】出力用データは、上述した文書ファイルが
変換されるもので、図4に示すように、文字コード列か
らなる出力用テキスト、出力用書式データ、行管理情報
等から構成されている。出力用書式データは、出力用テ
キスト内の各文字に対する出力位置や書体名を有する。
出力用書式データ内における各文字ごとのデータ量は決
まっているので、ある文字が出力用テキスト内の何文字
目に記憶されているかがわかると、その文字に対する出
力用書式データは容易に取得される。又、行管理情報
は、出力用テキストデータ内の文字列が出力された場
合、各行の最終文字が、出力用テキストデータ内の何文
字目であるかを記憶する。この行管理情報には、第0行
目の最終文字位置として、“0”があらかじめ設定され
ている。
【0013】書体情報は、図5に示すように、英文字が
それぞれ固有に持つ文字幅と、文字高を書体名毎に記憶
している。英文の場合、書体によって文字幅が異なる。
又、同じ書体であっても、文字毎にその文字幅が異なっ
ている。例えば、“A”という文字と“I”という文字
では、“A”は文字幅が広く、“I”は“A”に比べて
文字幅が狭い。故にこのような書体情報が必要となる。
【0014】スペース情報は、基本的な全角のスペース
の幅、1/2スペースの幅、1/3スペースの幅を有す
る。本実施例の文書作成装置では、スペースとして全
角、全角に対して1/2の文字幅を有する1/2スペー
ス、全角に対して1/3の文字幅を有する1/3スペー
スという3種類のスペースを処理可能とし、基本的な全
角スペースは、12ポイントの和文文字と同一の文字幅
を有するものとしている。このスペースは、本実施例の
場合のように3種類に限定されるものではなく、文字コ
ードを割り当てることができれば更に1/4スペース等
種類を増やすことも可能である。
【0015】追込み可能量と追出し可能量は、ユーザに
よって指定される実変数である。ここでいう追込み・追
出しとは、欧文の出力に際して、単語が行末にかかった
場合に、その単語を行内の他の単語間を詰めてその行に
出力してしまう処理(追込み)と、その単語を次の行に
出力して、もとの行内の他の単語間を広げて行末揃えを
行う処理(追出し)のことをいう。追込み可能量とは、
行末にかかる単語の行末からはみ出す部分の長さがこの
量よりも小さければ追込みを行うという、追込み処理の
基準となる値であり、又、追出し可能量とは、行末にか
かる単語の行内に入る部分の長さがこの量よりも小さけ
れば追出しを行うという、追出し処理の基準となる値で
ある。本実施例のように追込み可能量と追出し可能量を
実変数とするのではなく、文字数で定義することも考え
られるが、英文字の場合には、文字によって文字幅のば
らつきが大きく、例えば“HAWAII”という単語
と、“TOKYO”という単語では、追込み可能量を2
文字と指定していれば、“II”の部分と“YO”の部
分で実際の幅がまったく異なるにもかかわらず、どちら
の単語も追込み処理が行われる。つまり、“TOKY
O”の場合の方が大きく字詰めを行う必要があるので、
その行は“HAWAII”の行よりも詰まった感じがし
て、全体として文書のバランスが損なわれる。本実施例
のように、追込み・追出し可能量を実変数で定義するこ
とにより、追込みや追出し処理を行った際の、各行間で
の欧文のバランスを損なうことなくきれいな出力を得る
ことができる。
【0016】現在出力位置(x0,y0)は、文書ファ
イル内のテキストから読み出される文字を出力するため
の位置情報で、文字幅や行送り量にって1文字毎に計算
され、これをもとにして出力用書式データの出力位置が
設定される。又、次文字出力位置(x1,y1)は、現
在出力位置をもとに算出されるデータで、処理中の文字
の次の文字が出力されるべき位置を表す。文字の出力の
際には、指定された文字コード・書体名に応じたフォン
トデータが、フォントメモリ4から読み出され、図18
に示すように、フォントデータの左上の点を基準とし
て、その文書の式に従って算出された位置に出力され
る。
【0017】行カウンタlは、文書中の何行目の処理が
行われているかを示すデータである。
【0018】txt _point は、文書ファイル中のテキス
ト内へのポインタ、又、out _point は、出力用データ
中の出力用テキスト内へのポインタである。これらの値
は、テキスト及び出力用テキストの先頭から何文字目か
を表すデータであって、テキスト及び出力用テキストへ
のアクセスは、これらのポインタと別途保持されるテキ
ストや出力用テキストの先頭アドレス(特に図示せず)
とを用いて行われる。
【0019】ch_start0・ch_start1・point0・point1
は、特定の処理が行われた場合に、上記したtxt _poin
t 及びout _point を記憶しておく変数である。又、sp
_count は、行内のスペースの数を数えるためのカウン
タ、ch_start _x は、出力用データから読み出された
文字の出力位置情報を一時記憶する変数である。
【0020】RAM3内には、これらのデータ以外にも
様々なデータが記憶されるが、それについては、以下、
必要に応じて詳細に説明を行うこととする。
【0021】以上のように構成された本実施例の文書作
成装置について、以下、その動作を説明する。
【0022】CPU1は、RAM3内の文書ファイルを
出力用データに変換し、出力用データから1文字ずつデ
ータを読み、その文字に対応するフォントをフォントメ
モリ4から読みだして、文字の出力位置に基づいて、イ
メージメモリ6内にフォントを書きこむ。イメージメモ
リ6内のデータは、ディスプレイ7又はプリンタ8へと
出力される。
【0023】以下、図6から図13のフローチャートを
用いて詳細な動作説明を行う。 (1)追込み可能量・追出し可能量の指定 先ず、ステップ1において、CPU1は入力部5から追
込み可能量の入力が行われるのを待ち、入力が行われる
と、入力された値を追込み可能量としてRAM3に書き
込む。次に、ステップ3において、今度は追出し可能量
の入力待ち状態となり、入力が行われると、ステップ4
において、入力された値を追出し可能量としてRAM3
に書き込む。
【0024】本実施例では、追込み可能量と追出し可能
量は、ミリ単位で定義され、最少0.1間隔で設定可能
である。 (2)文書ファイルから出力用データへの変換 先ず、ステップ11において、現在出力位置(x0,y
0)が(0,0)に初期化される。続いて、ステップ1
2において、行カウンタlが1に初期化される。更に、
ステップ13及びステップ14において、txt _point
とout _pointがそれぞれ1に初期化される。
【0025】所定の初期化が終わると、CPU1は、ス
テップ15において、文書ファイル内のテキストからtx
t _point が指示する文字コードを1文字分読み出す。
読み出した文字コードが改行コードであった場合には、
処理はステップ101へ、又、改行コードではなかった
場合には、処理はステップ17へと移行する。更にステ
ップ17において、読み取った文字コードがテキストの
終了を示すコード(EOF)かどうかが調べられ、EO
Fであれば処理は終了し、EOFでなければ処理はステ
ップ18へと移行する。
【0026】ステップ18において、CPU1は、次文
字出力位置x1を算出する。次文字出力位置x1は、現
在出力位置x0にステップ15で読み出した文字の文字
幅を加えることによって求まる。この時CPU1は、文
書ファイル中の書式データにおける書体名を調べ、RA
M3内の書体情報の、該当する書体名・文字コードに関
する文字幅を参照する。次文字出力位置x1が算出され
ると、ステップ19において、ステップ15で読み出さ
れた文字が行内(頁内)に入りきるかどうかが調べられ
る。実際には、x1と文書中の書式データに定義されて
いる頁幅との大小比較が行われ、x1の方が大き場合に
は、文字が行からはみ出すとして処理はステップ29へ
と移行し、x1の方が小さい場合には、文字が行内に入
るとして処理はステップ20へと移行する。このことを
図示してより具体的に説明すると、図14に示すよう
に、次文字出力位置x1は次に読み出される文字が出力
されるべき位置情報であると同時に、現在処理されてい
る文字の終端位置情報でもあることがわかる。即ち、こ
の次文字出力位置x1が行末よりも後ろにあれば(x1
>頁幅)、その文字は行内に入らないし、次文字出力位
置x1が行末よりも前にあれば(x1≦頁幅)、その文
字は行内に入る。
【0027】ステップ15で読み出された文字が行内に
入る場合には、ステップ20において、先ず、その文字
の文字コードが出力用データの出力用テキストに書き込
まれる(out _point 指示する位置)。次に、ステップ
21において、現在出力位置(x0,y0)が、ステッ
プ20で書き込まれた文字コードに対応付けられて、出
力用書式データに書き込まれる。更に、ステップ22に
おいて、文書ファイル内に定義されている書体名が、現
在出力位置(x0,y0)と同様に出力用書式データに
書き込まれる。ステップ20からステップ22の処理に
よって、1文字分のデータの変換が終了することにな
る。
【0028】1文字分のデータ変換が終わると、ステッ
プ23において、現在出力位置x0の値が、次文字出力
位置x1の値に書き換えられる。ここで、ステップ24
において、ステップ20で出力用テキストに書き込まれ
た文字コードがスペースコードであったかどうかが調べ
られ(out _point が用いられる)、スペースコードで
あったならば、ステップ25及びステップ26の処理が
行われ、スペースコードではなかったならば、それらの
処理は行われない。
【0029】ステップ25においては、RAM3内のch
_start0へ、txt _point に1を加えた値が設定され、
ステップ26においては、RAM3内のch_start1へ、
out_point に1を加えた値が設定される。単語間は、
スペースによって区切られるため、文書作成装置におい
ては、スペースによって挟まれる英文字列を1つの単語
として認識する。従って、単語の始まりには、必ずスペ
ースが存在するものであり、ステップ25及びステップ
26の処理では、単語の開始位置を保持しておこうとす
るものである。
【0030】以上、ステップ15からステップ26まで
の処理を経た後に、ステップ27及びステップ28にお
いて、txt _point とout _point の値がそれぞれ+1
更新されて(次の文字を指示する)、処理はステップ1
5に戻る。
【0031】ステップ15からステップ28までの処理
は、文字が行末にかかるまで繰り返されるわけだが、次
に、文字が行末にかかる場合の処理について説明する。
【0032】ステップ19において、ステップ15で文
書ファイル内のテキストから読み出した文字が行内に入
りきれないとされた場合(x1>頁幅である)、ステッ
プ29において、その文字が英文字であるかどうかが調
べられる。本実施例の文書作成装置では、欧文の入力を
対象としているため、英文字でないものは改行コードか
EOFか、又はスペース(全角・1/2・1/3の3種
類ある)のいづれかであり、改行コードとEOFの判断
は、ステップ16とステップ17で既に行われているの
で、ステップ29では実質的にはその文字がスペースで
あるかどうかが判断されることになる。
【0033】対象文字が英文字であったならば、ステッ
プ20以下、上述したデータ変換の処理が行われる。つ
まり、次にスペースが来るまでは、ステップ15からス
テップ28までの処理がステップ29を経由して繰り返
される。ステップ29において、対象文字が英文字でな
いと判断された場合には、ステップ30において、RA
M3内のpoint0へtxt _point の値が、又、ステップ3
1において、RAM3内のpoint1へout _point の値が
それぞれ設定される。即ち、point0とpoint1は、行末か
らはみ出す単語の最終文字の次の文字が記憶されるテキ
スト及び出力用テキスト内のポインタ値を記憶すること
になる。
【0034】ステップ30及びステップ31の処理の
後、ステップ32において、追込み量が算出され、ステ
ップ33において、算出された追い込み量とRAM3内
に記憶されている追込み可能量との大小比較が行われ
る。追込み量は、(x0−頁幅)によって求まる。ステ
ップ33の時点では、txt _point はテキストから最後
に読み取った文字(スペース)の位置を、又、out _po
int は出力用テキストに最後に書き込みを行った位置の
次の書き込み位置(テキストから最後に読み取った文字
は、出力用テキストへは書き込まれていない)を指示し
ている。つまり、その時点での現在出力位置x0は最後
に読み取られた文字(スペース)が本来出力されるべき
位置であって、これは、その前の文字の終端位置、即
ち、行末からはみ出した単語の終端位置であって、この
値から頁幅をひけば単語がはみ出す量(=追込み量)が
求まるわけである。このことを具体的に図面を用いて説
明する。
【0035】図15において、今、morningとい
う単語が行末にかかり、この単語に続くスペースまで読
み出しが行われているものとする。この状態において、
RAM3内の文書ファイル内のテキスト、出力用データ
内の出力用テキスト・出力用書式、txt _point 、o ut
_point 、x0はそれぞれ図16に示すようになってい
る。即ち、x0は図15から明らかなように、スペース
が本来出力されるべき位置ch3 _x であり、この値から
頁幅をひいた値が、追込み量となる。
【0036】ステップ33において、RAM3に記憶さ
れた追込み可能量と、ステップ32で算出した追込み量
との大小比較が行われた結果、追込み可能量の方が大き
かった場合(追込み量が追込み可能領内であった場
合)、図8に示す処理が行われる。
【0037】図8において、先ず、ステップ41で処理
中の行内における行末にかかる単語より前のスペースの
数がカウントされる。この結果をもとにしてステップ4
2において、実際にどのくらい追込みが可能なのかを示
す追込み可能最大量が求められ、ステップ43におい
て、追込み量と追込み最大可能量の大小比較によって、
本当に追込みが可能か否かが調べられる。即ち、追込み
量が追込み最大可能量よりも小さければ、ステップ43
において、追込み処理が行われ、大きければ、追込み処
理は行われずに処理はステップ51へと移行する。ステ
ップ44における追い込み処理の後には、ステップ45
において、txt _point にRAM3内に記憶されている
point0の値が設定されて、処理はステップ101へと移
行する。
【0038】ここでは、先ず、ステップ41におけるス
ペースをカウントする処理について説明する。
【0039】スペースのカウント処理は、図10に示す
フローチャートの手順に従って行われる。この処理に当
たり、先ず、ステップ61において、txt _point にch
_start0から1を減じた値が設定され(これにより、tx
t _point は行内に入った最後のスペース、即ち行末か
らはみ出した単語の直前のスペースを指示することにな
る)、ステップ62において、RAM3内のスペースカ
ウンタsp_count が0に設定される。それから、ステッ
プ63において、文書ファイル内のテキストから1文字
読みだされて、ステップ64において、読み出された文
字がスペースかどうかの判断が行われて、スペースであ
ればステップ65において、sp_countの値が+1更新
される。ステップ63からステップ65の処理は、ステ
ップ66においてtxt _point の値が減じられながら、
txt _point の値が(l−1)行目最終文字位置と等し
くなるまで繰り返される。(l−1)行目の最終文字位
置は、出力用データ中の行管理情報を、行カウンタlの
値を用いて参照することによって得られる。もし、処理
中の行が第1行目であった場合には、第0行目の最終文
字位置“0”が得られることになる。
【0040】ステップ42においては、 (sp_count )×(全角スペースサイズ)×(1/12) という計算によって、追込み可能最大量が算出される。
欧文の文字(単語)詰めは、無条件に文字間のスペース
を詰めてよいわけではなく、最大でもスペースの1/4
までなら、文字間のバランスを損なうことがないと一般
的に言われている。本実施例では、3種類のスペースに
対応していることから、1つのスペースにおける最大の
詰め量を1/3スペースの1/4、即ち全角スペースの
1/12と定める。それぞれのスペースにたいして、そ
の1/12だけ詰め量を設定する方法も考えられるが、
その場合には、スペースの大きい部分では大きく詰めら
れ、又、スペースの小さい部分では比較的に少量しか詰
められず、結果的に各スペースの大きさに差異がなくな
ってしまい、文書の作成者が意図的に異ならせた文字間
のスペースの大きさのバランスが崩れてしまう。本実施
例のように、各スペースにおける詰め量を均等とし、し
かもその上限値を最少のスペースサイズを基準に定めて
いれば、文字間のバランスを損なうことなく、しかも、
部分的に詰まりすぎて文書が見づらくなるようなことも
ない。
【0041】次に、ステップ44における追込み処理に
ついて、図11のフローチャートを用いて説明する。
【0042】前述しているように、追込みは、行内にお
いて行末からはみ出す単語よりも前にあるスペースを均
等に縮小する(詰める)ことによって、行われる。
【0043】先ず、ステップ71において、縮小するス
ペース数へsp_count の値を設定する。次に、ステップ
72において、ステップ32で算出された追込み量を、
ステップ71で設定されたスペース数で割ることによっ
て各スペース毎の詰め量が算出される。続いて、ステッ
プ73において、out _point へ(l−1)行目の最終
文字位置に1を加えた値(その行の先頭文字を指示す
る)が設定され、ステップ74において、変数(自然
数)iが0に初期化される。
【0044】out _point と変数iの設定が終わると、
ステップ75からステップ79の処理によって、出力用
データの内、その行内に出力される文字の出力位置(x
座標)が変更される。即ち、ステップ75において、C
PU1は、出力用データの出力用テキストから1文字読
み出し、ステップ76において、読み出した文字に対応
する出力用書式データ内の出力位置(x座標)を、(詰
め量×i)だけ減じて更新する。その後、ステップ77
において、ステップ75で読み出した文字がスペースで
あるか否かを調べて、スペースであった場合にのみ、ス
テップ78において、変数iを+1更新する。ステップ
75からステップ78の処理は、ステップ79におい
て、out _point の値を+1づつ更新しながら、out _
point の値がRAM3内に記憶されたpoint1の値に等し
くなるまで繰り返される。point 1は、行内からはみ出
す単語の次のスペースを指示しているので、ステップ7
5からステップ78の処理は、その行頭から追込みを行
う単語の末尾まで繰り返されることになる。
【0045】ここまでは、ステップ33において、ステ
ップ32で求めた追込み量が、追込み可能量内であるば
あいの処理について説明を行ったが、以下、追込み量が
追込み可能量内ではない場合の処理について説明を行
う。
【0046】ステップ33で追込み量が追込み可能量内
ではないと判断された場合、図9に示す処理が行われ
る。
【0047】先ず、ステップ51において、out _poin
t にRAM3内に記憶されているch_start1から1を減
じた値が設定され、ステップ52において、そのout _
point が指示する出力用テキスト内の文字に対応する出
力用書式データの出力位置(x座標)が取得され、RA
M3内にch_start _x として設定される。次に、ステ
ップ53において、追出し量が算出されて、その結果を
もとに、ステップ54において、求めた追出し量とRA
M3内に記憶されている追出し可能量との大小比較が行
われる。ここで追出し量が追出し可能量よりも小さい場
合には、ステップ55において、単語の追出し処理が行
われ、追出し量が追出し可能量よりも大きい場合には、
ステップ56において、ハーイフネーション処理が行わ
れた後、ステップ57において、txt _point にRAM
3内に記憶されているpoint 0 の値が設定されて、処理
はステップ101へと移行する。
【0048】ステップ51からステップ54の処理につ
いて、図17を用いて具体的に説明する。ステップ51
の時点において、ch_start1は、行末にかかる単語の先
頭文字の出力用テキスト内における位置を記憶してい
る。従って、ステップ51の処理によって、out _poin
t は、その単語の直前のスペースを指示することにな
る。即ちステップ52で取得されるch_start _x の値
は、そのスペースの開始位置として登録されている位置
の値である。追出し処理では、行末にかかる単語の直前
のスペース以降を次の行に送る必要があるので、図17
に示すように、頁幅からch_start _x の値をひいた値
が追出し量となる。ステップ54においては、この追出
し量と、RAM3内に記憶されている追出し可能量との
大小比較によって、追出し処理を行うか、ハイフネーシ
ョン処理を行うかが判断される。
【0049】次に、ステップ55における追出し処理に
ついて、図12のフローチャートを用いて説明する。
【0050】追出し処理は、行末にかかる単語の直前の
スペース以降をその行から追出し、それより前の単語に
ついて、単語間のスペースを均等に広げて行末揃えする
ことによって行われる。
【0051】先ず、CPU1は、ステップ81におい
て、処理対象となっている行内のスペースの数をカウン
トする(スペースのカウント処理は、図10に示すフロ
ーチャートの手順で行われるが、これについての説明
は、ステップ41の説明で既に行っているので、ここで
は詳細な説明を省略する)。次に、ステップ82におい
て、スペース数として、sp_c ountの値から1を減じた
値を設定し、ステップ83において、ステップ53で算
出された追出し量を、ステップ82で設定されたスペー
ス数で割ることによって各スペースにおける送り量の算
出を行う。追出し処理に際してのスペース数は、sp_co
unt の値から1を減じた値が使用されるが、これは、追
出し処理において、行末にかかる単語の直前のスペース
は、その行から追いだされるためである。続いて、ステ
ップ84において、out _point へ(l−1)行目の最
終文字位置に1を加えた値(その行の先頭文字を指示す
る)が設定され、ステップ85において、変数(自然
数)iが0に初期化される。
【0052】out _point と変数iの設定が終わると、
ステップ86からステップ90の処理によって、出力用
データの内、その行内に出力される文字の出力位置(x
座標)が変更される。即ち、ステップ86において、C
PU1は、出力用データの出力用テキストから1文字読
み出し、ステップ87において、読み出した文字に対応
する出力用書式データ内の出力位置(x座標)に、(送
り量×i)加えて更新する。その後、ステップ88にお
いて、ステップ86で読み出した文字がスペースである
か否かを調べて、スペースであった場合にのみ、ステッ
プ89において、変数iを+1更新する。ステップ86
からステップ89の処理は、ステップ90において、ou
t _point の値を+1づつ更新しながら、out _p oint
の値がRAM3内に記憶されたch_start1の値に1を加
えた値に等しくなるまで繰り返される。ch_start1は、
行内かかる単語の先頭文字を指示しているので、ステッ
プ86からステップ89の処理は、その行頭から、追出
しを行う単語の直前の単語の末尾まで繰り返されること
になる。
【0053】尚、ステップ43において、追込み可能で
はないと判断された場合についても、上記した場合と同
様に処理が行われる。
【0054】以上の処理によって、追込み・追出し・ハ
イフネーションのいづれかの処理が行われた後、又は、
ステップ16において、ステップ15で読み出された文
字が改行コードであると判断された場合における改行処
理について、図13のフローチャートを用いて説明す
る。
【0055】先ず、ステップ101において、出力用デ
ータ内の行管理情報の第l行目の最終出力文字位置(l
_last)に、RAM3に記憶されているpoint1の値を設
定して、ステップ102において、行カウンタlを+1
更新する。次に、ステップ103において、txt _poin
t の値が+1更新される。更に、ステップ104におい
て、現在出力位置y0に文書ファイル内の書式データに
定義されている行送り量が加えられ、ステップ105に
おいて、現在出力位置x0に行頭の位置0が設定された
後、処理はステップ15へと戻る。
【0056】本実施例のステップ56に示したハイフネ
ーション処理は、例えば単語間の文節に関する情報を辞
書等に記憶させ、その辞書を参照して、ハイフネーショ
ンによって単語を区切る位置を決定すればよい。ハイフ
ネーションを行った後には、追出し処理と同様にして、
行内に単語間のスペースを均等に拡大して行末揃えを行
う。
【0057】尚、ハイフネーションの方法には、様々な
方法が考えられるが、本実施例では詳細な説明を省略す
る。
【0058】以上のように本実施例は、単語が行末にか
かる場合には、状況に応じて追込み・追出し等の処理を
行った後、行末揃えを行うので、バランスのよい欧文出
力を得ることができる。
【0059】又、追込みも追出しも不可と判断された場
合にのみ、ハイフネーションを行うこととしたため、単
語が分割されることを極力少なくすることができる。
【0060】更に、追込み・追出し量を、文字数ではな
く長さで直接指定できるために、単語中の文字の文字幅
に左右されない、適切な追込み・追出し可能量の指定を
行うことができる。
【0061】尚、本実施例では、文書データ全体を一旦
出力用データに変換してから出力を行っているが、一文
字語とにデータの変換(位置情報の算出等)を行って文
字を出力して行くことも可能である。
【0062】
【発明の効果】以上のように、本発明は、行末の単語が
行内に入りきれない場合に、行末の単語よりも前の単語
の間隔を縮小すれば、行末の単語が行内に入りきれれば
単語の間隔の縮小を行い、それでも入りきれなければ行
末の単語を次の行に送り、当該単語よりも前の単語の間
隔を拡大して行末揃えを行うため、行末で単語が分割さ
れることなく、行末がきれいに揃った、バランスのよい
出力結果を得ることができる。
【図面の簡単な説明】
【図1】本発明の一実施例における文書作成装置のブロ
ック図
【図2】同実施例におけるデータ構成図
【図3】同実施例におけるデータ構成図
【図4】同実施例におけるデータ構成図
【図5】同実施例におけるデータ構成図
【図6】同実施例のフローチャート
【図7】同実施例のフローチャート
【図8】同実施例のフローチャート
【図9】同実施例のフローチャート
【図10】同実施例のフローチャート
【図11】同実施例のフローチャート
【図12】同実施例のフローチャート
【図13】同実施例のフローチャート
【図14】同実施例の説明図
【図15】同実施例の説明図
【図16】同実施例の説明図
【図17】同実施例の説明図
【図18】同実施例の説明図
【図19】従来の文書作成装置の説明図
【符号の説明】
1 CPU 2 ROM 3 RAM 4 フォントメモリ 5 入力部 6 イメージメモリ 7 ディスプレイ 8 プリンタ

Claims (3)

    【特許請求の範囲】
  1. 【請求項1】文字コード等からなるテキストと書式デー
    タとを有する文書ファイルを記憶する文書記憶手段と、
    前記文書記憶手段に記憶された文書ファイルを、文字コ
    ードとその文字コードに対応する文字の出力位置情報を
    有する出力用データに変換するデータ変換手段と、前記
    データ変換手段により変換が行われた出力用データに基
    づいて文書を出力する出力手段とを有する装置であっ
    て、前記データ変換手段は、データの変換に際して算出
    する文字の出力位置情報が所定の範囲外であった場合
    に、その文字が含まれる単語を、当該単語より前の単語
    の間隔を縮小することによって前記所定の範囲内に出力
    できるか否かを判別する判別手段を有し、前記判別手段
    によって出力できると判別された場合には、当該単語よ
    り前の単語の間隔を縮小するとともに、当該単語の直後
    の先頭の文字の出力位置情報を次の行の先頭位置とし、
    前記判別手段によって出力できないと判別された場合に
    は、当該単語より前の単語の間隔を拡大するとともに、
    当該単語の線と文字の出力位置情報を次の行の先頭の位
    置とすることを特徴とする文書作成装置。
  2. 【請求項2】前記データ変換手段は、前記判別手段によ
    って出力できると判別された場合に、単語の間隔を所定
    の条件に従って均等に縮小することを特徴とする請求項
    1記載の文書作成装置。
  3. 【請求項3】前記判別手段は、単語の間隔の縮小量が所
    定の条件を越えた場合には、出力できないと判別するこ
    とを特徴とする請求項1記載の文書作成装置。
JP4104171A 1992-04-23 1992-04-23 文書作成装置 Pending JPH05298317A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP4104171A JPH05298317A (ja) 1992-04-23 1992-04-23 文書作成装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP4104171A JPH05298317A (ja) 1992-04-23 1992-04-23 文書作成装置

Publications (1)

Publication Number Publication Date
JPH05298317A true JPH05298317A (ja) 1993-11-12

Family

ID=14373593

Family Applications (1)

Application Number Title Priority Date Filing Date
JP4104171A Pending JPH05298317A (ja) 1992-04-23 1992-04-23 文書作成装置

Country Status (1)

Country Link
JP (1) JPH05298317A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2003038661A1 (fr) * 2001-10-29 2003-05-08 Sharp Kabushiki Kaisha Dispositif d'affichage de documents, procede de mise en page et procede d'affichage de texte
JP2013080357A (ja) * 2011-10-03 2013-05-02 Zenrin Datacom Co Ltd 複数の語句の表示制御方法および電子機器並びに複数の語句の表示制御用プログラム

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2003038661A1 (fr) * 2001-10-29 2003-05-08 Sharp Kabushiki Kaisha Dispositif d'affichage de documents, procede de mise en page et procede d'affichage de texte
US7543230B2 (en) 2001-10-29 2009-06-02 Sharp Kabushiki Kaisha Document display device, wording method, and word display method
US8234567B2 (en) 2001-10-29 2012-07-31 Sharp Kabushiki Kaisha Document display device, word arrangement method, and document display method
JP2013080357A (ja) * 2011-10-03 2013-05-02 Zenrin Datacom Co Ltd 複数の語句の表示制御方法および電子機器並びに複数の語句の表示制御用プログラム

Similar Documents

Publication Publication Date Title
US6678410B1 (en) Generating a glyph
EP1416394B1 (en) Method for selecting a font
US6533822B2 (en) Creating summaries along with indicators, and automatically positioned tabs
EP0117405A2 (en) Automatically balancing and vertically justifying text and/or graphics
EP0117406A2 (en) Automatically balancing and vertically justifying text and/or graphics
JPH0640257B2 (ja) 情報出力装置
US6701023B1 (en) Reducing appearance differences between coded and noncoded units of text
US5689723A (en) Method for allowing single-byte character set and double-byte character set fonts in a double-byte character set code page
JPH06149806A (ja) 文書整形出力装置及び文書整形方法
JPH05298317A (ja) 文書作成装置
US5867174A (en) Character/symbol generating device for generating character/symbol with a desired line thickness
JP2816181B2 (ja) 文書処理装置
US4689764A (en) Method and apparatus for formatting a line of text containing a complex character prior to text justification
JP2763227B2 (ja) 書式決定方法
JPH05303577A (ja) 文書作成装置
JPH01229673A (ja) 英殴文印刷制御方式
JPH09185603A (ja) 文書作成装置及び文字列形態制御方法
JP4919245B2 (ja) 行組版装置、行組版プログラム及びそれを記録した記録媒体
JPH0666066B2 (ja) 振仮名付加機能付き文書処理装置
JP3341048B2 (ja) 文書印刷装置
JP2728906B2 (ja) 文字処理装置
EP0077891B1 (en) System for formatting justified lines of text containing complex characters
EP0391706A2 (en) A method encoding text
JP3437293B2 (ja) 文字出力方法及び文字処理装置
JPH0417059A (ja) 文書作成装置