JP2011034463A - 情報処理装置、情報処理方法及びプログラム - Google Patents

情報処理装置、情報処理方法及びプログラム Download PDF

Info

Publication number
JP2011034463A
JP2011034463A JP2009181975A JP2009181975A JP2011034463A JP 2011034463 A JP2011034463 A JP 2011034463A JP 2009181975 A JP2009181975 A JP 2009181975A JP 2009181975 A JP2009181975 A JP 2009181975A JP 2011034463 A JP2011034463 A JP 2011034463A
Authority
JP
Japan
Prior art keywords
ruby
line
character
character string
candidate
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.)
Granted
Application number
JP2009181975A
Other languages
English (en)
Other versions
JP5407647B2 (ja
Inventor
Masakatsu Matsuoka
正勝 松岡
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.)
Canon IT Solutions Inc
Original Assignee
Canon IT Solutions Inc
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 Canon IT Solutions Inc filed Critical Canon IT Solutions Inc
Priority to JP2009181975A priority Critical patent/JP5407647B2/ja
Publication of JP2011034463A publication Critical patent/JP2011034463A/ja
Application granted granted Critical
Publication of JP5407647B2 publication Critical patent/JP5407647B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Document Processing Apparatus (AREA)

Abstract

【課題】簡易に見栄えの良い文書を出力する仕組みを提供すること。
【解決手段】
複数のルビが設定された文字を含む文字列内の文字間が文字枠の行端に配置される場合、当該文字列内の文字に設定されたルビの種類に従って、当該ルビが設定されている文字列の改行候補位置を決定し、該各改行候補位置と該行端との位置関係に従って、決定された改行候補位置の中から改行位置を選択し、選択された改行位置に従って複数のルビの改行位置を決定し出力する。
【選択図】図18

Description

本発明は、情報処理装置、情報処理方法及びプログラムに関し、特に、ルビを出力する技術に関するものである。
従来、パーソナルコンピュータ等を用いて様々なレイアウトの文書を作成することが可能である。特に、雑誌や新聞等の印刷物におけるレイアウト処理は、一般に、DTP(Desk Top Publishing)システムによって行われている。
このような文書編集システムは、読者が文章を読み易くするために、文字(列)にルビが付す機能等を備えている。ここで、ルビが付される文字は一般に親文字と言われている。 また、ルビには、一般的に知られている「モノルビ」、「グループルビ」、「熟語ルビ」という3つの種類がある。
「モノルビ」とは、親文字1文字毎に付されるルビである。例えば、「野鳥」の「野」に対するモノルビとして「や」が付される。そのため、「野」と「鳥」の間で改行が入った場合、(親文字)「野」に対して(モノルビ)「や」が出力され、次行に改行された(親文字)「鳥」に対しては(モノルビ)「ちょう」が出力される。
また、「グループルビ」とは、複数の文字から構成される親文字全体に対して付されるルビのことである。例えば、「野鳥」の2文字に対してグループルビとして「やちょう」が付される。そのため、「野」と「鳥」の間で行が切れる場合、「鳥」を行内に追い込むか、又は「野」を次行に追い出して「野鳥」の一連の文字を同一行に含むように出力すると共に、グループルビである「やちょう」が(親文字)「野鳥」に対して出力される。
また、「熟語ルビ」とは、複数の文字から構成される親文字(熟語)に対して付されるルビであって、熟語の各親文字からルビがはみ出さない場合はモノルビのように出力され、ルビが各親文字からはみ出す場合はグループルビのように出力されるルビのことである。また、熟語ルビは、熟語の途中で改行が入るとモノルビのように分かれてルビが出力される。
上述したように、グループルビは、グループルビの途中で改行されると、親文字を同一行内に追い込んだり追い出したりするため、例えば、長い親文字が設定された場合は、行の文字数が少なくなって字間が空きすぎること等があった。これを解決するために、特許文献1では、親文字列及びグループルビを、予め設定した分割予約点で分割することが提案されている。
特開平11−191101号公報
しかしながら、上記従来技術では、分割する箇所を規定した分割予約点を予め設定しなければならないため、文章の量が多ければ多いほど設定作業が煩雑となり、簡易な操作で見栄えの良いルビを出力することが困難であった。
さらに、最近では、1つの親文字に対して2つのルビを付すことが要望されている。例えば、親文字としての日本語の文字列に対して、英語のルビと中国語のルビとが同時に付されることが望まれている。このように、同じ親文字に対して複数のルビが付される場合、見栄え良く出力するために、複数のルビを考慮した分割位置を設定させることも考えられる。
さらに、同一の親文字に対して付される複数のルビに、上述した複数の種類のルビ(モノルビ、グループルビ、熟語ルビ)が設定される場合も考えられる。
このような、複数のルビ及び複数種類のルビを考慮した分割位置の設定作業は、ユーザにとっても判断が難しい煩雑な操作となる。
そこで、本発明の目的は、親文字に対して複数のルビが設定された文字列(親文字とルビ)の分割場所を判定することにより、簡易に見栄えの良い文書を出力する仕組みを提供することである。
本発明は、文字枠に配置される文字列に対するルビの出力制御を行う情報処理装置であって、前記文字枠の幅の情報を含む文字枠情報と、当該文字枠に配置される文字列とを記憶する記憶手段と、前記記憶手段に記憶された文字列を構成する一つ以上の文字に対して複数のルビを設定する設定手段と、前記記憶手段に記憶された文字枠情報に従って、前記設定手段で複数のルビが設定された文字を含む文字列内の文字間が該文字枠の行端に配置されるかを判定する判定手段と、前記判定手段で該行端に配置されると判定された当該文字列内の文字に設定されたルビの種類に従って、当該ルビが設定されている文字列の改行位置の候補を改行候補位置として決定する候補位置決定手段と、前記候補位置決定手段により決定された改行候補位置と該行端との位置関係に従って、前記候補位置決定手段により決定された改行候補位置の中から当該文字列の改行位置を選択する改行位置選択手段と、
前記改行位置選択手段により選択された前記文字列の改行位置に従って、当該文字列に設定された複数のルビの改行位置を決定するルビ改行位置決定手段と、前記改行位置選択手段により選択された改行位置で改行された文字列と、前記ルビ改行位置決定手段により決定された改行位置で改行されたルビとを出力する出力手段と、を備えることを特徴とする。
また、本発明は、文字枠の幅の情報を含む文字枠情報と、当該文字枠に配置される文字列とを記憶する記憶手段を備えた情報処理装置における情報処理方法であって、前記情報処理装置の設定手段が、前記記憶手段に記憶された文字列を構成する一つ以上の文字に対して複数のルビを設定する設定工程と、前記情報処理装置の判定手段が、前記記憶手段に記憶された文字枠情報に従って、前記設定工程で複数のルビが設定された文字を含む文字列内の文字間が該文字枠の行端に配置されるかを判定する判定工程と、前記情報処理装置の候補位置決定手段が、前記判定工程で該行端に配置されると判定された当該文字列内の文字に設定されたルビの種類に従って、当該ルビが設定されている文字列の改行位置の候補を改行候補位置として決定する候補位置決定工程と、前記情報処理装置の改行位置選択手段が、前記候補位置決定工程により決定された改行候補位置と該行端との位置関係に従って、前記候補位置決定工程により決定された改行候補位置の中から当該文字列の改行位置を選択する改行位置選択工程と、前記情報処理装置のルビ改行位置決定手段が、前記改行位置選択工程により選択された前記文字列の改行位置に従って、当該文字列に設定された複数のルビの改行位置を決定するルビ改行位置決定工程と、前記情報処理装置の出力手段が、前記改行位置選択工程により選択された改行位置で改行された文字列と、前記ルビ改行位置決定工程により決定された改行位置で改行されたルビとを出力する出力工程と、を備えることを特徴とする。
また、本発明は、文字枠に配置される文字列に対するルビの出力制御を行う情報処理装置で読み取り実行可能なプログラムであって、前記プログラムは、前記文字枠の幅の情報を含む文字枠情報と、当該文字枠に配置される文字列とを記憶する記憶手段と、前記記憶手段に記憶された文字列を構成する一つ以上の文字に対して複数のルビを設定する設定手段と、前記記憶手段に記憶された文字枠情報に従って、前記設定手段で複数のルビが設定された文字を含む文字列内の文字間が該文字枠の行端に配置されるかを判定する判定手段と、前記判定手段で該行端に配置されると判定された当該文字列内の文字に設定されたルビの種類に従って、当該ルビが設定されている文字列の改行位置の候補を改行候補位置として決定する候補位置決定手段と、前記候補位置決定手段により決定された改行候補位置と該行端との位置関係に従って、前記候補位置決定手段により決定された改行候補位置の中から当該文字列の改行位置を選択する改行位置選択手段と、前記改行位置選択手段により選択された前記文字列の改行位置に従って、当該文字列に設定された複数のルビの改行位置を決定するルビ改行位置決定手段と、前記改行位置選択手段により選択された改行位置で改行された文字列と、前記ルビ改行位置決定手段により決定された改行位置で改行されたルビとを出力する出力手段として、前記情報処理装置を機能させることを特徴とする。
本発明によれば、親文字に対して複数のルビが設定された文字列(親文字とルビ)の分割場所を判定することにより、簡易に見栄えの良い文書を出力させることができる。
本実施形態に係るシステムの構成例を示す図である。 図1に示した情報処理装置100及び200のハードウェア構成を示すブロック図である。 図1における情報処理装置100が実行する第1の制御処理手順を示すフローチャートである。 図3のステップS301の詳細処理を示すフローチャートである。 図4のステップS402及びステップS404の詳細処理を示すフローチャートである。 図5のステップS502の詳細処理を示すフローチャートである。 図5のステップS503の詳細処理を示すフローチャートである。 図5のステップS504の詳細処理を示すフローチャートである。 図3のステップS303の詳細処理を示すフローチャートである。 図9のステップS902、S903、S905の詳細処理を示すフローチャートである。 図9のステップS904の詳細処理を示すフローチャートである。 図11のステップS1104の詳細処理を示すフローチャートである。 図11のステップS1105の詳細処理を示すフローチャートである。 図3のステップS304の詳細処理を示すフローチャートである。 情報処理装置100の外部メモリ211に記憶されているルビ付き文書データを出力するために用いるデータの一例を説明するための図である。 親文字とルビの分割位置を説明するための図である。 親文字に対して行の切れ目位置から分割候補位置までの距離を説明するための図である。 親文字に対して複数のルビが付与された場合の親文字と複数のルビの分割(改行)の例を説明するための図である。 親文字に対して複数のルビが付与された場合の親文字と複数のルビの分割(改行)の例を説明するための図である。 ルビを登録するための画面の一例を示す図である。
以下、添付図面を参照して、本発明を好適な実施形態に従って詳細に説明する。
<図1の説明>
図1は、本実施形態に係るシステムの構成例を示す図である。
図1に示すように、情報処理装置100と情報処理装置200と複合機(画像処理装置)300は、ネットワーク400を介して相互に通信可能に接続されている。
情報処理装置100と情報処理装置200は、ルビが付された文字(列)のデータを生成し記憶している。ここで、ルビが付された文字又は文字列のデータをルビ付き文書データという。
情報処理装置100と情報処理装置200は、この記憶されたルビ付き文書データを組版して、情報処理装置のディスプレイや複合機300に出力することができる。
本実施形態では、情報処理装置100でルビ付き文書を出力する例について説明する。
<図2の説明>
以下、図2を用いて、図1に示した情報処理装置100及び200のハードウェア構成について説明する。 図2は、図1に示した情報処理装置100及び200のハードウェア構成を示すブロック図である。
図2において、201はCPUで、システムバス204に接続される各デバイスやコントローラを統括的に制御する。また、ROM202あるいは外部メモリ211には、CPU201の制御プログラムであるBIOS(Basic Input / Output System)やオペレーティングシステムプログラム(以下、OS)や、各サーバ或いは各PC(情報処理装置)の実行する機能を実現するために必要な後述する各種プログラム等が記憶されている。
203はRAMで、CPU201の主メモリ、ワークエリア等として機能する。CPU201は、処理の実行に際して必要なプログラム等をROM202あるいは外部メモリ211からRAM203にロードして、該ロードしたプログラムを実行することで各種動作を実現するものである。
また、205は入力コントローラで、キーボード(KB)209や不図示のマウス等のポインティングデバイス等からの入力を制御する。206はビデオコントローラで、CRTディスプレイ(CRT)210等の表示器(表示部)への表示を制御する。なお、図2では、CRT210と記載しているが、表示器はCRTだけでなく、液晶ディスプレイ等の他の表示器であってもよい。これらは必要に応じて管理者が使用するものである。
207はメモリコントローラで、ブートプログラム,各種のアプリケーション,フォントデータ,ユーザファイル,編集ファイル,各種データ等を記憶する外部記憶装置(ハードディスク(HD))や、フレキシブルディスク(FD)、或いはPCMCIAカードスロットにアダプタを介して接続されるコンパクトフラッシュ(登録商標)メモリ等の外部メモリ211へのアクセスを制御する。
208は通信I/Fコントローラで、ネットワーク400を介して外部機器と接続・通信するものであり、ネットワークでの通信制御処理を実行する。例えば、TCP/IPを用いた通信等が可能である。
なお、CPU201は、例えばRAM203内の表示情報用領域へアウトラインフォントの展開(ラスタライズ)処理を実行することにより、CRT210上での表示を可能としている。また、CPU201は、CRT210上の不図示のマウスカーソル等でのユーザ指示を可能とする。
本発明を実現するための後述する各種プログラムは、外部メモリ211に記録されており、必要に応じてRAM203にロードされることによりCPU201によって実行されるものである。さらに、上記プログラムの実行時に用いられるファイル及び各種テーブル等も、外部メモリ211に格納されている。
<図3の説明>
図3は、図1における情報処理装置100が実行する第1の制御処理手順を示すフローチャートであり、本実施形態を説明するための基本的なフローチャートである。
図3に示すステップS301からステップS307までの処理は、情報処理装置100の外部メモリ211に記憶されたプログラムをCPU201が実行することにより実現される。
まず、当該プログラムを実行すると、外部メモリ211に記憶されたルビ付き文書データをRAM203に読み込み、ルビ付き文書データに従って親文字にルビを付す(ステップS301)。ステップS301の詳細処理の説明は、図4を用いて後述する。
次に、ステップS301でルビ付された文字(列)を文字枠に配置した場合、当該文字(列)が文字枠の幅を超えるか否かを判定することにより、改行するか否かを判定する(ステップS302)。そして、当該文字(列)が文字枠の幅を超えると判定(改行すると判定)された場合、改行位置候補決定処理を実行する(ステップS303)。一方、当該文字(列)が文字枠の幅を超えないと判定(改行しないと判定)された場合は、ステップS305に処理を移行して、読み込んだルビ付き文書データ内の全ての全文字列に対して、少なくともステップS301からステップS302の処理を実行したかを判定する(ステップS305)。
ステップS303では、現在処理対象の文字列の改行位置の候補の場所を決定した後、実際に改行する位置を決定する処理であり、その詳細処理の説明は、図9を用いて後述する。
次に、ステップS303の処理を実行した後、ステップS303で決定された改行の位置に従って改行処理を実行し(ステップS304)、処理をステップS305に移行する。
ステップ305で、読み込んだルビ付き文書データ内の全ての全文字列に対して、少なくともステップS301からステップS302の処理を実行していないと判定された場合は(ステップS305:NO)、次の文字列を処理対象の文字列として設定して(ステップS307)、ステップS301に処理を移行する。
ステップS305で、読み込んだルビ付き文書データ内の全ての全文字列に対して処理を実行した場合は、ステップS304で改行され組版された文書データデータを、CRT210等の表示部への表示、又は複合機300への印刷などの出力処理を実行する(ステップS306)。
<図4の説明>
図4は、図3のステップS301の詳細処理を示すフローチャートである。
図4に示すステップS401からステップS404までの処理は、情報処理装置100の外部メモリ211に記憶されたプログラムをCPU201が実行することにより実現される。
まず、情報処理装置100のCPU201は、プログラムが実行されると、情報処理装置100の外部メモリ211に記憶されている図15に示すデータを読み込む。
図15は、情報処理装置100の外部メモリ211に記憶されているルビ付き文書データを出力するために用いるデータの一例を説明するための図である。
ここで、図15について説明する。
図15に示す通り、情報処理装置100の外部メモリ211には、文字枠の情報1501、段落の情報1502、行分割位置1503、本文の文字情報1504、文字属性情報1505、ルビ属性情報1506が記憶されている。
文字枠の情報1501は、文字枠の高さ、文字枠の幅、文字枠の配置位置から構成されている。
また、段落の情報1502は、段落番号、当該段落番号で識別される段落に配置される文字列のデータと、当該段落番号で識別される段落の高さ、及び幅から構成されている。
また、行分割位置(情報)1503は改行位置を示す情報である。ここでは、改行される文字の、段落の先頭からの文字数により改行位置(行分割位置)が特定されている。
また、本文の文字情報1504は、文書(本文)内の文字列の文字コードから構成される。また、文字属性情報1505は、文字のサイズ(ポイント数)、フォントの種類、文字間の間隔などの文字の属性情報と、当該文字の属性情報が適用される文字を、段落の先頭からの文字数(開始位置と終了位置)により特定している。開始位置から終了位置までの文字に対して、設定されている文字の属性情報が適用される。
また、ルビ属性情報1506は、ルビ属性情報番号、親文字の開始位置、親文字の文字数、ルビの種別、ルビの配置位置、ルビ文字の区切り位置、ルビ文字、ルビ分割フラグ、親文字の分割位置、ルビ文字の分割位置、ルビの文字間隔、文字サイズ、フォントがそれぞれ対応して構成されている。
ルビ属性情報番号とは、設定されるルビを識別するための情報である。また、親文字の開始位置は、ルビの属性情報が適用される親文字を特定するための情報であり、本実施例では、適用される親文字の、段落先頭からの文字数が記憶されている。また、親文字の文字数は、ルビの属性情報が適用される、親文字の開始位置からの文字数である。
また、ルビの種別は、適用されるルビがモノルビ、グループルビ、熟語ルビのどの種類のルビかを識別するための情報が記憶されている。また、ルビの配置位置は、親文字に対して上側に付されるルビなのか、それとも下側に付されるルビなのかを識別可能に設定されている。本実施の形態では、親文字が横方向の文字列を想定して説明するため、付されるルビが親文字の上側か下側かを設定しているが、親文字が縦方向の文字列の場合は、親文字に対して右側や左側を設定してもよい。
また、ルビ文字の区切り位置には、ルビの分割位置の候補(分割候補位置)が記憶される。また、ルビ文字は、親文字に付されるルビの文字のことである。
また、ルビ分割フラグは、ルビを分割するか否かを「0」と「1」とで識別可能に設定されている。
また、親文字の分割位置は、親文字(列)のどこが分割されるかを示す情報であり、本実施例では、親文字の始めの文字から何文字目になったら、次の文字(列)を分割するかの情報が設定されている。すなわち、分割された場合に、分かれる前方の親文字の数が設定されている。
また、ルビ文字の分割位置は、どこでルビが分割されるかを示す情報であり、本実施例では、ルビの始めの文字から何文字目になったら、次のルビの文字(列)を分割するかの情報が設定されている。すなわち、分割された場合に、分かれる前方のルビの文字数が設定されている。
また、ルビの文字間隔は、出力されるルビの文字間隔を示している。また、文字サイズは、出力されるルビのサイズ(大きさ)を示している。また、フォントは、出力されるルビのフォントの種類が設定される。
<図20の説明>
ここで、図15のルビ属性情報1506に記憶されるデータの登録について、説明する。
図20は、ルビを登録するための画面の一例を示す図である。
ルビ登録画面2000は、ユーザにより親文字を入力する入力欄2001と、当該入力欄に入力された親文字に対して上ルビとして設定するルビの種別の選択を受け付けるラジオボタン2002と、当該上ルビとして出力する文字列を入力する入力欄2003と、当該入力欄に入力された親文字に対して下ルビとして設定するルビの種別の選択を受け付けるラジオボタン2004と、当該下ルビとして出力する文字列を入力する入力欄2005と、登録ボタン2006、キャンセルボタン2007とから構成されている。
ここで、下ルビとは、親文字に対して付されたルビであり、親文字の下に出力されるルビのことである。また、上ルビとは、親文字に対して付されたルビであり、親文字の上に出力されるルビのことである。
本実施例では、親文字が横書きの場合の下ルビと上ルビを事例に説明するが、親文字が縦書きの場合は、下ルビ、上ルビの代わりに、それぞれ右ルビ、左ルビと言い換えても良い。ここで右ルビとは、親文字に対して付されたルビであり、親文字の右に出力されるルビのことである。また、左ルビとは、親文字に対して付されたルビであり、親文字の左に出力されるルビのことである。
ユーザにより、ルビを設定する親文字が2001に入力され、ルビの配置位置(上ルビ/下ルビ)に設定するルビの種別が選択され、入力欄2003及び/又は入力欄205にルビが入力される。そして、ユーザにより登録ボタン2006が押下されると、ルビ登録画面2000で入力(選択)されたデータが登録される。
次に、図4の説明に戻る。
図15に示すデータを読み込んだあとに、処理対象の文字列を設定する。具体的には、ルビ属性情報1506の「親文字の開始位置」で数値の小さい親文字から処理の対象に設定する。すなわち、本文の始めの文字列から処理対象に設定する。
そして、設定された処理対象の文字列(対象文字列)に対して、ルビの配置位置に上ルビが設定されているか否かを判定する(ステップS401)。そして、ルビの配置位置に上ルビが設定されていれば、「上ルビのルビ配置処理」を実行する(ステップS402)。ステップS402の詳細処理は、図5を用いて後述する。
ステップS401でルビの配置位置に上ルビが設定されていと判定された場合は、処理をステップS403に移行し、ルビの配置位置に下ルビが設定されているか否かを判定する(ステップS403)。そして、ルビの配置位置に下ルビが設定されていれば、「上ルビのルビ配置処理」を実行する(ステップS404)。ステップS402の詳細処理は、図5を用いて後述する。
ここで、ステップS402とステップS404のルビ配置処理は、処理対象が上ルビか下ルビかの違いであり、本実施の形態では、図5の説明をすることで、ステップS402とステップS404をすることとする。
<図5の説明>
図5は、図4のステップS402及びステップS404の詳細処理を示すフローチャートである。
図5に示すステップS501からステップS504までの処理は、情報処理装置100の外部メモリ211に記憶されたプログラムをCPU201が実行することにより実現される。
まず、情報処理装置100のCPU201は、読み出したルビ属性情報で、現在処理対象の対象文字列(親文字)に対して設定されているルビの種類を判定する(ステップS501)。具体的には、「ルビ種類」がグループルビに設定されているか、モノルビに設定されているか、熟語ルビに設定されているか、を判定する。
そして、ステップS501でモノルビと設定されていると判定された場合は、処理をステップS502に移行して、モノルビ処理を実行する。モノルビ処理の詳細処理は、図6を用いて後述する。
また、ステップS501でグループルビと設定されていると判定された場合は、ステップS503に処理を移行して、グループルビ処理を実行する(ステップS503)。グループルビ処理の詳細処理は、図7を用いて後述する。
また、ステップS501で熟語ルビと設定されていると判定された場合は、ステップS504に処理を移行して、熟語ルビ処理を実行する(ステップS504)。熟語ルビ処理の詳細処理は、図8を用いて後述する。
<図6の説明>
図6は、図5のステップS502の詳細処理を示すフローチャートである。
図6に示すステップS601からステップS606までの処理は、情報処理装置100の外部メモリ211に記憶されたプログラムをCPU201が実行することにより実現される。
まず、情報処理装置100のCPU201は、ルビの文字列長を算出する(ステップS601)。具体的には、現在、処理対象の文字列(親文字)に設定されているルビ属性情報内のルビの文字数、ルビの文字サイズ、フォント、ルビの文字間隔から、当該親文字に付されるルビの文字列の長さ(文字列長)を算出する。
次に、情報処理装置100のCPU201は、親文字列長を算出する(ステップS602)。具体的には、現在、処理対象の文字列(親文字)に対応する、ルビ属性情報内の親文字数、ルビ種別などと、文字属性情報内の親文字の文字属性情報1505内の文字サイズ、文字間隔、フォントなどとから、処理対象の文字列(親文字)の長さ(親文字列長)を算出する。
次に、情報処理装置100のCPU201は、ステップS602で算出された親文字列長よりも、ステップS601で算出されたルビの文字列長が長いか否かを判定する(ステップS603)。そして、親文字列長よりも、ルビの文字列長の方が長いと判定された場合は(ステップS603:YES)、ルビの文字列長が親文字列長以下になるように、親文字の前後の文字の文字間隔を調整する(ステップS604)。一方、親文字列長がルビの文字列長以下であると判定された場合は(ステップS603:NO)、処理をステップS605に移行する。ステップS604でルビの文字列長が親文字列長以下になるように、親文字の前後の文字の文字間隔を調整した後に、又は、親文字列長がルビの文字列長以下であると判定された場合は(ステップS603:NO)、現在処理対象の文字列を組版し(ステップS605)、処理対象の文字列に対するルビを組版する(ステップS606)。ステップS605、ステップS606で、組版される親文字とルビは、ルビ属性情報に記憶されており、現在処理対象の文字列と当該文字列に対応するルビが組版される。
<図7の説明>
図7は、図5のステップS503の詳細処理を示すフローチャートである。
図7に示すステップS701からステップ707までの処理は、情報処理装置100の外部メモリ211に記憶されたプログラムをCPU201が実行することにより実現される。
ステップS701、ステップS702及びステップS703は、それぞれステップS601とステップS602とステップS603と同様なので、ここでは説明を省略する。
ステップS703で、親文字列長よりも、ルビの文字列長の方が長いと判定された場合は(ステップS703:YES)、ルビの文字列長と親文字列長が同じになる親文字間の間隔を算出する(ステップS704)。一方、親文字列長がルビの文字列長以下であると判定された場合は(ステップS703:NO)、処理をステップS705に移行する。ステップS705では、ルビの文字列長と親文字列長とが同じになるルビの文字列の間隔を算出する。
次に、ステップS704又はステップS705を実行したあと、処理をステップS706に移行する。ステップS706及びステップS707はそれぞれ、図6に示すステップS605及びステップS606と同様なので、ここでは説明を省略する。
<図8の説明>
図8は、図5のステップS504の詳細処理を示すフローチャートである。
図8に示すステップS801からステップ807までの処理は、情報処理装置100の外部メモリ211に記憶されたプログラムをCPU201が実行することにより実現される。
ステップS801、ステップS802、ステップS803、ステップS804、ステップS805、ステップS806、ステップS807はそれぞれ、ステップS701、ステップS702、ステップS703、ステップS704、ステップS705、ステップS706、ステップS707と同様なのでここでは説明を省略する。
<図9の説明>
図9は、図3のステップS303の詳細処理を示すフローチャートである。
図9に示すステップS901からステップS907までの処理は、情報処理装置100の外部メモリ211に記憶されたプログラムをCPU201が実行することにより実現される。
情報処理装置100のCPU201は、ステップS302で、現在の対象文字列が、文字枠の幅を超えると判定(改行すると判定)された場合は、現在の処理対象の文字列に対して、上ルビと下ルビが付されているか否かを判定する(ステップS901)。具体的には、現在の処理対象文字列に対する、ルビ属性情報内のルビの配置位置に上ルビと下ルビが付されているか否かを判定する。
ここで、現在処理対象の文字列の一部が、他のルビ属性情報番号の文字列(親文字)と重複している場合、その文字列も処理対象となる。
具体的には、ルビ属性情報1506のルビ属性情報番号が1で処理対象になっている親文字は、「野鳥を観察し楽しむ」という文字列であり、上ルビとして「バードウォッチング」が設定されている。また、ルビ属性情報番号が2に、ルビ属性情報番号が1で処理対象になっている親文字と重複した「野鳥」に対して、下ルビとして「やちょう」が設定されている。このように、現在処理対象の文字列の一部が、他のルビ属性情報番号の文字列(親文字)と重複している場合、その文字列も処理対象となる。
このように、現在の処理対象の文字列に対して、上ルビと下ルビが設定されている場合(ステップS901:YES)、まずは上ルビが設定された親文字の分割位置の候補を決定するための処理(ステップS902)を実行する。一方、現在の処理対象の文字列に対して、上ルビと下ルビが共に設定されていない場合(ステップS901:NO)、ルビが設定された現在処理対象の文字列の分割位置の候補を決定するための処理(ステップS905)を実行する。
そして、ステップS902を実行した後、下ルビが設定された親文字の分割位置の候補を決定するための処理(ステップS903)を実行し、その後に、行分割位置まとめ処理(ステップS904)を行う。
ステップS905の処理の後に、ステップS905で決定された分割位置で改行する(ステップS906)。そして、グループルビの分割フラグをルビ属性情報1506に設定する。
ここで、ステップS902とステップS903とステップS905はそれぞれ、処理の対象が、上ルビか、下ルビか、設定されているルビかにより異なるだけあり、処理自体は変わらない。
ステップS902とステップS903とステップS905の詳細処理の説明を、図10を用いて後述する。
また、ステップS904の詳細処理の説明を、図11を用いて後述する。
<図10の説明>
図10は、図9のステップS902、S903、S905の詳細処理を示すフローチャートである。
図10に示すステップS1001からステップS1007までの処理は、情報処理装置100の外部メモリ211に記憶されたプログラムをCPU201が実行することにより実現される。
情報処理装置100のCPU201は、現在処理対象の文字列(親文字)の中のどこで行が切れるか(行の切れ目)(行端ともいう)を算出して特定する(ステップS1001)。
具体的には、現在処理対象の文字列が配置される行の文字の文字数、そのフォントサイズ(文字サイズ)、文字間隔、出力されるフォントなどから、当該行に配置される行頭の文字から各文字までの距離を算出する。そして、算出された各文字までの距離が、段落の情報1502の段落の幅を超える文字と、当該文字の隣に配置される、段落の幅を超えない文字との間を行の切れ目として特定する。
次に、特定された「行の切れ目」にグループルビが付されているかを判定し、グループルビが付されていると判定された場合は(ステップS1002:YES)、グループルビの先頭を改行位置の候補として設定する(ステップS1004)。すなわち、グループルビが設定された親文字と、グループルビが設定されていない親文字との間を改行位置の候補(分割候補位置)として設定する。
一方、特定された行の切れ目にグループルビが付されていないと判定された場合は(ステップS1002:NO)、行の切れ目に熟語ルビが付されているかを判定する(ステップS1003)。そして、熟語ルビが付されていると判定された場合は(ステップS1003:YES)、熟語ルビが設定された親文字の分割位置を改行位置候補に設定する(ステップS1005)。熟語ルビは、改行可能な親文字の位置が予め設定されているため、その改行可能な位置を親文字の改行位置の候補として設定される。この予め設定された改行可能な位置は記憶されている。
次に、ステップS1003で熟語ルビが付されていないと判定された場合は(ステップS1003:NO)、行の切れ目を親文字の改行位置の候補として設定する(ステップS1006)。
そして、ステップS1004、ステップS1005、ステップS1006で設定されたルビが設定された親文字の分割位置の候補を、ルビ属性情報1506の「ルビ文字の区切り位置」に記憶する(ステップS1007)。
図9のステップS902では、上ルビを処理の対象として、図10に示す処理を実行し、図9のステップS903では、下ルビを処理の対象として、図10に示す処理を実行する。
また、図9のステップS905では、付されている上ルビ又は下ルビを処理の対象として、図10に示す処理を実行する。
<図11の説明>
図11は、図9のステップS904の詳細処理を示すフローチャートである。
図11に示すステップS1101からステップS1106までの処理は、情報処理装置100の外部メモリ211に記憶されたプログラムをCPU201が実行することにより実現される。
情報処理装置100のCPU201は、まず、ステップS1006及び/又はステップS1005及び/又はステップS1004で候補として設定された、上ルビと下ルビとして設定された親文字の分割位置が同じか否かを判定する(ステップS1101)。ここでは、行の切れ目と上ルビと下ルビの親文字の分割位置とが同じかを判定している。
そして、分割位置の候補が同じ位置にある場合、候補として同じ分割位置を、分割位置に決定し設定する(ステップS1003)。
一方、ステップS1101で、行の切れ目と、候補として設定された上ルビと下ルビの分割位置が異なると判定された場合は、上ルビと下ルビの両方がグループルビか否かを判定する(ステップS1102)。そして、上ルビと下ルビの両方がグループルビであると判定された場合は、ステップS1104に処理を移行して、分割位置を決定するための処理を実行する。ステップS1104の詳細処理の説明は、図12を用いて後述する。
ステップS1002において、上ルビと下ルビの両方がグループルビではないと判定された場合は、グループルビではない方のルビが設定された親文字の分割位置候補(分割候補位置)の中から、分割位置を決定し設定する(ステップS1106)。ここでの分割位置の決定方法については、図18の1802及び図19の1901、1902を用いて説明する。
次に、ステップS1104の処理を実行したあと、を実行する(ステップS1105)。グループルビの分割処理の詳細処理は、図13を用いて後述する。
<図12の説明>
図12は、図11のステップS1104の詳細処理を示すフローチャートである。
図12に示すステップS1201からステップS1210までの処理は、情報処理装置100の外部メモリ211に記憶されたプログラムをCPU201が実行することにより実現される。
情報処理装置100のCPU201は、行の切れ目の位置から、上ルビの分割候補位置までの距離をD1として算出する(ステップS1201)。次に、行の切れ目位置から、下ルビの分割候補位置までの距離D2を算出する(ステップS1202)。ここでの処理を、図17を用いて説明する。
図17は、親文字に対して行の切れ目位置から分割候補位置までの距離を説明するための図である。
図17には、親文字である「○×△●□▲■▽○▼」が右方向に記載されている例を示している。ここで、「□▲■▽」の親文字に対して上ルビとしてグループルビが付されることを示している。また、「△●□▲」の親文字に対して下ルビとしてグループルビが付されることを示している。
したがって、上ルビの分割候補位置は、「●」と「□」の間と、「▽」と「○」の間となる。また、下ルビの分割候補位置は、「×」と「△」の間と、「▲」と「■」の間となる。
そして、図17には、「▲」と「■」の間に行の切れ目の位置があることを示している。
このような場合、ステップS1201で算出されるD1は、図17に示すように、行の切れ目の位置から上ルビの分割候補位置までの距離となり、また、ステップS1202で算出されるD2は、図17に示すように、行の切れ目の位置から下ルビの分割候補位置までの距離となる。
「現在処理対象の文字列が配置される行の行頭の文字から分割候補位置までの距離」から、「行頭の文字から行の切れ目の位置までの距離」を減算することにより、行の切れ目から分割候補位置までの距離を算出することができる。
このようにして算出されたD1が0(ゼロ)よりも小さい値か否かを判定する(ステップS1203)。すなわち、行の切れ目の位置から行頭に向かって上ルビの分割候補位置があるか否かを判定する。
そして、ステップS1203で、D1が0(ゼロ)よりも小さい値と判定された(行の切れ目の位置から行頭に向かって上ルビの分割候補位置がない)場合は(ステップS1203:YES)、D2が0(ゼロ)よりも小さい値か否かを判定する(ステップS1204)。すなわち、行の切れ目の位置から行頭に向かって下ルビの分割候補位置があるか否かを判定する。
ステップS1203で、D1が0(ゼロ)以上であると判定された場合は(ステップS1203:NO)、D2が0(ゼロ)よりも小さい値か否かを判定する(D2が0(ゼロ)以上であるか否かを判定する)(ステップS1207)。D2が0(ゼロ)よりも小さい値であると判定された場合は、上ルビの分割候補位置の中から分割位置に決定する(ステップS1210)。
具体的には、上ルビの分割候補位置の中から、行の切れ目の位置から行頭に向かって最も近い分割候補位置を選択して、その箇所を分割位置として決定する。行の切れ目の位置に上ルビの分割候補位置がある場合は、その位置を分割位置として決定する。
また、ステップS1207において、D2が0(ゼロ)以上であると判定された場合は(ステップS1207:NO)、D2がD1より長いか否かを判定する(ステップS1208)。そして、D2がD1より長いと判定された場合は(ステップS1208:YES)、処理をステップS1210に移行して、上述した通り、上ルビの分割候補位置の中から分割位置に決定する。
また、ステップS1207において、D2が0(ゼロ)より小さい値であると判定された場合(ステップS1207:YES)、すなわち、行の切れ目の位置から行頭に向かって下ルビの分割候補位置がないと判定された場合は、ステップS1210に移行して、上述した通り、上ルビの分割候補位置の中から分割位置に決定する。
また、ステップS1208において、D1がD2以上の長さの場合は、ステップs1209に移行して、下ルビの分割候補位置を分割位置として決定する。
具体的には、下ルビの分割候補位置の中から、行の切れ目の位置から行頭に向かって最も近い分割候補位置を選択して、その箇所を分割位置として決定する。行の切れ目の位置に下ルビの分割候補位置がある場合は、その位置を分割位置として決定する。
また、ステップS1204において、D2が0(ゼロ)以上の値である、すなわち、行の切れ目の位置から行頭に向かって下ルビの分割候補位置があると判定された場合(ステップS1204:NO)、処理をステップS1209に移行する。
また、ステップS1204において、D2が0(ゼロ)よりも小さい値である、すなわち、行の切れ目の位置から行頭に向かって下ルビの分割候補位置がないと判定された場合(ステップS1204:YES)は、行の切れ目を分割位置として決定する(ステップS1205)。
また、ステップS1205、ステップS1209、ステップS1210で決定されルビが設定された親文字の分割位置を、ルビ属性情報1506の「親文字の分割位置」に記憶する(ステップ1206)。ここでは、親文字の分割位置(LG1)を、ルビ属性情報1506内の「親文字の分割位置」に記憶する。
<図13の説明>
図13は、図11のステップS1105の詳細処理を示すフローチャートである。
図13に示すステップS1301からステップS1307までの処理は、情報処理装置100の外部メモリ211に記憶されたプログラムをCPU201が実行することにより実現される。
情報処理装置100のCPU201は、まず、グループルビの文字列の中に(途中に)分割位置があるか否かを判定する(ステップS1301)。
具体的には、ルビ属性情報1506内のルビ分割フラグが「1」か「0」かの判定を行う。
そして、グループルビの文字列の中に(途中に)分割位置がある(ルビ分割フラグが「1」)と判定された場合は(ステップS1301:YES)、分割位置よりも前の親文字数(LG1)を、ルビ属性情報1506の「親文字の分割位置」の項目から取得する。
また、ルビ属性情報から、処理対象の親文字の文字数(全文字数)を取得する。そして、親文字の文字数(全文字数)から、分割される場合の、前方側の親文字数(分割位置よりも前の親文字数)を引くことにより、分割位置より後の親文字の文字数(LG2)を算出して取得する(ステップS1302)。
そして、処理対象のルビ(文字)(LR)(例えば、バードウォッチングなどのルビ文字)を、ルビ属性情報1506の「ルビ文字」の項目から取得する(ステップS1303)。
次に、分割位置よりも前のルビの文字数を、次式を算出することにより取得する(ステップS1304)。
(式)「分割位置よりも前のルビの文字数(LR1)」=「ルビの文字数(LR)」×「分割位置より前の親文字数(LG1)」÷(「分割位置より前の親文字数(LG1)」+「分割位置より後の親文字数(LG2)」)
上述した式を用いて算出された「分割位置よりも前のルビの文字数(LR1)」が、整数として表すことが出来ない値(小数など)の場合、例えば、小数点以降の小数を、四捨五入などして整数に丸める(ステップS1305)。
そして、ステップS1303で取得したルビの文字数から、ステップS1305で算出された整数の「分割位置よりも前のルビの文字数(LR1)」を減算することにより、「分割位置よりも後のルビの文字数(LR2)」を算出する。ここで、算出された「分割位置よりも後のルビの文字数(LR2)」を設定する(ステップS1306)。
次に、ステップS1306で設定された「分割位置より前のルビ文字数(LG1)」を、ルビ属性情報1506の「ルビ文字の分割位置」の項目に記憶する(ステップS1307)。
図16は、親文字とルビの分割位置を説明するための図である。
図16に示す通り、「野鳥を観察し楽しむという」が親文字であり、この親文字(文字列)に対して「バードウォッチング」がグループルビとして出力される。
「野鳥」と「を観察し楽しむという」の間で分割される場合、親文字が2文字と10文字に分割される。これに比例して、グループルビも2文字と7文字に分割される。
ここでは、2文字に分割された親文字をLG1、10文字に分割された親文字をLG2として表し、2文字に分割されたグループルビをLR1、7文字に分割されたグループルビをLR2として表している。
<図14の説明>
図14は、図3のステップS304の詳細処理を示すフローチャートである。
図14に示すステップS1401からステップS1407までの処理は、情報処理装置100の外部メモリ211に記憶されたプログラムをCPU201が実行することにより実現される。
情報処理装置100のCPU201は、まず、ルビ属性情報1506の「ルビ種類」がグループルビであり、かつ「ルビ分割フラグ」が「1」であるか否かを判定する(ステップS1401)。
そして、「ルビ種類」がグループルビであり、かつ「ルビ分割フラグ」が「1」であると判定された場合は(ステップS1401:YES)、図13に示す処理で決定されたルビ文字の分割位置でルビを分割する。このように、親文字数の分割された文字数の割合でルビ文字を分割する(ステップS1406)。
そして、分割されたルビをグループルビとして組版して処理をステップS1403に移行する。
また、ステップS1401において、「ルビ種類」がグループルビではない、又は「ルビ分割フラグ」が「0」であると判定された場合は(ステップS1401:NO)、「ルビ種類」が熟語ルビであり、かつ「ルビ分割フラグ」が「1」であるか否かを判定する(ステップS1402)。そして、「ルビ種類」が熟語ルビであり、かつ「ルビ分割フラグ」が「1」であると判定された場合は(ステップS1402:YES)、決定された分割位置により分割された親文字に従ってルビ文字を分割する(ステップS1404)。
複数も文字から構成される文字列に対して熟語ルビが設定されている場合、モノルビのように出力するために、各文字に対応するルビが関連付けて記憶されている。したがって、ステップS1404では、分割される親文字の位置で、ルビも分割されることとなる。
このように、分割されたルビを組版して処理をステップS1403に移行する。
ステップS1403では、ここで分割され組版されたデータを設定する。
<図18の説明>
図18は、親文字に対して複数のルビが付与された場合の親文字と複数のルビの分割(改行)の例を説明するための図である。
図18の1801は、右方向に文章を記載した親文字「○○○」に対して上ルビのグループルビ「▲▲▲▲▲▲」が設定され、一部親文字が重複した「○○○」に対して下ルビのグループルビ「▽▽▽▽▽▽」が設定されている例を示している。
ここでの例の場合、これら2つの親文字を処理対象の文字列「○○○○○○」とし、1801で示す箇所が行の切れ目であることを示している。上ルビに付されたルビはグループであるため、上ルビのグループルビが設定された親文字と、上ルビのグループルビが設定されていない文字との間に分割候補位置を点線で示している。下ルビもグループルビなのでこれと同様に、下ルビのグループルビが設定された親文字と、下ルビのグループルビが設定されていない文字との間に分割候補位置を点線で示している。
また、1801の行の切れ目の場合、行の切れ目から行頭に向かって最も近い分割候補位置を分割位置(改行位置)として決定している。分割位置(改行位置)は、実線で示している。また、実線で示される分割位置で改行された場合、1801に示すように、親文字「○○○」に対して、上ルビのグループルビ「▲▲▲▲▲▲」が設定され、下ルビのグループルビ「▽▽」が設定されている。また、改行された部分は、親文字「○○」に対して分割された下ルビの「▽▽▽▽」が設定され、これらの設定の結果が出力される。
また、実線で示す分割位置で改行された場合、行の切れ目と分割位置の間に1文字分のスペースが出来てしまうため、このような場合は、ここにスペース(空白)のコードを入れるようにしてもよい。
このように、分割された親文字の文字数の割合に比例して、分割するルビの文字数を決定し分割する。
次に、図18の1802は、右方向に文章を記載した親文字「○○○」に対して、上ルビにグループルビ「▲▲▲▲▲▲」が設定され、一部親文字が重複した「○○○○」下ルビにモノルビ「▽▽▽▽▽▽▽▽▽」が設定されている例を示している。
ここでの例の場合、これら2つの親文字を処理対象の文字列「○○○○○○」とし、1802で示す箇所が行の切れ目であることを示している。上ルビに付されたルビはグループであるため、上ルビのグループルビが設定された親文字と、上ルビのグループルビが設定されていない文字との間に分割候補位置を点線で示している。下ルビはモノルビであるため、モノルビが付されている親文字(文字列)内の各文字間と、ルビが設定された親文字とルビが設定されていない親文字との間と、に分割候補位置を点線で示している。
また、1802の行の切れ目の場合、行の切れ目と分割候補位置とが同じ位置にあるため、行の切れ目を分割位置(改行位置)として決定している。分割位置(改行位置)は、実線で示している。また、実線で示される分割位置で改行された場合、1802に示すように、親文字「○○○」(親文字の先頭3文字)に対して、上ルビのグループルビ「▲▲▲▲▲▲」が設定され、親文字「○○○」(親文字の先頭文字の2文字目から4文字目までの文字)に対して、下ルビのグループルビ「▽▽▽▽▽▽▽」が設定されている。また、改行された部分は、親文字「○」に対して分割された下ルビの「▽▽」が設定され、これらの設定の結果が出力されている。
このように、処理対象の文字列の中にモノルビがあり、行の切れ目にモノルビが付されている場合は、1802に示すように親文字が行の切れ目で分割される。
ルビの分割位置は、親文字が分割される文字間の各文字にモノルビとして設定されたルビの間となる。
<図19の説明>
図19は、親文字に対して複数のルビが付与された場合の親文字と複数のルビの分割(改行)の例を説明するための図である。
次に、図19の1901は、右方向に文章を記載した親文字「○○○」に対して、上ルビにグループルビ「▲▲▲▲▲▲」が設定され、一部親文字が重複した「○○○○」下ルビに熟語ルビ「▽▽▽▽▽▽▽▽▽」が設定されている例を示している。
ここでの例の場合、これら2つの親文字を処理対象の文字列「○○○○○○」とし、1901で示す箇所が行の切れ目であることを示している。上ルビに付されたルビはグループルビであるため、上ルビのグループルビが設定された親文字と、上ルビのグループルビが設定されていない文字との間に分割候補位置を点線で示している。
また、下ルビは熟語ルビであるため、熟語ルビが付されている親文字(文字列)内で熟語ルビとして分割可能な箇所(設定されている)を点線で示している。この点線の箇所(位置)を分割候補位置として示している。
また、1901の行の切れ目の場合、行の切れ目と分割候補位置とが同じ位置にあるため、行の切れ目を分割位置(改行位置)として決定している。分割位置(改行位置)は、実線で示している。
また、実線で示される分割位置で改行された場合、1901に示すように、親文字「○○」(親文字の先頭2文字)に対して、上ルビのグループルビ「▲▲▲▲」が設定され、親文字「○」に対して下ルビの熟語ルビ「▽▽」が設定されている。また、親文字「○○○」(親文字の先頭文字の3文字目から5文字目までの文字)に対して、下ルビのグループルビ「▽▽▽▽▽▽▽」が設定されている。また、改行された親文字「○」(親文字の先頭文字の3文字目)に対して、上ルビ「▲▲」が設定されている。このような処理がなされ出力される。
このように、処理対象の文字列の中にグループルビと熟語ルビがある場合で、行の切れ目に熟語ルビが付されている場合、行の切れ目が熟語ルビとして分割可能な位置であれば、1901に示すように、その行の切れ目で親文字が分割される。
このときのルビの分割位置について説明する。グループルビの文字列の途中で分割される場合、分割される親文字の文字数の割合に比例して、分割するルビの文字数を決定し分割する。
また、熟語ルビの文字列の途中で分割される場合のルビの分割位置は、親文字が分割される文字間の各文字に熟語ルビとして設定されたルビの間となる。
次に、図19の1902は、右方向に文章を記載した親文字「○○○」に対して、上ルビに熟語ルビ「▲▲▲▲▲▲」が設定され、一部親文字が重複した「○○○○」の下ルビにモノルビ「▽▽▽▽▽▽▽▽▽」が設定されている例を示している。
ここでの例の場合、これら2つの親文字を処理対象の文字列「○○○○○○」とし、1902で示す箇所が行の切れ目であることを示している。
上ルビに付されたルビは熟語ルビであるため、熟語ルビが付されている親文字(文字列)内で熟語ルビとして分割可能な箇所(設定されている)を点線で示している。この点線の箇所(位置)を分割候補位置として示している。分割候補位置を点線で示している。
また、下ルビはモノルビであるため、モノルビが付されている親文字(文字列)内の各文字間と、ルビが設定された親文字とルビが設定されていない親文字との間と、に分割候補位置を点線で示している。
また、1902の行の切れ目の場合、行の切れ目と分割候補位置とが同じ位置にあるため、行の切れ目を分割位置(改行位置)として決定している。分割位置(改行位置)は、実線で示している。
また、実線で示される分割位置で改行された場合、1902に示すように、親文字「○○」(親文字の先頭2文字)に対して、上ルビのグループルビ「▲▲▲▲」が設定され、親文字「○」(親文字の先頭文字の2文字目の文字)に対して下ルビの熟語ルビ「▽▽」が設定されている。また、親文字「○○○」(親文字の先頭文字の3文字目から5文字目までの文字)に対して、下ルビのグループルビ「▽▽▽▽▽▽▽」が設定されている。また、改行された親文字「○」(親文字の先頭文字の3文字目の文字)に対して、上ルビ「▲▲」が設定されている。このような処理がなされ出力される。
このように、処理対象の文字列の中にモノルビがあり、行の切れ目にモノルビが付されている場合、1902に示すようにその行の切れ目で親文字が分割される。
ルビの分割位置は、親文字が分割される文字間の各文字にモノルビとして設定されたルビの間となる。
以上説明したように、本実施の形態によれば、親文字に対して複数のルビが設定された文字列(親文字とルビ)の分割場所を判定することにより、簡易に見栄えの良い文書を出力させることができる。
以上、本発明の一実施形態を詳述したが、本発明は、例えば、システム、装置、方法、プログラムもしくは記憶媒体等としての実施態様をとることが可能であり、具体的には、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
また、本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU)が記憶媒体に格納されたプログラムコードを読み出し実行することによっても、達成されることは言うまでもない。
この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、プログラムコード自体及びそのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
プログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、CD−ROM、CD−R、磁気テープ、不揮発性のメモリカード、ROM等を用いることができる。
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているOS(基本システム或いはオペレーティングシステム)などが実際の処理の一部又は全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPU等が実際の処理の一部又は全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
100 情報処理装置 200 情報処理装置 300 複合機 400 ネットワーク

Claims (7)

  1. 文字枠に配置される文字列に対するルビの出力制御を行う情報処理装置であって、
    前記文字枠の幅の情報を含む文字枠情報と、当該文字枠に配置される文字列とを記憶する記憶手段と、
    前記記憶手段に記憶された文字列を構成する一つ以上の文字に対して複数のルビを設定する設定手段と、
    前記記憶手段に記憶された文字枠情報に従って、前記設定手段で複数のルビが設定された文字を含む文字列内の文字間が該文字枠の行端に配置されるかを判定する判定手段と、
    前記判定手段で該行端に配置されると判定された当該文字列内の文字に設定されたルビの種類に従って、当該ルビが設定されている文字列の改行位置の候補を改行候補位置として決定する候補位置決定手段と、
    前記候補位置決定手段により決定された改行候補位置と該行端との位置関係に従って、前記候補位置決定手段により決定された改行候補位置の中から当該文字列の改行位置を選択する改行位置選択手段と、
    前記改行位置選択手段により選択された前記文字列の改行位置に従って、当該文字列に設定された複数のルビの改行位置を決定するルビ改行位置決定手段と、
    前記改行位置選択手段により選択された改行位置で改行された文字列と、前記ルビ改行位置決定手段により決定された改行位置で改行されたルビとを出力する出力手段と、
    を備えることを特徴とする情報処理装置。
  2. 前記設定手段で複数設定されたルビの種類を判定する種類判定手段と、
    を更に備え、
    前記候補位置決定手段は、更に、前記種類判定手段で判定されたルビの種類に従って、当該ルビが設定されている文字列の改行候補位置を決定すること特徴とする請求項1に記載の情報処理装置。
  3. 前記設定手段は、前記記憶手段に記憶された文字列を構成する一つ以上の文字に対して複数のグループルビが設定し、
    前記候補位置決定手段は、前記設定手段で設定された複数のグループルビのうち一つのグループルビが設定された文字列と当該グループルビが設定されていない文字列との間を改行候補位置と決定することを特徴とする請求項1又は2に記載の情報処理装置。
  4. 前記改行位置選択手段は、前記候補位置決定手段により決定された改行候補位置の中から、文字枠の行端の位置から最も近い改行候補位置を選択することを特徴とする請求項1乃至3のいずれか1項に記載の情報処理装置。
  5. 前記ルビ改行位置決定手段は、前記改行位置選択手段により選択された改行位置により分割された文字数の割合に従って、当該文字列に設定された複数のルビの改行位置を決定することを特徴とする請求項1乃至4のいずれか1項に記載の情報処理装置。
  6. 文字枠の幅の情報を含む文字枠情報と、当該文字枠に配置される文字列とを記憶する記憶手段を備えた情報処理装置における情報処理方法であって、
    前記情報処理装置の設定手段が、前記記憶手段に記憶された文字列を構成する一つ以上の文字に対して複数のルビを設定する設定工程と、
    前記情報処理装置の判定手段が、前記記憶手段に記憶された文字枠情報に従って、前記設定工程で複数のルビが設定された文字を含む文字列内の文字間が該文字枠の行端に配置されるかを判定する判定工程と、
    前記情報処理装置の候補位置決定手段が、前記判定工程で該行端に配置されると判定された当該文字列内の文字に設定されたルビの種類に従って、当該ルビが設定されている文字列の改行位置の候補を改行候補位置として決定する候補位置決定工程と、
    前記情報処理装置の改行位置選択手段が、前記候補位置決定工程により決定された改行候補位置と該行端との位置関係に従って、前記候補位置決定工程により決定された改行候補位置の中から当該文字列の改行位置を選択する改行位置選択工程と、
    前記情報処理装置のルビ改行位置決定手段が、前記改行位置選択工程により選択された前記文字列の改行位置に従って、当該文字列に設定された複数のルビの改行位置を決定するルビ改行位置決定工程と、
    前記情報処理装置の出力手段が、前記改行位置選択工程により選択された改行位置で改行された文字列と、前記ルビ改行位置決定工程により決定された改行位置で改行されたルビとを出力する出力工程と、
    を備えることを特徴とする情報処理方法。
  7. 文字枠に配置される文字列に対するルビの出力制御を行う情報処理装置で読み取り実行可能なプログラムであって、
    前記プログラムは、
    前記文字枠の幅の情報を含む文字枠情報と、当該文字枠に配置される文字列とを記憶する記憶手段と、
    前記記憶手段に記憶された文字列を構成する一つ以上の文字に対して複数のルビを設定する設定手段と、
    前記記憶手段に記憶された文字枠情報に従って、前記設定手段で複数のルビが設定された文字を含む文字列内の文字間が該文字枠の行端に配置されるかを判定する判定手段と、
    前記判定手段で該行端に配置されると判定された当該文字列内の文字に設定されたルビの種類に従って、当該ルビが設定されている文字列の改行位置の候補を改行候補位置として決定する候補位置決定手段と、
    前記候補位置決定手段により決定された改行候補位置と該行端との位置関係に従って、前記候補位置決定手段により決定された改行候補位置の中から当該文字列の改行位置を選択する改行位置選択手段と、
    前記改行位置選択手段により選択された前記文字列の改行位置に従って、当該文字列に設定された複数のルビの改行位置を決定するルビ改行位置決定手段と、
    前記改行位置選択手段により選択された改行位置で改行された文字列と、前記ルビ改行位置決定手段により決定された改行位置で改行されたルビとを出力する出力手段として、前記情報処理装置を機能させることを特徴とするプログラム。
JP2009181975A 2009-08-04 2009-08-04 情報処理装置、情報処理方法及びプログラム Active JP5407647B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009181975A JP5407647B2 (ja) 2009-08-04 2009-08-04 情報処理装置、情報処理方法及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009181975A JP5407647B2 (ja) 2009-08-04 2009-08-04 情報処理装置、情報処理方法及びプログラム

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2013230470A Division JP5747202B2 (ja) 2013-11-06 2013-11-06 情報処理装置、情報処理方法及びプログラム

Publications (2)

Publication Number Publication Date
JP2011034463A true JP2011034463A (ja) 2011-02-17
JP5407647B2 JP5407647B2 (ja) 2014-02-05

Family

ID=43763452

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009181975A Active JP5407647B2 (ja) 2009-08-04 2009-08-04 情報処理装置、情報処理方法及びプログラム

Country Status (1)

Country Link
JP (1) JP5407647B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019144840A (ja) * 2018-02-20 2019-08-29 シナノケンシ株式会社 ルビ設定プログラム及びルビ設定装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01166250A (ja) * 1987-12-23 1989-06-30 Hitachi Ltd 文書処理方式
JPH0997252A (ja) * 1995-09-28 1997-04-08 Ricoh Co Ltd 訳語出力装置
JPH11191101A (ja) * 1997-12-25 1999-07-13 Dainippon Screen Mfg Co Ltd ルビを含む文章の組版方法
JP2007275335A (ja) * 2006-04-07 2007-10-25 Ge Medical Systems Global Technology Co Llc 人名表記方法および電子機器

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01166250A (ja) * 1987-12-23 1989-06-30 Hitachi Ltd 文書処理方式
JPH0997252A (ja) * 1995-09-28 1997-04-08 Ricoh Co Ltd 訳語出力装置
JPH11191101A (ja) * 1997-12-25 1999-07-13 Dainippon Screen Mfg Co Ltd ルビを含む文章の組版方法
JP2007275335A (ja) * 2006-04-07 2007-10-25 Ge Medical Systems Global Technology Co Llc 人名表記方法および電子機器

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
CSNG200800982002; 家辺 勝文: '日本語文書の視覚的構造化と論理的マークアップ' 情報知識学会誌 第18巻 第4号【ISSN】0917-1436, 20081129, 334〜343頁, 情報知識学会 *
JPN6013035711; 家辺 勝文: '日本語文書の視覚的構造化と論理的マークアップ' 情報知識学会誌 第18巻 第4号【ISSN】0917-1436, 20081129, 334〜343頁, 情報知識学会 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019144840A (ja) * 2018-02-20 2019-08-29 シナノケンシ株式会社 ルビ設定プログラム及びルビ設定装置

Also Published As

Publication number Publication date
JP5407647B2 (ja) 2014-02-05

Similar Documents

Publication Publication Date Title
JP6725714B2 (ja) モバイル向けのおよび他の表示環境をサポートするインタラクティブなサイトおよびアプリケーションの自動変換のためのシステムおよび方法
KR102382899B1 (ko) 디지털 노트 필기의 시스템 및 방법
US9875220B2 (en) Panoptic visualization document printing
JP5049515B2 (ja) 情報処理装置および情報処理方法および情報処理プログラム
US7966560B2 (en) Laying out web components using mounting and pooling functions
JP2011186742A (ja) レイアウト編集装置およびその制御方法およびプログラム
JP2009258966A (ja) 表示制御装置および表示制御方法
EP2711897B1 (en) Panoptic visualization document differencing
JP2005044279A (ja) 帳票処理方法、帳票処理プログラム、帳票処理装置
US8780404B2 (en) Information processing apparatus, method for controlling same, and storage medium on which computer program has been recorded
JP2003308310A (ja) 表示方法、表示装置、表示プログラム、および表示プログラムを記録した記録媒体
JP2012008884A (ja) 編集装置、編集装置におけるレイアウト編集方法およびプログラム
US9619126B2 (en) Computer-readable non-transitory storage medium with image processing program stored thereon, element layout changed material generating device, image processing device, and image processing system
JP5407647B2 (ja) 情報処理装置、情報処理方法及びプログラム
CN109445900B (zh) 用于图片显示的翻译方法和装置
KR102010522B1 (ko) 공동 편집 대상 문서 상에서 편집을 수행하고 있는 다른 유저의 이름 표시가 가능한 클라이언트 단말 장치 및 그 동작 방법
JP5747202B2 (ja) 情報処理装置、情報処理方法及びプログラム
JP2007305154A (ja) 表示制御のための方法、装置、プログラム、およびプログラム媒体
JP2008140158A (ja) 文書編集装置およびプログラム
JP2008141496A (ja) 文書編集装置およびプログラム
US20180189251A1 (en) Automatic multi-lingual editing method for cartoon content
JP2010105191A (ja) 画像処理装置
JP2005135273A (ja) 画像処理装置、画像処理方法、制御プログラム
JP2006072877A (ja) 文書編集装置、文書編集方法、文書編集プログラムおよびその記録媒体
US20130104014A1 (en) Viewer unit, server unit, display control method, digital comic editing method and non-transitory computer-readable medium

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20120130

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20120130

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120731

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20130531

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20130531

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130711

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130723

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130919

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20131008

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20131021

R150 Certificate of patent or registration of utility model

Ref document number: 5407647

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313115

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250