以下、図面を参照して本発明の実施形態を詳細に説明する。
図1は、本発明に係る情報処理システムのシステム構成の一例を示す図である。
図1に示すように、本実施形態に係る情報処理システムは、電子書籍端末101および外部装置102が、ネットワーク103により通信可能に接続された構成をとる。
以下、図2を用いて、図1に示した電子書籍端末101に適用可能なハードウエア構成の一例について説明する。
図2において、201はCPUで、システムバス204に接続される各デバイスやコントローラを統括的に制御する。また、ROM203あるいは外部メモリ211には、CPU201の制御プログラムであるBIOS(Basic Input / Output System)やオペレーティングシステムプログラム(以下、OS)や、各サーバ或いは各PCの実行する機能を実現するために必要な各種プログラム等が記憶されている。
202はRAMで、CPU201の主メモリ、ワークエリア等として機能する。CPU201は、処理の実行に際して必要なプログラム等をROM203あるいは外部メモリ211からRAM202にロードして、該ロードしたプログラムを実行することで各種動作を実現するものである。
また、205は入力コントローラで、入力装置209等からの入力を制御する。206はビデオコントローラで、液晶ディスプレイ等のディスプレイ装置210への表示を制御する。なお、ディスプレイ装置は、液晶ディスプレイに限られず、CRTディスプレイなどであっても良い。これらは必要に応じてクライアントが使用するものである。
207はメモリコントローラで、ブートプログラム,各種のアプリケーション,フォントデータ,ユーザファイル,編集ファイル,各種データ等を記憶するハードディスク(HD)や、フレキシブルディスク(FD)、或いはPCMCIAカードスロットにアダプタを介して接続されるコンパクトフラッシュ(登録商標)メモリ等の外部メモリ211へのアクセスを制御する。
208は通信I/Fコントローラで、ネットワーク(例えば、図1に示したLAN400)を介して外部機器と接続・通信するものであり、ネットワークでの通信制御処理を実行する。例えば、TCP/IPを用いた通信等が可能である。
なお、CPU201は、例えばRAM202内の表示情報用領域へアウトラインフォントの展開(ラスタライズ)処理を実行することにより、ディスプレイ装置210上での表示を可能としている。また、CPU201は、ディスプレイ装置210上の不図示のマウスカーソル等でのユーザ指示を可能とする。
ハードウエア上で動作する各種プログラムは、外部メモリ211に記録されており、必要に応じてRAM202にロードされることによりCPU201によって実行されるものである。
なお、全ての装置がこれらの構成を備えているわけではなく、必要なものを夫々備えていればよい。
次に、図3を用いて、本発明の実施形態において電子書籍端末101が行うルビ振り処理について説明する。
なお、図3のフローチャートで示す処理については、電子書籍端末101のCPU201が所定の制御プログラムを読み出して実行する処理である。
ステップS301では、電子書籍端末101のCPU201は、ユーザから図6に示す画面を介して、各種の設定を受け付ける。ここで受け付ける設定には、ルビを表示するか否かを決定するための倍率の設定(601)等が含まれる。
例えば、図6に示す画面の601において「拡大時のルビ」にチェックがされ、「倍率指定」として「150%」が設定された場合は、画面表示の倍率が150%にまで拡大された場合にルビを表示することが設定される。
また、「倍率指定」ではなく、「自動」が選択された場合には、後述するステップS307〜S309の処理を実行し、解像度などの図5に示すデータを用いてルビを表示するか否かを決定することとなる。
ステップS302では、電子書籍端末101のCPU201は、表示部に電子書籍データを表示する。なお、電子書籍データについては、あらかじめ電子書籍端末101の記憶領域に記憶されているもの、又は外部装置102から取得したデータである。
ステップS303では、電子書籍端末101のCPU201は、ユーザから表示倍率の変更指示を受け付ける。
表示倍率の変更を受け付ける方法については、ユーザにより表示倍率(例えば75%等)が指定されることで受け付けても良い。また、表示部がマルチタッチに対応したタッチパネルであれば、ピンチアウトやピンチインといった操作によって変更を受け付けても良い。ピンチアウトとは、2本の指を画面上に載せて指と指の間隔を広げる動作を指す。これにより表示倍率は高くなる(拡大表示される)。ピンチインとは、2本の指を画面上に載せてその間隔を縮める動作を指す。これにより表示倍率は低くなる(縮小表示される)。
ステップS304では、電子書籍端末101のCPU201は、ステップ302で表示した電子書籍データに既にルビが振られているか否かを判断する。既にルビが振られている場合(ステップS304:YES)は、処理を図4に示すフローチャートに移行する。図4のフローチャートに示す処理については、後述する。
ルビが振られていない場合(ステップS304:NO)は、処理をステップS305に移行する。
ステップS305では、電子書籍端末101のCPU201は、ステップS301で受け付けたルビ表示に関する設定が、「倍率指定」であるかを判断する。すなわち、図6の画面において、「拡大時のルビ」にチェックがされ、プルダウンリストから「倍率指定」が選択されているか否かを判断する。
倍率指定である場合(ステップS305:YES)は、処理をステップS310に移行する。
倍率指定ではない場合(ステップS305:NO)は、処理をステップS306に移行する。
ステップS306では、電子書籍端末101のCPU201は、ステップS301で受け付けたルビ表示に関する設定が、「自動」になっているかを判断する。すなわち、図6の画面において、「拡大時のルビ」にチェックがされ、プルダウンリストから「自動」が選択されているか否かを判断する。
自動である場合(ステップS306:YES)は、処理をステップS307に移行する。
自動ではない場合(ステップS306:NO)は、処理をステップS315に移行する。
ステップS307では、電子書籍端末101のCPU201は、電子書籍端末101の表示部の解像度を取得する。
ステップS308では、電子書籍端末101のCPU201は、表示部に表示された電子書籍データの行間のサイズを取得する。
ステップS309では、電子書籍端末101のCPU201は、ステップS307で取得した解像度と、ステップS308で取得した行間のサイズとから、ルビを表示するのに十分な行間であるか否かを判断する。
具体的には、あらかじめ図5のようなデータを記憶しておき、取得した解像度から、行間サイズが所定のサイズ以上であればルビを表示し、行間サイズがあらかじめ定められた値以下であればルビを表示しないという判断をする。
ルビを振るのに十分な行間であると判断された場合(ステップS309:YES)は、処理をステップS311に移行する。
ルビを振るのに十分ではないと判断された場合(ステップS309:NO)は、処理をステップS315に移行する。
ステップS310では、電子書籍端末101のCPU201は、現在の表示倍率が、ステップS101で設定された倍率より高い倍率であるか(設定された倍率よりも拡大された表示であるか)を判断する。設定値よりも高い倍率である場合(ステップS310:YES)は、処理をステップS311に移行する。
設定値よりも低い倍率である場合(ステップS310:NO)は、処理をステップS315に移行する。
ステップS311では、電子書籍端末101のCPU201は、表示部に表示される電子書籍データのテキストデータを抽出する。
ステップS312では、電子書籍端末101のCPU201は、ステップS311で抽出したデータと、ステップ301で受け付けた設定値(ルビ指定やルビ体裁など)をルビ振りプログラムに渡し、ルビを振られたデータ(ルビタグ(付加情報)付きのテキストデータ)を取得する。
ステップS313では、ルビ振りプログラムによりステップS312で渡したテキストデータにルビが振られる(ルビタグが付与される)。ここでのルビ振りプログラムは、公知技術を用いたルビを振るプログラムによって構成される。また、当該プログラムは、電子書籍端末101の内部にあっても良く、または電子書籍端末101とは別の外部装置102にあってもよい。
また、本実施形態においては、ルビを振るプログラムとして説明しているが、ルビに限られるものではなく、例えば外国語の単語に日本語の意味を振るプログラムや、日本語単語に外国語の意味を振るプログラム、専門用語に意味を振るプログラムなど、もとのテキストデータに対して、付加情報を表示するために情報を付加するプログラムであれば、いずれであっても良い。すなわち、本実施形態で「ルビを振る」としているのは、ある文字列に対して付加情報を付加して表示することの一例である。
ステップS314では、電子書籍端末101のCPU201は、ステップS312で取得したルビタグ付のテキストデータを処理する。
ステップS315では、電子書籍端末101のCPU201は、表示部に電子書籍データを表示する。
ここで、ステップS306でNOと判定された場合、ステップS309でNOと判定された場合、ステップS310でNOと判定された場合については、ルビが表示されない画面が表示される。他方、ステップS314の処理が実行された場合は、ルビが表示された画面が表示される。
また、本フローチャートに示すステップS303〜S315の処理は、ユーザから画面表示サイズの変更指示を受け付けた場合に実行される。
次に、図4を用いて、本発明の実施形態において図3に示すフローチャートのステップS304でYESと判定された場合に電子書籍端末101が行うルビ削除処理について説明する。
なお、図4のフローチャートで示す処理については、電子書籍端末101のCPU201が所定の制御プログラムを読み出して実行する処理である。
ステップS401では、電子書籍端末101のCPU201は、ステップS301で受け付けたルビ表示に関する設定が、「倍率指定」であるかを判断する。すなわち、図6の画面において、「拡大時のルビ」にチェックがされ、プルダウンリストから「倍率指定」が選択されているか否かを判断する。
倍率指定である場合(ステップS401:YES)は、処理をステップS406に移行する。
倍率指定ではない場合(ステップS401:NO)は、処理をステップS402に移行する。
ステップS402では、電子書籍端末101のCPU201は、ステップS301で受け付けたルビ表示に関する設定が、「自動」になっているかを判断する。すなわち、図6の画面において、「拡大時のルビ」にチェックがされ、プルダウンリストから「自動」が選択されているか否かを判断する。
自動である場合(ステップS402:YES)は、処理をステップS403に移行する。
自動ではない場合(ステップS402:NO)は、処理をステップS407に移行する。
ステップS403では、電子書籍端末101のCPU201は、電子書籍端末101の表示部の解像度を取得する。
ステップS404では、電子書籍端末101のCPU201は、表示部に表示された電子書籍データの行間のサイズを取得する。
ステップS405では、電子書籍端末101のCPU201は、ステップS403で取得した解像度と、ステップS404で取得した行間のサイズとから、ルビを表示するのに十分な行間であるか否かを判断する。
具体的には、あらかじめ図5のようなデータを記憶しておき、取得した解像度から、行間サイズが所定のサイズ以上であればルビを表示し、行間サイズがあらかじめ定められた値以下であればルビを表示しないという判断をする。
ルビを振るのに十分な行間であると判断された場合(ステップS405:YES)は、処理をステップS409に移行する。
ルビを振るのに十分ではないと判断された場合(ステップS405:NO)は、処理をステップS407に移行する。
ステップS406では、電子書籍端末101のCPU201は、現在の表示倍率が、ステップS101で設定された倍率より高い倍率であるか(設定された倍率よりも拡大された表示であるか)を判断する。設定値よりも高い倍率である場合(ステップS406:YES)は、処理をステップS409に移行する。
設定値よりも低い倍率である場合(ステップS406:NO)は、処理をステップS407に移行する。
ステップS407では、電子書籍端末101のCPU201は、表示部に表示される電子書籍データのテキストデータを抽出する。
ステップS408では、電子書籍端末101のCPU201は、ステップS407で取得したテキストデータからルビタグを削除する。すなわち、ルビを表示しないテキストデータを作成する。
ステップS409では、電子書籍端末101のCPU201は、電子書籍データを表示部に表示する。
ここで、ステップS405でYESと判定された場合、ステップS406でYESと判定された場合(すなわち、ルビを表示できる倍率で表示される場合)は、ルビが表示された状態のまま電子書籍データを表示部に表示する。他方、ステップS408の処理が実行された場合は、ルビが振られていない(ルビを削除した)電子書籍データを表示部に表示する。
以上の処理により、すでにルビが振られた画面に対して縮小指示がなされた場合に、ルビを削除した画面表示に変更することが可能となる。
図7は、設定された表示倍率よりも縮小表示された場合の画面の一例を示す図である。図7の例では、「表示倍率:75%」の例として示している。縮小表示されている場合は、図7に示す画面のように、1画面に多くの文字が表示され、ルビが振られていない(例えば図7の701で示す行にある「摩利支天」にはルビが振られていない)。
図8は、設定された表示倍率以上に拡大表示された場合の画面の一例を示す図である。図8の例では、「表示倍率:150%」の例として示している。拡大表示されている場合は、1文字のサイズが大きく、行間も広がっている。そのため、ルビが振られて表示される(例えば図8の801の行にある「摩利支天」には「まりしてん」とのルビが振られて表示されている)。
以上説明したように、画面上の表示サイズが拡大表示されている場合にはルビも表示することで、読者は読み方を知りたい場合には拡大表示することでルビ付きの表示にすることができる。また、縮小表示されている場合にはルビは表示しないように制御することで、ルビが不要である場合には、縮小表示をすることでルビなしの表示に切り替えることが可能となる。
このように、ユーザにより表示倍率が変更されることに応じて、付加情報とともにテキストデータ(文字列)を表示するか否かを切り替えることが可能となる。
また、縮小表示した際にもルビを表示した場合は、ルビが非常に小さな文字となり、読み取ることができないサイズとなってしまう。このような読み取ることができないサイズの文字は表示しないよう制御できるため、読者にとって不要な情報を表示せず、読みやすい表示を提供することが可能となる。
本実施形態においては、ルビを表示するか否かの判断において、行間サイズと解像度を用いる方法、表示倍率を用いる方法を説明した。ルビを表示するか否かの判断においては、ルビを読み取ることができるサイズで表示できるかによって表示するか否かを切り替えることができれば、本発明の目的は達成できる。そのため、具体的な判断方法については、本実施例に記載した行間サイズと解像度を用いる方法、表示倍率を用いる方法には限定されない。例えば、表示するルビの文字サイズと所定のサイズとを比較することで、ルビを表示するか否かを判断するように構成してもよい。
≪第2の実施形態≫
次に、本発明における第2の実施形態について説明する。
第2の実施形態の説明では、上述した第1の実施形態とは異なる処理について説明する。
まず、図9を用いて、本発明の第2の実施形態において電子書籍端末101が行うルビ振り処理について説明する。
なお、図9のフローチャートで示す処理については、電子書籍端末101のCPU201が所定の制御プログラムを読み出して実行する処理である。
ステップS301では、電子書籍端末101のCPU201は、ユーザから図15に示す画面を介して、各種の設定を受け付ける。ここで、第1の実施形態で受け付ける設定の他に、本実施形態では、ルビ表示が出来ない場合の処理に関する設定、常時ルビに関する設定がある。これらの設定についての詳細は後述する。
また、個別指定文字列ファイルを読み込む。この個別指定文字列ファイルは、図15に示す画面において設定された情報や、個別に指定された文字列とそのルビタグに関する情報が含まれている。
例えば、図15において常時ルビ設定欄(1501)において「5年生」、「6年生」にチェックがなされている場合は、5年生、6年生で学習する漢字に対して、図12に示す処理によりルビが付与されることとなる。なお、それぞれの学年で学習する漢字や教育漢字以外の漢字など、チェックボックスとなっているチェック項目に対応する漢字は、予め登録されているものとする。
ステップS302では、電子書籍端末101のCPU201は、表示部に電子書籍データを表示する。本処理は第1の実施形態におけるステップS302と同様の処理である。
ステップS901では、電子書籍端末101のCPU201は、ステップS301で受け付けた設定において、常時ルビ設定がされているか否か(常時ルビ設定欄のいずれかの項目にチェックがされているか否か)を判断する。
常時ルビの設定がされている場合(ステップS901:YES)は、処理を図12に示すフローチャートに移行する。図12に示すフローチャートの処理については、後述する。
常時ルビの設定がなされていない場合(ステップS901:NO)は、処理をステップS903に移行する。
ステップS902では、電子書籍端末101のCPU201は、個別指定文字列の設定がなされているか否かを判断する。具体的には、ステップS301で読み込んだファイルの中に、個別指定文字列が含まれているか否かにより判断する。ここで個別指定文字列とは、図15に示す画面を介した設定とは別に、ルビを表示する文字列として個別に設定された文字列を意味する。個別指定文字列の設定については、予め個別指定文字列として登録しておいてもよい。また、図11に示す処理により登録することも可能である。
個別指定文字列の設定がされている場合(ステップS902:YES)は、処理を図13に示すフローチャートに移行する。
個別指定文字列の設定がなされていない場合(ステップS902:NO)は、処理をステップS304に移行する。
ステップS304〜S315の処理については、第1の実施形態におけるS304〜S315の処理と同様の処理であるため、ここでの説明は省略する。
なお、ステップS304の「ルビが振られているか?」の判定処理については、常時ルビや個別指定文字列のルビではなく、図15の画面においてルビ指定欄1504で設定されたルビが表示されているか否かを判断する処理である。
また、ステップS304でYESの場合は、処理をステップ図10に示すフローチャートに移行する。
また、ステップS309でNOの場合は、処理をステップS903に移行する。
ステップS903では、電子書籍端末101のCPU201は、ステップS301で受け付けた設定で「ルビ表示出来ない場合」が設定されているか否かを判断する。
設定されている場合(ステップS903:YES)は、処理を図14に示すフローチャートに移行する。
設定されていない場合(ステップS903:NO)は、処理をステップS315に移行する。
また、ステップS310でNOの場合は、処理をステップS904に移行する。
ステップS904では、電子書籍端末101のCPU201は、ステップS301で受け付けた設定で「ルビ表示出来ない場合」が設定されているか否かを判断する。
設定されている場合(ステップS904:YES)は、処理を図14に示すフローチャートに移行する。
設定されていない場合(ステップS904:NO)は、処理をステップS315に移行する。そして本フローチャートの処理を終了する。
なお、本フローチャートにおけるステップS901〜S315の処理は、ユーザにより表示倍率の変更指示があった場合に実行される処理である。すなわち、ユーザにより表示倍率の拡大または縮小の指示を受け付けることに応答して、ルビを表示するか否かを切り替える。
次に図10のフローチャートで示す処理について説明する。図10のフローチャートで示すS401〜S409の処理については、第1の実施形態における図4のフローチャートで示す処理と同様であるため、ここでの説明は省略する。
S402でNOの場合、S405でNOの場合、S406でNOの場合には、ステップS1001の処理を実行する。
ステップS1001では、電子書籍端末101のCPU201は、ルビ表示が出来ない場合の処理が設定されているか否かを判断する。
設定されている場合(ステップS1001:YES)は、処理を図14に示すフローチャートに移行する。
設定されていない場合(ステップS1001:NO)は、処理をステップS407に移行する。
次に図11に示すフローチャートを用いて、ユーザから指定された文字列を常時ルビを付与する文字列として登録する処理について説明する。
図11のフローチャートで示す処理については、電子書籍端末101のCPU201が所定の制御プログラムを読み出して実行する処理である。
ステップS1101では、電子書籍端末101のCPU201は、電子書籍端末101の表示部に電子書籍データを表示する。
ステップS1102では、電子書籍端末101のCPU201は、ユーザにより文字列の選択を受け付ける。
文字列の選択を受け付ける方法としては、ユーザにより表示部の画面上の文字列がタッチされることで選択を受け付ける方法が考えられる。また、ルビを表示したい文字列が表示された領域を一定時間の間、タッチされ続けることで選択を受け付けるように制御しても良い。また、カーソルが表示される電子書籍端末であれば、カーソルを用いた選択を受け付けるように制御しても良い。このように、ルビを表示する文字列の選択を受け付ける方法としては、いずれの方法であっても良い。
ステップS1103では、電子書籍端末101のCPU201は、ステップS1102で選択された文字列を、常時ルビを表示する文字列として登録するか否かを判断する。
具体的には、常時ルビを表示する文字列として登録するか否かの設定を受け付ける画面を表示し、ユーザにより選択を受け付けることで判断しても良い。
図25は、常時ルビを表示する文字列として登録するか否かの選択を受け付ける画面(2501)を、ポップアップにより表示した画面の一例である。
「常時ルビ登録」が選択された場合は、登録する(ステップS1103でYES)と判断される。
「キャンセル」が選択された場合は、登録しない(ステップS1103でNO)と判断される。
登録する場合(ステップS1103:YES)は、処理をステップS1104に移行する。
登録しない場合(ステップS1103:NO)は、本フローチャートの処理を終了する。
ステップS1104では、電子書籍端末101のCPU201は、ステップS1102で指定された文字列の前後の文書を取得する。ここで前後の文書を取得するのは、漢字の読み方については、同じ漢字でも前後の文脈が違えば異なる読み方をする場合があることから、どのような読み方をするのかを適切に判断するためである。そのため、読み方が特定できるだけの範囲で前後の文書を取得すれば良い(例えば当該文字列が含まれる一文を取得するなど)。
ステップS1105では、電子書籍端末101のCPU201は、ステップS1104で取得した文書をルビ振りプログラムに渡し、ルビ振り処理(ステップS1106)がなされた文書(指定文字列にルビタグが付与されたテキスト)を取得する。
ここでルビ振り処理については、第1の実施形態におけるステップS313の処理と同様の処理であるため、ここでの説明は省略する。
ステップS1107では、電子書籍端末101のCPU201は、個別指定文字列(ステップS1102でユーザにより選択された文字列)と、当該文字列に付与されたルビタグとを、個別指定文字列ファイル(ステップS301で読み込むファイル)に保存する。
そして、処理を図13に示すフローチャートに移行する。
次に、図12を用いて、常時ルビの設定がなされている場合(図9のステップS901でYESとなった場合)の処理について説明する。
図12のフローチャートで示す処理は、電子書籍端末101のCPU201が所定の制御プログラムを読み出して実行する処理である。
ステップS403〜S404は第1の実施形態における対応する処理と同様であるためここでの説明を省略する。
ステップS405では、電子書籍端末101のCPU201は、ステップS403で取得した解像度と、ステップS404で取得した行間とを用いて、ルビを表示可能か否か判断する。
ここでルビが表示可能か否かの判断基準としては、第1の実施形態で用いられる基準や、図9のステップS309で用いられる基準(例えば図5)よりも、緩やかな条件とする。すなわち、常時ルビとして設定された文字列は、通常のルビより小さな文字であっても表示される。
例えば、図5の代わりに図23のようなデータテーブルを記憶しておき、常時ルビを付加する文字列や個別指定文字列に対しては、常時ルビの基準(2302)を用いてルビの表示・非表示を切り替え、通常のルビを付加する文字列については、通常のルビの基準(2301)を用いてルビの表示・非表示を切り替える。
ルビが表示可能と判断された場合(ステップS405:YES)は、ルビを表示する文字列に対してルビを表示し、処理をステップS409に移行する。ここでルビを表示する処理は、ステップS1106等と同様に、ルビ振りプログラムに電子書籍データを渡してルビ振り処理を実行する。
ルビを表示できない場合(ステップS405:No)は、処理をステップS1201に移行する。
ステップS1201では、電子書籍端末101のCPU201は、ルビ表示が出来ない場合の処理が設定されているか否かを判断する。
設定されている場合(ステップS1201:YES)は、処理を図14に示すフローチャートに移行する。
設定されていない場合(ステップS1201:NO)は、処理をステップS407に移行する。
ステップS407、S408、S409の処理は、第1の実施形態における対応する処理と同様であるため、ここでの説明は省略する。
ステップS409で電子書籍データを表示すると、本フローチャートの処理を終了する。本フローチャートの処理を終了すると、図9のステップS902の処理に移行する。
次に、図13を用いて、指定文字列に対してルビを振る処理を説明する。
図13のフローチャートで示す処理は、電子書籍端末101のCPU201が所定の制御プログラムを読み出して実行する処理である。
ステップS1301では、電子書籍端末101のCPU201は、ステップS1102で指定された文字列と同一の文字列を電子書籍データの中から検索する。ステップS902でYESの場合には、ステップS301で読み込んだ個別指定文字列ファイルにある文字列のうち処理対象となっている文字列と同一の文字列を検索する。
ステップS1302では、電子書籍端末101のCPU201は、ステップS1301で検索された文字列に対して、ルビタグを付与する。
すなわち、電子書籍データ内の、ステップS1102で指定された文字列や、個別指定文字列ファイルに登録された文字列と同一の文字列に対してもルビを付加するための処理である。
ステップS1303では、電子書籍端末101のCPU201は、個別指定文字列ファイル内の個別指定文字列を取得する。
ステップS1304では、電子書籍端末101のCPU201は、処理対象の個別指定文字列が最後の個別指定文字列であるかを判断する。すなわち、ステップS1303で個別指定文字列を取得出来たか否かを判断する。
最後の個別指定文字列である場合(ステップS1304:YES)は、処理をステップS403に移行する。
最後の個別指定文字列ではない場合(ステップS1304:NO)は、処理をステップS1305に移行する。
ステップS1305では、電子書籍端末101のCPU201は、読み込んだ個別指定文字列ファイルに含まれる次の個別指定文字列を取得し、処理をステップS1301に移行する。
ステップS403では、電子書籍端末101のCPU201は、電子書籍端末101の表示部の解像度を取得する。
ステップS404では、電子書籍端末101のCPU201は、表示部に表示された電子書籍データの行間のサイズを取得する。
ステップS405では、電子書籍端末101のCPU201は、ステップS403で取得した解像度と、ステップS404で取得した行間サイズとから、ルビを表示するのに十分な行間であるかを判断する。
具体的には、あらかじめ図5のようなデータを記憶しておき、取得した解像度から、行間サイズが所定のサイズ以上であればルビを表示し、行間サイズが予め定められた値以下であればルビを表示しないという判断をする。
ルビを表示するのに十分な行間であると判断された場合(ステップS405:YES)は、処理をステップS409に移行する
ルビを表示するのに十分な行間ではないと判断された場合(ステップS405:NO)は、処理をステップS1306に移行する。
ステップS1306では、電子書籍端末101のCPU201は、「ルビ表示できない場合」の処理が設定されているか否かを判断する。
設定がされている場合(ステップS1306:YES)は、処理を図14に示すフローチャートに移行する。
設定されていない場合(ステップS1306:NO)は、処理をステップS1307に移行する。
ステップS1307では、電子書籍端末101のCPU201は、表示部に表示される電子書籍データのテキストを抽出する。
ステップS1308では、電子書籍端末101のCPU201は、ステップS1307で抽出したテキストに付与されているルビタグを削除する。
そして処理をステップS409に移行し、電子書籍端末101の表示部に電子書籍データ(ルビを付与したデータまたはルビを削除したデータ)を表示する。
そして本フローチャートに示す処理を終了する。本フローチャートの処理を終了すると、処理を図9のステップS304に移行する。
次に図14を用いて、ルビが表示できない場合の処理について説明する。
図14のフローチャートで示す処理は、電子書籍端末101のCPU201が所定の制御プログラムを読み出して実行する処理である。
ステップS1401では、電子書籍端末101のCPU201は、設定情報を取得する。ここで設定情報には、ルビが表示出来ない場合における表示制御に関する設定が含まれる。例えば、「ルビが表示出来ない場合には、ルビが付与される漢字に対して傍線を引く」といった設定や、「ルビが表示出来ない場合には、ルビが付与される漢字に色を付けて表示する」といった設定が含まれる。このように、ルビが表示出来ない場合には、ルビが付加される(ルビが振られる)漢字を他の文字とは識別できるように表示制御すればよい。
ステップS1402では、電子書籍端末101のCPU201は、ステップS1401で取得した設定に基づき、処理を実行する。
ステップS1402における処理の具体例として、例えば、ルビが振られる文字列に色を付けて表示する処理や、ルビが振られる文字列に罫線(傍線)を付ける処理や、ルビが振られる文字列を白黒反転させる処理などが考えられる。すなわち、ルビが振られる文字列であることをユーザが認識できるような表示にすれば、いずれの方法であっても構わない。
ステップS1403では、電子書籍端末101のCPU201は、ステップS1402の処理が施された電子書籍データを表示部に表示する。
図16、図17、図22は、ステップS1403で表示される画面の一例を示す図である。
図16は、ルビが振られる文字列に罫線(傍線)を付加した場合の画面の一例を示す図である。例えば1601の行にある「摩利支天」には、「まりしてん」というルビではなく、傍線が引かれている。
図17は、ルビが振られる文字列を白黒反転させた場合の画面の一例を示す図である。例えば1701の行にある「摩利支天」の文字列が白黒反転している。
図22は、「摩利支天」は個別指定文字列(または常時ルビ)として設定された文字列であり、それ以外は、通常のルビの文字列である。また、表示倍率は、個別指定文字列や常時ルビは表示されるが、通常のルビの文字列は表示されない倍率である場合を示している。
図22の2201で示す行は、「摩利支天」という文字列に対して「まりしてん」とルビが振られている。これに対して2202で示す行の「机」にはルビが振られず、その代わりにルビを表示できない場合の処理である傍線が付加されている。
そして、図19に示すフローチャートに処理を進める。
図19は、ステップS1402の処理が施された場合に、ユーザによりルビ指定文字が選択されることで、当該文字にルビを表示する処理である。
なお、図19のフローチャートで示す処理は、電子書籍端末101のCPU201が所定の制御プログラムを読み出して実行する処理である。
ステップS1901では、電子書籍端末101のCPU201は、ユーザからルビ指定文字の選択を受け付ける。ここでの文字列の選択を受け付ける方法としては、ステップS1102で説明したように、ユーザにより表示部の画面上の文字列がタッチされることで選択を受け付ける方法が考えられる。また、ルビを表示したい文字列が表示された領域を一定時間の間、タッチされ続けることで選択を受け付けるように制御しても良い。また、カーソルが表示される電子書籍端末であれば、カーソルを用いた選択を受け付けるように制御しても良い。このように、ルビを表示する文字列の選択を受け付ける方法としては、いずれの方法であっても良い。
また、ステップS1901では、ユーザから文字列の選択を受け付けると、図24のような画面を表示する。
図24に示すように、ポップアップなどにより選択された文字列に対応するルビを表示するか否かの選択画面を表示する(2401)。図24の例では、2401の「ルビ表示」が選択されると、処理をステップS1902に移行する。他方、「キャンセル」が選択された場合には、ポップアップ画面を終了し、本フローチャートの処理を終了する。
ステップS1902では、電子書籍端末101のCPU201は、ステップS1901で指定された文字列の前後の文書を取得する。ここで前後の文書を取得するのは、漢字の読み方については、同じ漢字でも前後の文脈が違えば異なる読み方をする場合があることから、どのような読み方をするのかを適切に判断するためである。そのため、読み方が特定できるだけの範囲で前後の文書を取得すれば良い(例えば当該文字列が含まれる一文を取得するなど)。
ステップS1903では、電子書籍端末101のCPU201は、ステップS1902で取得した文書をルビ振りプログラムに渡し、ルビ振り処理(ステップS1904)がなされた文書(指定文字列にルビタグが付与されたテキスト)を取得する。
ここでルビ振り処理については、第1の実施形態におけるステップS313の処理と同様の処理であるため、ここでの説明は省略する。
ステップS1905では、電子書籍端末101のCPU201は、ステップS1903で取得したルビタグ付のテキストデータを処理する。
ステップS1906では、電子書籍端末101のCPU201は、ステップS1901で選択された文字列にルビが付与された画面を表示部に表示する。
ステップS1906において表示される画面の一例を図18に示す。図18に示す画面では、「摩利支天」が選択された例を示す。
図18のように選択された「摩利支天」の文字列に対して、吹き出しによって「まりしてん」というルビが表示されている。
以上により、常時ルビや個別指定文字列のルビについては、小さい文字となってしまう場合でも表示し、通常のルビについては、所定のサイズでの表示をするといったように、段階的に表示するルビを設定することが可能となる。
例えば、通常のルビとして小学1年〜6年まで全てが設定され、常時ルビとして5年と6年が設定されていた場合は、5年生、6年生のルビは行間がせまい場合や、表示倍率が低い場合でも表示され、1年〜4年に対応するルビは、より行間が広い場合や、より表示倍率が高い場合に表示される。
また、ユーザにより選択された文字列について、一時的にルビを表示することが可能となる。
<第3の実施形態>
次に図21を用いて第3の実施形態について説明する。
第3の実施形態は、「常時ルビ」として設定された文字列および個別指定文字列については、行間や表示倍率などに関わらず、常にルビを表示する構成とした実施形態である。
なお、図21は、電子書籍端末101のCPU201が所定の制御プログラムを読み出して実行する処理である。
ステップS2101では、電子書籍端末101のCPU201は、ユーザによる指示に応答して表示倍率の変更を受け付ける。
表示倍率の変更を受け付ける方法については、ユーザにより表示倍率(例えば75%等)が指定されることで受け付けても良い。また、表示部がマルチタッチに対応したタッチパネルであれば、ピンチアウトやピンチインといった操作によって変更を受け付けても良い。ピンチアウトとは、2本の指を画面上に載せて指と指の間隔を広げる動作を指す。これにより表示倍率は高くなる(拡大表示される)。ピンチインとは、2本の指を画面上に載せてその間隔を縮める動作を指す。これにより表示倍率は低くなる(縮小表示される)。
ステップS2102では、電子書籍端末101のCPU201は、常時ルビの設定があるか否かを判断する。具体的には、ステップS301で読み込んだ設定の中に、常時ルビの設定があるか否かにより判断する。ここでの判断処理は、ステップS901の処理と同様である。
常時ルビの設定がなされている場合(ステップS2102:YES)は、処理をステップS2103に移行する。
常時ルビの設定がなされていない場合(ステップS2102:NO)は、処理をステップS2104に移行する。
ステップS2103では、電子書籍端末101のCPU201は、常時ルビとして表示すると設定された文字列に対してルビを表示する。具体的には、電子書籍データをルビ振りプログラムに渡し、ルビ振りプログラムによって付与されたルビタグに基づき表示する。
ステップS2103では、行間サイズや表示倍率などに関わらず、常時ルビとして表示すると設定された文字列に対してはすべてルビを表示する。ここで行間サイズが小さいため、ルビが読取困難なほど小さくなってしまうような場合には、図20の2001の行に示すように、ルビが表示されるスペースを確保し(例えば改行をする等)、ルビを振る。また、図18の1801の行ように吹き出しを表示し、そこにルビを表示しても良い。
ステップS2104では、電子書籍端末101のCPU201は、個別指定文字列が設定されているか否かを判断する。個別指定文字列とは、前述の通り、個別にルビを表示する文字列として登録された文字列を意味する。
個別指定文字列が設定されている場合(ステップS2104:YES)は、処理をステップS2105に移行する。
個別指定文字列が設定されていない場合(ステップS2104:NO)は、処理をステップS2106に移行する。
個別指定文字列が設定されているか否かは、ステップS301で読み込んだファイルに個別指定文字列が含まれているか否かにより判断される。
ステップS2105では、電子書籍端末101のCPU201は、個別指定文字列のルビを表示する。ステップS2105の処理については、ステップS1104〜S1106の処理と同様である。
ステップS2106では、電子書籍端末101のCPU201は、通常のルビを表示するか否か判断する。通常のルビとは、常時ルビ、個別指定文字列のルビではないルビを意味する。すなわち図15のルビ指定欄1504で設定されたルビである。
ルビを表示するか否かは、第1の実施形態および第2の実施形態における判断(ステップS305〜S310)と同様であり、行間サイズと解像度による判断や、表示倍率による判断などが考えられる。
ルビ表示する場合(ステップS2106:YES)は、処理をステップS2107に移行する。
ルビを表示しない場合(ステップS2106:NO)は、処理をステップS2108に移行する。
ステップS2107では、電子書籍端末101のCPU201は、ルビを表示する。ここでのルビ表示処理については、第1の実施形態や第2の実施形態における処理と同様に、電子書籍データをルビ振りプログラムに渡すことで実現する。
ステップS2108では、電子書籍端末101のCPU201は、ルビ表示できない場合の処理が設定されているか否かを判断する。具体的には図15に示す画面において、ルビ表示ができない場合(1502)にチェックがなされているか否かにより判断する。
設定がされている場合(ステップS2108:YES)は、処理をステップS2109に移行する。
設定がなされていない場合(ステップS2108:NO)は、本フローチャートの処理を終了する。
ステップS2109では、電子書籍端末101のCPU201は、ルビ表示できない場合の処理を実行する。具体的には、ステップS1401、S1402と同様に、図15の画面を介して選択された処理内容(1503)に従い、処理を実行する。
そして本フローチャートに示す処理を終了する。
以上のように、本フローチャートで説明した処理は、ユーザにより画面表示のサイズ(表示倍率)の変更指示がなされた場合に実行されるものである。
また、ステップS2109の処理が実行された場合に、さらに図19に示すように、ルビタグが付与されている文字列の選択を受け付けることで、当該選択された文字列に付与されたルビを表示する処理を実行することが可能である。
なお、上述した各種データの構成及びその内容はこれに限定されるものではなく、用途や目的に応じて、様々な構成や内容で構成されることは言うまでもない。
また、本発明におけるプログラムは、コンピュータに図3〜図4、図9〜図14、図19、図21に示す処理を実行させるプログラムである。なお、本発明におけるプログラムは図3〜図4、図9〜図14、図19、図21に示す処理ごとのプログラムであってもよい。
以上のように、前述した実施形態の機能を実現するプログラムを記録した記録媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ(またはCPUやMPU)が記録媒体に格納されたプログラムを読み出し、実行することによっても本発明の目的が達成されることは言うまでもない。
この場合、記録媒体から読み出されたプログラム自体が本発明の新規な機能を実現することになり、そのプログラムを記録した記録媒体は本発明を構成することになる。
プログラムを供給するための記録媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、CD−ROM、CD−R、DVD−ROM、磁気テープ、不揮発性のメモリカード、ROM、EEPROM、シリコンディスク等を用いることが出来る。
また、コンピュータが読み出したプログラムを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムの指示に基づき、コンピュータ上で稼働しているOS(オペレーティングシステム)等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPU等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
また、本発明は、複数の機器から構成されるシステムに適用しても、ひとつの機器から成る装置に適用しても良い。また、本発明は、システムあるいは装置にプログラムを供給することによって達成される場合にも適応できることは言うまでもない。この場合、本発明を達成するためのプログラムを格納した記録媒体を該システムあるいは装置に読み出すことによって、そのシステムあるいは装置が、本発明の効果を享受することが可能となる。
さらに、本発明を達成するためのプログラムをネットワーク上のサーバ、データベース等から通信プログラムによりダウンロードして読み出すことによって、そのシステムあるいは装置が、本発明の効果を享受することが可能となる。なお、上述した各実施形態およびその変形例を組み合わせた構成も全て本発明に含まれるものである。