(57)【要約】【課題】箇条書きの設定と同時に今までに設定した箇条書きのインデント情報を検索して同時に設定する手段を設けることにより、箇条書き段落の属性のそろったきれいな文書を容易に作成することを可能とする。【解決手段】文章中の所望の段落の先頭に箇条書きマークもしくは段落番号を付与し、その箇条書き段落の２行目以降を箇条書き用の書式としてそろえる機能を持つ文書処理装置において、段落を選択するための段落選択手段と、箇条書きを指定するための箇条書き指定手段、文書内で最初の箇条書き指定を記憶しておくための箇条書き書式記憶手段、箇条書き指定時に文書内にその段落以外に箇条書き指定された段落がないか段落を探すための箇条書き段落検索手段、前記箇条書き段落検索手段により箇条書き段落が発見された場合には発見した段落の書式のインデント情報を取得。【選択図】        図１
2004348353.tif 000002
【特許請求の範囲】
【請求項１】
文章中の所望の段落の先頭に箇条書きマークもしくは段落番号を付与し、その箇条書き段落の２行目以降を箇条書き用の書式としてそろえる機能を持つ文書処理装置において、段落を選択するための段落選択手段と、箇条書きを指定するための箇条書き指定手段、文書内で最初の箇条書き指定を記憶しておくための箇条書き初期値記憶手段、箇条書き指定時に文書内にその段落以外に箇条書き指定された段落がないか段落を探すための箇条書き段落検索手段、
共通項の箇条書き段落検索手段により箇条書き段落が発見された場合には発見した段落の書式のインデント情報を取得し、前記共通項の段落選択手段により選択されている段落にインデント情報を設定するインデント設定手段を有し、箇条書きの指定と同時にインデントの設定も行うことを特徴とする文書処理装置。
【請求項２】
文章中の所望の段落の先頭に箇条書きマークもしくは段落番号を付与し、その箇条書き段落の２行目以降を箇条書き用の書式としてそろえる機能を持つ文書処理装置において、段落を選択するための段落選択手段と、箇条書きを指定するための箇条書き指定手段、文書内で最初の箇条書き指定を記憶しておくための箇条書き初期値記憶手段、箇条書き指定時に文書内にその段落以外に箇条書き指定された段落がないか段落を探すための箇条書き段落検索手段、
前記共通項の箇条書き段落検索手段により箇条書き段落が発見された場合には発見した段落の書式の行間隔を取得し、前記共通項の段落選択手段により選択されている段落に行間隔を設定する行間隔設定手段を有し、箇条書きの指定と同時に行間隔の設定も行うことを特徴とする文書処理装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は文書処理装置、特に箇条書きや段落番号を利用し、さらにその箇条書き段落には左インデントや右インデントを利用して本文と異なる書式をもった文書を作成するケースで特に有用である。さらに言えばＴｅＸのような階層構造で細かく書式を制御するような文書処理装置よりも、階層構造を気にせずに文書を作成する装置に対して大きな効果を発揮する。
【０００２】
【従来の技術】
従来は任意の段落に箇条書きや段落番号を設定し、その後ろに通常の（箇条書きや段落番号でない）段落を入力した場合、更にその後方で再度箇条書きを設定しても左インデントや右インデントを揃え直さなければならないか、文書中に段落の形式と同様に箇条書きを管理している装置では、設定変更に伴い同時に同じ設定の全ての箇条書きが変更されるので、部分的に書式を変える場合には異なった箇条書きの段落属性を作成してからセットしなおすといったような２段階の設定が必要で操作手順が多く、箇条書きの属性を設定するための特別なインタフェースで操作しなければならないので直感的でなく、ユーザにわかりにくい、また、操作手順が多くなって作業効率が落ちるという欠点があった。
【０００３】
【特許文献１】
特開昭１０−０８３３９７号
【０００４】
【発明が解決しようとする課題】
ユーザの段落書式変更の自由な文書中の箇条書き書式を一元管理するようなタイプでない箇条書き設定を行う装置において、必要な段落の設定も箇条書き設定と同時に適切に反映できれば作業効率、使いやすさが大幅に向上する。
【０００５】
【課題を解決するための手段】
箇条書きの設定と同時に今までに設定した箇条書きのインデント情報を検索して同時に設定する手段を設けることにより、箇条書き段落の属性のそろったきれいな文書を容易に作成することを可能とする。
【０００６】
【発明の実施の形態】
図１のように構成された文書処理装置において説明していく。
【０００７】
箇条書き設定したい段落を選択するための選択手段は、図１の５に示すポインティングデバイス、もしくは図１の４のキーボードの操作により図１の１のＣＲＴ上に図２の０２１のように表示されているキャレットの希望段落への移動により行う。
【０００８】
一行目インデントとは、日本文に良くある。段落（改行記号により区切られる文字のまとまり）の先頭文字に一文字分の空白を自動的に空けるといったような動作を実現するためのインデントである。一行目インデントの指定手段は所望の段落にキャレットを移動し図２の０２２に示す▽（塗りつぶし）マークを図１の５に示すポインティングデバイスでドラッグすることにより行われる。
【０００９】
箇条書き指定を行う箇条書き指定手段は、図２の０２３，０２４に示すボタンをクリックする。それぞれの指定に従い、図３の箇条書き識別ＩＤと同じフラグを作成し、これを引数として図５のフローチャートに示す箇条書き記号入力手段をコールする。また、もう一つの箇条書き指定手段として、図２のメニューの「文字」の「箇条書き．．．」を選択すると図２の下にあるダイアログが表示され、そこで任意形式の箇条書きを選択してＯＫするという方法も用意している。
【００１０】
箇条書き識別ＩＤは図３の中段に示すような３２ビットのフラグセットとなっていて、箇条書き設定がない場合は０となります。それぞれの意味は０３７が番号の前後に括弧をつける場合の括弧種別フラグ、０３８が番号の後に特定の文字を付与する後置修飾文字種別フラグとなっており、ユーザにとっては図２のダイアログの０２７の区切り記号に該当します。図３の０３９は番号箇条書き種別となっており、「１，２，３，…」，「▲１▼，▲２▼，▲３▼，…」，「ｉ，ｉｉ，ｉｉｉ，…」等の値がインクリメントされていく番号箇条書きの種類がセットされ、図２では０２６にあたります。０３１０は記号箇条書き種別となっており、「・，★，●」等の箇条書き記号を示し、順番や修飾文字はつかないため単独でセットされ、図２では０２５にあたる。０３１１は箇条書き番号となっており、番号箇条書きのときに１からの番号が入り、図２では０２８にあたる。それぞれのフラグの値は図３の一番下に示すようなかたちでプログラム中に規定してある。
【００１１】
箇条書き初期値記憶手段は、前記、箇条書き識別ＩＤがプログラム上に初期値としてコーディングされており、アプリケーション開始時に図１の８のメモリ上にローディングさる。また０２３，０２４のインタフェース毎にべつべつの初期値があるものとする。
【００１２】
ちなみに０２３は箇条書き記号の「・」を作成するボタンとなっており、箇条書き識別ＩＤの図３の０３１０の記号箇条書き種別のみがセットされ、０ｘ０００１００００が渡される。０２４は番号箇条書きであり、「１．」という表記の箇条書きを作成するボタンとなっており最初の操作においては、箇条書き識別ＩＤに図３の３１１の箇条書き番号に１、０３９の番号箇条書き種別に数字を示す０ｘ００１０００００、０３８の後置修飾文字種別に「．」を示す０ｘ０３００００００のフラグを立てる。結果として、０ｘ０３１００００１が箇条書き記号入力手段に渡される。
【００１３】
また、箇条書きが前記図２の「文字」の「箇条書き．．．」メニューからの設定にて指定された場合には、図２のダイアログでの設定情報がこの図１の８のメモリ上の初期値に反映されるようになっている。
【００１４】
図５の箇条書き記号入力手段のフローチャートの説明をする。
【００１５】
０５０１において、現在キャレットが表示されている文字の文字構造体のセンテンスへのポインタ（図３の０３１）からセンテンスを取得し、このセンテンスからセンテンス先頭文字ポインタ（図４の０４４）を取得し、挿入位置として図１の８のメモリ上に記憶する。センテンスとは段落と一致するので段落先頭文字ということになる。また、この管理を実現するため、文書の末尾には末尾を示す文字コードとして０ｘｆｆｆｆ（ＥＯＦ）の入った文字構造体が付いており、文字構造体が一つもない状態はあり得ないように設計されている。
【００１６】
０５０２において、箇条書き識別ＩＤ中の括弧識別フラグ（図３の０３７）がたっているかを判定し、立っている場合はその種別と一致した開き括弧を０５０３にて入力する。
【００１７】
０５０３においては、図６に示す文字列中への文字挿入手段である文字挿入関数を０５０１で算出した挿入位置と、前記開き括弧の文字コードと、箇条書き識別ＩＤを引数としてコールすることにより行う。図６の文字挿入手段の説明は、図５の説明後に行うものとします。
【００１８】
０５０４において、箇条書き識別ＩＤ中の記号箇条書き種別フラグ（図３の０３１０）がたっているかを判定し、０５０５の箇条書き記号挿入を行う。箇条書き入力のために図５のルーチンへ入ってきているわけで、０３１０の記号箇条書き種別フラグがたっていないときには番号箇条書きを入力するために０５０６へ分岐します。
【００１９】
０５０５において、箇条書き記号の挿入を、図６に示す文字列中への文字挿入手段である文字挿入関数を０５０１で算出した挿入位置と、記号箇条書き種別フラグから決まる箇条書き記号の文字コードと、箇条書き識別ＩＤを引数としてコールすることにより行う。
【００２０】
０５０６において、番号箇条書きに分岐してきた場合、箇条書き識別ＩＤの０３９の番号箇条書き種別より、番号箇条書きの先頭の１番の文字コードを決定し、そのコードに対し０３１１の箇条書き番号−１を足す事により挿入すべき箇条書き番号コードを得る。
【００２１】
０５０７において、箇条書き番号の挿入を、図６に示す文字列中への文字挿入手段である文字挿入関数を０５０１で算出した挿入位置と、０５０６で算出した箇条書き番号の文字コードと、箇条書き識別ＩＤを引数としてコールすることにより行う。
【００２２】
０５０８において、０５０２と同じ判定により、括弧形式であった場合には０５０９の閉じカッコを挿入して処理を終了する。括弧形式でなければ０５１０へすすむ。
【００２３】
０５０９において、図６に示す文字列中への文字挿入手段である文字挿入関数を０５０１で算出した挿入位置と、箇条書き識別ＩＤの０３７の括弧種別より決まる閉じ括弧の文字コードと、箇条書き識別ＩＤを引数としてコールすることにより行う。
【００２４】
０５１０において、箇条書き識別ＩＤ中の後置修飾文字種別フラグ（図３の０３８）がたっているかを判定し、立っている場合はその種別と一致した後置き文字コードを０５０３にて入力する。
【００２５】
０５１１において、箇条書き後置き文字の挿入を、図６に示す文字列中への文字挿入手段である文字挿入関数を０５０１で算出した挿入位置と、図３の０３８の後置修飾文字種別フラグで決まる後置き文字の文字コードと、箇条書き識別ＩＤを引数としてコールすることにより行う。
【００２６】
次に図６の文字列中への文字挿入手段の説明を行う。
【００２７】
０６１において、メモリ上に図３の文字構造体の領域を新しく取得する。
【００２８】
０６２において、図１の８のメモリ上に記憶されている挿入位置の文字の情報を、０６１で取得した文字構造体領域に内容をコピーする。
【００２９】
０６３において、０６１で取得した文字構造体の前の文字へのポインタ（図３の０３２）により前の文字を取得し（ポインタが０のときは自分が先頭文字であるため何もせずに０６４の処理に移ります）、その前の文字の次の文字へのポインタ（図３の０３３）情報に０６１で取得した文字構造体のポインタをセットする。
【００３０】
０６４において、０６１で取得した文字構造体の後ろの文字へのポインタ（図３の０３３）に図１の８のメモリ上に記憶されている挿入位置の文字のポインタを代入する。
【００３１】
０６５において、図１の８のメモリ上に記憶されている挿入位置の文字の情報の前の文字へのポインタ（図３の０３２）に０６１で取得した文字構造体のポインタをセットする。ここまでで文字のチェイン構造が正しく整備され、文字構造体が挿入された状態となる。
【００３２】
０６６において、挿入した文字構造体（０６１で取得した文字構造体）の文字コード情報（図３の０３５）に引数で指定されてきた文字コードを代入する。
【００３３】
０６７において、挿入した文字構造体（０６１で取得した文字構造体）の箇条書き識別ＩＤ（図３の０３４）に引数で指定されてきた箇条書き識別ＩＤを代入する。
【００３４】
以上で文字列中への文字挿入手段は終了する。
【００３５】
箇条書き段落検索手段は、図１０のフローチャートを用いて説明する。前提として、引数に指定された箇条書き識別ＩＤと現在の挿入位置の文字のポインタが渡されているものとする。
【００３６】
１００１において、現在キャレットが表示されている文字の文字構造体のセンテンスへのポインタ（図３の０３１）からセンテンスを取得し、比較対象センテンスとする。
【００３７】
１００２において、図４のセンテンス構造体の０４２前のセンテンスのポインタが０でないかを確認し、０でなければ前のセンテンスがあると判定し、１００３へ進みます。０のときは箇条書き段落が発見できなかったものとして終了する。
【００３８】
１００３において、図４のセンテンス構造体の０４２前のセンテンスのポインタを比較対象センテンスとする。
【００３９】
１００４において、図４のセンテンス構造体の０４４の先頭文字へのポインタより段落先頭文字を取得し、その箇条書き識別ＩＤ（図３の０３４）が０でなければ箇条書きであるので１００５に進む。ここで、箇条書きでないと判定された場合は更に前の段落へと検索を続けるために１００２へ戻る。
【００４０】
１００５において、１００４にて取得した箇条書き識別ＩＤ（図３の０３４）を引数で渡されたものと比較し、同一であれば発見したので、１００６へ進む。異なる場合は、更に前の段落へと検索を続けるために１００２へ戻る。
【００４１】
１００６において、同一形式の箇条書きが発見されたので、戻り値として現在の比較対象センテンスを登録して処理を終了する。
【００４２】
前記箇条書き段落検索手段にて同一形式の箇条書きが文書の前方に発見された場合は、その段落情報を反映すべく、インデント情報設定手段、行間隔設定手段へ進む。発見されないケースではインデント自動調整が行われる（最初の箇条書き指定は必ずこちらを通る）。
【００４３】
インデント情報設定手段は、前記箇条書き段落検索手段で発見されたセンテンスの段落属性構造体（図４の０４６）の左インデント（図８の８０２）と右インデント（図８の８０３）をそれぞれ箇条書き指定処理を行った段落自身の段落構造体にコピーする。
【００４４】
行間隔設定手段は、前記箇条書き段落検索手段で発見されたセンテンスの段落属性構造体（図４の０４６）の行間隔（図８の８０５）を箇条書き指定処理を行った段落自身の段落構造体にコピーする。
【００４５】
次に前に箇条書きが発見されなかった場合の箇条書き指定段落の適切な字下げのための左インデントを自動調整するインデント調整手段を図７のフローチャートにより説明する。
【００４６】
左インデントとは、段落の持つ属性であり、図８に示す段落属性構造体の８０２として一つのメンバとなっている。よって、０５０１で算出した挿入位置の文字のセンテンスポインタ（図３の０３１）にて対象となるセンテンスを取得し、その段落属性構造体（図４の０４６）に対して処理を行うものとする。
【００４７】
また、引数として箇条書き識別ＩＤをインデント調整手段に渡す。
【００４８】
０７１にて、箇条書き種別により変化する箇条書きの必要幅をＳという変数に算出するものとし、箇条書き文字と先頭文字の必要字間として、０．５で初期化する。
【００４９】
０７２にて、括弧種別が指定されているか箇条書き識別ＩＤの括弧種別のフラグ（図３の０３７）が立っているかチェックする。フラグがたっていなければ、つまり０であれば０７４の後置文字種別の判定に進む。フラグが立っているときは０７３へ進む。
【００５０】
０７３にて、括弧は１Ｂｙｔｅコードであり、１Ｂｙｔｅコード一文字に必要とする表示幅を０．７とし、開き括弧と閉じカッコの２つがあるので、０．７×２を０７１の変数Ｓに加算する。
【００５１】
０７４にて、後置き文字種別が指定されているか箇条書き識別ＩＤの後置修飾文字種別のフラグ（図３の０３８）が立っているかチェックする。フラグがたっていなければ、つまり０であれば０７６の番号箇条書き種別の判定に進む。フラグが立っているときは０７５へ進む。
【００５２】
０７５にて、後置き文字は１Ｂｙｔｅコードであり、１Ｂｙｔｅコード一文字に必要とする表示幅の０．７を０７１の変数Ｓに加算する。
【００５３】
０７６にて、番号箇条書きの通常数字の箇条書きが設定されているかを箇条書き識別ＩＤの番号箇条書き種別のフラグ（図３の０３９）の通常数字の箇条書きを示す０ｘ００１０００００が立っているかで判定する。フラグが立っていれば、０７８へ進み、そうでないときは０７７へ進む。
【００５４】
０７７にて、通常数字の箇条書きでないケースは箇条書きは２バイトコード１文字で成り立っているため、２Ｂｙｔｅコード一文字に必要とする表示幅の１を０７１の変数Ｓに加算する。
【００５５】
０７８にて、通常数字の箇条書きのケースは２桁の数値までが対応となっているため、１Ｂｙｔｅコード２文字に必要とする表示幅として、０．７×２を０７１の変数Ｓに加算する。
【００５６】
０７９にて、この段落の段落属性情報の左インデント（図８の８０２）に今まで算出した０７１の変数Ｓを加算して代入する。
【００５７】
０７１０にて、この段落の段落属性情報の一行目字下げインデント（図８の８０１）に０７０１で述べた箇条書き文字と先頭文字の必要字間として、０．５を代入する。
【００５８】
以上で、箇条書きに必要なインデントの調整処理が終了する。
【００５９】
次に実際の組版において、箇条書きを正しく表示するために加えた処理について説明する。
【００６０】
箇条書き記号の表示手段は、通常独特の処理を加えるものだが、この実施例のシステムは通常の文字に箇条書き識別ＩＤメンバ（図３の０３４）を追加したのみであり、表示自身には通常の文字の出力手段をそのまま利用している。箇条書き記号位置の調整が必要であるが、これは、通常の段落の文字表示開始時のルーチンに箇条書き段落開始処理として、文字位置調整処理を加えて実現した。
【００６１】
図９を用いて説明する。
【００６２】
９０１は、段落の最初の文字の表示位置初期化で、段落属性の左インデント（図８の８０２）と一行目インデント（図８の８０１）から計算される。
【００６３】
９０２は箇条書き記号時の分岐のための判定で、図３の０３４の箇条書き識別ＩＤが０であるかで判定している。
【００６４】
０でなければ箇条書き記号文字である。箇条書き記号のときは９０３の表示位置の調整を行う。
【００６５】
９０３において、箇条書き記号の位置補正として、インデント調整手段で用いた図７の０７１の変数Ｓの算出をそのまま利用し、文字表示位置のＸ座標から減算する。
【００６６】
これにより、次から開始される実際の表示処理では箇条書き記号位置が補正された状態で処理が開始する。
【００６７】
箇条書き揃え表示手段は、つまり、一行目の本文開始位置と２行目以降の位置を揃える処理であるが、これについては、文字の表示処理の中の文字出力位置算出部を一部分岐させることで実現している。
【００６８】
図９の箇条書き段落一行目本文表示位置補正処理の流れ図に沿って説明する。
【００６９】
一つの文字を表示する処理の中である。
【００７０】
９０５において、通常の文字表示処理が行われる。
【００７１】
９０６において、今表示した文字が箇条書き記号で、かつ次の文字が箇条書き記号でないかを判定する。これは、それぞれの文字の箇条書き識別ＩＤ（図３の０３４）が０であるかで判定する。０でなければ箇条書き記号である。
【００７２】
９０７において、箇条書き記号直後の本文一文字目の表示位置を調整する。これは次の文字の表示位置のＸ座標に左インデントをセットすることで行う。
【００７３】
９０８は今まで通りの通常の処理であり、次の文字の表示位置のＸ座標に表示した文字の文字幅を加算しておく処理である。
【００７４】
以上の処理で、１文字の表示が終了し、また次の文字の表示の際にここがコールされてくる。
【００７５】
これにより、箇条書きの際の箇条書き記号を除いた本文の揃えは１行目も２行目も左インデントに揃う表示が可能となる。
【００７６】
【発明の効果】
これにより、箇条書き設定時に既に文書の前方に同一形式の箇条書き段落が存在している場合には、その段落のインデントや、行間隔も同時に反映することができる。これにより、日本語の文書に良く見られる箇条書きを字下げ表示し、さらに段落末尾も本文より内側に設定することで箇条書きを見やすくした文書などの箇条書き設定に伴う操作を飛躍的に短縮することが可能となった。
【図面の簡単な説明】
【図１】この装置の構成図
【図２】箇条書きを設定する画面の例
【図３】文字構造体
【図４】センテンス構造体
【図５】箇条書き入力手段の流れ図
【図６】文字列中への文字挿入手段の流れ図
【図７】インデント調整手段の流れ図
【図８】段落属性構造体
【図９】箇条書き段落表示開始処理、箇条書き段落一行目本文位置補正処理の流れ図
【図１０】箇条書き段落検索手段の流れ図
【符号の説明】
１  ＣＲＴ表示装置
２  ＶＲＡＭ
３  ＢＭＵ
４  キーボード
５  ポインティングデバイス（ＰＤ）
６  ＣＰＵ
７  ＲＯＭ
８  ＲＡＭ
９  ハードディスク・ドライブ（ＨＤＤ）
１０  フロッピー（登録商標）ディスク・ドライブ（ＦＤＤ）
１１  ネットワーク・インターフェース
【図１】
2004348353.tif 000003
【図２】
2004348353.tif 000004
【図３】
2004348353.tif 000005
【図４】
2004348353.tif 000006
【図５】
2004348353.tif 000007
【図６】
2004348353.tif 000008
【図７】
2004348353.tif 000009
【図８】
2004348353.tif 000010
【図９】
2004348353.tif 000011
【図１０】
2004348353.tif 000012