(57)【特許請求の範囲】
【請求項１】
オブジェクトを含むデータに基づいて文書を１以上のページにレイアウトするレイアウト手段と、前記レイアウト手段によるレイアウト結果から前記文書に含まれるオブジェクトがレイアウトされたページ番号を示す参照文字列を生成する参照文字列生成手段とを具備し、前記レイアウト手段が、前記参照文字列生成手段が生成した参照文字列を含めて再レイアウトを行い要素間参照が可能な文書をレイアウトする要素間参照を利用したレイアウト処理方法であって、
番号正当性保証手段が、前記参照文字列の示すページ番号と前記オブジェクトがレイアウトされたページ番号とを比較し、両者が一致しない場合に、前記参照文字列生成手段に前記参照文字列を再生成させた後に、前記レイアウト手段に再レイアウトを行わせ、
前記参照文字列のブロックの大きさが前回レイアウトを行ったときの大きさよりも小さい場合には、前記レイアウト手段が、前記再レイアウトに際して前記参照文字列のブロックの大きさを該再レイアウトを行う前の大きさに保持することを特徴とする要素間参照を利用したレイアウト処理方法。
【請求項２】
監視手段が、前記再レイアウトに際して前記参照文字列のブロックの大きさが前回レイアウトを行ったときの大きさよりも小さい場合に、該参照文字列を含む再レイアウトを仮に継続することで前記オブジェクトがレイアウトされるページが移動するか否かを判断し、前記オブジェクトがレイアウトされるページが移動すると判断された場合に、前記レイアウト手段は、前記参照文字列のブロックの大きさを前記再レイアウトを行う前の大きさに保持して再レイアウトを実行することを特徴とする請求項１記載の要素間参照を利用したレイアウト処理方法。
【請求項３】
オブジェクトを含むデータに基づいて文書を１以上のページにレイアウトするレイアウト手段と、前記レイアウト手段によるレイアウト結果から前記文書に含まれるオブジェクトがレイアウトされたページ番号を示す参照文字列を生成する参照文字列生成手段とを具備し、前記レイアウト手段が、前記参照文字列生成手段が生成した参照文字列を含めて再レイアウトを行い要素間参照が可能な文書をレイアウトする要素間参照を利用したレイアウト処理装置において、
前記参照文字列の示すページ番号と前記オブジェクトがレイアウトされたページ番号とを比較し、両者が一致しない場合に、前記参照文字列生成手段に前記参照文字列を再生成させ、前記レイアウト手段に再レイアウトを行わせる番号正当性保証手段を具備し、
前記レイアウト手段は、前記参照文字列のブロックの大きさが前回レイアウトを行ったときの大きさよりも小さい場合に、前記再レイアウトに際して前記参照文字列のブロックの大きさを該再レイアウトを行う前の大きさに保持することを特徴とする要素間参照を利用したレイアウト処理装置。
【請求項４】
前記レイアウト手段による再レイアウトに際して前記参照文字列のブロックの大きさが前回レイアウトを行ったときの大きさよりも小さい場合に、該参照文字列を含む再レイアウトを仮に継続することで前記オブジェクトがレイアウトされるページが移動するか否かを判断する監視手段をさらに具備し、
前記レイアウト手段は、前記監視手段により前記オブジェクトがレイアウトされるページが移動すると判断された場合に、前記参照文字列のブロックの大きさを前記再レイアウトを行う前の大きさに保持して再レイアウトを実行する
ことを特徴とする請求項４記載の要素間参照を利用したレイアウト処理装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、要素間参照を利用したレイアウト処理方法および装置に関し、特にページを参照している部分での番号の正当性を保証し、利用者の負担を軽減することができるようにした要素間参照を利用したレイアウト処理方法および装置に関する。
【０００２】
【従来技術】
文書から目次や索引等を自動的に生成して元の文書と合わせて表示、印刷等の処理を行うのに適した文書フォーマットとしてＳＧＭＬ（Ｓｔａｎｄａｒｄ  Ｇｅｎｅｒａｌｉｚｅｄ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）等の標準規格に代表される構造化文書がある。
【０００３】
構造化文書であるＳＧＭＬは、文書自体にはレイアウト情報は記述されておらず、文書の要素（例えば、報告書ならばタイトルや日付、報告先等）ごとに“タグ”と呼ばれる文書要素を識別するための符号を付してある。
【０００４】
タグは文書要素の開始を示す開始タグ（“＜要素名＞”と記述）と文書要素の終了を示す終了タグ（“＜／要素名＞”と記述）があり、開始タグと終了タグの間に文書要素を記述する。
【０００５】
また、ＳＧＭＬは文書の他に文書型定義（ＤＴＤ：Ｄｏｃｕｍｅｎｔ  Ｔｙｐｅ  Ｄｅｆｉｎｉｔｉｏｎ）が必要であり、ＤＴＤにはタグの定義や文書構造の定義（例えば、報告書ならば日付は１回のみ出現する等、マニュアルなどでは章の中には節が出現し、章の中に章は出現しない等）等が記述されている。
【０００６】
ＳＧＭＬは、上述した文書とＤＴＤの他にＳＧＭＬ宣言が必要であり、ＳＧＭＬ宣言は、文書に使われているコードや要素名などの最大文字数、“＜＞”がタグであること等が記述されている。これらの文書、ＤＴＤ、ＳＧＭＬ宣言の３要素がＳＧＭＬの構成要素となっている。
【０００７】
上述したようにＳＧＭＬの文書はタグ付けされた文書要素の羅列であり、レイアウト情報や文字の大きさ等は一切記述されていないため、ＳＧＭＬ文書の表示や印刷を行うには、別に文書処理装置等が必要である。
【０００８】
ＳＧＭＬ文書をレイアウトして、印刷や表示を行う文書処理装置においては、目次や索引を作成する場合には、一度文書のレイアウトを行い、目次の構成要素となる「章」や「節」等の出現するページや索引の構成要素となる文字列の出現ページを参照して、この情報を元に再度レイアウトを行う。
【０００９】
同様の方法を用いて、例えば図などの出現ページを本文中で参照することが可能である。
【００１０】
しかし、本文中に参照文字列を挿入した場合、参照文字列の長さによっては参照文字列が挿入された箇所以降のページレイアウトが変化し、参照オブジェクトが存在したページが変化してしまうことがある。
【００１１】
図７に従来のレイアウト参照を利用した文書レイアウト結果の一例を示す。
【００１２】
図７において、ページ５１−１乃至５１−４は最初のレイアウトが終了した状態を示し、参照文字列「図１  ページ参照」がページ５１−１（八十五ページ）に、参照オブジェクト「図１」がページ５１−３（九十九ページ）にレイアウトされている。
【００１３】
ページ５２−１乃至５２−４は参照オブジェクト「図１」が“九十九ページ”にレイアウトされていることを考慮し、再度レイアウトを行った結果を示しており、ページ５１−１の参照文字列「図１  ページ参照」が「図１  九十九ページ参照」に置き換わっている。
【００１４】
ところが、ページ５２−１では参照文字列「図１  九十九ページ参照」が「図１  ページ参照」よりも長くなったためにページ５２−１（八十五ページ）、ページ５２−２（八十六ページ）に跨がってしまい、その結果、参照オブジェクト「図１」がページ５２−４（百ページ）にレイアウトされてしまい参照文字列のページ番号と参照オブジェクトの出現ページが異なってしまう。
【００１５】
このため、再度レイアウトを行うとページ５３−１乃至５３−４に示すように、参照文字列「図１  九十九ページ参照」が「図１  百ページ参照」に置き換わるが、参照文字列「図１  百ページ参照」は「図１  九十九ページ参照」よりも短くなるため、再び参照オブジェクト「図１」はページ５３−３（九十九ページ）にレイアウトされる。
【００１６】
この結果、参照文字列のページ番号と参照オブジェクトの出現ページが異なっているため、再びレイアウトが行われる。
【００１７】
文書処理装置は、上述の処理を繰り返すが、いつまでも正しい結果が得られないため、参照文字列を決定することができない。
【００１８】
このようなレイアウト参照処理を行っているシステムに「ＴｅＸ」とよばれる科学技術論文向けの文書処理システムがあるが、「ＴｅＸ」においては参照文字列に示されるページ番号と参照オブジェクトの出現するページとが異なってしまう場合の対処は行っていない。
【００１９】
【発明が解決しようとする課題】
上述のように、参照文字列を決定できない場合には、参照文字列の示すページ番号と参照オブジェクトの出現するページ番号が異なってしまった場合には、そのまま放置し、不具合の残る文書としてレイアウトを終了するか、利用者が手動で参照オブジェクトの位置を変更し、再度レイアウトを行う必要がある。
【００２０】
そこで、この発明は、参照文字列の示すページ番号と参照オブジェクトの出現するページ番号が一致するようにレイアウトを行い、利用者が文書の内容を修正する必要のない要素間参照を利用したレイアウト処理方法および装置を提供することを目的とする。
【００２１】
【課題を解決するための手段】
上述した目的を達成するため、請求項１の発明は、オブジェクトを含むデータに基づいて文書を１以上のページにレイアウトするレイアウト手段と、前記レイアウト手段によるレイアウト結果から前記文書に含まれるオブジェクトがレイアウトされたページ番号を示す参照文字列を生成する参照文字列生成手段とを具備し、前記レイアウト手段が、前記参照文字列生成手段が生成した参照文字列を含めて再レイアウトを行い要素間参照が可能な文書をレイアウトする要素間参照を利用したレイアウト処理方法であって、番号正当性保証手段が、前記参照文字列の示すページ番号と前記オブジェクトがレイアウトされたページ番号とを比較し、両者が一致しない場合に、前記参照文字列生成手段に前記参照文字列を再生成させた後に、前記レイアウト手段に再レイアウトを行わせ、前記参照文字列のブロックの大きさが前回レイアウトを行ったときの大きさよりも小さい場合には、前記レイアウト手段が、前記再レイアウトに際して前記参照文字列のブロックの大きさを該再レイアウトを行う前の大きさに保持することを特徴とする。
【００２２】
また、請求項２の発明は、請求項１の発明において、監視手段が、前記再レイアウトに際して前記参照文字列のブロックの大きさが前回レイアウトを行ったときの大きさよりも小さい場合に、該参照文字列を含む再レイアウトを仮に継続することで前記オブジェクトがレイアウトされるページが移動するか否かを判断し、前記オブジェクトがレイアウトされるページが移動すると判断された場合に、前記レイアウト手段は、前記参照文字列のブロックの大きさを前記再レイアウトを行う前の大きさに保持して再レイアウトを実行することを特徴とする。
【００２３】
また、請求項３の発明は、オブジェクトを含むデータに基づいて文書を１以上のページにレイアウトするレイアウト手段と、前記レイアウト手段によるレイアウト結果から前記文書に含まれるオブジェクトがレイアウトされたページ番号を示す参照文字列を生成する参照文字列生成手段とを具備し、前記レイアウト手段が、前記参照文字列生成手段が生成した参照文字列を含めて再レイアウトを行い要素間参照が可能な文書をレイアウトする要素間参照を利用したレイアウト処理装置において、前記参照文字列の示すページ番号と前記オブジェクトがレイアウトされたページ番号とを比較し、両者が一致しない場合に、前記参照文字列生成手段に前記参照文字列を再生成させ、前記レイアウト手段に再レイアウトを行わせる番号正当性保証手段を具備し、前記レイアウト手段は、前記参照文字列のブロックの大きさが前回レイアウトを行ったときの大きさよりも小さい場合に、前記再レイアウトに際して前記参照文字列のブロックの大きさを該再レイアウトを行う前の大きさに保持することを特徴とする。
【００２４】
また、請求項４の発明は、請求項３の発明において、前記レイアウト手段による再レイアウトに際して前記参照文字列のブロックの大きさが前回レイアウトを行ったときの大きさよりも小さい場合に、該参照文字列を含む再レイアウトを仮に継続することで前記オブジェクトがレイアウトされるページが移動するか否かを判断する監視手段をさらに具備し、前記レイアウト手段は、前記監視手段により前記オブジェクトがレイアウトされるページが移動すると判断された場合に、前記参照文字列のブロックの大きさを前記再レイアウトを行う前の大きさに保持して再レイアウトを実行することを特徴とする。
【００２７】
【発明の実施の形態】
以下、この発明に係わる要素間参照を利用したレイアウト処理方法および装置の一実施例を添付図面を参照して詳細に説明する。
【００２８】
図１は、この発明に係わる要素間参照を利用したレイアウト処理方法および装置の一実施例を示した図である。
【００２９】
また、図２乃至４は図１に示す実施例におけるレイアウト処理の流れを示したフローチャートである。
【００３０】
図１において、レイアウト処理装置１０は、キーボードまたはファイル等から必要なデータを得る入力手段１、文書中に参照文字列を挿入する参照文字列挿入手段２、磁気ディスクや光ディスク、磁気テープ、メモリ等の記憶装置３、入力されたデータを元に文書のレイアウトを行うページレイアウト手段４、文書中から参照オブジェクトの出現位置を取得する参照位置取得手段５、参照文字列に示されるページ番号と参照オブジェクトの出現するページとの一致を保証する番号正当性保証手段６、レイアウトされた文書を画面表示や印刷する表示手段７で構成される。
【００３１】
ここで、図２に示すフローチャートを参照してレイアウト処理の流れを説明する。
【００３２】
レイアウト処理が開始されると（ステップ１０１）、入力手段１により文書データ等の必要なデータが入力される。参照文字列挿入手段２は、入力された文書中の参照文字列の部分を空の文字列として文書中に挿入する（ステップ１０２）。
【００３３】
次に、ページレイアウト手段４により文書のレイアウトが行われ、レイアウト結果を記憶装置３に保存するとともに、空の文字列のブロックサイズを記憶装置３に保存しておく（ステップ１０３）。
【００３４】
記憶装置３に保存されたレイアウト結果から参照位置取得手段５が参照オブジェクトの出現位置を取得するとともに、参照文字列挿入手段２により参照部分の文字列が生成される（ステップ１０４）。
【００３５】
参照部分の文字列が生成されるとページレイアウト手段４が再びレイアウトを行い（ステップ１０５）、再レイアウトの結果を番号正当性保証手段６で比較し、参照文字列の示すページが参照オブジェクトが出現するページと異なっていれば（ステップ１０６でＮＯ）、異なっていた文字列を再生成して（ステップ１０７）再レイアウト（ステップ１０５）以降を繰り返す。
【００３６】
再レイアウトの結果、参照文字列の示すページが参照オブジェクトが出現するページと等しくなれば（ステップ１０６でＹＥＳ）、レイアウト処理を終了し（ステップ１０８）、レイアウト結果が表示手段７により、画面表示または印刷される。
【００３７】
図３は、図２に示したステップ１０５における再レイアウト処理の流れを示したフローチャートである。
【００３８】
参照の番号を正当に表現するために、再レイアウトが開始されると（ステップ２０１）、最初に参照文字列の部分のレイアウトが行われる（ステップ２０２）。このとき、参照文字列が示す番号は、前回のレイアウトの結果得られた参照オブジェクトが出現するページ番号である。
【００３９】
この再レイアウトの結果から、参照文字列のブロックの大きさと前回レイアウトを行った時の参照文字列の大きさを比較する（ステップ２０３、ステップ２０４）。
【００４０】
比較結果が等しければ（ステップ２０３でＮＯ、ステップ２０４でＮＯ）、次の参照文字列の処理を行う（ステップ２０６でＹＥＳ）。
【００４１】
再レイアウトの結果、参照文字列のブロックの大きさが前回レイアウトを行った時の参照文字列の大きさよりも広がっていれば（ステップ２０３でＮＯ、ステップ２０４でＹＥＳ）参照文字列挿入箇所以降のレイアウトを行って次の参照文字列の処理を行う（ステップ２０６でＹＥＳ）。
【００４２】
また、再レイアウトの結果、参照文字列のブロックの大きさが前回レイアウトを行った時の参照文字列の大きさよりも縮まっていれば（ステップ２０３でＹＥＳ）、後述する監視モードレイアウトを行い（ステップ２０７）、監視モードレイアウトが正常に終了すれば（ステップ２０８でＹＥＳ）次の参照文字列の処理を行い（ステップ２０６でＹＥＳ）、監視モードレイアウトが異常終了すれば（ステップ２０８でＮＯ）参照文字列のブロックの大きさを前の大きさに戻し、参照文字列挿入箇所以降のレイアウトを行って（ステップ２０９）次の参照文字列の処理を行う（ステップ２０６でＹＥＳ）。
【００４３】
全ての参照文字列に対して上述の処理が終了すると（ステップ２０６でＮＯ）、再レイアウト処理を終了して図２のステップ１０６の処理に進む。
【００４４】
図４は、監視モードレイアウトの処理の流れを示したフローチャートである。監視モードレイアウトが開始されると（ステップ３０１）、参照文字列の挿入されている論理内容の次の論理内容をレイアウト対象として（ステップ３０２）レイアウトを行う（ステップ３０３）。
【００４５】
このレイアウト対象が参照オブジェクトであり（ステップ３０４でＹＥＳ）、前回のレイアウト結果と異なるページにレイアウトされた場合は（ステップ３０７でＮＯ）、監視モードレイアウトは異常終了となる（ステップ３０８）。
【００４６】
また、レイアウト対象が参照オブジェクトであり（ステップ３０４でＹＥＳ）、前回のレイアウト結果と同じページにレイアウトされた場合と（ステップ３０７でＹＥＳ）、レイアウト対象が参照オブジェクトでない（ステップ３０４でＮＯ）場合には、全ての論理内容に対し同様の処理を繰り返し（ステップ３０５でＹＥＳ、ステップ３０２以降を繰り返し）、全ての論理内容が終了すれば（ステップ３０５でＮＯ）、監視モードレイアウトは正常終了となる（ステップ３０６）。
【００４７】
図５および図６は、図１に示す実施例におけるレイアウト処理の処理結果の一例を示した図であり、図５は参照文字列が１箇所のみ挿入された場合、図６は参照文字列が複数箇所挿入された場合のレイアウト処理結果の一例を示した図である。
【００４８】
図５において、ページ１１−１乃至１１−４は最初のレイアウトが終了した状態を示し、参照文字列「図１  ページ参照」がページ１１−１（八十五ページ）に、参照オブジェクト「図１」がページ１１−３（九十九ページ）にレイアウトされている。
【００４９】
ページ１２−１乃至１２−４は参照オブジェクト「図１」が“九十九ページ”にレイアウトされていることを考慮し、再度レイアウトを行った結果を示しており、ページ１１−１の参照文字列「図１  ページ参照」が「図１  九十九ページ参照」に置き換わっている。
【００５０】
ところが、ページ１２−１では参照文字列「図１  九十九ページ参照」が「図１  ページ参照」よりも長くなったためにページ１２−１（八十五ページ）、ページ１２−２（八十六ページ）に跨がってしまい、その結果、参照オブジェクト「図１」がページ１２−４（百ページ）にレイアウトされてしまい参照文字列のページ番号と参照オブジェクトの出現ページが異なってしまう。
【００５１】
このため、再度レイアウトを行うとページ１３−１乃至１３−４に示すように、参照文字列「図１  九十九ページ参照」が「図１  百ページ参照」に置き換わり、参照文字列「図１  百ページ参照」は「図１  九十九ページ参照」よりも短くなる。
【００５２】
この短くなった参照文字列以降を通常にレイアウトすると、従来例で示したように、いつまでも参照文字列のページ番号と参照オブジェクトの出現ページが異なったままとなる。
【００５３】
そのため、参照文字列のブロックの大きさは、ページ１２−１および１２−２の場合と同じ大きさのままページ１３−１および１３−２のようにレイアウトを行う。この場合、ページ１３−２の上部の空白がないとレイアウトの決定ができないため、最悪の場合として空白が残る。
【００５４】
しかし、この空白をページ１３−４の図１の上下や文書の段落の変わる箇所にバランス良く配置すれば、自然な仕上がりの文書になるようにレイアウトすることができる。
【００５５】
図６において、ページ２１−１乃至２１−４は最初のレイアウトが終了した状態を示し、参照文字列「図１  ページ参照」がページ２１−１（八十五ページ）およびページ２１−２（八十六ページ）に、参照オブジェクト「図１」がページ２１−３（九十九ページ）にレイアウトされている。
【００５６】
ページ２２−１乃至２２−４は参照オブジェクト「図１」が“九十九ページ”にレイアウトされていることを考慮し、再度レイアウトを行った結果を示しており、ページ２１−１およびページ２１−２の参照文字列「図１  ページ参照」が「図１  九十九ページ参照」に置き換わっている。
【００５７】
ところが、参照文字列「図１  九十九ページ参照」が「図１  ページ参照」よりも長くなったために、参照オブジェクト「図１」がページ２２−４（百ページ）にレイアウトされてしまい参照文字列のページ番号と参照オブジェクトの出現ページが異なってしまう。
【００５８】
ここで、図５に示した例と同様にページ２２−１および２２−２の参照文字列のブロックの大きさを固定したまま、参照文字列「図１  九十九ページ参照」を「図１  百ページ参照」に縮めると、ページ２３−１、２３ー２の両者に空白ができてしまう。
【００５９】
この例の場合、参照オブジェクト「図１」がページ２２−４（百ページ）にレイアウトされた原因はページ２２−１の参照文字列「図１  九十九ページ参照」にあるので、ページ２２−２の参照文字列のブロックの大きさを縮めても、ページ２４−４に示すように参照オブジェクト「図１」の出現ページは変わらずに、空白はページ２４−１の１箇所のみとなる。
【００６０】
このように、複数の参照文字列があり、参照文字列が短くなった場合に、無条件に参照文字列のブロックの大きさを縮めると複数の空白ができてしまうが、実際には１箇所のみ空白を作ることでレイアウトを決定することができる。
【００６１】
上述の実施例では、図についての要素間参照を行い、参照オブジェクトは図を参照文字列は図の出現するページを示しているが、この発明に係わる要素間参照を利用したレイアウト処理方法および装置では、この他に表や式、文字列等を含め、参照オブジェクトを任意に指定することができる。
【００６２】
【発明の効果】
以上説明したようにこの発明によれば、参照文字列のブロックの大きさを調整し、レイアウトを繰り返すことで、参照文字列の示すページ番号と参照オブジェクトの出現するページ番号との正当性を保証するので、利用者が参照文字列のチェックを行ったり、手動でレイアウトを調整したりする必要がなくなる。
【図面の簡単な説明】
【図１】この発明に係わる要素間参照を利用したレイアウト処理方法および装置の一実施例を示した図。
【図２】図１に示す実施例におけるレイアウト処理の流れを示したフローチャート。
【図３】再レイアウト処理の流れを示したフローチャート。
【図４】監視モードレイアウトの処理の流れを示したフローチャート。
【図５】図１に示す実施例におけるレイアウト処理の処理結果の一例を示した図。
【図６】図１に示す実施例におけるレイアウト処理の処理結果の一例を示した図。
【図７】従来のレイアウト参照を利用した文書レイアウト結果の一例を示した図。
【符号の説明】
１    入力手段
２    参照文字列挿入手段
３    記憶装置
４    ページレイアウト手段
５    参照位置取得手段
６    番号正当性保証手段
７    表示手段
１０    レイアウト処理装置
【図１】
0004183774.tif 000002
【図２】
0004183774.tif 000003
【図３】
0004183774.tif 000004
【図４】
0004183774.tif 000005
【図５】
0004183774.tif 000006
【図６】
0004183774.tif 000007
【図７】
0004183774.tif 000008